当有 5 个灯时,我使用的当前方法将 fps 降至 30。在 AAA 游戏中拥有灯光的最佳方式是什么。他们到处都有灯,但运行平稳。我现在用的是
Device->LightEnable(LightIndex,TRUE);
Device->SetLight(LightIndex,&Light);
许多 AAA 游戏使用延迟着色进行光照计算。与前向渲染器相比,它能够渲染许多灯光而对性能影响很小(但是普通使用比前向渲染器更消耗性能)。
使用前向渲染器,您必须遍历像素计算中的所有灯光,这限制了您可以使用的灯光数量,一方面是因为有限的着色指令或着色器常量,另一方面是因为像素着色器不应该太复杂。
使用 Deferred Shading,光照在场景上进行后处理,光照只是具有特殊像素着色器的几何体,必须连续渲染。