OpenGL在非常基礎的層面上工作的方式,直到您發出繪圖調用,例如glDrawArrays
或glDrawElements
纔會發生。大多數其他調用只是設置將由繪圖調用使用的狀態。狀態的最重要部分是你已經看到的:
glVertexAttribArray
和相關調用用於指定用於繪製調用的頂點數據。
glUseProgram
,以及您在構建程序之前使用的所有調用,指定將爲您的繪製調用運行哪些着色器。
一旦你建立了所有這個狀態併發出一個繪圖調用,就可以設置整個機器運動。如果您想了解關於此處發生的所有事情的詳細信息,則應該可以使用搜索術語(如「OpenGL渲染管線」)或任何OpenGL書籍查找優質材料。大致來說主要步驟如下:
- 固定功能單元抓起根據您設置了
glVertexAttribArray
和相關呼叫狀態的頂點數據,和飼料數據到頂點着色器。
- 您設置的頂點着色器會在其變量
attribute
中接收該頂點數據,並對其進行處理。
- 由頂點着色器生成的已處理頂點由固定功能單元進行光柵化,該固定功能單元決定需要渲染哪些像素。
- 那些像素(又名片段)被送入片段着色器。
- 您設置的片段着色器處理這些片段,並輸出片段的顏色。
- 您的片段着色器生成的顏色被寫入幀緩衝區。
還有比我在這裏列出的更多,但我希望這可以幫助你瞭解基本知識。