Unity中网格是如何绘制的(二)

Keep And Accept Change

Posted by 打个大西瓜 on September 3, 2022 22:12:22

上文 Unity中网格是如何绘制的(一) 讲了绘制网格的基础知识,并绘制了一个三角形面,这次绘制一个矩形面片,如图:

矩形面片

矩形面片需要两个三角面,每个面有三个顶点数据,所以理论上需要6个顶点才行,但是,顶点是可以共用的,不过,共用顶点是有限制的,这是因为Unity中不仅依靠这个三角面的索引数组索引三角面的顶点坐标,还需要索引纹理坐标、索引法线向量(图中蓝色的线),这里的顶点0和顶点2之所以能共用是因为他们在组成两个三角面在同一个平面上,所以法线向量相同,uv纹理坐标也相同。

现在让两个三角面不在一个平面上,看看效果

矩形面片

因为共用了顶点,所以只有4条法线

那么不共用顶点会是什么效果

矩形面片

这里可以看到6条法线,因为没有共用顶点,有6个顶点,三角面交界处的效果明显不一样,因为法线不一样,法线不光是指明了三角面的方向,还有个很重要的作用是计算光照

这个例子可能感受没那么明显,可以试着画一个立方体看看