OpenGL在非常基础的层面上工作的方式,直到您发出绘图调用,例如glDrawArrays
或glDrawElements
才会发生。大多数其他调用只是设置将由绘图调用使用的状态。状态的最重要部分是你已经看到的:
glVertexAttribArray
和相关调用用于指定用于绘制调用的顶点数据。
glUseProgram
,以及您在构建程序之前使用的所有调用,指定将为您的绘制调用运行哪些着色器。
一旦你建立了所有这个状态并发出一个绘图调用,就可以设置整个机器运动。如果您想了解关于此处发生的所有事情的详细信息,则应该可以使用搜索术语(如“OpenGL渲染管线”)或任何OpenGL书籍查找优质材料。大致来说主要步骤如下:
- 固定功能单元抓起根据您设置了
glVertexAttribArray
和相关呼叫状态的顶点数据,和饲料数据到顶点着色器。
- 您设置的顶点着色器会在其变量
attribute
中接收该顶点数据,并对其进行处理。
- 由顶点着色器生成的已处理顶点由固定功能单元进行光栅化,该固定功能单元决定需要渲染哪些像素。
- 那些像素(又名片段)被送入片段着色器。
- 您设置的片段着色器处理这些片段,并输出片段的颜色。
- 您的片段着色器生成的颜色被写入帧缓冲区。
还有比我在这里列出的更多,但我希望这可以帮助你了解基本知识。