在OpenGL ES 1.1中创建闪电

3
我需要使用OpenGL ES 1.1(iPhone)创建漂亮的闪电效果,计划使用着色器。但是,在之前的一个问题中问及此事(OpenGL ES 1.x Shaders),我被告知在iPhone上可能不是一个选项。
现在我回到了起点,想知道如何制作闪电动画。它不需要看起来超级逼真。我已经尝试过使用三角形拼接在一起等方法。虽然这种方法确实可行,但效果并不像我希望的那样好。
有人对此有什么想法吗?
谢谢, ~Eric

有些人指出这个问题有点含糊不清。我正在尝试创建一个闪电符号。 - EToreo
5个回答

4

尝试使用三角带纹理,渐变从黑色到低饱和度的蓝色或紫色,再到白色。将混合模式设置为添加(GL_SRC_ALPHA,GL_ONE)。


2
通常的方法是使用Perlin函数计算闪电路径,将其渲染到发光缓冲区,使用高斯模糊着色器创建漂亮的模糊效果,然后将其与您的场景合并。

2
你可以从这个项目中适应代码。虽然它不是ObjC/C,但它使用OpenGL。 这里有一篇文章更详细地描述了效果,并提供了VB/DirectX实现。

我看了这些例子,比第一个例子效果要好。从截图上看,第二个例子看起来很有前途,但是当我执行他们的代码时,效果非常糟糕。 - EToreo

0
也许我错过了什么,但使用glLight()和像其他人一样的固定功能有什么问题吗?

1
灯光通常被视为屏幕上的闪烁以及物体的明亮化。 - Andrew Grant
哦,我误读了闪电为照明。然而,仍不清楚您想要什么效果以及为什么认为它不能通过正常手段再现。也许需要一个视觉解释? - shoosh

0

要让它看起来像闪电,必须是非常明亮的光,而且你不需要把光照在或透过什么东西吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接