使用VertexPositionNormalTexture和VertexPositionTexture之间的区别

时间:2011-01-15 21:09:29

标签: c# xna vertex

在XNA中使用VertexPositionNormalTexture和VertexPositionTexture有什么区别?如果法线指向远离相机的位置,GPU是否会应用剔除,还是自动执行此操作?它只是发送给GPU的更多数据吗?

有哪些优点和缺点,以及每种情况适用于哪种情况?

1 个答案:

答案 0 :(得分:1)

优点是您可以将计算出的顶点法线传递到着色器,并且着色器可以在渲染中使用该信息,例如,您可以通过在每个三角形中插入法线并使用它来实现更接近曲面的更平滑的光照这个插值法线用于照明,而不是三角形的法线。

我想你可以使用这些信息进行剔除,但它通常不是用来剔除的。你不需要顶点法线来剔除,因为通常只需要通过计算三角形法线的方向而不是每个顶点就可以轻松完成。

当你说“GPU是否应用剔除......”时,请记住固定管道处理的日子已经过去了,GPU会按照着色器代码执行操作。在一天结束时,您可以将您想要的任何信息放入顶点流,并在着色器中使用您想要的信息,可能性是无穷无尽的。