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);