QOpenGL中的幾個類

QOpenGLBuffer類

在使用前,構造函數處可指定Buffer類型。默認爲VertexBuffer。

在使用之前先要create(),之後bind到當前的OpenGL context上。

使用allocate()分配存儲空間,同時可以用某個數據來初始化分配的空間。

QOpenGLShader類

可以在構造函數的地方選擇shader的類型。

一個程序包含兩個shader,包括vertex shader(頂點着色)和fragment shader(片段着色)。兩個shader都可以通過聲明一個uniform的變量來接受應用程序傳遞過來的自定義的參數。Vertex shader可以通過attribute屬性的變量來得到和每個頂點關聯的信息。從vertex shader傳遞到fragment shader的信息則通過varying屬性指定的變量,varying屬性的變量在一對vertex shader和fragment shader之間的定義必須匹配(注:即在vertex shader定義了一個,則在fragment shader裏也必須有一個)。處在vertex shader和fragment shader之間的固定功能管道將對varying變量進行插值。當一個fragment shader讀取一個 varying變量的時候,它得到的值是已經插值過的。

QOpenGLShaderProgram類

可以直接從文件、源碼之類的添加Shader,也可以使用addShader添加現有的Shader。

需要調用link()將添加到這個program的shader連接起來。之後調用bind()使該program成爲當前唯一綁定到OpenGL Context上的,其它program被釋放(release)掉。

之後使用enableAttributeArray來激活相應的頂點屬性數組。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章