我正在XNA中构建游戏,但这个问题可能适用于大多数3D框架。
我的场景包含几个点光源。每个灯具有位置,强度,颜色和半径。它还包含几个可被点光源点亮的物体。
我已成功使用一个简单的前向渲染器来点亮这些物体,一次最多可点亮8个点光源。
但是,我还想尝试一些其他效果,例如点亮的物体,每个帧的光慢慢消失。
我想使用多通道方法:
然后,每个框架和每个对象:
我的问题与纹理坐标有关。光照贴图应使用与纹理贴图相同的UV贴图,以便在绘制对象时,颜色为:
tex2D(TextureSampler, uv) * tex2D(LightMapSampler, uv)
或者换句话说,我需要计算光照贴图像素着色器中光照贴图中每个像素的世界位置,以计算它与每个光线的距离。
实现这一目标需要哪些坐标变换?