1. 程式人生 > >OpenGL 學習筆記(一)——開始以及OPENGL環境配置

OpenGL 學習筆記(一)——開始以及OPENGL環境配置

         今天,開始學習OPENGL,以後會定期地釋出部落格,鼓勵自己學習,以及督促自己學習。浪費了許久的時間,終於覺得有必要學習一些東西了。希望還不會太晚吧。好了話不多說,首先開始OpenGL 的環境配置吧。

一、安裝GLUT工具包(可選)

GLUT並不是OpenGL必須用的在OpenGL中,gl庫是核心庫,glu是實用庫,glut是實用工具庫,gl是核心,glu是對gl的部分封裝,glut是OpenGL的跨平臺工具庫,gl中包含了最基本的3D函式,而glu似乎對gl的輔助,如果算數好,不用glu的情況下,也是可以做出同樣的效果。glut是基本的視窗介面,是獨立於gl和glu的,如果不喜歡用glut可以用MFC和Win32視窗等代替,但是glut是跨平臺的,這就保證了我們編出的程式是跨平臺的,如果用MFC或者Win32只能在windows作業系統上使用。選擇OpenGL的一個很大原因就是因為它的跨平臺性,所以我們可以儘量的使用gt庫。

二、VS環境配置

以我使用的VS2013為例。首先將下載的壓縮包解壓,得到5個檔案包含2個.dll,2個.lib,和1個.h檔案。(glut.dll, glut32.dll, glut.lib, glut32.lib,glut.h)

把.h檔案複製到X:\...\Visual Studio 2013\VC\include\gl資料夾中,沒有則新建一個。

把兩個lib檔案放到靜態函式庫庫所在資料夾中(與include同級的lib資料夾)。

把兩個.dll檔案放到作業系統目錄下的system32資料夾中。

       至此OpenGL的環境就配置完成了。

三、第一個OpenGL程式

接下來完成第一個OpenGL程式。

首先建立工程:建立一個win32控制檯應用程式;

連結OpenGL libraries。在VS中右擊專案,屬性,連結器,輸入,在附加依賴庫中加上opengl32.lib;glut32.lib;glu32.lib

然後將以下例子拷貝到工程中編譯執行,可以看到一個三角形。

#include "stdafx.h"
#include<gl/glut.h>
#include<gl/glu.h>
#include<gl/gl.h>
 
void renderScene(void)
{
         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
         glLoadIdentity();
         glBegin(GL_TRIANGLES);
         glVertex3f(-0.5,-0.5,0.0);
         glVertex3f(0.5,0.0,0.0);
         glVertex3f(0.0,0.5,0.0);
         glEnd();
         glutSwapBuffers();
}
 
int _tmain(int argc, _TCHAR* argv[])
{
         glutInit(&argc, (char**) argv);
         glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
         glutInitWindowPosition(100,100);
         glutInitWindowSize(320,320);
         glutCreateWindow("Hello OpenGL");
         glutDisplayFunc(renderScene);
         glutMainLoop();//enters the GLUT event processing loop.
         return 0;
}

        在看到結果的時候會發現除了一個opengl的渲染視窗以外還有一個黑窗,對於這種情況,可以在包含庫檔案之後加上以下程式碼

#pragma comment(linker, "/subsystem:/"windows/" /entry:/"mainCRTStartup/"")

       之後就沒有那個小黑視窗啦。