2011-07-06 227 views
1

我有一個問題 - 我正在學習這個tutorial的OpenGL ES 2.0,並且在這個網站上移動,我用自旋多邊形創建了很好的應用程序。 我發現另一個guide他使用頂點着色器。它們之間有什麼區別。我還能用着色器做什麼?頂點着色器與頂點

回答

6

區別在於第一個教程使用OpenGL ES 1.1,第二個教程使用OpenGL ES 2.0。 1.1使用固定功能流水線來完成所有渲染,而2.0只使用着色器。

所有這些矩陣函數? glLoadIdentity,glFrustum,glRotate?他們在2.0中消失了。而是編寫一個在GPU上執行的程序(着色器)。負責轉換頂點位置的着色器被稱爲「頂點着色器」。

所以頂點着色器用一個更靈活的,用戶驅動的計算系統代替了所有的自動矩陣變換。

0

根據我對它的理解,頂點是渲染3D物體上的點的表示,而頂點着色器是在渲染之前臨時修改頂點的方法。頂點着色器運行在你的顯卡上(gpu),所以你可以並行執行許多動作(例如,在場景中的所有頂點上執行相同的功能) - 這會消耗你CPU的很多負擔。

1

簡而言之,OpenGL ES 1.1(更容易)進入,而OpenGL ES 2.0更靈活,可能要快得多。有些東西在1.1中是無法做到的。

OpenGL ES 1.1和2.0完全互不兼容,所以選擇明智。

有很多材料可以學習1.1而不是2.0。

+0

我不同意ES 1.1更容易進入。很多人都在談論固定功能流水線如何更容易使用,但我沒有看到它。在屏幕上扔東西肯定比較容易,但在屏幕上扔東西並不是圖形程序員的功能。圖形程序員必須在屏幕上拋出一個特殊的東西。着色器是將你在屏幕上顯示的內容最簡單的方法。 –

+0

也許我有偏見,因爲我在學習着色器之前學習了固定功能。無論如何,對於OP:如果您有開發人員帳戶,請查看iOS 5測試版。我還沒有嘗試過這個特定的框架,但我聽說現在有一種叫做'GLKit'的東西,或者很明顯簡化了設置(在iOS上這可能相當麻煩 - 即使你不喜歡GLES2,透視投影也不容易真的不知道你在做什麼)。顯然儀器現在也有更好的OpenGL調試工具。 – fzwo