本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版后一修订版两侧同时换到之后的修订记录 | ||
vfx:houdini:dop:dynamic_basics [2019/09/05 07:45] – [Collision representations] codinghare | vfx:houdini:dop:dynamic_basics [2019/09/06 21:49] – [Explicit Disk Caching] 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> | ||
+ | \\ | ||
+ | \\ | ||
某些情况下我们需要为某些对象指定力。通过之前的示意图,我们了解到力的应用是通过节点上的**灰色**部分来进行传递的。因此,只需要将对应的对象连接到指定力的灰色部分就好。比如下图: | 某些情况下我们需要为某些对象指定力。通过之前的示意图,我们了解到力的应用是通过节点上的**灰色**部分来进行传递的。因此,只需要将对应的对象连接到指定力的灰色部分就好。比如下图: | ||
{{ : | {{ : | ||
行 31: | 行 35: | ||
\\ | \\ | ||
在 DOP 中时间表达式不再使用 '' | 在 DOP 中时间表达式不再使用 '' | ||
- | ====动力学相关概念==== | + | ====Top Dynamics aspects==== |
===基础概念=== | ===基础概念=== | ||
==模拟包含了对象、解算器、力== | ==模拟包含了对象、解算器、力== | ||
行 260: | 行 264: | ||
如果参与碰撞几何体中同时存在 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=== |