执行渲染

执行渲染所需

  • 完整的ShaderProgram
  • VAO
C
glUseProgram(ShaderProgramID); // 使用着色器
glBindVertexArray(VAO); // 绑定VAO

/* --- 绘制函数 --- */
// 法一:基于顶点绘制
glDrawArrays(GL_TRIANGLES, 0, sizeof(vertex_array));
// 法二:使用EBO绘制
glDrawElements(GL_TRIANGLES, sizeof(indices_array), GL_UNSIGNED_INT, 0);
/* -------------- */

glBindVertexArray(0); //解绑VAO
点击展开查看更多

绘制函数

glDrawArrays

根据顶点数组绘制图元

C
void glDrawArrays(
	GLenum mode,
	GLint first,
	GLsizei count
)
点击展开查看更多
  • 参数
    • mode —— 指定要绘制的图元类型,即如何将顶点连接成图形 ^a98dd8
      • GL_POINTS —— 每个顶点作为一个点绘制
      • GL_LINES —— 将每两个顶点作为一条线段,不连续
      • GL_LINE_STRIP —— 将顶点依次连接成折线
      • GL_LINE_LOOP —— 类似GL_LINE_STRIP,但最后的顶点会与最初的顶点相连形成闭环
      • GL_TRIANGLES —— 每三个顶点组成一个三角形
      • GL_TRIANGLE_STRIP —— 使用三角形带的方式绘制多个三角形
      • GL_TRIANGLE_FAN —— 使用扇形方式绘制多个三角形
      • ...
    • first —— 指定顶点数组的其实索引
    • count —— 指定要绘制的顶点数量
  • 无返回值

glDrawElements

根据索引数组来绘制图元

C
void glDrawElements(
    GLenum mode,
    GLsizei count,
    GLenum type,
    const void *indices
)
点击展开查看更多
  • 参数
    • mode —— 指定要绘制的图元类型,即如何将顶点连接成图形^a98dd8
    • count —— 索引数量
    • type —— 指定索引数据的类型,与传入索引的数据类型一致
      • GL_UNSIGNED_INTGL_UNSIGNED_SHORTGL_UNSIGNED_BYTE
    • indices —— 指向索引数组的指针;现代OpenGL一般使用EBO,该参数传NULL即可
  • 无返回值

版权声明

作者: Cheyne Xie

链接: https://chaim.eu.org/posts/372d8092/

许可证: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Please attribute the source, use non-commercially, and maintain the same license.

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键