阅读背景:

【图形学与游戏编程】开发笔记-入门篇3:图形绘制

来源:互联网 
上面的代码展示了在CPU上创建两个数组来存储一个几何体网格的顶点以及索引的方法,首先我们来看顶点,顶点是一个网格最主要的信息存储方式,我们不仅仅需要在这个数据结构里面存储每个点的位置,相应的一些别的属性,例如法向量,纹理坐标,切线等我们都需要存储在这个结构体里面。之前我们提过,整个图形学程序的基础是线性代数,也就是说我们的大部分变量不再是大家以前写C/C++/java这些语言的时候所用的int啊,float啊这些简单的变量,而是 换做float3啊,float4啊,matrix啊这些变量。至于原因大家也很容易看的出来,比如说这里我们要描述“坐标”这个概念,这个概念肯定是一个三维的变量,至少得三个float才能存的下来。注意我们这里顶点是用一个"pancy_point"结构体来存储的。这个结构是我自己定义的,大家也可以随便定义一个结构来描述一个点,只不过内部所用的变量都是一些XMFLOAT的directx内置向量类型而不是int啊float啊这些类型。当然啦,肯定有人会问难道我这里随便定义一个结构体,directx都能认得出来我定义的点吗?答案显然是肯定的,因为你这里定义的点,最终渲染的时候还是你自己用,其实directx是不管的,这个待会大家学完这一篇就知道了。然后我们来看索引,索引就很简单了,三个数字代表一个三角形,比如前三个0,1,2意思就是第0个点,第一个点,第二个点组成了一个三角形,这里的第几个点指的就是之前的那个顶点缓冲区的点。当然,索引是用于光栅化三角面的,这个类型固定的就是UINT,然后最终渲染的时候就不归大家管了,属于不可编程单元。这里我们提一下,依靠索引号来标识三角面并不是唯一的方法,像曲面细分就不依靠这种办法来标识三角面,当然啦,曲面细分的光栅化过程也属于不可编程的单元。这个我们回头再讲。上面的代码展示了在CPU上创建两个数组来存储一个几何体网格的顶点以及索引的方法,首先我们来看顶点,顶


你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: