什么是Katana

Katana最初旨在解决可伸缩性和灵活性问题;如何以可能处理无限数量的场景数据的方式进行外观开发和照明。它还需要足够灵活,以适应现代CG功能和自定义工作流程的VFX制作的需求,并具有编辑或覆盖任何内容的能力。

Katana利用渲染器对递归过程的支持,可以在其中按需创建任意场景数据。的Katana方法是拥有一个足以处理任意生成和过滤功能的单一程序。本质上,这是给定自定义程序的过程,该程序以基于树的过滤器描述的形式提供。在渲染时, Katana从此过程中调用的库,以根据渲染器的要求计算场景数据。

什么可以Katana做?

Katana允许您使用可以创建和修改3D场景数据的滤镜定义要渲染的内容。基于节点的界面允许用户定义要使用的过滤器,并以交互方式检查其结果。

使用过滤器,您可以任意创建和修改场景数据。您可以,例如:

从磁盘中导入3D场景数据,例如Alembic几何缓存或相机动画数据。

创建材质的新实例,例如3Delight着色器。

创建相机和灯光。

操纵相机,灯光和其他对象上的变换。

使用基于规则的表达式来设置将哪些材料分配给哪些对象。

为不同的渲染过程隔离场景的各个部分。

合并多个局部场景中的场景组件。

指定要在单个渲染中用于多次传递的AOV。

使用Python脚本来指定场景层次结构中任何位置的属性的任意操作。

用过滤器树描述要传递到渲染器的场景数据,并根据需要以迭代方式评估过滤器。Katana旨在与能够推迟递归程序的渲染器配合使用。使用递归过程,将过滤器树直接传递给渲染器,并根据渲染器的请求按需计算场景数据(延迟评估)。通常,这是通过使用Katana库在渲染期间从过滤树生成场景数据。

Katana通过运行评估场景图并为渲染器写出场景描述文件的过程,还可以与不支持程序或延迟评估的渲染器一起使用。这种方法没有在渲染时进行延迟评估的好处,并且场景描述文件可能非常大。

注意:  以来Katana的过滤器以可迭代的形式提供每帧场景数据, Katana还可用于为渲染器以外的进程提供3D场景数据。

本质上, Katana是一个用于3D场景数据的任意创建,过滤和处理的系统,其用户界面主要用于外观开发和照明的需求。Katana它还针对需要创建自定义管道并以高级方式处理3D场景数据的高级用户的需求而设计。

场景图迭代器

方式的关键Katana根据需要执行,过滤和交付场景数据,因为场景数据只能通过迭代器访问。这些迭代器允许调用进程(例如渲染器)遍历场景图并根据请求检查数据的任何部分。由于可以根据需要生成该数据,因此不必将大场景图状态保存在内存中。

用计算机科学的术语来说,维护自身状态是调用过程的责任。Katana提供了场景图如何生成的功能表示,可以无状态地进行惰性评估。

在场景层次结构中的任何位置Katana提供一个可以询问的迭代器:

该位置有哪些命名属性?

任何命名属性的值是什么(这些值被视为时间采样数据的向量)?

孩子和兄弟姐妹在哪里(如果有)?

Katana在外观开发和照明中

片假名'通过具有过滤器功能,您可以执行场景生成和照明中的所有经典操作,其中场景生成和过滤是面向艺术家的主要工具,用于进行外观开发和照明。主要:

在组件网络之外创建着色器或材质实例

将着色器分配给对象

创建灯光

摇头灯

更改对象上的可见性标志

定义不同的渲染过程

片假名'基于节点的接口提供了一种自然的方式来创建要使用的过滤器的配方。可能需要多个原子级过滤器一起工作的更高级别的操作可以包装在单个节点中,这样最终用户不必关心每个单独的细粒度操作。多个节点也可以打包到单个更高级别的复合节点中。