最近,我一直在寻找在游戏世界的某些Y位置上产生体积雾的技术。但是我发现的全部是使用粒子系统或内置引擎雾产生的雾,这些雾并不能真正满足我的需求。
就我而言,我需要一种既高效又浓的雾。它应该遍及整个游戏世界,但是显然,出于性能方面的考虑,它只能作为相机或着色器的一部分进行渲染,尽管它只是一种幻觉,但看起来就像是在移动。如果可以的话,我可以设置一个粒子系统,将其安装到相机上并使其移动。
因此,主要问题仍然存在-如何实现既浓密又有效的体积雾?
作为我正在使用的特定引擎,它是Unity。
例如,我的意思是,这里是我想要的具有效果的游戏的链接:Astromike
这里有点GLSL技巧,但是如何根据您从顶点着色器中获取的Y坐标为片段着色器中的像素着色呢?
—
Quentin
您是否查看过Unity关于“深度特效”的演讲?虽然已有数年历史,但这些原则仍然适用。它们涵盖了基于高度的雾和“蓬松的雾”,它们在空的空间中聚集并在障碍物周围变薄,并且由于所有示例均为Unity,因此应易于应用。
—
DMGregory
@Quentin是的,好主意,尽管它将是每个对象的着色器,对吗?然后,将需要更改很多着色器。我也是着色器编程的新手,所以我可能写了些废话。但是据我所知,顶点着色器适用于对象。并且着色可能不会产生运动效果。我了解,如果我想移动,则内部移动的每个小东西都应该是一个对象,因此粒子系统可能是最好的方法。
—
坦率的月亮_Max_
@wondra是的,如果确实如此,这可能不是最佳方法,因为透明度会影响性能。
—
坦率的月亮_Max_
列表也不适合我们的问答格式,因为列表何时完整?多少个“不同情况”就足够了?我们以什么标准来判断“最佳”?通常,此格式最适合于明确重点的问题,并且您可以验证答案。因此,如果您觉得自己有一个适合自己需求的答案,那么最好编辑一下您的问题,以首先将其范围缩小为实际需要的内容,而不是让问题过于笼统,回答不完整。其他用户始终可以提出针对其他方面的其他问题,从而获得与他们的案件相关的更集中的答案
—
DMGregory