一、環境准備:
系統環境win7,64位,雙顯卡:集成顯卡+gt540m,gt540建議下載最新的驅動,可以支持到opengl4.3標准,一般雙顯的筆記本,程序默認啟用的是集顯,我機器的集顯驅動有點老,只能支持到opengl3.0,所以講默認顯卡設置為獨顯。
開發環境:vs2010
PS:查看機器及顯卡支持的OpenGL版本可以使用工具GPU_Caps_Viewer_v1.18.1或者更高版本
二、OpenGL拓展包下載:
2.1 GLEW:windows開發環境,默認只支持opengl1.1的環境,但 OpenGL現在都發展到4.4了,要使用這些OpenGL的高級特性,就必須下載最新的擴展,另外,不同的顯卡公司,也會發布一些只有自家顯卡才支 持的擴展函數,你要想用這數涵數,不得不去尋找最新的glext.h,有了GLEW擴展庫,你就再也不用為找不到函數的接口而煩惱,因為GLEW能自動識 別你的平台所支持的全部OpenGL高級擴展涵數。也就是說,只要包含一個glew.h頭文件,你就能使用gl,glu,glext,wgl,glx的全 部函數。GLEW支持目前流行的各種操作系統(including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris)。
GLEW下載地址:http://glew.sourceforge.net/,目前最新版本1.10
GLEW下載完成后,bin下面有個glewinfo.exe,直接運行,會在同目錄下市場一個txt文件,顯示系統顯卡支持的opengl版本和具體函數。
2.2 FreeGlut:Freeglut是一個GLUT (OpenGL Utility Toolkit) 的開源實現,使用非常廣泛。OpenGL Redbook使用Freeglut代替GLUT編寫代碼,因為老的glut諸多不方便的協議,所以freeglut可作為glut的替代版本,具體可以參考http://baike.baidu.com/link?url=4xGj7YahqPtwq_o_1gX0LMrnJkMTx9M8wVe1sEIXsg3AofYKfurbZ8-NZrBS3I5geNhbWnZI7YCqLZ_5T3fa0a
FreeGLut下載地址:http://www.transmissionzero.co.uk/software/freeglut-devel/,目前最新版本2.8
三、環境配置
下載glew解壓,講include下面的頭文件盒lib下面的庫文件,拷貝到windows SDK中。不同的系統或者開發安裝包可能不一樣,我的機器是,頭文件拷貝到:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl,庫文件拷貝到C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib,如果裝的vs版本太多,可能有v6,v5之類的,vs2010對應的是v7.0,vs2008對應的是v6.0,如果安裝的是64位,拷貝的地址應該為:C:\Program Files \Microsoft SDKs\Windows\v7.0A\Include\gl
解壓freeglut,同樣拷貝頭文件和庫文件到glew拷貝的路徑下。
四、下載示例代碼
如果沒有寫過glsl程序,可以去三光網站下載一個入門的示例代碼,如:http://www.lighthouse3d.com/tutorials/glsl-tutorial/setup-for-glsl-example/,一個簡單的茶壺示例,具體的着色語言語法這里就不解釋了,下載下來或者通過代碼地址下載
下載程序下來之后,默認應該是vc6的工程,直接講dsw用vs2010打開
程序默認沒有設置鏈接庫,可以使用代碼:
#pragma comment(lib,"glew32.lib")
#pragma comment(lib,"freeglut.lib")
或者在project下面的鏈接器->輸入->附加依賴項,輸入glew32.lib和freeglut.lib。
五、直接編譯,運行程序,會報glew32.dll缺失,可以講剛才下載的glew32.dll和freeglut.dll放到程序的生成路徑下,即跟生成的exe放在同一個目錄中。再次運行,會出現:
PS:如果用的是筆記本雙顯卡,如果vs啟動用的是默認選擇獨立顯卡(在啟動程序上點擊右鍵,有個“用圖形顯示處理器運行”選項,選擇你的獨立顯卡),這樣才能支持獨立顯卡的特性進行調試
感謝的參考資料:
1.http://openglbook.com/setting-up-opengl-glew-and-freeglut-in-visual-c/
2.http://www.cnblogs.com/madfrog/archive/2010/06/25/1765259.html