本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版上一修订版两侧同时换到之后的修订记录 | ||
vfx:houdini:dop:dynamic_basics [2019/09/06 01:41] – [Dynamics] codinghare | vfx:houdini:dop:dynamic_basics [2019/10/13 09:10] – [模拟的可视化] codinghare | ||
---|---|---|---|
行 3: | 行 3: | ||
===== ===== | ===== ===== | ||
在 Houdini 中,dynamics network( //DOP// ) 用于创建模拟(// | 在 Houdini 中,dynamics network( //DOP// ) 用于创建模拟(// | ||
- | \\ | ||
\\ | \\ | ||
< | < | ||
行 9: | 行 8: | ||
</ | </ | ||
</ | </ | ||
+ | \\ | ||
+ | \\ | ||
在 Houdini 中,针对不同的模拟(Rigidbody / fluid / cloth / grain etc.)有不同的 Object 和 对应的 slover。 | 在 Houdini 中,针对不同的模拟(Rigidbody / fluid / cloth / grain etc.)有不同的 Object 和 对应的 slover。 | ||
\\ | \\ | ||
行 21: | 行 22: | ||
Houdini 中通过**树形结构** 来表示数据是如何应用到对象上的,通过 '' | Houdini 中通过**树形结构** 来表示数据是如何应用到对象上的,通过 '' | ||
</ | </ | ||
- | \\ | ||
\\ | \\ | ||
<wrap lo> | <wrap lo> | ||
行 59: | 行 59: | ||
通过 '' | 通过 '' | ||
==模拟的可视化== | ==模拟的可视化== | ||
- | 见此。 | + | <WRAP round todo 60%> |
+ | 待完善。 | ||
+ | </ | ||
==DOP 中的 Bypass== | ==DOP 中的 Bypass== | ||
与 SOP 相同,DOP 中也允许节点的 bypass。bypass 的节点不会参与整个节点的模拟。bypss 的状态是可以进行 keyframe 的,我们通过对指定节点的 '' | 与 SOP 相同,DOP 中也允许节点的 bypass。bypass 的节点不会参与整个节点的模拟。bypss 的状态是可以进行 keyframe 的,我们通过对指定节点的 '' | ||
行 264: | 行 267: | ||
如果参与碰撞几何体中同时存在 volume / thin-plate 类型的对象,那么碰撞的类型是 volume。如果只存在 thin-plate 类型的对象,那么使用三角碰撞检测(per-triangle collision test)。需要注意的是,thin-plate 类型的对象并不能很好的堆叠。如果想得到更好的效果,需要增加 '' | 如果参与碰撞几何体中同时存在 volume / thin-plate 类型的对象,那么碰撞的类型是 volume。如果只存在 thin-plate 类型的对象,那么使用三角碰撞检测(per-triangle collision test)。需要注意的是,thin-plate 类型的对象并不能很好的堆叠。如果想得到更好的效果,需要增加 '' | ||
====Caching Simulations==== | ====Caching Simulations==== | ||
+ | ===概况=== | ||
+ | 通常,Houdini 将解算的结果存储在内存里供回放使用。在 '' | ||
+ | \\ | ||
+ | \\ | ||
+ | 但当没有足够的内存供 Houdini 创建新缓存的时候,Houdini 会舍弃之前已经缓存过的内容。如果我们不希望丢弃之前的内容,我们可以开启该节点中的 '' | ||
+ | \\ | ||
+ | \\ | ||
+ | 除此之外,有两种情况需要存储解算结果到硬盘: | ||
+ | * 如果只需要解算一次对象的运动(比如 ridid body)。 | ||
+ | * 当对解算结果满意,不希望更改时。 | ||
+ | 除了利用上面节点的 caching 功能之外,我们也可以利用 '' | ||
+ | \\ | ||
+ | \\ | ||
+ | ===Timeline coloring=== | ||
+ | Houdini 会使用不同的颜色来代表当前的解算文件类型: | ||
+ | |<color # | ||
+ | |<color # | ||
+ | |<color # | ||
+ | ===Explicit Disk Caching=== | ||
+ | 默认情况下,如果 '' | ||
+ | \\ | ||
+ | \\ | ||
+ | 这种情况下,我们的解算文件既不安全,又难以管理。针对该情况,Houdini 提供了 '' | ||
+ | * 指定存储解算文件的目录,需要使用 '' | ||
+ | * 指定多少帧存储一个 checkpoint;比如 '' | ||
+ | * 指定 Houdini 每次存储多少个 checkpoints,超过该值的存储点会被删掉。 | ||
+ | checkpoint 在规模较大的模拟中非常有用,特别是在渲染农场中。比如,如果我们的渲染在 '' | ||
+ | ===Baking out sim files=== | ||
+ | 处于 DOP 网络末端的 '' | ||
+ | \\ | ||
+ | \\ | ||
+ | 输出的步骤: | ||
+ | - 选择 '' | ||
+ | - 在 '' | ||
+ | - '' | ||
+ | 除了 '' | ||
+ | \\ | ||
+ | \\ | ||
+ | 当我们完成 “baking” 解算文件后,我们可以停止 DOP network 的解算并使用我们存储好的 '' | ||
+ | ====参考资料==== | ||
+ | * [[https:// |