教程:計算機視覺庫OpenGL初體驗筆記(一);

這是我窩關(guān)于OpenGL(C++版本)零基礎(chǔ)入門筆記的草稿!本系列文章主要通過每次一個小案例從而由淺至深地帶你入門!本次文章主要內(nèi)容為簡單概述OpenGL的語法、庫以及顯示窗口的范例。

OpenGL概述

OpenGL(開放式圖形庫)是用于渲染2D、3D矢量圖形的跨語言、跨平臺的應用程序編程接口。通過它可以在一些計算機上描述圖元、屬性、幾何變換、觀察變換等其它操作。屬于計算機圖形學的范疇。

OpenGL語法概述

OpenGL的核心庫中的函數(shù)名要以gl為前綴、函數(shù)名中每一個組成詞的第一個字母要大寫(如glBegin)。

有些函數(shù)要求一個或多個變量用符號常量賦值,如參數(shù)名、參數(shù)的值或特定的模式。這些常量均以GL開頭并全部大寫,單詞間用_隔開(如GL_2D)。

OpenGL函數(shù)也有專門的數(shù)據(jù)類型,并且部分函數(shù)支持數(shù)組(比如多維坐標)。大寫GL開頭,小寫字母表示標準數(shù)據(jù)類型名(如GLint)。

OpenGL庫概述

OpenGL除惹核心庫外還有一些用于處理專門操作的附加庫。比如實用函數(shù)庫(GLU)、窗口擴充(GLX)、實用工具包(GLUT)等等,比較模塊化。

在微軟VS2015下部署環(huán)境

新建項目-C++空白項目-創(chuàng)建C++文件;

工具-NuGet包管理器-包管理器控制臺;

Install-Package nupengl.core

完成。

使用GLUT進行顯示窗口管理

#include <GL/glut.h>

void init(void) {

? glClearColor(1.0, 1.0, 1.0, 0.0);

? //初始化顏色(RGB值)

? glMatrixMode(GL_PROJECTION);

? //正坐標

? gluOrtho2D(0.0, 200.0, 0.0, 150.0);

? //x坐標值(0-200)y坐標值(0-150)

}

void lineSegment(void) {

? glClear(GL_COLOR_BUFFER_BIT);

? //創(chuàng)建顏色緩存變量

? glColor3f(0.0, 0.4, 0.2);

? //為場景添加三個浮點顏色RGB值

? glBegin(GL_LINES);

? //開始畫線

? ? ? glVertex2i(180, 15);//左

? ? ? glVertex2i(10, 145);//右

? glEnd();

? glFlush();//刷新一把

}

void main(int argc, char** argv) {

? glutInit(&argc, argv);

? //對實用函數(shù)工具包初始化

? ? ? glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

? ? ? //窗口顯示模式(RGB)

? ? ? glutInitWindowPosition(50, 100);

? ? ? //顯示位置(左50像素、右100像素)

? ? ? glutInitWindowSize(400, 300);

? ? ? //顯示大小(400像素x300像素)

? ? ? glutCreateWindow("An Example OpenGL Program");

? ? ? //窗口標題

? ? ? init();

? ? ? glutDisplayFunc(lineSegment);

? ? ? //顯示何內(nèi)容

? ? ? glutMainLoop();

? ? ? //顯示出來

? }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容