【发布时间】:2011-05-06 08:28:48
【问题描述】:
包括法线凹凸贴图、视差贴图等在内的许多贴图技术都需要特殊的每顶点切线空间基础(切线、法线、副法线/双切线)。
这显然意味着我的模型不仅应该导出顶点位置、纹理坐标和近似的每个顶点法线,还应该导出以下之一切线空间基向量(通常是tangent),因为另一个可以使用cross(tangent, normal)直接在着色器中找到。
请注意,位置、法线、uv 和切线实际上以下列方式相互依赖(您必须了解有关顶点的所有其他信息才能准备切线基础)。
position -> normal -> tangents
uv ->
现在 - 现代 3D 游戏/渲染引擎如何处理这类事情?
它们是否真的提供每个顶点的法线、切线和uv坐标,或者它们是否可以在运行时以某种方式计算?它们应该是模型数据的一部分还是应该是仅运行时的属性?
我也知道,当使用Direct3D10+ 使用几何着色器时,实际上可以在运行时准备法线和切线(显然,因为我们可以访问每个三角形中的顶点) - 值得吗还是应该始终预先计算?
【问题讨论】: