Kanzi 3.4 发行说明¶
新增功能¶
以下功能是 Kanzi 3.4 中的新功能:
支持 OpenGL ES 3.0
Kanzi 现在支持 OpenGL ES 3.0。这使您可以:
使用 HDR 图像和 .hdr、.exr 和 .dds 文件格式的环境贴图。
在一个渲染通道中使用多个颜色附件。
在材质类型中对颜色 uniform 使用颜色空间设置。
使用 raw 格式的图像作为纹理。
Kanzi Lite
您可以使用 Kanzi Studio 创建项目并导出用于 Kanzi Lite 项目的 kzb 文件。Kanzi Lite 允许您为专有图形后端开发 Kanzi 应用程序。
功能改进¶
对 Page 节点和 Pages 窗口的改进:
Page 节点现在被拆分为两个节点:Page 和 Page Host 节点。这显著改善了过渡逻辑。
Transitions 现在是 Pages 窗口的一个组成部分。这使您能够在一个空间中处理应用程序的用户界面流程。
在 Library 中,Page 和 Page Host 节点之间的转换现在是您可以访问的资源。这使您能够创建可重用的转换。
在 Pages 和 State Transition Editor 窗口中缩放时,会在指针位置进行缩放。
绑定改进:
除 MOD 功能外,还添加了 REM 功能,这样您可以控制计算的舍入:
当遇到错误时,Binding Editor 现在提供了更多详细信息。
请参阅 使用绑定。
Kanzi 现在使用四元数进行旋转,而不是矩阵。四元数的主要优点是它们提供了一种更一致的方式来描述旋转,避免万向节锁,并允许在任意旋转之间定义插值。此更改影响:
用于创建转换的绑定表达式语法。请参阅 Bindings expressions 参考。
在 Set Property 操作中,您不能再使用 Rotation X、Rotation Y 或 Rotation Z。
在 Properties 中,您无法将变换编辑为矩阵。
旋转的触发条件不再可用。
对动画系统的改进:
在 Kanzi Engine API 中添加了剪辑、播放模式和重复功能。请参阅 Timeline 和 使用 Kanzi Engine API 配置时间线。
您现在也可以在 Kanzi Studio 中使用新的 Kanzi 动画系统。新的动画系统更加灵活、高效、稳健、易于使用,并使您能够创建旧动画系统无法创建的动画。如果您的项目不受新动画系统当前缺陷的影响,请使用新的动画系统。请参阅 已知问题。
您可以通过设置 Animation System 属性,在 Project > Properties 中的 Kanzi Studio 中选择要使用的动画系统:
Default 将项目设置为使用旧的动画系统。
Experimental 将项目设置为使用新的动画系统。
您现在可以在运行时在 OpenGL 和 OpenGLES 之间切换。请参阅 图形库。
Kanzi 现在使用 glslang 进行着色器验证。
Kanzi 现在支持 ETC2 压缩。请参阅 压缩纹理。
对于 Render Target Texture,您可以使用 Automatic 设置来根据使用该节点的大小设置 Render Target 的大小。请注意,您尚不能在 Render Pass Prefab 中使用此功能。请参阅 使用渲染目标纹理。
在 Preview 中为 Node tool 添加了捕捉功能。请参阅 在 Preview 中编辑您的应用程序。。
对于状态转换,您现在可以配置 Back、Elastic、Exponential 和 Power 缓动函数的参数。请参阅 配置缓动函数。
在本地化应用程序时,除了标准语言环境名称之外,您现在还可以使用任何字符串作为地区名称。请参阅 使用 locales。
您现在可以在 Properties 中使用上下文菜单创建新的属性类型。
通过移除冗余系统属性信息来优化 kzb 文件的大小。
这些项的新设计:
New Project 对话框
Quick Start 对话框
默认背景图像
下拉菜单
更改¶
Kanzi 库现在仅适用于 Visual Studio 2013 和 2015。请参阅 Kanzi 库。
Kanzi Studio 现在使用 .NET Framework 4.6.1。
将 IMG 包装器更新到 IMG SDK 4.0。
iMX6、Linux x86、Linux ARM 和 ARM HF 平台配置及素材库现在通过独立协议提供。
Preview 工具默认设置中的 Node tool 现在是局部空间。
API 更改¶
为滚动视图和列表框节点添加了多点触摸支持。
添加了多点触摸支持以缩放滚动视图节点。
添加到了脚本函数 removeLocalValue、goToState、goToPreviousState、goToNextState、trySetFocus。
新的
TextureAPI。重构了
Node2D类中的组合 API。改进了合成渲染目标的内存分配。
优化了
Node2D类及其派生类的内存。Node2D和Node3D类现在使用SRTValue2D和SRTValue3D来描述变换,而不是 Matrix3x3 和 Matrix4x4。将消息参数 API 转换为 C++。此功能的 C API 不再可用。
更改了消息类型声明 API。现在要求您使用固定字符串。
元类需要使用固定字符串。
将 libPNG 库更新到了 1.6.21。
向 Text Block 节点添加了 Word Wrap 和 Constrain Content Height 属性。
为 3D 列表框节点添加了数据列表项生成器。
添加了节点的透视变换。
默认情况下,焦点设置在 Screen 节点上。
当任意按钮节点有焦点时,现在默认从数字键盘上的键盘按键 Space、Enter 和 Enter 接收输入。
文档 (Documentation)¶
添加了教程,显示如何使用 JavaScript 脚本为您的 Kanzi 应用程序创建演示模式。
添加了教程,显示如何使用 Page 和 Page Host 节点。
添加了教程,显示如何在 Kanzi Studio 中使用状态管理器和 State Tools。
修订了本地化教程。现在有两个教程:
要了解如何使用本地化和国际化功能来本地化应用程序,请参阅 教程:本地化您的应用程序。
添加了 Kanzi Studio 插件接口的文档,以展示如何使用状态管理器和资源字典。请参阅 Kanzi Studio 插件 API 参考。
改进了涵盖状态机的内容。请参阅 状态机 (State Manager)。
在 Kanzi Studio 中的修复¶
当您现在调整 Preview 的大小时,它会保持内容居中。
当您重新加载数据源插件时,Kanzi Studio 现在显示数据源属性的更改。
Kanzi Studio 现在在所选节点的范围内列出了 Navigate to Page 操作中可用的别名。
修复了当 Kanzi Studio 崩溃时导致着色器被覆盖的问题。
修复了无法对从 .fbx 文件导入的内容进行蒙皮支持的问题。
修复了一个问题,该问题阻止 Kanzi Studio 在项目名称中使用非 ASCII 字符时,使用 Kanzi Engine 插件创建项目。
Kanzi Studio 现在可以正确显示具有透明度的调色板图像。
单击 State Transition Editor 中的 Apply 按钮不再关闭 State Transition Editor。
修复了无法将文本类型属性的值设置到 Text Block Text 属性的问题。
修复了在 Node Tree 中 按 Alt 并右键单击 节点时,阻止 Kanzi Studio 在创建上下文菜单中显示 Alias 的问题。
修复了取消 .psd 文件导入时导致删除该文件的问题。
修复了无法在着色器编译器路径中使用引号的问题。
修复了几个错误,显著改进了 Preview 和 Kanzi Studio 的稳定性。
在 Kanzi Engine 中的修复¶
修复了导致多个 kzb 文件中的 ResourceManager.setDefaultMemoryStrategy(OptimizeMemory) 失败的问题。
修复了导航逻辑中默认子页面行为的问题。
修复了导致 tryAcquireResource 对缺失文件的 file:// URL 抛出异常的问题。
修复了导致 Scroll View 节点冻结的问题。
修复了自定义消息无法工作的问题。
修复了与 FreeType 素材库相关的泄漏。
修复了 setForegroundBrush 无法进行两次颜色设置的问题。
修复了渲染器中的泄漏。
现在可以在将材质着色器附加到材质笔刷中时正确部署。
修复了导致无法应用混合的问题。