[OpenGL ES] 入門

雖然我寫入門,但那是我自己要入門的意思,可能本篇文章不會有什麼很有價值的東西,但作為一個記錄,請大家忍一下。

OpenGL ES是用於攜帶式設備上的3D動畫設計用的API(application programming interface),比起OpenGL,這是比較簡單的版本,畢竟手機的硬體效能又不高,怎麼可能大費周章去寫OpenGL呢。

在開始之前先聲明,這裡面當然不乏看書後理解的部分,那由於我本身對OpenGL並無任何瞭解,所以某些描述當然是不完整的, 比方說書上會有一些單字,可能無法立刻捕捉到它的意思,所以不可能適意的翻出來,那可能我就會省略,我不知道這對於正確性的影響會有多少,但是萬一,如果你也遇到這樣的困擾,而跑到這邊來看敝人寫的這些文章,那請抱持著懷疑的態度,敝人沒說沒寫的,或是寫出來的,可能也是有理解錯誤,歡迎留言提問。

Vertex Shader

Vertex shader是用來實作操作Vertex的方法的。它的input有:
Attributes:使用Vertex array提供per-vertex data。
Uniforms:vertex shader使用的常數數據(constant data)。
Samples:Vertex Shader所使用特殊的uniforms,表示材質(texture)。
Shader Program:Vertex Shader源程式碼,或是描述運行於vertex的操作的可執行文件。

Vertex Shader的輸出叫做varying variables。早期的rasterization(轉換成可顯示在螢幕上的像素)步驟,為每一個產生的fragment計算varying values,並且將varying values作為輸入傳遞到fragment shader。用於從賦值到原始值的每個vertex上的varying values去產生每個fragment的varying values的機制叫做內插法(interpolation)。

vertex shader用於傳統的vertex-based操作,像是用矩陣去轉換位置、計算lighting公式去產生一個per-vertex顏色,並且產生或轉換材質座標。另外,因為vertex shader被應用程式指定,vertex shader可用於做客制化的vertex轉換。


留言