Kanzi 3.4 发行说明

新增功能

以下功能是 Kanzi 3.4 中的新功能:

  • 支持 OpenGL ES 3.0

    Kanzi 现在支持 OpenGL ES 3.0。这使您可以:

    • 使用 HDR 图像和 .hdr、.exr 和 .dds 文件格式的环境贴图。

    • 在一个渲染通道中使用多个颜色附件。

    • 在材质类型中对颜色 uniform 使用颜色空间设置。

    • 使用 raw 格式的图像作为纹理。

    请参阅 在 Kanzi 中使用 OpenGL ES 3.0+。

  • Kanzi Lite

    您可以使用 Kanzi Studio 创建项目并导出用于 Kanzi Lite 项目的 kzb 文件。Kanzi Lite 允许您为专有图形后端开发 Kanzi 应用程序。

功能改进

对 Page 节点和 Pages 窗口的改进:

  • Page 节点现在被拆分为两个节点:Page 和 Page Host 节点。这显著改善了过渡逻辑。

  • Transitions 现在是 Pages 窗口的一个组成部分。这使您能够在一个空间中处理应用程序的用户界面流程。

    ../../_images/page-transition-editor.png
  • 在 Library 中,Page 和 Page Host 节点之间的转换现在是您可以访问的资源。这使您能够创建可重用的转换。

    ../../_images/library-page-transitions.png
  • 在 Pages 和 State Transition Editor 窗口中缩放时,会在指针位置进行缩放。

请参阅 使用 Page 和 Page Host 节点。

绑定改进:

  • 除 MOD 功能外,还添加了 REM 功能,这样您可以控制计算的舍入:

    • REM 计算一个数值除以另一个向零四舍五入的数值后的余数。请参阅 rem(余数)。

    • MOD 计算模数,模数是使用模数同余函数将一个数值除以另一个数值之后的余数。请参阅 mod(模数)。

  • 当遇到错误时,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 将项目设置为使用新的动画系统。

../../_images/project-properties.png ../../_images/project-properties-animation-system.png

您现在可以在运行时在 OpenGL 和 OpenGLES 之间切换。请参阅 图形库。

Kanzi 现在使用 glslang 进行着色器验证。

Kanzi 现在支持 ETC2 压缩。请参阅 压缩纹理。

对于 Render Target Texture,您可以使用 Automatic 设置来根据使用该节点的大小设置 Render Target 的大小。请注意,您尚不能在 Render Pass Prefab 中使用此功能。请参阅 使用渲染目标纹理。

在 Preview 中为 Node tool 添加了捕捉功能。请参阅 在 Preview 中编辑您的应用程序。。

对于状态转换,您现在可以配置 Back、Elastic、Exponential 和 Power 缓动函数的参数。请参阅 配置缓动函数。

../../_images/configure-easing-functions.png

在本地化应用程序时,除了标准语言环境名称之外,您现在还可以使用任何字符串作为地区名称。请参阅 使用 locales。

../../_images/select-new-locale-name.png

您现在可以在 Properties 中使用上下文菜单创建新的属性类型。

../../_images/create-property-in-properties.png

通过移除冗余系统属性信息来优化 kzb 文件的大小。

这些项的新设计:

  • New Project 对话框

    ../../_images/new-project-dialog.png
  • Quick Start 对话框

    ../../_images/quick-start-dialog.png
  • 默认背景图像

    ../../_images/view-in-the-preview-position-and-zoom-reset.png
  • 下拉菜单

    ../../_images/appearance-create-color-brush.png

更改

  • 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。

  • 新的 Texture API。

  • 重构了 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 无法进行两次颜色设置的问题。

  • 修复了渲染器中的泄漏。

  • 现在可以在将材质着色器附加到材质笔刷中时正确部署。

  • 修复了导致无法应用混合的问题。

另请参阅

Kanzi 3.4 迁移指南

已知问题