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

                                          OpenGL ES API 命名習慣

                                          OpenGL ES 是個跨平臺的 3D 圖形開發包規范,最常見的實現是采用C語言實現的,Android OpenGL ES 實現上是使用 Java 語言對底層的 C 接口進行了封裝,因此在 android.opengl javax.microedition.khronos.egl javax.microedition.khronos.opengles 包中定義的 OpenGL 相關的類和方法帶有很強的 C 語言色彩。

                                          • 定義的常量都以 GL_ 為前綴。比如 GL10.GL\_COLOR\_BUFFER\_BIT
                                          • OpenGL ES 指令以 gl 開頭 ,比如 gl.glClearColor
                                          • 某些 OpenGL 指令以 3f 或 4f 結尾,3 和 4 代表參數的個數,f 代表參數類型為浮點數,如 gl.glColor4f ,i,x 代表 int 如 gl.glColor4x
                                          • 對應以v結尾的 OpenGL ES 指令,代表參數類型為一個矢量(Vector) ,如 glTexEnvfv
                                          • 所有 8-bit 整數對應到 byte 類型,16-bit 對應到 short 類型,32-bit 整數(包括 GLFixed)對應到 int類型,而所有 32-bit 浮點數對應到 float 類型。
                                          • GL_TRUE,GL_FALSE 對應到 boolean類型
                                          • C 字符串((char*)) 對應到 Java 的 UTF-8 字符串。

                                          在前面 Android OpenGL ES 開發中的 Buffer 使用 說過 OpenGL ES 說過為了提高性能,通常將頂點,顏色等值存放在 java.nio 包中定義的 Buffer 類中。下表列出了 OpenGL ES 指令后綴,Java 類型,Java Buffer(java.nio) 類型的對照表

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

                                          如下面代碼將為頂點指定 color 值,使用 FloatBuffer 來存放頂點的 Color 數組

                                          // The colors mapped to the vertices.
                                          float[] colors = {
                                          1f, 0f, 0f, 1f, // vertex 0 red
                                          0f, 1f, 0f, 1f, // vertex 1 green
                                          0f, 0f, 1f, 1f, // vertex 2 blue
                                          1f, 0f, 1f, 1f, // vertex 3 magenta
                                          };  
                                          ...
                                          // float has 4 bytes, colors (RGBA) * 4 bytes
                                          ByteBuffer cbb
                                          = ByteBuffer.allocateDirect(colors.length * 4);
                                          cbb.order(ByteOrder.nativeOrder());
                                          colorBuffer = cbb.asFloatBuffer();
                                          colorBuffer.put(colors);
                                          colorBuffer.position(0);  
                                          人妻精品动漫h无码中字