先來提一下OpenGL的基本操作方式
前面也提到過, OpenGL是一個類C的語言,
因此使用C/C++的攻城獅們應該會感到很熟悉.
OpenGL的基本動作循環如下:
每一行code的解釋如下:
// 本地變數, 用來獲取操作物件的索引值(index) int object; // 向OpenGL獲取對應的index, 數量numbers可以自己指定, 需要跟你傳進來的object指針匹配 // 由於此時帶進來的object只有一個int, 因此這邊number會填1 glGenXXXObject(OBJECT_NUMBERS, &object); // 綁定該index到操作物件上, 操作物件的類型都是OpenGL定義好的, 需要依照使用來選擇 glBindBXXXObject(SOME_OPENGL_DEFINED_TARGET, object); // 將資料傳送對應的操作物件上面 glBufferData(SOME_OPENGL_DEFINED_TARGET, sizeof(YOUR_DATA), YOUR_DATA, object); // 解綁操作物件 glBindBXXXObject(SOME_OPENGL_DEFINED_TARGET, 0); // 釋放操作物件 glDeleteXXXOject(OBJECT_NUMBERS, &object);
從上述的流程我們也可以看出:
真正負責管理物件的人是OpenGL
我們從CPU端可以做的事情是向OpenGL索取操作物件的index,
在CPU操作的時候都需要透過這個index來進行.
有了這個基本概念以後,
我們接著開始介紹繪製圖形必要的兩個著色器 (Shader)
只要使用這兩個著色器就可以畫出圖形了~