ref:
http://wiki.forum.nokia.com/
http://blog.jayway.com/
OpenGL 的繪圖步驟:
- 取得 display --- 就是 pc monitor,或是手機的 lcd panel.
- initialize EGL
- 選一個 config/mode
- create一個 context
- create一個 用來繪圖的 surface
- enable 剛剛create的 context
- Vertex ( Vertices) : 最小的基本繪圖單位,就是兩線交會的點。(point)
Vertex 在 OpenGL ES 中被用作描繪3D model 的元素,也被用來指定 camera , light 的位置。 - Edge : 連接兩個 Vertex 的直線
- Face : 由三個 Vertex 包成的三角形區域。
當要定義一個face 時,他的三個vertex 的順序是很重要的,vertex 順序被用來判定face 的正面和背面(右手定則?)。有時候,可以指定只 render 正面,好節省時間。
多邊型的每個面要被拆解成一個一個的三角型,然後把每個三角形的端點(vertex) 寫出來就可以。OpenGL ES 描繪的方式 (render primitive)
所以寫出來,會是一個array:{
-1.0f, 1.0f, 0.0f, // 0 Top Left
-1.0f, -1.0f, 0.0f, // 1 Bottom Left
1.0f, -1.0f, 0.0f, // 2 Bottom Right
1.0f, 1.0f, 0.0f // 3. Top Right
}
把 vortex 訂出來後,還需要一個資料,告訴OpenGL 哪幾點構成一個 triangle,這個資料叫 indices:{
0,1,2, // 第一個triangle 由 vertex 0.1.2 構成
0,2,3
};
剛剛 OpenGL ES 的 primitives 定義 "描述物體的基本元素",現在要講得是如何把這些 "描述" 畫出來。
- GL_POINTS : 只描出 定義的點
- GL_LINE_STRIP : 依順序描出點之間的線
- GL_LINE_LOOP : 和 GL_LINE_STRIP 一樣,但是再加一條 : 最後一點到第一點的線
- GL_LINES : 兩兩描出一線
- GL_TRIANGLES : 每三點描出一triangle
- GL_TRIANGLE_STRIP :有點難,就是每三點描出一triangle外,再包圍起來。
- GL_TRIANGLE_FAN : 一樣,有點難,每三點描出一 triangle外,再用扇形圍起來。
沒有留言:
張貼留言