在这篇 Phoenix 指南的下集中,专家 Cory Holm 深入剖析如何控制着色和调控模拟结果。
是时候深入了解 Chaos Phoenix 的引擎了。在本系列的上集,我们介绍了 Phoenix 的基本运作原理。说明如何使用其功能和设置来创建流体模拟,使其看起来和实际情况一样,不管是高级葡萄酒倒到酒杯里或是海面的惊滔骇浪。我们还将向你展示可用来控制和塑造模拟的参数,给你终极的控制力。
网格通道及其范围
当 Phoenix 进行模拟时,网格通道会写入至每个缓存文件,代表该帧的模拟流体的属性。技术上来说,网格通道是模拟网格中每个 Voxel 所包含的数值,如烟雾、温度、液体、速度、RGB 颜色等等。
根据要模拟的内容,您可基于需求选择哪些网格通道要输出至缓存文件。例如,要模拟彩色烟雾,你要导出RGB网格通道,这样你的每个 Smoke Source 发出的不同颜色的烟雾都会有其 RGB 颜色信息储存在该模拟的快取中。
Phoenix 的网格通道也有不同的范围,这取决于网格通道的类型。当你在渲染中使用通道设定材质,或者在模拟过程中使用通道进行遮蔽时,最好了解网格通道的最小值和最大值范围。
例如,Phoenix Smoke 通常是从0~1。同时,温度通道的单位是 Kelvin,通常从 300K-2000K,或高达几千 Kelvin。
数值 300 意味着烟雾既不会上升也不会下降。高于 300 的值会上升,倘若你想模拟向下流动的干冰,可将温度降低到 300 以下,最低至 0。
您可在 Chaos 的在线帮助文档中找到更多关于其他网格通道范围的信息。
粒子、粒子通道和范围
Phoenix 还可模拟粒子系统。对于火焰烟雾的模拟,Phoenix 可模拟 Drag 粒子。对于液体模拟,Phoenix 可模拟液体粒子,以及二级粒子,如泡沫、水花、雾气和 Wetmap 粒子。
有了次级粒子,您可制作出各种不同的液体场景。每种粒子类型都有自己的生命周期,决定粒子何时以及如何诞生与消亡。此外,您可根据场景来控制你需要模拟哪些粒子。例如,海滩场景可使用所有次级粒子类型来实现效果,而模拟葡萄酒倒入酒杯的场景可能只使用液体粒子,根本不需要任何次级粒子。
不同的粒子类型可用来创造各种不同的场景,从大波浪所需的水花与泡沫,到船只的尾流,或从瀑布散发的雾气等等。通过在模拟器中设置条件,可根据流体的属性和模拟过程中的行为,自动产生泡沫、水花和雾气粒子。
你也可使用流体发射源来发射粒子,比如用于创建 Drag 粒子的 Fire / Smoke Source,或者使用 Liquid Source 来创建液体、泡沫、水花和雾气粒子,以及使用Script来产生。
注意,与液体粒子的着色不同,你必须使用 Phoenix Particle Shader 来渲染任何类型的二级粒子。二级粒子不能使用标准的材质来设定着色。
如同网格通道一样,粒子系统也包含不同的粒子通道或每颗粒子的流体属性。有不同类型的粒子信道,如位置、大小、年龄、ID、速度等等。当用 Phoenix 进行模拟时,您可基于需求,选择哪些通道写入缓存文件。
再次强调,Phoenix 的粒子通道也有不同的数值范围,这取决于粒子通道的类型。了解粒子通道类型所具有的最小和最大的范围对您会有帮助。
您可在 Chaos 的在线帮助文件中找到关于粒子通道范围的详细信息。
Particle Shader
正如前面提到的,Phoenix 也有 Particle Shader,用于对二级粒子设定材质,如水花与泡沫。与传统的材质相比,Particle Shader 已优化让渲染速度非常快,同时仍然能够实现大量粒子的效果。
Particle Shader 提供了多种着色模式,其中任何模式都可用来处理不同的粒子类型。例如,Particle Shader 可将粒子绘制成点,各种不同的气泡,甚至可使用 Fog 模式将粒子 Voxel 化为网格,使你能用体积材质渲染粒子。
还有三种不同的气泡模式供您挑选,目的在于满足不同的场景。Bubbles, Cellular, 与 Splash。例如,您可使用 Cellular 模式来渲染类似多面体的细胞,细胞看起来与真实的泡沫非常相似,这样你就可对泡沫设定着色,在进行特写时,泡沫会看起来非常逼真。
请注意,不同着色模式都是针对特定的粒子类型而设计的。例如,Splashes 材质模式通常用于设定 Splash 粒子的着色。然而,Phoenix 也提供了灵活性,可使用任何模式来着色任何次级粒子类型,这样你就可实现各种各样的效果。
由于 Particle Shader 是独立的节点,您可使用不同设置的多个 Particle Shader,以便在同一模拟中对多个粒子系统设定材质。Particle Shader 还可对非 Phoenix 粒子系统套用材质,以便在 Maya 中渲染来自 3ds Max 的 Particle Flow、tyFlow、thinking Particles 和 nParticles 的粒子。
力场与纹理
Chaos Phoenix 还提供您强大的 Phoenix Textures 和 Phoenix 力场,可用来增强并进一步调控模拟,以创建更进阶的场景。
力场
力场可用来改变模拟的流体行为--例如,使烟雾显得更加紊乱,或沿着预定义的路径流动。Phoenix 有许多可影响模拟的力场,并支持使用原生的 3ds Max 和 Maya 力场,包括重要的力场,如涡流、风力和阻力。
有五种 Phoenix 力场可用于创建更复杂的模拟行为。这五种力是 Plain Force、Body Force、Follow Path、Wave force 和 Turbulence。
Plain Force 将流体推向指定的方向,可模拟风力或重力。而 Body Force 产生力场,将流体拉向或推离几何物体。
Follow Path 是另一种推动流体的力场,但会沿着 splines 推动的。这个力场可用来使烟雾或液体粒子沿着 splines 的路径移动,例如,使流体沿着环绕于几何体周围的 splines 上移动。
同时,Wave force 在液体模拟器内产生真实模拟的波浪,主要用于模拟海浪。这是您用 PhoenixOcean Texture 渲染时产生置换的另一种产生海浪效果的方法。还有 Massive Wave Force 的选项,这个功能让对 Wave Force 产生的波浪进行更多控制,拿来创造大波浪很有用。
最后,Turbulence 的功能是浅显易懂的,它会增加类似于碎形噪声的运动。例如,Turbulence 可把大而光滑的烟团分解成更混乱、更狂热、更随机的流体。
纹理
同时,Phoenix 提供了几种用于模拟与渲染的纹理,这能拿来创造更进阶的模拟效果。
Phoenix Grid Texture 从模拟器的网格通道数据中生成程序性纹理,用于对模拟设定材质。这种纹理的常见应用是为输出了 RGB 网格通道的模拟液体的网格进行着色。你也可把 Phoenix Grid Texture 用作混合遮罩,这个纹理可用来读取模拟器的 RGB 颜色,然后可用在两种不同材质之间的混合。
而 Ocean Texture 是无限的、不重复的程序性纹理,用于表现真实的海洋。Ocean Texture 在渲染时产生置换的水面能增加波浪细节,并且可轻易地创建无限的海洋网格。
但是,如果你想实际模拟海浪与几何体的交互作用,并非简单地作为非交互式的渲染时产生的置换,你也可将 Ocean Texture 插入 Wave force,根据你在 Ocean Texture 中的设置来驱动模拟海浪。
Phoenix Foam Texture 设计成可与 Ocean Texture 协同使用,以创造在海浪的波峰上形成泡沫的效果。由于泡沫纹理是在渲染时产生的,所以速度相当快,当你不想模拟实际的泡沫粒子时,这个纹理就能派上用场,因为模拟泡沫粒子是很费时间的,尤其是对于大型场景。
最后是 Particle Texture,它是三维纹理,与 Phoenix Grid Texture 类似,都是读取数据,但 Particle Texture 是专门读取粒子通道的。这个纹理可根据粒子的年龄或速度对其颜色设定材质,这样你就可根据粒子通道的行为来改变粒子的颜色。
Particle Texture 也常用于读取 Wetmap 粒子来模拟湿润的表面。WetMap粒子是在液体和场景几何体之间的接触点上创建的。当与混合材质协同使用时,Particle Texture 作为遮罩,在两种材质之间进行混合,例如,潮湿的材质和干燥的材质。这样,被 WetMap 粒子覆盖的几何体可显示为潮湿的,而几何体的其他部分可显示为干燥的。
总结
好,你已了解了 Chaos Phoenix 的功能,以及使用 Phoenix 模拟的许多重要概念。
你已学会模拟器、发射源和发射器如何用来创建模拟的,存储为一连串的缓存文件。我们还介绍不同的渲染模式是如何将模拟数据渲染成体积或表面网格的。
此外,我们还介绍网格和网格通道,以及粒子和粒子通道是如何呈现模拟的各种流体属性而发挥关键作用的,我们还讨论如何使用 Particle Shader 对粒子设定材质,使用各种气泡类型,或点,甚至是雾气模式。
最后,我们讨论 Phoenix 力场和 Phoenix Textures,可用来创造更进阶的效果,并进一步遵从你的愿望来处理模拟。
发挥粒子的威力吧
Chaos Phoenix 免费使用 30 天