【问题标题】:2d Light effect with SDL使用 SDL 的 2d 灯光效果
【发布时间】:2011-04-28 01:41:46
【问题描述】:

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


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

【问题讨论】:

    标签: sdl


    【解决方案1】:

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

    为了提高效果,您可能需要实际创建并使用两个精灵:

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

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

    【讨论】:

      【解决方案2】:

      改用多张图片怎么样?

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

      这是一个 hack,但如果你将“发光”图像垂直和水平分开,它会看起来不错。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-02
          • 1970-01-01
          • 2020-07-10
          • 2013-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-03
          相关资源
          最近更新 更多