前言
前段时间在 katana 里测试 instance 遇到了一些坑,闲暇之余记录一下。
最灵活的方法
第一种方法:利用 katana 自带的 CopyLocationToChild1 把需要 instance 的物体 copy 到对应的层级,然后设置对应的 translate, rotate, scale 属性。
优点:这种方法异常简单,写在 OpScript 里运行也异常的快。灵活性相当高,比如说在 instance 的时候换个帽子,换件衣服什么的。比较适合 crowd instance。
缺点:渲染异常的慢。因为它的原理是把对应的模型不停复制,然后放置到对应的地方。假如有个模型只有50个面,你复制10次,那么场景里就有500个面。
PRMAN支持的方法
根据 PRMAN 的官方文档 Instancing in Katana2 ,里面提供了两种方法。
第二种方法:设置好 instance source 组。在 instance 组里指定 geometry.instaceSource 属性对应到 instance source 组的层级。
优点:对于手动 debug 来说比较方便定位到 i