FLIP Fluids故障排除
原文链接
Scene Troubleshooting · rlguy/Blender-FLIP-Fluids Wiki · GitHub
https://github.com/rlguy/Blender-FLIP-Fluids/wiki/Scene-Troubleshooting
模拟烘焙计算时间太长!
众所周知,高质量的流体模拟需要很长的计算时间,但有一些方法可以优化模拟设置,以最大限度地提高性能:
l 你的域名有很多空位吗?尝试调整域的大小,以紧密适应流体效果,从而最大化模拟细节和性能。这是我们在运行缓慢的模拟设置中看到的最常见的问题。请参见本文档主题:我的域对象应该有多大?
l 你的模拟包含大量的流体吗?更多的液体将导致更长的烘烤时间。减少域中流体的体积将有助于加快模拟时间。模拟一个很深的液体池有必要吗?模拟更浅的液体是加速流体模拟的常用方法。
l 您的关键帧/动画对象包含大量几何图形吗?运动物体需要在模拟的每一帧和每一子步骤中重新计算。如果你的移动物体包含大量的几何体,这会大大降低模拟的速度。我们经常会看到动画对象包含了过多的几何细节。模拟中常见的工作流程是使用较简单的低细节对象进行模拟,使用高细节对象进行渲染。
l 所有启用的功能都是必需的吗?启用以下功能会大大增加模拟时间
¡ 网格生成细分-对于最终模拟,我们通常建议将网格细分级别增加到1。这将需要更长的时间来生成,但会产生一个更详细的网格。如果您只是测试您的模拟设置,请将细分设置为0以加速测试和迭代。
¡ 白水解决方案-启用白水模拟通常会使基本模拟时间增加一倍。
¡ 粘度求解器-有一个技巧可以模拟低粘度流体,无需额外费用,使用PIC/FLIP比率设置.
¡ 表面张力和片材解算器-这些功能通常仅适用于小规模流体效果。在大规模流体效果中启用这些功能会增加很多模拟时间,并且对模拟的影响通常不会很明显。
l 你能降低你的域名分辨率吗?并不是所有的模拟效果都需要非常细致。如果你能以较低的分辨率进行模拟,这将有助于加速烘焙。
导出动画对象需要很长时间!
当任何翻转流体对象具有 导出动画网格 选项启用后,插件将需要逐帧导出这个动画。以下是此过程可能需要很长时间的一些原因:
l 你的物体需要导出为动画网格吗?这 导出动画网格 只有动画比关键帧位置/旋转/缩放或f曲线动画更复杂的对象(如骨架或父对象)才需要该选项。该插件将能够出口简单的关键帧动画非常快。
l 你的动画对象包含很多几何体吗?过多的几何图形会花费更多的时间来导出。如果您导出的网格大小是每帧几兆字节,这真的会增加并花费很长时间来导出!提示:您可以查看导出大小和进度的详细信息,方法是启用显示控制台输出(调试面板)选项并打开搅拌机系统控制台。此窗口可以在装有以下设备的Windows上打开搅拌机>窗口>切换系统控制台或者在MacOS/Linux上从命令行启动Blender。
l 开始新的烘焙时不想花时间重新导出?如果您的动画对象已经导出并且运动没有改变,您可以通过启用跳过动画网格重新导出对象的选项。
l 你的场景回放慢吗?要导出动画网格,Blender需要使用渲染质量来评估和回放每一帧,以便完全评估对象网格。如果场景中有其他烘焙数据或对象需要很长时间来评估,禁用这些对象加载(例如禁用修改器)将会加快播放速度,从而加快动画网格导出的速度。
薄障碍物、泄漏液体
流体通过薄障碍物泄漏是翻转模拟的常见问题。模拟器使用粒子来跟踪流体存在的位置,如果粒子快速移动,它们可能会穿过薄障碍物的墙壁,因此不会检测到碰撞。模拟在网格上进行,如果障碍物太薄,它可能不会有效地显示在模拟网格上。这将导致液体滑过障碍物。对此的一些修复包括:
1\. 提高域分辨率(模拟面板)-这将增加网格细节,以帮助对象更好地显示在模拟网格上。
2\. 增加障碍物厚度-较厚的障碍物在模拟网格上会显示得更好。
3\. 使用厚对象进行模拟,使用薄对象进行渲染-这将取决于你试图实现什么样的动画。
4\. 降低CFL安全系数(高级面板)-这将限制流体在一个时间步长内移动的距离,并可能阻止流体通过障碍物。
相关资源:
l 为了使障碍物在模拟器中正常工作,物体的几何形状必须是流形的.
l 查看我们的第一个技巧改善Blender中翻转液体工作流程的10个技巧关于调试障碍对象问题的技巧的文章/视频。
l 根据我们的模拟场景,您可以使用避免所有与细障碍物相关的问题反向障碍工作流.
l 什么是领域模拟网格?
厚障碍物、泄漏液体、意外行为
确保您的对象网格是流形的.
查看我们的第一个技巧改善Blender中翻转液体工作流程的10个技巧关于调试障碍对象问题的技巧的文章/视频。
高分辨率的大磁畴需要很长时间来烘焙
考虑让你的领域更小,以适应你的流体效果。请参阅上的主题你的域名应该有多大.
运行模拟时,动画障碍物是静态的
如果对象的动画比关键帧位置/旋转/缩放更复杂,则需要启用 导出动画网格 选项(障碍设置).
模拟没有产生足够的白水(泡沫/气泡/喷雾)
1\. 提高域分辨率(模拟面板)-一般来说,分辨率越高的模拟会产生更多细节和更多数量的白水
2\. 增加波峰发射率(白水小组)-这将增加波峰处的白水量,通常会产生更多泡沫颗粒。尝试以下范围内的值 100 - 1000.
3\. 增加湍流排放率(白水小组)-这将增加高湍流区域的白水量,通常会产生更多的气泡颗粒。请注意,气泡颗粒上升到表面并成为泡沫,因此随着时间的推移,这也会增加泡沫的量。尝试以下范围内的值 100 - 1000.
4\. 较低的最小/最大能量速度(白水小组)-这是引发白水生成的最小和最大流体速度(单位:m/s)。将这些值设置为适合您的域大小的值。默认情况下,一个搅拌机单元等于一米。注意,大的区域通常具有较高速度的流体,而较小的区域通常具有较低速度的流体。
渲染时白水粒子太大 /太小
在中调整白水颗粒比例显示设置.
当视口明暗处理设定为时,白水粒子不会渲染提供
白水粒子使用实例化粒子几何体进行渲染,默认情况下不会加载到3D视口中,以保持视口的响应性。
取消选中 在视口中隐藏粒子 在中设置显示设置。这将使粒子在3D视口中可见。
当浸没在水中时,流入的水不会填满一个容器
有关如何使用流入的信息,请参见本文档约束流体速度填充油箱的设置:创建水下管道以填充储罐.
小流量不排放流体(低分辨率模拟)
如果域分辨率较低且流入网格较小/较窄,则烘焙模拟时可能不会发射流体。这是因为流入量计算是在网格上运行的域分辨率定义网格的详细程度。如果域分辨率太低,那么计算可能不能有效地显示在网格上,并且流入不会放出流体。解决方法是增加流入网格的尺寸或增加模拟分辨率。
流入厚度/尺寸应该至少大一个体素才能开始喷射流体。 小费 :您可以通过启用在调试面板中显示网格设置.
针对弯曲障碍物的网格带状伪影
网格生成器使用栅格将粒子转化为三角形网格。当薄层流体遇到障碍物时,粒子可能不会很好地显示在网格上。对此的一些修复包括:
1\. 增加曲面细分级别(表面面板)-这将创建更精细的网格栅格,并生成更高质量的流体网格。这也将花费更多的时间来计算,但结果往往是值得的额外时间。
2\. 增加颗粒尺度(表面面板)-这将增加啮合时的颗粒尺寸。粒子将在网格上显示得更好。这并不需要太多的时间来计算,但你的流体表面可能最终看起来“blobby”。尝试以下范围内的值 1.30 - 1.50.
提高分辨率时,流体行为会发生变化
提高分辨率后,您的模拟结果是否会发生巨大变化?不幸的是,这是由流体模拟(以及许多其他类型的模拟)的计算性质造成的。提高模拟的准确性会影响结果,因此在使用模拟时要记住这一点。
增加分辨率会增加物理细节和准确性的级别,随着模拟中准确性的增加,您可能会发现新的飞溅形成,或者改进的物理细节会改变飞溅的轨迹。模拟变化的剧烈程度取决于你正在模拟的效果。一般来说,与涉及大量流体运动的模拟相比,具有大而薄的飞溅的模拟将发生更剧烈的变化。
这是一个很好的工作流程,在模拟最终结果之前,混合一些中等分辨率的测试,以确保您的模拟行为符合您的喜好。请记住,仅将模拟分辨率提高一倍就会导致超过8倍的计算量,从而大幅提高模拟精度。运行非常低分辨率的模拟作为预览,然后直接进入最终的高分辨率质量模拟,可能会让您想知道为什么模拟发生了如此大的变化。
提高分辨率并不是影响模拟精度的唯一设置。当增加子步骤的数量时,您可能会遇到不同的结果(什么是子步骤?)或增加帧速率时。
使用流体模拟可能需要一些迭代和测试。看看这些关于如何优化模拟设置的提示所以你可以快速迭代你的效果。
快速移动的流体从模拟中消失
当流体快速穿过域时,模拟器可能需要从域中移除流体粒子,以保持模拟稳定。如果流体移动非常快,例如从高速流入,模拟器可能需要移除所有流体颗粒,以保持稳定的模拟。
对这个问题的修复是允许模拟器采取更多的帧子步骤,以保持模拟稳定,并防止快速移动流体的损失。这可以通过以下方式实现增加 最大帧子步数 中的值高级面板。尝试将其设置为较高的值,如50。模拟器将只采取尽可能多的子步骤来保持模拟器的稳定,因此将该值设置为较高的值不会增加不必要的烘焙时间。
解释 :为了保持流体模拟稳定,模拟器限制了流体粒子在单个子步骤中可以行进的最大距离。粒子限于仅行进一定数量的体素(CFL条件数)在子步骤中。如果粒子快速移动,模拟器将在一帧中采取额外的子步骤,以确保粒子不会超过体素距离限制。这 最大帧子步数 值限制模拟器每帧允许进行的子步总数。如果粒子以在最大子步数内无法解析的速度移动,粒子将被移除。因为这个“速度极限”与体素的数量有关,所以速度将与网格分辨率有关,并且这个问题将在更高分辨率的模拟中变得更普遍。请注意,如果使用小的域或世界大小,也会使这个问题更加普遍,因为一般来说,流体在小域中移动的速度比在大域中移动的速度快。
相关主题:什么是子步,最小、最大和CFL参数是如何相互关联的?
增加帧范围后,模拟器不会继续烘焙
要更新模拟设置,比如帧范围,你需要告诉插件重新导出设置。这可以通过启用 恢复时更新设置 复选框(模拟面板).
难以实现小规模的流体效果世界尺寸
查看我们的提示模拟小尺度流体效应.
模拟网格不出现在视口和 /或渲染中
请参阅这些步骤来解决此问题:
1.检查是否在中正确设置了视口/渲染显示模式翻转流体显示设置面板:
2.检查是否为视口/渲染启用了翻转流体域:
3.检查是否在视口/渲染的大纲视图中启用了翻转流体网格:
4.通过检查中是否有网格数据,验证是否已在当前帧中生成模拟几何图形翻转流体统计面板:
如果在应该生成几何体的时候没有生成几何体,可能会出现与渲染无关的问题。如果您仍然遇到问题,请随时联系我们support@flipfluids.com为现场故障排除帮助.
渲染时, Blender经常突然崩溃或不应用变换
症状
l 在帧渲染之前或之后崩溃
l 不正确的对象变换(位置/旋转/缩放)
l 非常大的白水颗粒(icospheres)
l 渲染伪像、动画闪烁、不正确的着色
这些问题可能是由于在3D视口中处理大型网格时不稳定造成的。目前的原因被认为是搅拌机的设计问题.
请参阅以下适用于您的Blender版本的变通方法。这些解决方法可以通过激活启用稳定渲染操作员在翻转流体显示面板。
Blender 2.81或更高版本
搅拌机界面必须锁定在渲染期间为了防止渲染崩溃(搅拌机>渲染>锁定界面).这是搅拌机开发者的要求。
搅拌机 2.80
由于Blender 2.80中的一个严重错误,稳定和无崩溃的渲染是不可能的。建议使用Blender或更高版本。有助于提高稳定性的解决方法是在渲染期间锁定Blender界面(搅拌机>渲染>锁定界面).
搅拌机 2.79
设置 渲染显示 到 全屏幕 (搅拌机渲染属性文档).
注意 :只有在单个窗口中运行场景时,此解决方法才有效。如果你在多个窗口/监视器上运行一个Blender场景,任何额外的窗口都应该在开始渲染之前关闭。渲染时,您仍然可以运行Blender的多个实例。
从命令行渲染
渲染大型模拟最稳定的方法是从命令行渲染。有关说明,请参见本文档:从命令行渲染.
导出到 Alembic缓存不是导出动画网格
简短回答:
l 流体曲面和白水网格必须包含修改器,以便Blender将这些对象识别为动画网格进行导出
l 在Blender 2.8x中,Blender接口在导出期间必须被锁定,以防止崩溃(搅拌机>渲染>锁定界面)
有关完整的详细信息,请参见本文档主题:Alembic出口支持.
改善 Blender中翻转液体工作流程的10个技巧
1.翻转流体中的模拟调试
您知道FLIP Fluids中的调试功能可用于诊断和解决模拟设置中的问题吗?
让我们以一个常见的问题为例:你已经模拟了一个看起来很棒的瓶子或有史以来最完美的杯子搅拌器,但当你试图用你最喜欢的液体装满它时,你发现你的液体漏得到处都是。真是一团糟!
因此...为什么液体会泄漏?
原因可能是您的模型对于您的模拟分辨率来说太薄了。翻转流体插件是一个基于网格的模拟器,其中物理方程在3D网格上求解,分辨率值控制网格的详细程度。让我们通过打开 显示网格 选项。
左图 :网格分辨率太低,导致调试网格出现裂缝。
右图 :增加网格分辨率后,调试网格现在已完全解析。
启用后 显示网格 选项,您将看到模拟网格的可视化以及网格是如何划分为单元的。栅格单元的大小可以理解为流体模拟中显示的最小细节量。
示例:最小的液滴、最薄的飞溅和障碍物的最小厚度。网格显示模式是交互式的-尝试调整域分辨率或缩放和调整域大小,以更好地了解网格是如何变化的。
为了防止薄障碍物泄漏,障碍物最薄的部分应该至少有一个网格单元厚。您可以通过将对象墙重新建模为更厚或增加模拟分辨率来确保障碍物足够厚。
另一种检查障碍物是否能在模拟中正常工作的方法是设置 启用障碍调试 复选框。该选项将输出一个调试网格,向您显示附加组件如何转换障碍物,以及它如何在模拟中“看到”障碍物。启用该选项后,您需要开始烘焙模拟以生成该调试网格。如果障碍没有设置动画,可以在第一帧完成后停止烘焙,并重新加载该帧以显示调试网格