2010-11-18 37 views
0

我期待在BlitzMax中创建一种发光线效果,就像星球大战lightsaber或laserbeam。不一定是实时的,但只适用于TImage对象,然后可能保存到PNG以供将来在动画中使用。我很高兴使用3D功能,但它将用于2D游戏。由于它将在黑色/空间背景下,我的策略是绘制一系列带有颜色和高透明度的白色模糊线条,最终使中心线条更模糊,更白。我想画的实际上是贝塞尔曲线。绘制曲线很容易,但我无法使用上述技术创建出色的激光/霓虹效果,因为它看起来非常分割。所以,我认为在渲染效果良好的情况下使用模糊效果/着色器会更好,这是一个1像素的贝塞尔曲线。BlitzMax - 为PNG文件生成2D霓虹灯发光线效果

我一直有这些问题是:

  • 应用的着色器的地方画线的屏幕只是一个特定区域。如果有一种方法可以对纹理画线,然后模糊纹理并保存PNG,那么听到这些信息会很棒。有一种方法可以做到这一点,但我还没有得到合适的元素。任何熟悉这个东西的人的帮助将不胜感激。
  • 仅使用2D调用可能更为有利,更易于理解和重复使用。
  • 这将是非常好的知道如何保存一个PNG,保留透明度/ alpha的东西。

p.s.我已经回顾了这篇文章(和其他人),让这些示例工作,甚至开发了我自己的5x5着色器。但是,这是3D和一个场景范围的东西,似乎并没有很好地转换到2D或只是某个区域。 http://www.blitzbasic.com/Community/posts.php?topic=85263

回答

0

好,好,我不知道BlitzMax,所以我不能进入执行方面的细节,而是给你一些指点:

  • 对于应用的着色器的特定部分只有图像,您可能需要使用多个渲染通道来组成场景。
  • 如果你有像素访问,做片段着色器做同样的事情,当然,可能在2D中使用“oldskool方式”,即。像getpixel/setpixel。但是,这样你的表现会差得多。
  • 如果你有一个完好无损的Alpha通道纹理,用Alpha通道保存PNG应该是Just Work(对不起,再次不知道如何在BlitzMax中专门做这件事)。只要确保你一直在使用RGBA模式。
+0

BlitzMax让你加载着色器,我有一个片段的工作示例,但我不清楚如何将着色器应用到屏幕的某个区域,或者更好地只应用一个图像。如果没有详细说明BlitzMax细节,可能太大了。感谢这些指针,我会在回到那个爱好项目后几天看到我能想出什么。 – zanlok 2010-11-30 21:02:32