使用 Direct3D 9 () 纹理的光映射

要逼真地渲染 3D 场景,应用程序必须考虑光源对场景外观的影响。 虽然平面着色、高氏着色等技术在这方面是很有价值的工具,但它们可能仍不满足你的需求。 Direct3D 支持多纹理混合。 这些功能使你的应用程序能够渲染出比单单使用着色技术更逼真的场景。 通过应用一个或多个光照图,你的应用程序可以将光和阴影的区域映射到其基元。

光照图是包含关于 3D 场景中照明信息的纹理或纹理组。 你可以将光照信息存储在光照图的 Alpha 值或颜色值中,或同时存储在这两者之中。

如果使用多通道纹理混合实现光映射,你的应用程序应在第一遍渲染中将光照图渲染到其基元上。 它应使用第二遍渲染来渲染基本纹理。 高光映射是个例外。 在这种情况下,应先渲染基本纹理,然后再添加光照图。

多纹理混合使你的应用程序能够在一遍渲染中渲染光照图和基本纹理。 如果用户的硬件了提供多纹理混合功能,你的应用程序应在执行光映射时使用它。 这可显著提高应用程序的性能。

借助光照图,Direct3D 应用程序可以在渲染基元时实现各种照明效果。 它不仅能够映射场景中的单色光和彩色光,而且还可以添加反射高光和漫射照明等细节。

有关使用 Direct3D 纹理混合执行光映射的信息,请参阅以下主题。

纹理混合