2010-10-20 70 views
2

我想创建一个用SDL.NET(和c#)编写的2D赛车的灯光效果。心理光效果很简单:汽车头灯(经典圆锥光效)。 有人知道我可以通过SDL在哪里寻找light managemnt的一些示例?或者,也许告诉我如何解决这个问题? 感谢您的支持!2d SDL的灯光效果


更新:实际上,我已经创建了一个模拟光与瘸子的图像。 然后我加载它在我的汽车精灵前面模拟灯光。 但我不喜欢这种类型的方法......也许比光源的运行时生成/模拟更有效率!

回答

2

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

为了提高效果,你可能希望创建和使用两个精灵实际上是:

  • 一个小的,定向用于圆锥大灯效果
  • 一个更大,haloish,加大的前照明大面积的汽车。

注意:如果您可以在SDL中创建适当形状的alpha混合基元,则可以在没有图像的情况下执行第二个操作。

2

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

1

如何使用多个图像呢?

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

这是一种黑客攻击,但如果您在垂直和水平方向上划分“辉光”图像,它看起来都不错。