大部分圖形系統(tǒng)都可以比作工廠中的裝配線(Assemble line)或者稱為管道(Pipeline)。前一道的輸出作為下道工序的輸入。主 CPU 發(fā)出一個(gè)繪圖指令,然后可能由硬件部件完成坐標(biāo)變換,裁剪,添加顏色或是材質(zhì),最后在屏幕上顯示出來(lái)。
OpenGL ES 1.x 的工序是固定的,稱為 Fix-Function Pipeline,可以想象一個(gè)帶有很多控制開(kāi)關(guān)的機(jī)器,盡管加工的工序是固定的,但是可以通過(guò)打開(kāi)或關(guān)閉開(kāi)關(guān)來(lái)設(shè)置參數(shù)或者打開(kāi)關(guān)閉某些功能。
OpenGL ES 2.0 允許提供編程來(lái)控制一些重要的工序,一些“繁瑣”的工序比如柵格化等仍然是固定的。
下圖顯示了 OpenGL ES 1.x 固定管道的結(jié)構(gòu)圖:
http://wiki.jikexueyuan.com/project/opengl-es-guide/images/42.png" alt="" />
以上管道中工序可以通過(guò)設(shè)置來(lái)打開(kāi)或關(guān)閉某些功能(比如無(wú)需霧化 Fog 處理),并可以為某個(gè)工序設(shè)置參數(shù),比如設(shè)置 Vertext Array。
本教程主要介紹 OpenGL ES 1.1 編程,支持 OpenGL ES 2.0 的設(shè)備一般會(huì)同時(shí)支持 OpenGL ES 1.1。