1

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

有什么优点和缺点,每一种都适用于什么情况?

4

1 回答 1

1

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

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

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

于 2011-01-15T21:15:36.407 回答