将houdini模拟的火焰/烟雾用3ds max for vray渲染(机翻官方文档第1章)

第 1 章 – 基本火灾/烟雾模拟(共三章)

本教程是指导您完成在 3ds Max 中使用 V-Ray 导入和渲染 Houdini 模拟的过程的一部分。第 1 章假设您对 Houdini 和 3ds Max 都有一定的了解,并提供有关 Houdini 和 V-Ray/Phoenix FD 中使用的术语的信息。

示例工程下载地址:https://drive.google.com/uc?export=download&id=1S8NI9IL0YiOpdOAt3vhQnWrIUgk9PHyj

从 Houdini 导出

首先在 /obj 中创建一个默认球体,然后在Pyro FX架子上选择Fireball预设。

本教程重点介绍 Houdini 的原生卷、VDB 和V-Ray 卷网格之间的关系。我们将使用 Fireball 预设的默认设置 – 如果您想进一步调整它以获得看起来更好的东西,请随时编辑任何模拟参数。

让我们看看 Fireball 预设为我们生成了什么。

选择sphere1对象并在create_fuel_volume节点上使用鼠标中键来显示节点信息窗口。

请注意,有 2 卷,文本以浅绿色着色。在 SOP 的信息窗口中,浅绿色是为 Houdini 的本地卷保留的。

要在模拟过程中进行燃烧,您需要一个燃料源和一个温度源。流体源 SOP 设置为生成这两者。

接下来,上一层并转到pyro_sim。该节点是进行模拟的实际 DOP 网络。

DOP 模拟由一个对象组成,该对象用于定义/保存所有数据(例如模拟中使用的字段/体积。

在这种情况下,它包括名为pyro的 Smoke Object 节点、求解器(例如此设置中的 Pyro 求解器)、用于影响动力学的辅助节点(例如此处的噪声或resize_container节点),以及可选的 – 使用的源连续发射到指定字段(例如source_fuel_from_sphere1 Source Volume 节点)。

按下播放按钮并等待几帧。然后,在Pyro Solver或其下方的任何节点上单击鼠标中键,并注意此设置生成的不同字段。

温度场用于点燃燃料。稍后,您还可以将其用于着色/渲染而不是热场。不同的人有不同的喜好,尝试从来都不是一个坏主意。

密度场是燃烧过程中产生的烟雾。

Burn字段用于生成 Heat 字段。您可以将其视为产生火的中间步骤,暂时忽略它。

Divergence字段用于计算扩展。高发散是爆炸的属性。将释放的气体(Pyro Solver → Combustion)增加到一个高值将导致更高的分歧。除非您要进行非常自定义的设置,否则您不太可能需要此字段进行着色/渲染。

压力字段用于非发散投影。Non-Divergent Projection 改变了 Velocity 场,消除了会导致体积损失的区域。着色/渲染不太可能需要此字段。

热场是实际的“火焰”,是火的代表。在具有燃料和高温的电网区域中会产生热量。另一方面,温度不取决于燃料的存在与否。因此,简单来说,人们对火模拟进行着色/渲染的最常见方式是将热场指定为“火”本身,将温度场指定为火的颜色调制器。

燃料场是燃烧的源头。当某个体素的温度高于 Pyro Solver 指定的点火温度时,就会发生燃烧。

速度字段携带网格内容将在下一帧或子步骤中平流(移动)的方向。

让我们看一下DOP Import Fields节点。返回到 /obj 级别并深入到pyro_import节点。将显示标志设置为 DOP I/O import_pyrofields节点。

DOP I/O 节点用于将 DOP 模拟中的字段带入 SOP 级别,以便您可以调整它们或将它们缓存到磁盘。

此节点的一个非常有用的选项是Compute Min/Max Values参数。启用此复选框将创建 2 个原始属性,这些属性在每个字段的每个帧中保存最低和最高值。

您可以安全地禁用 Fuel、Rest 和 Rest2 字段旁边的复选框以停止导入,因为我们不会使用它们。这将为您节省一些硬盘空间。

在 DOP I/O 之后删除一个Convert VDB节点,并将Convert To选项设置为VDB。

这会将原生 Houdini 体积转换为 V-Ray 体积网格支持的 VDB。

通过在转换 VDB节点上单击鼠标中键来验证是否正确设置。VDB 原语应以蓝色列出。

要将 VDB 缓存到磁盘,请删除ROP 输出驱动程序并相应地设置帧范围和输出文件参数。

确保将输出文件扩展名设置为 .vdb。

在 ROP 输出驱动程序上选择保存到磁盘并等待缓存过程完成。

在 3ds Max+VVG 中导入

要将 VDB 带入 3ds Max,请转到Create → Geometry → VRay并选择VRayVolumeGrid。

如果现在单击视口中的任意位置,应该会出现一个窗口。

导航到保存 VDB 文件的目录,选择其中任何一个,然后按打开。

选择缓存文件并按打开后,将弹出一个窗口,提示您选择预设。

回想一下前面提到的内容——不同的软件包在不同的默认范围内输出不同的字段。这些预设调整以下参数:

  1. 如果模拟来自 Houdini 或 Maya,则 Y/Z 轴被翻转。

  2. Houdini 字段被重新映射到 Phoenix FD 中的典型等效项(密度 → 烟雾等)

  3. Fire 和 Smoke 渲染选项被设置为进一步调整的良好起点。

选择Houdini Fire/Smoke预设。

转到“输入”卷展栏并单击“…”按钮展开,选择:3rd Party Channel Mappings。

在第3 方频道映射窗口允许您将第 3 方字段重新映射到其相应的 Phoenix FD / V-Ray 频道。

左边是 Phoenix FD 频道,右边是 VDB 文件中的字段。

例如,与 Houdini 的Density字段等效的是 Phoenix FD Smoke通道。

在下一章中,我们将看看从 Houdini 输出颜色场并将其重新映射到 V-Ray 体积网格的红色、绿色和蓝色通道。

打开 V-Ray Volume Grid 的Preview rollout 并启用GPU Preview。GPU 预览在着色过程中非常有用,因为对火焰和烟雾不透明度/颜色所做的大部分更改都显示在视口中。

前往V-Ray 体积网格的渲染卷展栏,然后单击体积选项按钮。

您可以将弹出的窗口想象为Phoenix FD 体积着色器。它提供了火和烟阴影的选项。

烟雾设置

首先,打开Fire卷展栏并将Based on选项设置为Disabled。这将禁用 V-Ray 和 3ds Max 视口的火焰渲染,并允许您专注于烟雾。

在“体积选项”窗口中打开“烟雾不透明度”卷展栏,并将“基于”参数设置为“烟雾” 。

烟雾选项允许您手动编辑烟雾的不透明度曲线。如果您的设置需要更好地控制 Smoke 通道,您应该使用它。

另一方面,Simple Smoke设置使用内部算法处理不透明度曲线 – 您无需更改曲线,而是只需调整Simple Smoke Opacity值。

在不透明度图中选择曲线的右点,并使用底部的数字字段将其X值设置为 8。随意调整不透明度曲线,只要您认为合适。启用 GPU 预览后,任何更改都将正确显示在视口中。

根据烟雾的外观,您可能需要考虑启用“按场景单位缩放不透明度”选项。根据 3ds Max 场景的场景单位,这将导致烟雾显得更稀疏或更密集。

火焰设置

接下来,让我们使用 Fire。

打开“烟色”卷展栏并将“基于”设置为“禁用” 。这将禁用 3ds Max 视口中的烟雾预览,并允许我们专注于火焰。

打开“火”卷展栏并将“基于”设置为“温度” 。有关 Fire 部署中所有参数的详细说明,请查看Fire Rollout 文档。

请注意覆盖在坡道灰色背景上的绿色条带。就像烟雾通道一样,此条表示温度通道的范围(即重新映射到 V-Ray 体积网格温度通道的 Houdini 温度场)。

您可以调整火焰的Color、Intensity和Opacity,这些更改将根据所选的Fire Opacity Mode进行不同的处理。

尝试不同的设置以找到最佳结果。在此示例中,右侧图像中的设置用于最终渲染。

由于 Houdini 温度场过于均匀,我们在色带上放置了很多不同的颜色,但是当模拟如此简单时,这是可以预料的。如果您要在模拟设置中投入一些额外的精力(即调整源几何体、源速度场以及 Pyro Solver 的 Shape 卷展栏中的所有设置),而不是使用默认的 Fireball 预设,则需要的调整要少得多。

如果Fire Opacity Mode设置为完全可见,V-Ray 会提示您一条消息,说明此设置无法与概率着色一起正常工作。

要禁用 V-Ray 体积网格的概率着色,请按 8 键打开环境和效果窗口。向下滚动到大气卷展栏并在列表中选择 VRay 体积网格。

下面应该会出现一个名为 VRayVolumeGrid Atmosphere Settings 的新卷展栏。禁用使用概率着色选项。

打开“烟雾颜色”卷展栏。使用基于参数,您可以选择一个通道来作为烟雾颜色的基础。温度和烟雾都是合理的选择。在第 2 章中,我们将使用从 Houdini 导出的自定义Cd通道用作基于 RGB的烟雾选项。

请注意颜色渐变左侧和右侧的值 – 这些是为“基于”参数选择的通道范围。在此设置中,Smoke被选为 Smoke Color 字段,并调整渐变,使烟雾的稀疏区域(接近 0)为黑色,密集区域(接近 7)为白色。

右侧的值用于此示例的最终渲染。

资源下载: