VS 2010 OpenGL 配置与实例开发
生活随笔
收集整理的這篇文章主要介紹了
VS 2010 OpenGL 配置与实例开发
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先參考了網(wǎng)上的安裝配置環(huán)境部分:http://blog.csdn.net/Ididcan/article/details/4490797
最近準(zhǔn)備學(xué)習(xí)OpenGL,結(jié)果發(fā)現(xiàn)敲入書中給的代碼,居然提示頭文件找不到,相當(dāng)郁悶,查了一下才發(fā)現(xiàn)有些不是VC自帶的,需要自己下載安裝,以下為轉(zhuǎn)帖,感覺說的還算詳細(xì),OpenGl大牛們,就略過此文好了,呵呵OpenGL作為當(dāng)前主流的圖形API之一,它在一些場合具有比DirectX更優(yōu)越的特性。
1、與C語言緊密結(jié)合。
OpenGL命令最初就是用C語言函數(shù)來進(jìn)行描述的,對于學(xué)習(xí)過C語言的人來講,OpenGL是容易理解和學(xué)習(xí)的。如果你曾經(jīng)接觸過TC的graphics.h,你會發(fā)現(xiàn),使用OpenGL作圖甚至比TC更加簡單。
2、強(qiáng)大的可移植性。
微軟的Direct3D雖然也是十分優(yōu)秀的圖形API,但它只用于Windows系統(tǒng)(現(xiàn)在還要加上一個XBOX游戲機(jī))。而OpenGL不僅用于 Windows,還可以用于Unix/Linux等其它系統(tǒng),它甚至在大型計(jì)算機(jī)、各種專業(yè)計(jì)算機(jī)(如:醫(yī)療用顯示設(shè)備)上都有應(yīng)用。并且,OpenGL 的基本命令都做到了硬件無關(guān),甚至是平臺無關(guān)。
3、高性能的圖形渲染。
OpenGL是一個工業(yè)標(biāo)準(zhǔn),它的技術(shù)緊跟時代,現(xiàn)今各個顯卡廠家無一不對OpenGL提供強(qiáng)力支持,激烈的競爭中使得OpenGL性能一直領(lǐng)先。
總之,OpenGL是一個很NB的圖形軟件接口。至于究竟有多NB,去看看DOOM3和QUAKE4等專業(yè)游戲就知道了。
OpenGL官方網(wǎng)站(英文)
http://www.opengl.org/
下面將對Windows下的OpenGL編程進(jìn)行簡單介紹。
學(xué)習(xí)OpenGL前的準(zhǔn)備工作
第一步,選擇一個編譯環(huán)境
現(xiàn)在Windows系統(tǒng)的主流編譯環(huán)境有Visual?Studio,Broland?C++?Builder,Dev-C++等,它們都是支持OpenGL的。 我選擇Visual?Studio?2008和VC6++作為學(xué)習(xí)OpenGL的環(huán)境。
第二步,安裝GLUT工具包
GLUT不是OpenGL所必須的,但它會給我們的學(xué)習(xí)帶來一定的方便,推薦安裝。
Windows環(huán)境下的GLUT下載地址:(大小約為150k)
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
無法從以上地址下載的話請使用下面的連接:
http://upload.programfan.com/upfile/200607311626279.zip
Windows環(huán)境下安裝GLUT的步驟:
1、將下載的壓縮包解開,將得到5個文件
2、在“我的電腦”中搜索“gl.h”,并找到其所在文件夾?
我的系統(tǒng)(Windows XP professional SP3)安裝了vc6和vs2010,因?yàn)槌S胿s2010,所以就在vs2010(安裝目錄:D:\Program Files\VS2010)里配置glut吧。 1. 將glut解壓出來,將其中的glut.h復(fù)制到D:\Program Files\VS2010\VC\include\GL下,若GL目錄不存在,則新建。 2. 將glut.lib和glut32.lib復(fù)制到D:\Program Files\VS2010\VC\lib 下。 3. 將glut.dll和glut32.dll復(fù)制到C:\WINDOWS\system32下。 至此,環(huán)境已經(jīng)配置好了。 下面來開發(fā)一個簡單的c++程序,環(huán)境vs2010中的vc 1. 新建->項(xiàng)目->win32控制臺應(yīng)用程序。 2. 輸入項(xiàng)目名:simpleGL,其他默認(rèn)即可。 3. 輸入源代碼: #include "stdafx.h" #include <gl/glut.h> #include <stdio.h> #include <time.h>// 太陽、地球和月亮 // 假設(shè)每個月都是12天 // 一年12個月,共是360天 static int day = 200; // day的變化:從0到359double CalFrequency() {static int count;static double save;static clock_t last, current;double timegap;++count;if( count <= 50 )return save;count = 0;last = current;current = clock();timegap = (current-last)/(double)CLK_TCK;save = 50.0/timegap;return save; }void myDisplay(void) {double FPS = CalFrequency();printf("FPS = %f\n", FPS);glEnable(GL_DEPTH_TEST);glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(75, 1, 1, 400000000);glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1);// 繪制紅色的“太陽”glColor3f(1.0f, 0.0f, 0.0f);glutSolidSphere(69600000, 20, 20);// 繪制藍(lán)色的“地球”glColor3f(0.0f, 0.0f, 1.0f);glRotatef(day/360.0*360.0, 0.0f, 0.0f, -1.0f);glTranslatef(150000000, 0.0f, 0.0f);glutSolidSphere(15945000, 20, 20);// 繪制黃色的“月亮”glColor3f(1.0f, 1.0f, 0.0f);glRotatef(day/30.0*360.0 - day/360.0*360.0, 0.0f, 0.0f, -1.0f);glTranslatef(38000000, 0.0f, 0.0f);glutSolidSphere(4345000, 20, 20);glFlush();glutSwapBuffers(); }void myIdle(void) {++day;if( day >= 360 )day = 0;myDisplay(); }int main(int argc, char *argv[]) {glutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);glutInitWindowPosition(100, 100);glutInitWindowSize(400, 400);glutCreateWindow("太陽,地球和月亮");glutDisplayFunc(&myDisplay);glutIdleFunc(&myIdle);glutMainLoop();return 0; }
4. 選擇項(xiàng)目屬性,選擇C/C++->預(yù)處理器,在右側(cè)的“預(yù)處理器定義”處,刪除“_CONSOLE“,如圖 5. 在項(xiàng)目屬性中,切換到“鏈接器”->系統(tǒng),右側(cè)窗口的子系統(tǒng)選擇:窗口 (/SUBSYSTEM:WINDOWS) 6. 在項(xiàng)目屬性中,再切換到“鏈接器”->命令行,在“其他選項(xiàng)”中輸入:/ENTRY:mainCRTStartup (可以去除程序運(yùn)行時出現(xiàn)的dos窗口) 編譯運(yùn)行,就能看到“太陽、地球和月亮的動態(tài)運(yùn)行圖”了!
總結(jié)
以上是生活随笔為你收集整理的VS 2010 OpenGL 配置与实例开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录最近的一些遇到的前端面试题
- 下一篇: matlab液体湿润模拟,【水文模型】0