OpenGL编程指南1:OpenGL简介
生活随笔
收集整理的這篇文章主要介紹了
OpenGL编程指南1:OpenGL简介
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.什么是OpenGL?
OpenGL對場景中的圖像進行渲染時所執行的主要圖形操作:
2.一段簡單的OpenGL代碼
首先介紹幾個術語:
- 渲染(Rendering):計算機根據模型創建圖像的過程。
- 模型(model):根據幾何圖元建立,也可以稱為物體。
- 幾何圖元:包括點、直線和多邊形等,它們是通過頂點(Vertex)指定的。
- 位平面:一塊內存區域,保存了屏幕上每個像素的1個位的信息。
最終完成了渲染的圖像是由在屏幕上繪制的像素組成的。像素是顯示硬件可以在屏幕上顯示的最小可視化元素。在內存中,和像素有關的信息(如像素的顏色)組織成位平面的形式。
#include "stdafx.h" #include <stdio.h> #include <gl\GLUT.H>void myDisplay(void) {glClearColor(0, 0, 0, 0); //窗口清除為黑色glClear(GL_COLOR_BUFFER_BIT); //實際完成窗口清除任務glColor3f(1.0, 1.0, 1.0); //確定繪制物體時所使用的顏色glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); //確定所使用的坐標系統glBegin(GL_POLYGON);glVertex3f(0.25, 0.25, 0.0);glVertex3f(0.75, 0.25, 0.0);glVertex3f(0.75, 0.75, 0.0);glVertex3f(0.25, 0.75, 0.0);glEnd();glFlush(); //保證了繪圖命令將實際執行 }void myReshape(GLsizei w, GLsizei h) {glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);//當前矩陣glLoadIdentity(); //將當前矩陣置換為單位陣if (w <= h)gluOrtho2D(-1.0, 1.5, -1.5, 1.5*(GLfloat)h / (GLfloat)w); //定義二維正視投影矩陣elsegluOrtho2D(-1.0, 1.5*(GLfloat)h / (GLfloat)w, -1.5, 1.5);glMatrixMode(GL_MODELVIEW); //指明當前矩陣 }int _tmain(int argc, char** argv) {glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);glutInitWindowSize(400, 400);glutInitWindowPosition(200, 200);glutCreateWindow("Square");glutReshapeFunc(myReshape);glutDisplayFunc(myDisplay);glutMainLoop();return 0; } 解析:
函數myDisplay:
- glClearColor:清除背景。
- glClear:將buffer設置為預先設定的值。參數GL_COLOR_BUFFER_BIT表明現在可以向buffer中寫入顏色值。
- glColor3f:設置當前顏色。后面跟著的參數代表參數個數。3:是指帶有三個參數,分別為紅綠藍。f:表示參數類型類型,GLfloat。
- glBegin和glEnd是一一對應的。這兩個函數限定了一組或者多組圖元的頂點定義。在這兩個函數之間就是我們繪制的由多個頂點組成的圖元。函數的參數表明了所繪制的涂元的類型。GL_POLYGON表明了所繪制的圖形為三角形。
- glVertex指定頂點。同樣函數明中的數字表明參數個數。參數分別為x,y或x、y、z。緊跟數字后面的字母表示數據類型。
- glFlush迫使OpenGL函數在有限時間里運行。glFlush清空所有buffer,使所有發出的命令能在規定的時間內運行。一定不能忘記這一條語句。只有加了這一句,前面的命令才能執行。
- glViewport(Glint x,Glint y,GLsizei width,GLsizei height)設置視口。視口是一個矩形,x,y為視口左下角的坐標,以像素為單位,缺省值為(0,0)。width和height分別為視口的寬和高。OpenGl context第一次貼到窗口上時width和height分別設置成窗口的大小。
- glMatrixMode 指明哪一個矩陣為當前矩陣。本例中GL_PROJECTION指明投影矩陣堆棧為隨后的矩陣操作的目標。GL_MODELVIEW指明模型視景矩陣。
- glLoadIdentity將當前矩陣置換為單位陣。
- gluOrtho2D(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top)定義二維正視投影矩陣。left,right分別設置左右垂直切平面的坐標,bottom,top分別設置上下垂直切平面的坐標。
總結
以上是生活随笔為你收集整理的OpenGL编程指南1:OpenGL简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一些比较有用的SQL操作,2011最新整
- 下一篇: 【飞秋】Asp.net MVC2 mod