使用 Alembic 渲染 Bullet 模拟

 
 
 

此工作流演示如何将 Bullet 模拟导出到 Alembic 缓存。您可以在 Maya 中使用 Alembic 缓存,以在产品级流水线的各个阶段之间传递 Bullet 模拟。Alembic 缓存文件的内容作为 Maya 几何体进行求值,并且可以使用多边形、NURBS 和细分曲面编辑工具进行修改。

有关 Alembic 缓存系统工作方式的详细信息,请参见 Alembic 缓存

此工作方式非常适合将由其他团队(如照明或摄影艺术家)开发的场景,在这些场景中,您可以为他们提供轻量版本的模拟,使他们可以在最终渲染之前添加其元素。

工作流分为两个部分:

将模拟导出到缓存文件

在工作流的这一部分,我们将从包括照明和摄影机的 Samurai 场景开始,这些摄影机使用从天空下落并与 Samurai 模型碰撞的 1000 个对象的刚体集模拟。我们将创建刚体模拟层次的 Alembic 缓存文件,该文件可发送给负责添加照明和摄影机的第二个团队。使用 Alembic 可进行缩放,以便不模拟和驱动实际对象。

模拟中使用的刚体集是标准基本体形状(例如,长方体和球体或壳线),它们不会从原始几何体传递其材质或纹理。在此工作流中使用的场景是一个 Samurai Dojo 模型。(Samurai Dojo 模型由 AMD 提供

  1. 从具有基本几何体的布局场景入手。在 bulletRigidBodyShape 的“属性编辑器”(Attribute Editor) “刚体特性”(Rigid Body Properties)中,将 Dojo 模型的“实体类型”(Body Type)设置为“静态实体”(Static Body),并将“碰撞过滤器”(Collision Filter)设置为“静态网格”(Static Mesh)。这样可将 Samurai Dojo 模型创建为静态网格,使其成为静态碰撞体积。
  2. 将内部帧速率(“属性编辑器”(Attribute Editor)“内部固定帧速率”(Internal Fixed Frame Rate))增加到 120 Hz 可创建更好的碰撞。
  3. “属性编辑器”(Attribute Editor)中激活“调试绘制”(Debug Draw),以便更好地查看模型。
  4. 选择下落的块,然后选择“Bullet > 创建刚体集”(Bullet > Create Rigid Set) 将下落的块转换为“刚体集”(Rigid Set)。块将变为灰色,因为没有传递材质。
  5. 通过隐藏原始网格即源几何体(“显示 > 隐藏几何体 > 全部”(Display > Hide Geometry > All)),进一步简化模拟场景的大小。确保激活“调试绘制”(Debug Draw),以便您可以看到模型。
  6. “播放”(Play)查看模拟。调整物理设置(如有必要)。
  7. 一旦模拟准备就绪,我们必须将动画传递到具有材质和纹理的原始几何体。

  8. 选择“Bullet > 导出模拟 > 导出全部”(Bullet > Export Simulation > Export All),将模拟导出到 Alembic 缓存。
    注意 导出时,您必须在文件名后添加 .abc,否则导出将失败。
    注意 “Bullet > 导出模拟”(Bullet > Export Simulation)菜单支持导出整个场景或仅导出具有刚体或特定解析状态的特定对象。
  9. “Alembic 导出”(Alembic Export)窗口中,激活“时间设置”(Time Setting)。向下滚动,然后激活“世界空间”(World Space)
  10. 单击“导出当前选择”(Export Selection)。模拟将导出。

    Alembic 缓存文件包含所有已设置动画的对象的平面列表,它们的动画在世界空间中。缓存文件仅包含动画,没有网格或材质信息。

将创建缓存文件,以便第一个团队发送给第二个团队来查看模拟。导入/合并过程在此工作流的下一部分中介绍:导入并合并缓存文件(Importing and Merging the Cache File)

缓存说明

  • 仅支持使用世界空间动画导出。
  • 较大的场景需要花费一段时间。在此情况下,请在批处理模式下运行模拟。请参见批渲染静止图像或动画
  • 如果存在大幅旋转的对象,请启用“Euler 过滤”(Euler Filtering),以确保连续旋转。

导入并合并缓存文件

在工作流的这一部分中,照明和摄影机团队接收导出的 Alembic 缓存文件,并将其与具有灯光和摄影机的场景版本合并在一起。第二个团队的场景中包含与创建该解析的团队相同的层次,但没有动画。

  1. 转到在其中设置灯光和摄影机镜头的照明文件。所有原始几何体都在该文件中。
  2. 选择“流水线缓存 > Alembic 缓存 > 导入 Alembic”(Pipeline Cache > Import Alembic > Import Alembic) >
  3. “Alembic 导入”(Alembic Import)窗口中,选择“合并”(Merge)。这会将 Alembic 缓存与当前场景合并,从而在 Alembic 文件中重新连接该动画变换。
    注意您可以在视口的右下角查看帧速率。
  4. “播放”(Play)。原始几何体驱动 Alembic 动画。
    注意拥有场景后,您可以将其提交以进行渲染或生成播放预览。