這篇是我從http://seya.javaeye.com/blog/542343轉載過來的文章,還蠻有用的!
OPenGL ES常用API:
glClearColor( 0.f, 0.f, 0.f, 1.f ); // 設定強制回應視窗的背景顏色,顏色採用的是RGBA值
glViewport( 0, 0, iScreenWidth, iScreenHeight );//設定視口的大小以及位置,
視口:也就是圖形最終顯示到螢幕的地區,前兩個參數是視口的位置,後兩個參數是視口的寬和長。
glMatrixMode( GL_PROJECTION ); // 設定矩陣模式為投影矩陣,之後的變換將影響投影矩陣。
OpenGL屬於狀態管理機制,比如:設定當前矩陣為投影矩陣過後,在沒有重新調用glMatrixMode()之前,任何矩陣變換都將影響投影矩陣。
glFrustumf( -1.f, 1.f, -1.f, 1.f, 3.f, 1000.f ); //該函數建立一個透視投影矩陣,其中的參數定義了視景體,可以理解為用相機的時候,眼睛的可視範圍。就像一個三稜錐,參數1、3、5和2、4、6分別定義了近裁面和遠裁面的左下和右上的(x、y、z)座標。
OpenGL 投影有兩種模式,一種是透視投影,也就是通過上述函數建立一個三稜錐視景體,這種模式下觀看3D 模型是近大遠小。另外一種模式是正交模式,視景體是一個平行六面體,離相機的距離不會影響物體的大小。
glMatrixMode( GL_MODELVIEW ); //設定當前矩陣為模式矩陣
glVertexpointer( 3, GL_BYTE, 0, vertices ); //指定從哪裡存取空間座標資料
OpenGL 一共有8個這樣的函數可以存取不同的座標資料:
glColorPointer();
glIndexPointer();
glNormalPointer();
glTexCoordPointer();等
glShadeModel( GL_FLAT ); //設定陰影模式為GL_FLAT,預設是GL_SMOOTH
陰影模式一共有兩種,GL_SMOOTH和GL_FLAT,在有關照的情況下會有不同的效果。
glClear( GL_COLOR_BUFFER_BIT ); //清除顏色緩衝
glLoadIdentity(); //設定當前矩陣為單位矩陣
OpenGL裡面的位置大小都是用矩陣來表示的,比如:glScanf()放大或縮小,其實就是用一個矩陣去乘當前的矩陣,為了使變換不受當前矩陣的影響,所以把當前矩陣設定為單位矩陣。
glTranslatex(0, 0, -100 << 16 ); //將座標向z軸負方向移動100
glColor4f( 1.f, 0.f, 0.f, 1.f ); 設定顏色為紅色
glScalex( 15 << 16, 15 << 16, 15 << 16 ); // 將物體沿xyz者分別放大15倍
glDrawElements( GL_TRIANGLES, 1 * 3, GL_UNSIGNED_BYTE, indices ); //繪製圖形,GL_TRIANGLES說明要繪製的圖形是三角形,3表示一共有三個定點,GL_UNSIGNED_BYTE表示indices儲存的資料類型
void glTranslatef(GLfloat x, GLfloat y, GLfloat z)
void glTranslatex(GLfixed x, GLfixed y, GLfixed z)
功能:沿x、y、z平移
void glScalef(GLfloat x, GLfloat y, GLfloat z)void glScalex(GLfixed x, GLfixed y, GLfixed z)
功能:在x、y、z軸進行縮放,參數x、y、z為你想要的大小。
void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)void glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
功能:沿x、y、z軸進行旋轉。Angle表示將要旋轉的角度。
void glClear(GLbitfield mask)
功能:用mask清除緩衝可以有三種模式進行清除:GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, and GL_STENCIL_BUFFER_BIT.
void glClearDepthf(GLclampf depth)void glClearDepthx(GLclampx depth)
功能:設定深度緩衝,參數為0到1,使用glClear清除緩衝。3D情境OpenGL程式都使用深度緩衝。它的排序決定那個物體先畫。這樣您就不會將一個圓形後面的正方形畫到圓形上來。
void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) void glClearColorx(GLclampx red, GLclampx green, GLclampx blue,GLclampx alpha)
功能:用指定的顏色值(RGBA)清除顏色緩衝
void glColorPointer(GLint size, GLenum type, GLsizei stride,const GLvoid * pointer) 功能:指定顏色的儲存空間,size在OpenGL ES預設為4,表示(RGBA);type為pointer內容的類型;stride為資料在pointer記憶體中的位移量;pointer為第一個元素的地址。
void glEnableClientState(GLenum array)void glDisableClientState(GLenum array)
功能:啟用或者禁止array,array有:GL_COLOR_ARRAY, GL_MATRIX_INDEX_ARRAY_OES, GL_NORMAL_ARRAY, GL_POINT_SIZE_ARRAY_ARRAY_OES, GL_TEXTURE_COORD_ARRAY, GL_VERTEX_ARRAY, and GL_WEIGHT_ARRAY_OES。
void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices)
功能:按照參數給定的值繪製圖形,mode指定要繪製的類型:GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, and GL_TRIANGLES;count指定要繪製多少個;type指定indices為數組首地址
轉載CSDN:http://blog.csdn.net/yuyang840/archive/2009/11/18/4827426.aspx