SDD的2d灯光效果

时间:2010-10-20 13:47:09

标签: sdl

我想用SDL.NET(和c#)编写的2D赛车创造一个灯光效果。 精神之光效果很简单:汽车前灯(经典的圆锥形灯光效果)。 有人知道我在哪里可以通过SDL寻找一些轻量级管理的例子吗?或者也许告诉我如何解决这个问题? 感谢您的支持!


更新:实际上我已经用gimp创建了一个模拟光线的图像。 然后我将它加载到我的汽车精灵前面以模拟光线。 但我不喜欢这种方法......也许比运行时生成/模拟光更有效!

3 个答案:

答案 0 :(得分:2)

如果您需要逼真的照明模型,则必须更改为opengl或directx并使用像延迟照明这样的着色器。 This是xna的一个例子。

答案 1 :(得分:2)

如果你正在寻找纯粹的2D解决方案,你只需要将大灯精灵附加到你的汽车精灵上。这里没有“轻管理”。只是一个alpha混合的精灵。

为了改善效果,您可能想要实际创建和使用两个精灵:

  • 一个小的,针对圆锥形前灯效果
  • 一个更大,更大的光环,以增加大面积汽车前方的照明。

注意:如果您可以在SDL中创建具有正确形状的alpha混合基元,则可以在没有图像的情况下进行第二步。

答案 2 :(得分:1)

如何使用多个图像?

由于SDL没有着色器效果,我建议根据您想要的细节将圆锥形图像分成小部分,并与图像前面的对象进行碰撞检查,并仅绘制所需的部分。

这是一个黑客,但如果你将垂直和水平的“发光”图像分开,它看起来会很好。