在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 繪制三角形 Triangle
繪制線段 Line Segment
投影變換 Projection
繪制迷你太陽系
繪制一個球體
繪制三角形 Triangle
OpenGL 光照模型
三維坐標(biāo)系及坐標(biāo)變換初步
定義 3D 模型的前面和后面
繪制一個 20 面體
顏色 Color
Depth Buffer
材質(zhì)及光照示例
基本幾何圖形定義
關(guān)于EGL
導(dǎo)言
Viewing 和 Modeling(MODELVIEW) 變換
FrameBuffer
設(shè)置光照效果 Set Lighting
Viewport 變換
階段小結(jié)
繪制點(diǎn) Point
OpenGL ES API 命名習(xí)慣
通用的矩陣變換指令
關(guān)于 OpenGL ES
創(chuàng)建實例應(yīng)用 OpenGLDemos 程序框架
OpenGL ES 管道(Pipeline)
GLSurfaceView

繪制三角形 Triangle

三角形為 OpenGL ES 支持的面,同樣創(chuàng)建一個 DrawTriangle Activity,定義 6 個頂點(diǎn)使用三種不同模式來繪制三角形:

float vertexArray[] = {
 -0.8f, -0.4f * 1.732f, 0.0f,
 0.0f, -0.4f * 1.732f, 0.0f,
 -0.4f, 0.4f * 1.732f, 0.0f,
 0.0f, -0.0f * 1.732f, 0.0f,
 0.8f, -0.0f * 1.732f, 0.0f,
 0.4f, 0.4f * 1.732f, 0.0f,
};  

本例繪制

public void DrawScene(GL10 gl) {
 super.DrawScene(gl);
 ByteBuffer vbb
 = ByteBuffer.allocateDirect(vertexArray.length*4);
 vbb.order(ByteOrder.nativeOrder());
 FloatBuffer vertex = vbb.asFloatBuffer();
 vertex.put(vertexArray);
 vertex.position(0);
 gl.glLoadIdentity();
 gl.glTranslatef(0, 0, -4);
 gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
 gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertex);
 index++;
 index%=10;
 switch(index){
 case 0:
 case 1:
 case 2:
 gl.glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
 gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 6);
 break;
 case 3:
 case 4:
 case 5:
 gl.glColor4f(0.0f, 1.0f, 0.0f, 1.0f);
 gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 6);
 break;
 case 6:
 case 7:
 case 8:
 case 9:
 gl.glColor4f(0.0f, 0.0f, 1.0f, 1.0f);
 gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, 6);
 break;
 }
 gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}  

這里 index 的目的是為了延遲一下顯示(更好的做法是使用固定時間間隔)。前面說過 GLSurfaceView 的渲染模式有兩種,一種是連續(xù)不斷的更新屏幕,另一種為 on-demand ,只有在調(diào)用 requestRender() 在更新屏幕。 缺省為 RENDERMODE_CONTINUOUSLY 持續(xù)刷新屏幕。

OpenGLDemos 使用的是缺省的 RENDERMODE_CONTINUOUSLY 持續(xù)刷新屏幕 ,因此 Activity 的 drawScene 會不斷的執(zhí)行。本例中屏幕上順序以紅,綠,藍(lán)色顯示 TRIANGLES, TRIANGLE_STRIP,TRIANGLE_FAN。

http://wiki.jikexueyuan.com/project/opengl-es-guide/images/58.png" alt="" />