Phoenix FD for 3ds Max 帮助文档(更新中)

Phoenix FD in 3ds Max 概括介绍

本页介绍了一些 Phoenix FD in 3ds Max 中使用的细节。
想要阅读英文帮助文档原文,请点击这里

Phoenix FD简介


Phoenix FD是一款流体动力学仿真器,旨在创造各种各样的特效,包括烟雾,火焰,液体和爆炸。这套外挂可用于视觉效果,建筑和产品可视化,创建游戏资产等。您可以查看示例场景页面以便快速浏览这套外挂的可能性。

Phoenix FD配备了方便的工具栏,可提供常用设置的快速预设,如大型海洋模拟或汽油爆炸,或小尺度设置,如咖啡,啤酒,融化的蜡烛等。

Phoenix FD使用ChaosGroup的许可服务器,可透过硬件锁或在线许可。具有两种类型的许可证: 一种是GUI许可证 – 使用3ds Max用户界面所需的; 另一种是可用于通过管理器(例如远程计算机上的Backburner或Deadline)运行模拟的模拟许可证。1个GUI和1个仿真许可证的组合称为工作站许可证(Workstation license),这是您使用Phoenix FD的最低许可证需求。

渲染是免费的! 诸如烟雾和火焰之类的Phoenix FD体积效果,对于Phoenix FD所产生的液体网格或Phoenix FD粒子系统(如Foam和Splash),您不需要许可证进行渲染 – 您只需要把Phoenix FD安装在计算机上,就可以渲染Phoenix FD的数据。

Phoenix FD for 3ds Max提供3种外挂版本 – Scanline,V-Ray 3和V-Ray 4版。 V-Ray外挂要求将V-Ray安装在同一台计算机上,而Scanline则可以在没有各自版本的V-Ray的情况下进行模拟和渲染。您可以在这个链接查看Phoenix FD的系统需求。

官方正式支持Phoenix FD或Phoenix FD可支持的渲染器有:V-Ray,Corona,Octane和Scanline。 网格模式(Mesh Mode)可渲染任何3ds Max支持的CPU渲染器。在将仿真网格,网格或粒子数据导出到OpenVDB,Field3D,Alembic,Thinkbox X-Mesh,V-Ray VRmesh或VRscene或Krakatoa PRT之后,Phoenix FD也可以通过第三方插件或外部软件进行渲染。 Phoenix还可以通过导入OpenVDB,Field3D或Krakatoa PRT数据,使用其专用的火焰/烟雾体积着色器(volumetric shader for fire/smoke)或其粒子着色器来渲染来自其他软件的数据。

用于3ds Max的Phoenix FD还提供Viewport中火焰/烟雾的实时GPU预览,可用于海洋模拟和渲染的纹理贴图,或从仿真器中提取网格和粒子数据,可用于艺术指导模拟效果的专用力场,与Thinkbox Krakatoa,Stoke MX和Frost的互操作性,与Particle Flow的整合,以及对MaxScript和Phoenix C ++ SDK的支持。

Phoenix FD的流体模拟如何运作?


这里介绍有关Phoenix FD如何运作的信息。设置模拟的步骤可以在Phoenix FD入门页面找到。

模拟(simulation)的时候会使用一组增量步骤(incremental steps)来预测一段时间内会发生什么事。流体仿真器利用外推法(extrapolates)并更新(advection)流体速度,连续地评估流体的新状态。在大多数流体仿真系统中,外推法(extrapolation)阶段称为平流(advection),速度更新称为压力投射(pressure projection)。对于外推法(extrapolation),我们将使用平流(advection)这个专有名词,但对于速度更新/压力投射,我们将使用守恒(conservation)这个词汇,因为”速度更新与压力投影”和流体维持住体积的能力非常有关。上述的外推法时间间隔(extrapolation time interval)称为模拟时间步长(simulation time step)。在Phoenix FD中,模拟时间步长由每帧步数(SPF)参数控制,该参数等于帧持续时间除以模拟时间步长。

由于模拟是一个相对缓慢的过程,因此必须进行预先计算。否则,将无法互动地移动时间滑块或进行渲染。因此就必须将模拟结果保存到缓存文件中。之后这些缓存文件可用于渲染,或者你也可以根据这个已经模拟的效果再额外添加更多细节(译者注: 称为Resimulation)。

仿真在背景进行,并且3ds Max的用户界面维持可用的状态。您可以在模拟过程中更改参数(几个初始核心参数除外),并查看这些参数对模拟的影响。渲染(Production渲染与和Active Shade这两种都支援)也是可用的,您不必等到模拟结束才能看到渲染结果。

粒子和基于网格(Grid-based)的模拟


在模拟系统中有两种主要的方法:
第一个是关注于物质。 质量,颜色,温度,坐标…等等都是物质的属性,并且与物质的抽象概念 – 粒子有关。这是基于粒子的仿真器的概念,Phoenix FD使用这个概念来计算液体及其相关的效果:泡沫水花(foam splash),雾气(mist),沾湿(wetting)。

第二种方法是关注空间。 质量,颜色,坐标…等等这些是空间的属性,并与空间的抽象概念有关 – 称为体素(voxels)或细胞(cells)。这是基于网格(grid based)的仿真器的概念。Phoenix FD使用这个概念来模拟气体效果:火焰,烟雾,爆炸。 这种方法适合烟雾和火焰相关的模拟,因为可以实现半透明和其他困难的结果相对容易。 网格可以被视为3D位图(bitmap),只是像素(pixels)取代成为体素(voxels)或细胞(cells)。 Phoenix FD仿真时,会按照一定的规则重复“重新绘制”3D图像。越多的体素,模拟运行越慢。了解网格方法和粒子方法彼此的差异非常重要,因为这不仅仅是技术解决方案的问题。即使模拟是完美的,您也必须使用截然不同的方法来渲染模拟结果。

Phoenix FD 导出档案内容


仿真的结果是一系列称为缓存文件(cache files)的文件。每个缓存文件都有两个部分:网格内容和粒子。PhoenixFD使用它自身的文件格式,允许将网格和粒子保存在单个缓存中,还有其他可用于从某个帧开始恢复仿真的数据。

正如我们已经提到的,网格类似于多通道的3D位图,只是把颜色换成物理数值 -称为信道(温度,烟雾密度,速度等)。一个档案里面只有一个网格,但它可以包含多个通道。与网格不同,缓存文件可以包含多个粒子系统,例如泡沫(foam)粒子和液体(liquid)粒子,每个粒子系统都有自己的信道组。粒子存在于场景中 但是隐藏起来且具有特定命名方式。例如,对于仿真器PhoenixFDLiquid01的液体粒子的物体称为PG [Liquid] of system [PhoenixFDLiquid01]。 这些物体遵守3ds Max粒子系统标准,允许其第三方软件取用其内容。

如何建立简单的模拟


最简单的模拟所需设置至少要包括3个物体:仿真器(simulator),发射源助手(source helper)和一些几何体。

  • 创建一个仿真器。(simulator)
  • 创建一个几何对象并将其放置在仿真器中。
  • 创建一个发射源助手(source helper)。
  • 在发射源助手的物体列表中选择几何体。

到了这阶段,设置一切就绪。 开始仿真,请转至仿真器的“仿真”卷展栏并按start开始。

模拟(Simulation)


模拟在一箱子中(被称为网格, grid)中执行,该箱子被分成包含流体的坐标(温度,速度等)属性的小细胞(cells)。仿真核心的最小设置包括速度和温度分别作为火焰/烟雾模拟的流体性质或液体仿真器的速度和液体密度。根据核心设置,可以添加一个或多个附加通道,并沿流体拖动。这些额外的通道是:

  • 速度(Speed)
  • 燃料(Fuel)
  • 烟雾(Smoke)
  • RGB
  • 小波(Wavelet)
  • 粒子 ID (Particle ID)
  • 粒子寿命(Particle Age)
  • 粒子大小(Particle Size)

RGB通道不影响仿真; RGB只是一个帮助通道,可用于渲染纹理映像或直接作为RGB值。 只有当小波湍流(wavelet turbulence)必须在第二阶段(译者注: 指的是Resimulation)应用于模拟时,才必须输出小波(Wavelet)通道。粒子ID通道有助于识别帧之间的相同粒子。

仿真工作流程


核心重新计算网格内容,重复以下三个主要动作:

  • 与外部物体进行交互作用。
  • 根据速度(对流, Advection)来移动流体。
  • 改变由于流体内部碰撞所造成的速度(守恒, Conservation)。 守恒是跟”当柱塞被按压时,注射器针头中的液体向前移动”是同样的过程。

根据核心设置,过程中可以包含一个或多个附加操作 这些操作是:

  • 燃烧(Burning)
  • 涡度约束(Vorticity Confinement)

模拟步骤(简称SPF)

每个模拟循环计算从当前流体状态开始到未来流体状态。但是新的和旧的流体状态在时间轴上应该分开多远?这个时间间隔被称为“模拟步骤(simulation step)”,是模拟最重要的值之一。显然,如果我们试图计算距离未来太远(采用大的模拟步骤),结果将不可信。另一方面,如果我们计算一些非常接近的时刻(采用小的模拟步骤),我们不得不再次重复计算来覆盖整个模拟时间间隔,这会降低性能并造成某些失真。

确定最佳模拟步骤可能看起来像一个复杂的任务,其实不然。在大多数情况下,最佳模拟步骤与流体运行几个网格单元所需的时间有关。由于每帧大量的步数(SPF)会显着降低仿真速度,所以最好以步长值1开始,并且只有在火焰/烟雾仿真产生颗粒噪声(grain artifacts)或液体无法保持体积时才提高SPF。如果液体必须快速通过容器,最好使用更高的SPF。此外,如果您对低分辨率模拟的工作方式感到满意并希望增加网格分辨率,则需要相应地调整SPF。如果您线性地将分辨率变成双倍,则必须将SPF也变成双倍。 但由于网格是三维的,因此如果voxel增加成8倍,则需要将SPF变成原本的双倍。注意:SPF值不能是分数值;必须是整数。

燃烧模拟

燃烧过程还需要Fuel和Smoke这两个通道(会自动加进去)。就像在真实世界一样,燃烧过程将燃料转化为烟雾,并产生一些热量扩张流体。Phoenix FD并没有单独的氧气通道,但氧气是根据烟雾(smoke)与燃料(fuel)进行计算。 公式是 氧气= 1 – 燃料 – 烟雾。燃料的能量控制着将产生多少热量,并且膨胀/膨胀率(inflation/expansion)控制着点火传播的速度。
为方便起见,第二个参数被称为“传播率(Propagation)”,但进阶用户应该记住参数的实际含义是通胀/扩张率(inflation/expansion rate)。

涡度约束(Vorticity Confinement)

涡度约束让小的紊流持续存在(alive)。 为什么我们需要这种修正? 流体输送(平流, advection)根据速度将网格内容从一个细胞移动到另一个细胞。在传统情况下,任何给定点的移动都不是整数的细胞数目。这会导致细胞的内容与平流期间相邻细胞的内容相混合。因此,速度的细节往往会消失。涡度约束会放大速度以使流体更加湍流。

外部物体(External Objects)

有三种类型的外部物体可以直接与仿真器互动

  • 刚体(多边形几何体)
  • 粒子
  • 力场

在每个模拟步骤中,场景中的所有节点都被进行处理,无论是否属于上述类型的其中一种,都可以与仿真器进行交互作用。

刚体(Rigid Bodies)
场景中的所有几何对像都被认为是刚体。他们可以通过三种不同的方式影响模拟:

  • 当没有选择物体作为来源,但与仿真器相互作用时,几何体内部的细胞被冻结,表面细胞的速度由物体的运动决定。
  • 当选择物体作为来源时,里面的细胞被冻结,并且表面细胞被设置为参数的来源。速度会根据排放参数(discharge)和物体的运动进行计算。
  • 当主体被选为来源时,但不与仿真器交互作用;几何体内的流体直接受到仿真器的发射模式(Emit Mode)所影响。

另一个Phoenix FD仿真器也可以用作刚体。在这种情况下,表面通道(Surface Channel)用于决定什么是表面。

粒子Particles
粒子能够做为发射源直接参与模拟,具体取决于火焰发射源(Fire Source | PHXSource)的发射模式(Emit Mode)(体积注射或体积笔刷, Volume Inject or Volume Brush)PHXSource。注入流体的速度是粒子的速度,它可以使流体参与粒子的运动。

力场Forces
力以两种不同的方式改变流体的速度:
如果力是重力,则直接使用流体的浮力(buoyancy)计算加速度。 如果浮力为负值,流体会朝向重力加速,否则会加速离开重力。
如果力不是重力,则流体朝力的方向加速。加速度的大小由力的强度决定。

注意:3dsMax的标准力场比Phoenix FD的重力和乱流计算要慢。只有部分力场支持多线程模式。

重新模拟(Resimulation)


重新模拟是模拟现有模拟的过程 – 称为基础模拟(base simulation)。必须首先处理基础模拟,并且必须导出其Velocity通道。然后,要启用重新模拟,必须选中“重新模拟”卷展栏中的启用选项。当启用此选项时,仿真器以重新仿真模式工作(即所有仿真器功能都变成与重新模拟相关)。

重新模拟可以分别影响网格内容和粒子。如果只有网格被重新模拟,粒子将直接从基础模拟中复制。 如果只有粒子被重新模拟,网格内容将直接从基础模拟中复制。网格内容和粒子可以同时重新模拟。

注意:液体目前不支持网格重新模拟(grid resimulation)。
重新仿真过程使用基础仿真的速度力(velocity force)来实现流体的相同流动。如果用户在重新仿真时想要提高分辨率,则可以调整此力。有两种方法来调整速度力的大小:插值(interpolation)和小波湍流(wavelet turbulence)。第二种方法会试着添加高频细节,这种细节当使用简单内插法会丧失,但这个方法要求基本模拟除了常规导出的通道之外还导出特殊的“小波(Wavelet)”信道和“UVW”信道。

由于重新模拟可以执行子步骤(sub-steps),因此必须自行保存速度力(velocity force)。 然而,由于这种守恒只在一帧内有效,所以整体的流体不会受到影响,并且可以使用较低的守恒值,这可以大大提高总体仿真速度。

重新仿真时,几乎所有仿真器参数都可以更改(例如SPF,平流步骤,时间尺度)。 但是这会产生与原始流体不同的流体流动。

即使速度(Velocity)信道未导出,恢复(restore)功能也可以与重新仿真缓存一起使用。 但是基本缓存(base cache)必须先储存。

以下是透过重新模拟可以达成的例子。

  • 提高现有火焰/烟雾模拟的分辨率,维持整体流体的形状。
  • 添加新的通道/更改火焰/烟雾模拟的来源参数。请注意,您可能无法获得实际准确的结果。 例如,在守恒(conservation)不均匀(non-uniform)的情况下,温度会影响速度。
  • 增加/减少阻力(drag)粒子的数量,而不进行完整的模拟。
  • 添加泡沫和水花,调整参数而无须再完全模拟液体。

渲染(Rendering)


渲染机制

除非在几何模式(Geometry Mode)下工作,否则Phoenix FD将其自身注册为全局体积(global volumetric)。 全局体积计算需要适当地混合场景中的所有Phoenix FD实例(仿真器和泡沫/水花)。 但是,为了与其他体积重迭,建议使用几何模式。

信道,图表(Diagrams)和渐层(Gradients)

在仿真之后,生成包含导出物理通道的缓存文件。在现实世界中,物理量与视觉外观之间的联系是明确的。但为了在Phoenix FD中获得更大的灵活性,用户可以选择渲染元素如何依赖于物理。例如,在现实世界中,温度决定了发射颜色; 然而,在Phoenix FD中,可以设置速度来表现的发射颜色而不使用温度表现颜色。 用于确定任何给定渲染元素的物理信道称为来源(source),并且物理量与渲染元素之间的依赖性由称为调色板(palettes)的对照表。于体积内容的渲染,为每个点计算三个渲染元素:发射颜色(emissive color),漫反射颜色(diffuse colo)和不透明度(alpha)。为了计算这三个渲染元素,着色器会执行以下步骤:

  • 决定哪些物理通道作为来源。
  • 对着色点(shaded point)输入数据进行采样以确定来源通道的值。
  • 透过调色板传递来源通道的值以获取渲染元素(render element)的值。

上述的过程控制可在Render Fire, Render Smoke Color与 Render Smoke Opacity卷展栏中找到,用户可以为每个信道选择来源和调色板。对于发射颜色(emissive color),使用图表和渐层,因为发射颜色与漫反射颜色不同 – 发射颜色可能在0-1范围之外。 当超过0-1范围时,渐层将显得饱和。 对于每个渲染元素,用户也可以选择纹理贴图作为源通道。 在这种情况下,跳过调色板,直接使用采样颜色(sampled color)。

烟雾不透明(Smoke Opacity)与完全可见的着色(Fully Visible Shading)

在现实世界中透明度和发射光之间有明确的联系。 对于烟雾(漫射光),这两者之间的关连非常清晰,大家都可以直观地了解其工作原理。然而,对于发射光线(emissive light),当被问及“缺少烟的火焰是否完全透明?”时,大多数人会给出错误的答案。 常见的错误答案是,“是的,如果没有烟雾,火焰是完全透明的,不会投下阴影。” 然而,正确答案是“不,完全透明的气体即使足够热,也不能发出任何光。”这就是为什么乙炔火焰比蜡烛暗的原因,尽管乙炔温度较高。乙炔火焰只是产生较少的烟雾。

然而,这种着色方式看起来很奇怪,不方便,因为无法明确地把烟雾和火焰明确地分离控制。 当你提高烟雾的浓度时要小心,因为结果可能会产生过亮亮的火焰。出于这个原因,Phoenix FD提供不同的着色模式:物理性与脱钩(detached)。 这由“Fire”卷展栏中的“Fire Opacity Mode”(火焰不透明度模式)参数控制。 在完全可见模式(Fully Visible mode)下,发射部分完全独立于透明度,您可以不管上述连接。 在“使用烟雾不透明度(Use Smoke Opacity)”模式下,烟雾的Alpha控制着火焰的不透明度。 另外还有使用自己的不透明度模式(Use Own Opacity mode),其中火焰(Fire)具有单独的不透明度曲线,可以独立于烟雾调整。

表面通道(Surface Channel)

某些渲染技术(如实体渲染,置换…等)需要使用单独的通道,因此Phoenix FD提供了Surface通道。大多数都使用Surface通道根据其内容计算隐式曲面(implicit surface),使用以下规则:具有高于给定阈值的值的所有点将位于曲面内,而具有低于阈值的值的所有点将位于曲面外。网格模式(Mesh Mode)给出了整个概念的最佳视图,因为这使表面变的可见。

几何模式(Geometry Mode)

体积几何模式Volumetric Geometry Mode
在这种模式下,得到的内容的外观与体积模式完全相同,除了能够与其他重迭的体积对象混合。但是,渲染速度较慢并需要更多内存。这个模式也需要提高Max. transp levels (最大透明度阶级) ,您可至“V-Ray渲染设置”中“全局切换”卷展栏增加数值。

体积热雾(Volumetric Heat Haze)模式
此模式用于实现海市蜃楼效应和热雾。在此模式下,根据表面信道的内容,体积中描绘的射线将在每个步骤改变其方向。看起来这种模式与纯几何模式相似,但其实不是。这种着色模式更类似于V-Ray的折射材质,比较不像体积模式或是纯的几何体模式。 与折射材质的着色一样,对于与仿真器网格相交的射线,alpha值设置为1。

网格(Mesh)模式
此模式会生成具有锐利表面的实体,由曲面信道(Surface channel)确定,并且可以使用任何材质进行着色。

增加细节

有两种直接方法可用于在着色中添加细节。 为了增强流体中细节运动的真实感,V-Ray配备了一种称为“粒子纹理(Particle Texture)”的粒子纹理。PhoenixFDParticleTex。 当与Phoenix仿真器驱动的粒子系统结合使用时,粒子纹理能够正确地对流体表面上的小细节进行动画处理。

纹理调整(Texture Modulation)
这是流体系统中添加细节的常用方式。 在“Render Fire”中,“Render Smoke Color”和“Render Smoke Opacity”卷展栏中可看到这个参数,称为Modulate。就在每个渲染元素的纹理插槽附近。当启用时,相应的渲染元素将乘以纹理贴图的值,但在选择纹理作为发射源通道的情况下除外。

置换效果(Displacement)
这种技术比纹理调整(texture modulation)更复杂,产生更好的结果。置换的概念类似于几何置换,其中表面沿着其自身法线在由纹理图确定的距离处移位。曲面通道指定的曲面的最近点决定了置换的方向。


表面驱动与体积置换(Surface Driven vs. Volumetric Displacement)
Phoenix FD中的置换通过将偏移采样点移动来实现,偏移方向由效果通道的渐层(gradient)确定,而距离由给定贴图的亮度决定。有两种不同的模式用于对上述贴图进行采样,这两种模式可藉由渲染卷展栏中的复选框进行切换。如果复选框未选中,则贴图在着色点处进行采样,我们称之为“体积置换(volumetric displacement)”。如果选中该复选框,则首先将坐标投影到由效果通道确定的曲面上。投影点然后用作贴图坐标。我们称之为“表面驱动置换。表面驱动置换较慢,需要一些初始计算,但它保持了iso-表面的拓扑结构。如果置换值太大,则体积置换更快,但容易产生浮出小岛。除了性能,体积置换还有一个更重要的优势:它不需要效果的特定表面。因此,当表面驱动置换产生闪烁的场景时,体积置换还可以正常工作。


范例:表面驱动置换(Surface Driven)与体积置换(Volumetric Displacement)

表面驱动的置换;

体积置换。请注意浮在原始表面之上的小岛。


泡沫(Foam)和水花(Splashes)


PhoenixFD创建泡沫和水花的解决方案是基于粒子的(particle based),并且通过两个可对应但独立的功能实现 – 泡沫/水花(foam/splashes)粒子仿真器和泡沫/水花(foam/splashes)粒子着色器。 粒子仿真器被嵌入到PhoenixFD Simulator节点中,并通过PhoenixFDPGroup节点导出其内容,支持位置,速度,大小和ID通道。 粒子着色器是一个独立的组件:PhoenixFDFoam。 该组件可以渲染PhoenixFDPGroup和任何可导出位置,大小和速度信道的3dsMax的标准粒子系统。

PhoenixFD Simulator的粒子

Phoenix FD仿真器输出的粒子类型有几种:

  • 泡沫Foam
  • 水花Splashes
  • 薄雾Mist
  • 拖曳粒子Drag

粒子的诞生可以由使用者定义的来源(参见Fire Source | PHXSource)或经由script脚本自动执行(泡沫foam和水花splashes)。当使用自动诞生(automatic birth)时,仿真器计算每个细胞的“诞生潜能(birth potential),并将该潜能与用户设定的出生阈值(birth threshold)进行比较。如果潜在值高于阈值,则仿真器按照“出生率”参数中指定的数量创建新的粒子,每个立方场景单位的成千上万粒子数。泡沫和水花都是以这种方式诞生的; 唯一的区别是 “出生潜能”的计算方式。另外,当水花粒子(splash)撞击水面时,会自动产生泡沫(foam)。

每种类型的粒子模拟都是非常不同的。最简单的类型是“拖曳(drag)”。这种类型的粒子模拟会产生被流体拖动的粒子。这与Particle Flow中的PhoenixFDForce Operator非常相似,但效率更高:您可以在几分钟内拖动一百万个粒子。第二种类型(根据复杂性)是水花类型。水花只是自由下落,直到他们击中某个物体或水面。自由落体并不是最简单的一种,它受空气运动的影响(不要忘记,Phoenix FD也模拟空气,不仅仅是液体!),并且空气水花相互作用由空气摩擦参数控制。最复杂的类型是泡沫(foam)。泡沫粒子不仅与流体相互作用,还与彼此相互作用。当粒子太接近时,这种相互作用产生排斥力,当它们不相接时产生吸引力,确保泡沫的固结。这个过程是最昂贵的过程(译者注: 花费最多计算机运算资源),由B2B交互参数控制。当只需要表面泡沫时,可以通过将参数设置为零来关闭B2B交互作用。

渲染泡沫(Foam)和水花(Splashes)

Particle Shader | PHXFoam node可以用几种不同的方式渲染粒子系统 – 如单独的气泡/水滴(bubbles/droplets),点(point)或雾(fog)。在雾模式下,会计算所有粒子的边界框(bounding box),并使用边界框和雾分辨率参数构建基于网格的着色器。 这种模式最适用于表面泡沫,当网格高度相对较大且粒子数量很大时。另一种模式(基于粒子的着色, particle-based shading)更加复杂和有趣; 这个模式使我们能够实现更多种类的效果。我们为什么需要这种渲染模式呢? 当我们需要适当的材质,把例子当作几何体渲染的时候就需要。这模式有几个优点,但最重要的是能够将散射(scattering)转换为漫射颜色(diffuse color),从而为泡沫和水花提供自然明亮的外观。 另一个重要的优点是细胞(cellular)模式,可对特写的泡沫进行着色。

球形粒子有三种不同的着色模式 – 气泡(bubbles),细胞(cellular)和水花(splashes)。 在每种模式下,一个粒子表示成相同半径大小的,并具有某些光学特性的球体。 “气泡”和“细胞”模式旨在用于泡沫渲染并具有与表面相同的光学特性。这两者的差别仅在几何表示方面不同 – 气泡模式使用简单的球体,而细胞模式则构建类似于真正泡沫的多面体状细胞。 细胞彼此接触的地方不是平的,稍微弯曲,因此可提供更逼真的外观。


范例: 渲染泡沫与水花

气泡模式

细胞模式

水花模式