1. 程式人生 > >OpenGL學習筆記(三)OpenGL繪製方式

OpenGL學習筆記(三)OpenGL繪製方式

(1)OpenGL圖元

    點:void glPointSize()

    線、條帶、迴圈線:void glLineWidth()

    三角形、條帶、扇面:

    將多邊形渲染為點集、輪廓或者實體:

   P68 正反面採用不同的方式繪製: glPolygonMode(GLenum face,GLenum mode )//face必須是GL_FRONT_AND_BACK

     mode可以有GL_POINT、GL_LINE、GL_FILL

    多邊形的反轉和裁剪:反轉:void glFrontFace(GLenum mode) 裁剪:void glCullFace(GLenum mode)

(2)OpenGL快取資料

    建立與分配快取:void glGenBuffers(GLSizei n,GLuint *buffers )

     向快取輸入和輸出資料     void glBufferData(GLenum target,GLsizeipter size,const GLvoid *data,GLenum usage)

    快取的部分初始化: void glBufferSubData(GLenum target,GLsizeipter offset,GLsizeipter size,const GLvoid *data)

    訪問快取的內容:void glMapBuffer(GLenum target,GLenum access)

(3)頂點規範

頂點陣列物件:包含資料的位置和佈局資訊

VertexAttribPointer(GLuint index,GLuint size,GLuint type,GLboolean normalized,GLsizei stride//偏移量,const GLvoid * pointer//第一個資料的地址)

延伸:整型頂點屬性:VertexAttribIPointe

         雙精度頂點屬性   VertexAttribLPointe    

        glEnableVertexAttributeArray()啟用對應的頂點屬性陣列

(4)OpenGL的繪製命令:

大部分的繪製都是以Draw這個詞開始的,分為索引方式和非索引方式

非索引方式:glDrawArrays(GLenum mode,GLint first,GLsizei count);

最基本的索引繪製命令就是glDrawElements(GLenum mode,GLsizei first,GLsizei count);