在Direct3D 9中获得灯光的最佳方式是什么?

时间:2013-05-15 02:35:51

标签: directx directx-9 direct3d9

我使用的当前方法在有5个灯时将fps降至30。在AAA冠军中拥有灯光的最佳方式是什么?他们到处都有灯,但运行顺畅。我现在用的是

Device->LightEnable(LightIndex,TRUE);
Device->SetLight(LightIndex,&Light);

1 个答案:

答案 0 :(得分:0)

许多AAA游戏正在使用Deferred Shading进行轻量级计算。对于前向渲染器,它能够渲染许多对性能影响很小的灯(但是普通的使用性能比前向渲染器更多)。

使用前向渲染器,您必须迭代像素计算中的所有灯光,这一方面限制了您可以使用的灯光量,另一方面因为有限的着色器或着色器,因为像素着色器不应该太复杂。

使用延迟着色灯光在场景上进行后处理,灯光只是具有特殊像素着色器的几何体,必须连续渲染。