我正在开发一款基本上是快速变化的2D场景的游戏,其中一些点光源(每种都可以有自己的颜色)放置在屏幕上,也可以继续前进每个框架都有自己的。
首先让我先介绍一下今天早些时候在纸上写下的一些情况:
最终产品应该如图4所示。我的问题归结为: 您会选择哪种实施方式,以及为什么会这样做。
我目前的做法是拥有光线所在的纹理和不存在光线的纹理。这将在每个帧的开始处呈现,但仅在下一帧上使用。所以Light总是会让1帧落后,这可能看起来很好看。在正常渲染对象(例如蓝色矩形)期间,我将在片段着色器中查找光纹理,并将该值与对象组合。
但是,我看到了以下缺点:
我看到的最大优势是这只是2D,所以它并不需要知道任何阴影或其他东西。
随意发布任何建议,我很乐意阅读并测试它们。不要浪费任何不必要的表现。
答案 0 :(得分:1)
在这里,我可能会过度简化您的问题。如果我这样做,抱歉。
当你谈到照明和2D精灵时,我总是想到一个过度杀伤力。一个巨大的锤子(在实施时间和渲染时间上花费你的成本)是一个非常小的钉子。
有很多方法可以非常便宜和有效的方式模拟照明。
一个典型的例子是绘制一个带有alpha的位图,模拟效果的光点,从而创造出一种非常好的假照明"假照明"在等距游戏。有(或者更好的是)有很多商业游戏使用这个技巧。
如果假设您可以使用这样的解决方案,您可以在解决方案的平价上获得出色的性能,因为这种效果比任何其他照明计算便宜得多。
我希望能以某种方式提供帮助。
干杯 毛里齐奥