天天看點

win7 64位系統,vs2010下配置OpenGL開發環境

glut下載下傳位址:

<a target="_blank" href="http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip">http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip</a>

1. 把解壓得到的glut.h放到"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl"(與具體安裝位置有關,應該是 安裝目錄\microsoft sdks\windows\v7.0A\include\gl)

      2. 把解壓得到的glut.lib和glut32.lib放到"“Programfiles(x86)\Microsoft Visual studio 10.0\VC\lib" 中(與具體安裝位置有關,同上)

      3. 把解壓得到的glut.dll放到"C:\Windows\System32"

      4. 把glut32.dll放到“Programfiles(x86)\Microsoft Visual studio 10.0\VC\bin”下(注意這個,網上有人說放到system32裡,但是我試過,會報錯)(與具體安裝位置有關,同上)

      5. 打開vs2010,随便打開或建立一個項目。 選擇 project-&gt;project property-&gt; Configuration Properties-&gt;Linker-&gt;Input-&gt;Additional Dependencies 在其中添加opengl32.lib glu32.lib glut32.lib

win7 64位系統,vs2010下配置OpenGL開發環境

首先,需要包含頭檔案#include &lt;GL/glut.h&gt;,這是GLUT的頭檔案。

本來OpenGL程式一般還要包含&lt;GL/gl.h&gt;和&lt;GL/glu.h&gt;,但GLUT的頭檔案中已經自動将這兩個檔案包含了,不必再次包含。

然後看main函數。

int main(int argc, char *argv[]),這個是帶指令行參數的main函數,各位應該見過吧?沒見過的同志們請多翻翻書,等弄明白了再往下看。

注意main函數中的各語句,除了最後的return之外,其餘全部以glut開頭。這種以glut開頭的函數都是GLUT工具包所提供的函數,下面對用到的幾個函數進行介紹。

1、glutInit,對GLUT進行初始化,這個函數必須在其它的GLUT使用之前調用一次。其格式比較死闆,一般照抄這句glutInit(&amp;argc, argv)就可以了。

2、 glutInitDisplayMode,設定顯示方式,其中GLUT_RGB表示使用RGB顔色,與之對應的還有GLUT_INDEX(表示使用索引顔色)。GLUT_SINGLE表示使用單緩沖,與之對應的還有GLUT_DOUBLE(使用雙緩沖)。更多資訊,請自己Google。當然以後的教程也會有一些講解。

3、glutInitWindowPosition,這個簡單,設定視窗在螢幕中的位置。

4、glutInitWindowSize,這個也簡單,設定視窗的大小。

5、glutCreateWindow,根據前面設定的資訊建立視窗。參數将被作為視窗的标題。注意:視窗被建立後,并不立即顯示到螢幕上。需要調用glutMainLoop才能看到視窗。

6、glutDisplayFunc,設定一個函數,當需要進行畫圖時,這個函數就會被調用。(這個說法不夠準确,但準确的說法可能初學者不太好了解,暫時這樣說吧)。

7、glutMainLoop,進行一個消息循環。(這個可能初學者也不太明白,現在隻需要知道這個函數可以顯示視窗,并且等待視窗關閉後才會傳回,這就足夠了。)

在glutDisplayFunc函數中,我們設定了“當需要畫圖時,請調用myDisplay函數”。于是myDisplay函數就用來畫圖。觀察myDisplay中的三個函數調用,發現它們都以gl開頭。這種以gl開頭的函數都是OpenGL的标準函數,下面對用到的函數進行介紹。

1、glClear,清除。GL_COLOR_BUFFER_BIT表示清除顔色,glClear函數還可以清除其它的東西,但這裡不作介紹。

2、glRectf,畫一個矩形。四個參數分别表示了位于對角線上的兩個點的橫、縱坐标。

3、glFlush,保證前面的OpenGL指令立即執行(而不是讓它們在緩沖區中等待)。其作用跟fflush(stdout)類似。

如果這樣還報錯的話應該注意以下幾點:

有時候在建console application 的時候添加的cpp檔案将字尾句改為 .c

有的程式需要glaux工具包,這個下載下傳了,可以按上述步驟添加(操作基本相同)

主要整合了下面兩個文章:

<a target="_blank" href="http://www.cnblogs.com/moiyer/archive/2011/11/06/2316156.html">http://www.cnblogs.com/moiyer/archive/2011/11/06/2316156.html</a>

<a target="_blank" href="http://lesmatines.blog.163.com/blog/static/17396142013113111934550/">http://lesmatines.blog.163.com/blog/static/17396142013113111934550/</a>