预渲染的2D图形,可多次复用而无需重新计算 — 粒子系统、光晕、雨水的基础。
你需要渲染一个粒子模拟——成千上万的雨滴、火花、雪花。每一帧都重新计算会消耗你没有的计算时间。这时,精灵(Sprite)就派上用场了:一个预先渲染好的二维图形或短动画,你可以将其成千上万次地放置在帧中,而无需重新计算。一滴水、一道光束、一个烟雾粒子的一张单图——这就是你的精灵。你将其放置在三维空间中,缩放它,旋转它,改变它的透明度,引擎会处理其余的事情。
在实践中,它的工作方式是这样的:你提前生成你的精灵纹理——无论是通过摄影(真实的水滴、烟雾抠像)还是通过CG(单个元素的干净渲染)。你经常将多个变体打包到一个精灵表中,这样你的粒子就不会看起来都一样。一个雨滴精灵表可能包含十种不同的形状。引擎在渲染时会随机或按顺序选择,从而在没有真实几何复杂性的情况下创造变化。对于拥有数十万个粒子的爆炸来说,这是10分钟和2小时渲染时间之间的区别。
关键点:精灵仅在特定摄像机视角下效果最佳——它们总是面向观察者(billboarded),除非你特意需要它们作为平面元素。在极端的摄像机角度下,或者当精灵重叠时,可能会显得不自然。因此,精灵通常用于较小、快速的效果——光晕、辉光、烟雾——这些眼睛不会仔细关注的地方。对于大型、空间化的效果(浓密的烟雾体积、水花飞溅),你会混合多个精灵层,或者将它们与体积技术结合起来。
在合成器或VFX引擎(Houdini、Nuke)中,你会处理精灵序列——通常导出为带有Alpha通道的EXR序列。这让你对时间、混合和色彩校正拥有最大的控制权。一个构建良好的精灵系统不仅能节省你的渲染农场时间,还能加速艺术反馈循环:你可以快速调整参数,而无需重新渲染所有内容。这是真正的优势。