我正在学习如何制作镜头光晕应用程序。我已经找到了大部分基本组件,现在我正在转向更复杂的组件,例如glimmers / glints / spikeball,如下所示:http://wiki.nuaj.net/images/e/e1/OpticalFlaresLensObjects.png
或者这些:http://ak3.picdn.net/shutterstock/videos/1996229/preview/stock-footage-blue-flare-rotate.jpg
有些人建议创建从中心向外散发的粒子,同时渐渐消失并增加或减小尺寸但是我已经尝试了这个并且有太多的嵌套循环使得性能变得糟糕。
其他人建议从中心白色到半径黑色绘制圆形渐变,并使用一些算法使区域变亮和变暗,从而产生光线。
有没有人有任何想法?我真的坚持这个。
我正在使用类似于C的有限编译器,但我无法访问抗锯齿,预定义形状等。所有内容都必须手工编码。
非常感谢任何帮助!
答案 0 :(得分:0)
我会创建大圆圈选择,然后使用径向渐变。渐变的每一边都是白色的,但是一边有100%的alpha而另一边有0%。使用渐变工具在圆内绘制渐变后。取消选择它并使用变换工具倾斜或在某种意义上粉碎它。然后复制几次并转动每一个创建一个螺旋或圆圈,按住Ctrl键以在需要时进行约束。然后,一旦这些几层处于您想要的旋转或设计中。将它们分组到一个文件夹中,然后您可以使用另一个转换或倾斜进一步影响它们。当你使用这些真正的小时,它们就像小星星。但是在创建每个东西时可以做很多不同的事情来使它们不同。就像让每个人的不透明度低于最后一个... ...
答案 1 :(得分:0)
我找到了一些如何通过代码进行镜头眩光的例子。理想情况下,您希望以post-process
执行此操作 - 这意味着在完成常规渲染后,您将进一步处理图像。
片段着色器适用于此步骤。我找到的最简单的版本是this one。
的基本思路是你可以获得一系列的选择。
另一种更常见的替代方案似乎是
问题在于确定何时打开镜头眩光,因为它取决于相机是否可以看到/遮挡光线。 GPU Gems来拯救,有更好的选择。
列出了一个更严重的基于物理的实现in this paper。这是制作镜头光晕的实时版本,但您需要一个可以支持顶点和几何着色器的硬件。