如何统一创建良好的发光效果?

注意:最初提出这个问题是为了使图形着色器和菲涅耳效果与多维数据集一起使用,但是,我只想要发光效果,我认为图形着色器是最好的解决方案。 对我来说,不是,我留下了对我有用的链接(产生光晕效果)。如果您像以前那样使用图形着色器,请使用 @Kalle Halvarsson ,因为这是一个很好的答案。谢谢,加油!

我一直在关注Brackey关于图形着色器的教程(这样我才能产生发光效果); https://www.youtube.com/watch?v=Ar9eIn4z6XE&t=604s,并遇到了一个问题,即发光不会从相机角度的前面影响立方体。

这是一张屏幕截图(我在视频中链接到的时间戳使用与他相同的着色器):

如何统一创建良好的发光效果?

我尝试环顾四周,但似乎并没有太多。如此简单,是否有一种方法可以使图形着色器对尖锐对象具有更好的效果?

要做到这一点,我们需要以某种方式使菲涅耳效果与前角更兼容,因为它是用于反射的,而不是辉光的前部。 https://docs.unity3d.com/Manual/StandardShaderFresnel.html。或者,也许我有其他选择,我真的只需要2D,所以我不知道。

我不想为MK Glow之类的东西付钱。感谢您的帮助,欢呼!

dagula6 回答:如何统一创建良好的发光效果?

我可以想到两种方法:

或者,您可以烘焙带有平滑角的对象的法线贴图。为此,可以在3D工具(如Blender)中使用常规的“斜面/倒角”修改器(具有边角限制),然后从斜面网格烘焙到非斜面的(tutorial)。然后,将法线贴图采样到世界空间法线中,并使用该法线贴图代替菲涅尔效果的顶点法线。这是为这些对象获得真正的菲涅耳效果的唯一方法。当然,这样做的缺点是您必须为要向其添加发光效果的所有模型创建这些贴图,并且它们将需要具有UV。

另一种选择是使用Sobel或Robert's Cross post效果进行边缘检测。 GitHub上有多种开源解决方案,例如thisthis。采样距离越大,边缘越柔和。这些必须移植到后期处理堆栈中,但是,有关于如何编写自定义效果here的说明。 This解决方案似乎已经被移植。这种方法的缺点是很难仅将效果仅隔离到某些对象-为此,您可能必须使用双摄像头或渲染纹理方法。

,

我将留下指向可解决所有发光问题的视频的链接,它根本不使用着色器图。

https://www.youtube.com/watch?v=5B-JoycbeSg 希望这对某人有帮助!

本文链接:https://www.f2er.com/3110027.html

大家都在问