渲染管道应用阶段“顶点数据”

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了渲染管道应用阶段“顶点数据”相关的知识,希望对你有一定的参考价值。

1. 定义

CPU用来为GPU后面的顶点着色器等阶段提供处理的数据,是渲染管线的数据主要来源。(在DirectX中在输入装配阶段(Input Assembler State)完成)

1.1 数据内容

  • 模型信息:顶点坐标、纹理坐标,顶点法线、UV、切线、顶点颜色、索引列表…
  • 变换矩阵:世界变换矩阵、VP矩阵(根据摄像机位置和fov等参数构建)
  • 灯光、材质参数:shader、材质参数、灯光信息

1.2 图元

顶点数据在流水线中以图元的方式进行处理,常见的图元有:点、线和三角面。

eg. 在OpenGL,对应点(GL_POINTS)、线(GL_LINES)、线条(GL_LINE_STRIP)、三角面(GL_TRIANGLES),使用glGenVertexArrays()、glGenBuffers()、glBindBuffer()、glBindVertexArray()、glVertexAttribPointer()等API从应用程序传入数据,并设置顶点对应的属性信息和内存布局。

1.2.1 举例

四边形的顶点数据包括了顶点坐标、顶点颜色和顶点的纹理坐标。

1.2.2 数据索引

对于一个具有几万个三角面的复杂模型,用三角形网格来近似表示物体,用指定的3个顶点来定义三角形。由于相邻三角形会存在顶点共用的情况,尤其在物体网格非常复杂的情况下,冗余数据会非常多。我们可以通过使用索引来避免共享顶点间数据的多余,也就是使用顶点缓存对象(Vertex Buffer Object,VBO)。

以上是关于渲染管道应用阶段“顶点数据”的主要内容,如果未能解决你的问题,请参考以下文章

渲染管道像素阶段“混合”

渲染管道几何阶段二“顶点着色器”

渲染管道几何阶段二“顶点着色器”

渲染管道像素阶段“深度测试”

渲染管道像素阶段“深度测试”

渲染管道整体流程