新增功能Katana 3.1

介绍

本文档介绍了引入的显着更改Katana 3.1。这些更改包括:

  • 完全兼容 VFX参考平台 CY2017规范,最值得注意的是包括将代码库移植到Qt 5
  • 改进了与非常大的属性
  • 已改善用户界面性能
  • 已改善Alembic读取性能
  • 实验性新的Hydra Viewer层显示来自监控标签。

技术变更

第三方软件

下表总结了对第三方软件出厂版本的更改。Katana 3.1v1旨在与视觉特效参考平台CY2017

Katana 3.1 Katana 3.0
t 5.6.1 4.8.5
PyQt 5.6 4.11.4
4.18.1 4.17
打开细分 3.1.1 3.0.5
Ptex 2.1.28 2.1.10
fmt 4.1.0 未出货
字体配置 未出货 2.8.0(仅Linux)

由于从Qt 4到Qt 5的端口,以下用户界面API已更改:

  • 选择加入的所有Qt小部件Katana的“基于密钥的拖动”协议必须进行以下更新。先前, Katana会发出动态的PyQt keyBasedDragRequested当用户将鼠标悬停在小部件上并按下时,该小部件发出信号Ctrl+。作为Katana 3.1,您的小部件必须改写customEvent()处理方法QT4Widgets.GlobalEventFilter.KeyBasedDragEvent Qt事件。小部件应接受事件,并使用QT4Widgets.InteractiveDrag宾语。

  • 任何先前将Python属性设置为的Qt小部件drawInteractiveHighlight现在应该设置一个布尔值Q对象相同名称的属性。此属性允许窗口小部件选择退出标准突出显示效果Katana适用于拖放操作的目标小部件。

  • 任何先前将Python属性设置为的Qt小部件STOP_GLOBAL_SCROLLING要么 SKIP_GLOBAL_SCROLLING 现在应该设置一个布尔值Q对象相同名称的属性。此属性允许小部件选择退出Katana的默认“全局滚动”行为(通过按住Alt键并在光标悬停在鼠标上时使用鼠标中键拖动QScrollArea基于的小部件。

  • 班级UI4.Widgets.TextInfoDialog已失效,已被删除。

查看器API的改进

  • 查看器API经过重新设计,增加了对单个OpenGL上下文的支持,所有视口。的视口小部件该类现在继承自QWidget

  • FnViewerDelegate :: getPartialXform()已经给了3个新参数来配置哪些xform组包含在返回的矩阵中,并且默认值与现有行为一致。此更改来自3.0v2中提供的修复程序,该修复程序在处理具有多个转换组的透视摄像机时(TP 346989)。

FnAttribute的改进

Katana现在支持使用2创建属性32或每个时间样本具有更多值,并且与内部大小限制有关的错误处理已变得更加可靠。先前, Katana如果违反某些内部限制,则可能崩溃或生成格式错误的属性,并且这些限制没有正式的文档。内部数据限制FnAttribute (现在记录在C ++标头中)如下:

  • 数据属性 (int,float,double,string):
    • 值计数(每个时间样本):[0,263]
    • 时间采样计数:[0,213]
    • 元组大小:[0,216]
  • GroupAttribute
    • 儿童人数:[0,228]

OpScript现在可以检查和创建2个以上的属性27使用新的时间采样值getSamples()方法;在任何数据属性上可用。返回的“样本访问器”对象getSamples()支持检查时间样本数据的只读视图,并支持创建样本缓冲区的可变副本以处理现有数据。完整的文档可在Katana开发人员指南,但一个人为的示例如下:

本地myIntAttr=接口GetAttr('myAttr') local newSamples = {} for _, sample in ipairs(myIntAttr:getSamples()) do -- Create a mutable copy of the sample buffer local buffer = sample:toArray() for i, elem in ipairs(buffer) do buffer:set(i, elem * 2) end local t = sample:getSampleTime() newSamples[t] = buffer end Interface.SetAttr“ myAttr”整数属性newSamples)) 

为了向后兼容, myDataAttr:getNearestSample(时间)继续以Lua表的形式返回时间样本的副本,并且最大值为227价值观。请注意getSamples() API需要新的基于LuaJIT的OpScript后端,并且在旧式Lua 5.1后端中不可用。

性能改进

应用程序启动,用户界面交互和空闲CPU使用率的性能已通过优化Katana事件系统并删除实例Katana轮询事件。

通过使用内存映射的I / O,基于Ogawa的Alembic读取的性能也得到了提高。

新的功能

ProfilingMockRenderer

  • 现在随附了一个新的示例渲染器插件KatanaProfilingMockRenderer。该插件不渲染图片。相反,其目的是为了Katana的场景图从渲染器插件的上下文扩展,实现了用于访问场景图位置数据的不同遍历策略。该插件的源代码位于插件/ Src /

    作为添加的一部分ProfilingMockRenderer例如,现有的渲染器插件的页面Katana开发人员指南分为两部分: 总览渲染API。新插件记录在名为的新部分中分析模拟渲染器

实验功能

显示器前缓冲器

实验性查看器图层,可显示来自监控标签已添加到查看器(九头蛇)标签。

设定KATANA_EXPERIMENTAL_MONITOR_OVERLAY一个环境变量Katana发射环境1, 一种显示器前缓冲器切换的菜单项已添加到选项卡的视图菜单。什么时候查看>显示器前缓冲区启用后,图像层将插入选项卡的查看器层中,该图像层显示目录项目的像素数据,该数据显示为Katana监控标签。