OpenGL的简单研究-开端
一直想要學(xué)習(xí)的但是沒有學(xué)習(xí)的東西,大學(xué)一直在等待這個(gè)時(shí)間,終于可以閑下來研究一下這個(gè)部分的內(nèi)容了。
計(jì)算機(jī)圖形學(xué),讓計(jì)算機(jī)處理各種圖像的東西,里面也存在很多算法和數(shù)學(xué)知識(shí),很值得研究的一個(gè)領(lǐng)域,之前一直混跡在各種Web和服務(wù)器之中,終于可以學(xué)一些感覺很酷的東西。其實(shí)Web服務(wù)器也很酷。
?
我準(zhǔn)備的運(yùn)行環(huán)境還是比較簡單的,是Win10操作系統(tǒng),VS2015的開發(fā)環(huán)境。因?yàn)檫@種方式配置簡單一些,之前試過使用GCC作為編譯器和CFree作為開發(fā)環(huán)境,一直不成功,于是就用開了VC開發(fā)。
環(huán)境配置的過程是在網(wǎng)上百度的,內(nèi)容沒有什么技術(shù)含量,那么久開始看第一個(gè)代碼吧。
一般都是從Hello World開始的,但是OpenGL還是從畫一個(gè)方框開始吧:
1 #include <GL/glut.h> 2 void myDisplay() { 3 glClearColor(0.0, 0.0, 0.0, 0.0); 4 glClear(GL_COLOR_BUFFER_BIT); 5 6 glColor3f(1.0f, 1.0f, 1.0f); 7 glRectf(-0.5, -0.5, 0.5, 0.5f); 8 9 glBegin(GL_TRIANGLES); 10 glColor3f(1.0f, 0.0f, 0.0f); 11 glColor3f(0.0f, 1.0f, 0.0f); 12 glColor3f(0.0f, 0.0f, 1.0f); 13 glEnd(); 14 15 glPointSize(3); 16 glBegin(GL_POINT); 17 glColor3f(1.0f, 0.0f, 0.0f); 18 glColor3f(0.0f, 1.0f, 0.0f); 19 glColor3f(0.0f, 0.0f, 1.0f); 20 glEnd(); 21 22 glFlush(); 23 } 24 25 int main(int argc,char* argv[]) { 26 glutInit(&argc, argv); 27 glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); 28 glutInitWindowPosition(100, 100); 29 glutInitWindowSize(400,400); 30 glutCreateWindow("hello world"); 31 glutDisplayFunc(&myDisplay); 32 glutMainLoop(); 33 return 0; 34 }這個(gè)程序的作用是畫一個(gè)白色的方框,下面分析一下這個(gè)代碼:
在對(duì)于OpenGL中會(huì)有下面幾個(gè)操作,比較基礎(chǔ)和固定:
1 int main(int argc,char* argv[]) { 2 //對(duì)GLUT進(jìn)行初始化,函數(shù)必須在其他GLUT使用之前調(diào)用一次,固定格式。 3 glutInit(&argc, argv); 4 //設(shè)置顯示方式,RGB為RGB顏色,還有INDEX索引顏色,SINGLE單緩沖,DOUBLE雙緩沖 5 glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); 6 //在屏幕出現(xiàn)的位置 7 glutInitWindowPosition(100, 100); 8 //窗口的大小 9 glutInitWindowSize(400,400); 10 //創(chuàng)建窗口,標(biāo)題為“helloworld”,而且這個(gè)窗口創(chuàng)建之后不會(huì)立即顯示在屏幕上,必須調(diào)用了glutMainLoop()才會(huì)顯示在屏幕上 11 glutCreateWindow("hello world"); 12 //設(shè)置一個(gè)函數(shù),畫圖是調(diào)用這個(gè)函數(shù) 13 glutDisplayFunc(&myDisplay); 14 glutMainLoop(); 15 return 0; 16 } 1 //畫圖的函數(shù) 2 void myDisplay() { 3 //清空顏色為黑色,就是不顯示圖像的地方為黑色 4 glClearColor(0.0, 0.0, 0.0, 0.0); 5 //設(shè)置背景為清空顏色 6 glClear(GL_COLOR_BUFFER_BIT); 7 8 glColor3f(1.0f, 1.0f, 1.0f); 9 10 //畫圖,畫一個(gè)矩形 11 glRectf(-0.5, -0.5, 0.5, 0.5f); 12 13 14 15 /* 16 glBegin(GL_TRIANGLES); 17 glColor3f(1.0f, 0.0f, 0.0f); 18 glColor3f(0.0f, 1.0f, 0.0f); 19 glColor3f(0.0f, 0.0f, 1.0f); 20 glEnd(); 21 22 glPointSize(3); 23 glBegin(GL_POINT); 24 glColor3f(1.0f, 0.0f, 0.0f); 25 glColor3f(0.0f, 1.0f, 0.0f); 26 glColor3f(0.0f, 0.0f, 1.0f); 27 glEnd(); 28 29 */ 30 31 32 //保證前面的命令立即執(zhí)行 33 glFlush(); 34 }?
轉(zhuǎn)載于:https://www.cnblogs.com/Summer7C/p/5922515.html
總結(jié)
以上是生活随笔為你收集整理的OpenGL的简单研究-开端的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于Spring AOP的JDK动态代理
- 下一篇: GIS-001-gdal软件下载地址