17173 > 游戏资讯 > 官方公告 > 正文

《默特术士》周一随笔#61——多重纹理粒子

2026-08-18 09:21:18 神评论
17173 新闻导语

《默特术士》揭秘多重纹理粒子技巧,告别重复感,打造逼真烟雾特效!性能优化与视觉升级兼得,开发者亲授秘籍,点击查看如何用数学魔法让粒子更生动。

当我在动画学院学习时,我们常说一句话:“这足以骗过酒保吗?”图形学的一大特点是,你可以花上近乎无限的时间去精益求精,但总有一个时刻,你必须将你的艺术作品交付给观众。

不过在这一过程中,有时你会发现一种技巧,它能满足你不断推陈出新的本能需求,又不会让你陷入无底洞般的耗时陷阱。今天,我想分享我最喜欢的一种技巧:多重纹理粒子(Multi-Texture Particles)。



粒子之力
最简单的粒子,就是从某个位置不断重复发射同一张图像,并对它们进行一些处理。你可以给它们染色、缩放、旋转、设置生命周期等等。仅仅使用一张图像,你就能实现相当不错的效果。

然而,如果你想要更复杂的效果,又不希望玩家一眼就“看穿”那是同一张图,一种常见的技巧是渲染出一个序列,比如爆炸、火焰或烟雾,然后让粒子在生命周期内播放该序列。但问题在于,你(无论是有意还是无意)总能察觉到其中的规律,从而破坏幻觉。

说到底这只是游戏,谁会在意能不能看出规律呢?嗯,我在意。



烟雾与镜像
好了,让我们看一个实际的例子。下面是三个运动轨迹完全相同,但纹理处理技巧不同的系统。



第一个是简单的“烟团”图像,你可能在很多游戏中见过类似的效果。它看起来像烟,完全够用,但如果你仔细看,会发现同样的精灵图在反复出现,没什么特色。你看到的阴影完全是伪造的,只是在左上角画了一点高光,右下角画了一点阴影,没什么特别的。

第二个,我们将纹理处理得更有趣,让它有了个性,但现在这种重复感反而更明显了。因为你的眼睛可以捕捉到细节,甚至能追踪每一个图像的变化。同样,在紧急情况下它完全够用,毕竟这只是屏幕上的一个元素,但我们可以做得更好。

第三个……你几乎无法追踪单个粒子。如果你紧盯着看,或许能捕捉到片刻,但由于它内部包含了如此多的演变,云团甚至会在自身内部翻滚涌动。它看起来不再像是粒子,而更像是真实的烟雾。而且,它拥有更强的表现力。



秘诀是什么?
其实根本没什么秘诀。当我提到时,这种技术在功能上是完全一样的,只是大多数软件并不直接支持粒子的这种操作,你必须自己动手实现。

第一种:仅A;第二种:仅B;第三种:A * C1 * C2

只需取一张遮罩纹理(比如云团),然后获取第二张纹理并采样一两次,将它们全部相乘即可。我个人非常喜欢以不同比例对同一纹理进行两次采样,因为这种方法廉价且有效,当然你也可以采样两张不同的纹理相乘,效果会很棒。不过那些更适合主角特效,而不是辅助性的角色特效。

对于《默特术士》而言,这种方法有一个非常重要的意义——我们非常看重性能,并且需要确保这个方案具有扩展性。幸运的是,我们也有很棒的工具——纹理图集(Texture Atlases)和纹理数组(Texture Arrays)让我们能将所有的遮罩和可滚动纹理放在一张图上。

现在,每个粒子只需要几个整数来选择它的纹理。这意味着大量的特效可以共享相同的材质和纹理,通过数学魔法,将原本可能需要数百次的绘制调用减少到寥寥几次。

太棒了。



说到数学
上一次随笔讨论的是粒子如何在传送门内外有条件地绘制,但解决方案是什么呢?事实证明,还是数学!

我之前一直把它当作一个渲染问题来处理,但答案其实就在眼前。每个传送门的可见切片由玩家位置和传送门边界的两侧定义,我们已经利用这些数学运算来绘制传送门边界了。所以,与其试图让 VFX Graph 理解模板(stencil),不如让粒子直接询问同样的问题:我在这个切片内吗?

由于 VFX Graph 已经在 GPU 上运行,相比于传递遮罩纹理或引入另一个摄像机等更沉重的方案,每个粒子增加几个点积检查是微不足道的。我们只是在到处重用同一个等式。

超级简洁,超级快速,超级可重用。



保持乐趣
我想我今天的核心感悟是:这种多重纹理粒子技术并不会决定《默特术士》的成败,但它是我真正感到兴奋并乐于钻研的东西。它不仅会为游戏打上我的个人印记,而且每次看到它,我都会会心一笑。仅凭这一点,它就值得去做。有时你只需要骗过酒保,但有时,你也需要允许自己做一些仅仅是为了取悦自己的事情。

粒子在召唤我!回到实验室去了,
~CyanAvatar 🌿
【来源:steam】
我想了解这个游戏:
官网 专区 下载 礼包
关于默特术士,多重纹理粒子,粒子系统,纹理图集,纹理数组,VFX Graph,GPU,性能优化,传送门,遮罩纹理的新闻