Kanzi 3.9.9 发行说明

Kanzi Engine Lua API

Kanzi Engine Lua API 是一个使用 Lua 编程语言的 Kanzi Engine 的平台无关接口。它允许您在 Kanzi Studio 中创建应用程序和用户界面逻辑。

要学习如何使用 Kanzi Engine Lua API:

动画 (Animations)

  • 要在 Animation Clip Editor 中设置贝塞尔曲线插值,现在您可以为一个或多个贝塞尔控制柄输入精确值。请参阅 设置关键帧之间的缓动函数。

    ../../_images/animation-clip-editor-edit-bezier-handles.png
  • 在 Kanzi Studio 用户首选项中,您现在可以选择是要相对于关键帧还是 Animation Editor 网格捕捉关键帧贝塞尔手柄。

    ../../_images/animation-clip-editor-relative-snap.png

绑定 (Bindings)

您现在可以将布尔型、整数型、浮点型、向量、颜色和矩阵类型用作以下任意参数:

Kanzi Studio 预览

  • 在 Preview Analyze 模式中,引入了:

    • 线框可视化

      ../../_images/preview-analyze-wireframe.png
    • 网格顶点法线的可视化

      ../../_images/preview-vertex-normals.png
    • 改进了 Spot Light 和 Directional Light 节点的可视化效果。

      ../../_images/preview-light-debug-visualizations.png

    请参阅 在 Preview 中分析您的应用程序。

  • 在预览中使用 Camera tool 时,要选择或取消选择 3D 节点,请按住 Ctrl 并单击鼠标左键。

  • 在 Preview 中使用 Node tool 时,要访问 Camera tool,请按住 Alt。

  • 您现在可以为每个 Kanzi Studio 项目设置预览背景颜色。请参阅 设置 Preview 的背景颜色。

    ../../_images/project-properties.png ../../_images/properties-project-preview-background-color.png

Kanzi Studio 可用性

  • 在 Kanzi Studio 中改进了工具提示:

    • 您现在可以从工具提示中访问功能和 Kanzi Engine C++ API 参考文档。

      ../../_images/enhanced-tooltips-create.png ../../_images/enhanced-tooltips-property.png
    • 工具提示现在显示默认和自定义 Kanzi Studio 快捷键。有关默认快捷键列表以及如何设置自定义快捷键,请参阅 Default shortcut keys。

      ../../_images/tooltips-shortcut-keys.png
    • 您现在可以在工具提示中复制 Kanzi Engine 属性类型名称。

      ../../_images/tooltip-copy-property-name.gif
  • 改进了 Kanzi Studio 中的着色器错误报告:

    • 当着色器源文件包含错误时,Kanzi Studio 现在:

      • 用红色标记着色器和使用该着色器的项目。

      • 在工具提示中显示编译错误消息。

      ../../_images/shader-source-file-errors.png
    • 当您在 Shader Source Editor 中打开包含错误的文件时,Kanzi Studio 会突出显示出现该错误的行。

Kanzi Studio 用户设置文件

Kanzi Studio 现在创建一个 kzproj.user 文件,以独立于主项目文件管理用户设置:

  • 主 kzproj 文件独立于用户设置文件运行。

  • 默认情况下,项目模板中的 .gitignore 文件会忽略 kzproj.user 文件。

  • 存储在 kzproj.user 文件中的设置包括窗口中项目的选择、项目的展开状态和组合选项卡。

项目模板

Kanzi Studio 项目模板现在包括 .gitignore 文件,这些文件使 Git 版本控制系统忽略不属于 Git 仓库的临时文件和工作文件。

渲染 (Rendering)

您现在可以将 Box 和 Sphere 节点用作天空盒。请参阅 使用环境立方体贴图纹理。

触发模板

在 Kanzi Engine C++ API 中,添加了 TriggerTemplate 的接口,使您能够向触发器模板添加操作和条件。

窗口管理 (Windowing)

  • 对于 Wayland 后端,添加了忽略合成器发送的 frame() 事件并立即处理输入的选项。如果合成器未正确发送 frame() 事件,这将非常有用。请参阅 Wayland 输入模式。

  • 您现在可以以编程方式设置 QNX Screen 属性的使用标志。请参阅 QnxUsageFlags。

Kanzi Engine C++ API

引入了用于创建圆锥网格的 generateCone 函数。

Kanzi Java API

Kanzi Android framework (droidfw)

Kanzi Android framework (droidfw) 现在默认将来自 Android Automotive 旋转控制器的输入事件转换为 Kanzi 导航键事件。这允许用户使用旋转控制器导航可聚焦节点。请参阅 处理来自 Android Automotive 旋转控制器的输入。

布尔值到字符串的转换

所有从布尔值到字符串的转换现在都将结果为小写的 “true” 或 “false”。请参阅 布尔值到字符串转换的更改。

Kzb 版本 (Kzb Version)

将 kzb 文件格式版本更改为 27.1。

文档 (Documentation)

显著修复

Kanzi Engine

  • 修复了导致 Kanzi Engine 在并行活动主机或独占活动主机中激活的活动尝试使用 On Attached trigger 自行停用时终止或行为不正确的问题。(SDK-9148)

  • 修复了当 kzCameraNormalMatrix uniform 具有平移组件时,getCameraNormalMatrix 着色器统一绑定函数返回不正确矩阵的问题。(RENDERING-570)

  • 在 2D 节点中,在第一次布局传递之前,Actual Width 和 Actual Height 属性现在被正确设置为 0.0 而不是 inf。(RENDERING-589)

  • 修复了在运行时更新 Blend Mode 属性值时导致 Kanzi 在 2D 节点中使用错误混合模式的问题。(RENDERING-597)

  • 修复了导致 Kanzi 在 GPU 资源失效后无法重新加载渲染目标 Texture 的问题。(RENDERING-669)

  • 修复了在数据触发器条件表达式中使用简单数据源绑定时导致 Kanzi Engine 终止的问题。(SDK-8984)

  • 修复了一个问题,该问题阻止 Kanzi 渲染之前未使用内容纹理渲染的 Texture Brush 的内容纹理。(RENDERING-683)

  • 修复了 Texture Brush 渲染中的问题,该问题导致 Kanzi 忽略 Brush Vertical Tiling 和 Brush Horizontal Tiling 属性值的更改。(RENDERING-675)

  • 修复了导致 kzWindowSize uniform 在其绝对大小小于帧缓冲区大小时不等于屏幕节点大小的问题。(RENDERING-415)

  • 修复了导致 Kanzi 错误地为不支持任何二进制着色器格式的目标平台禁用着色器二进制缓存的问题。着色器二进制缓存仅需要着色器二进制程序。(RENDERING-693)

  • 修复了导致 Kanzi 应用程序的调试版本在执行期间发生 C++ 异常时突然终止而不显示错误消息的问题。(SDK-9259)

  • 修复了导致基于 Kanzi Android framework (droidfw) 的应用程序在用户与没有内容的 KanziView 交互时终止的问题。此问题发生在应用程序启动期间。(ANDROID-516)

  • 修复了导致未处理的多点触控手势终止基于 Kanzi Android framework (droidfw) 的应用程序的问题。例如,当部分透明的 KanziView 后面的 Android 视图处理手势时,会发生这种情况。(ANDROID-467)

  • kzb Player 现在尝试通过处理 POSIX 终止信号 SIGINT 和 SIGTERM 来优雅地终止,而不是被操作系统终止。(RENDERING-720)

  • 在早期版本的 Kanzi 中,在某些情况下,在 2D 节点中设置画笔属性不起作用。Kanzi 在布局阶段确定了渲染画笔的需要,这导致只有在画笔中设置的属性值会影响渲染结果。

    例如,Kanzi 渲染失败:

    • 在节点中,将 Brush Color 属性值设置为不透明颜色的透明或完全不透明的颜色画笔。

    • 纹理画笔,其 Brush Texture 属性设置为 < No Texture >,或 Modulate Color 属性设置为透明颜色。

    现在,Kanzi 在渲染阶段做出画笔渲染决策,并考虑所有属性值来源。请参阅 画笔渲染的更改。

    (RENDERING-402, RENDERING-596, RENDERING-677)

  • 在以前版本的 Kanzi 中,激活多个变形目标有时会导致变形法线质量下降。为了改善法线,现在您可以使用 KANZI_SHADER_USE_MORPH_NORMAL_LIMIT 预处理器定义。请参阅 使用变形目标法线。(RENDERING-322)

  • 修复了在设置 Model3D::MeshProperty 时 Kanzi Engine 将变形权重重置为变形网格默认值的问题。请参阅 对变形权重的更改。(RENDERING-748)

  • 修复了导致 Kanzi 在触发器附加后忽略 TimerTrigger::IntervalProperty 的值更改的问题。(FOUNDATION-504)

  • 修复了图形格式配置中的以下错误:

    • 当您尝试使用 GraphicsFormatD24_UNORM 格式为纹理设置数据时,Kanzi 不再终止。

    • Kanzi 不再报告 ARGB 格式支持用作颜色附件。

    • Kanzi 不再报告 R16G16B16_UNORM 作为颜色附件支持的格式。

    (RENDERING-807)

  • 修复了在使用 BlurEffect2D 或 ShadowEffect2D 时,导致 Kanzi 在从挂起状态返回后终止的问题。(RENDERING-835)

  • 修复了导致 Kanzi 文件协议 file:// 在 Android 上无法加载以 ./ 开头的路径的文件的问题。(ANDROID-611)

Kanzi Studio

  • 修复了导致 Kanzi Studio 在导出和导入 kzb 文件时使用 Kanzi Engine Java 插件文件的绝对路径的问题。(ANDROID-380)

  • 修复了当您输入较高的数值属性时导致 Kanzi Studio 终止的问题。(SDK-9223)

  • 修复了在 100% 缩放的 Kanzi Studio 预览中导致 gl_FragCoord 和 kzWindowSize uniform 不正确的问题。(RENDERING-415)

  • 在 Kanzi 默认的基于物理的材质类型中,启用 KANZI_SHADER_RECEIVE_POINT_SHADOW 预处理器定义时,Kanzi Studio 不再无法为 PointShadowMap 自定义属性类型创建绑定。(RENDERING-626)

  • 修复了在创建多个 Default Effect Stack 预设时导致 Kanzi Studio 复制 2D 效果的 Enabled 属性的问题。(RENDERING-694)

  • 修复了通过按下 Shift 和 Alt 键,并按住并拖动鼠标左键来更改 Preview 缩放级别的功能。(PRODUCT-293)

  • 修复了在重命名用作消息参数的属性类型时导致 Kanzi Studio 终止的问题。(PRODUCT-278)

  • 修复了着色器处理中的几个问题:

    • Kanzi Studio 现在仅记录主要着色器编译的错误。这样,您会看到最相关的错误作为最后一个。

    • 当您添加、删除或编辑一个包含的着色器时,Kanzi Studio 现在会重新编译主着色器。

    • 当您撤销删除着色器源文件时,Kanzi Studio 现在会恢复该文件的最新内容。

    • 当 #include 指令使用尖括号语法时,Kanzi Studio 不再终止。

    (RENDERING-688)

  • 修复了阻止 Kanzi Studio 保留您粘贴为触发器的 Message Source 或作为操作的 Target Item 的绝对路径的问题。(PRODUCT-234)

  • 修复了在导入 Traditional Gauges 工厂内容资产时导致 Kanzi Studio 记录着色器解析错误的问题。(RENDERING-757)

  • 修复了一个问题,该问题可能导致在合并过程中意外关闭 Project Merge 工具。Kanzi Studio 现在会要求您确认是否要取消合并。(PRODUCT-232)

  • 修复了导致 Kanzi Studio 显示先前安装版本的 Kanzi Studio 的 Factory Content 资产包的问题。(PRODUCT-287)

  • 修复了一个问题,该问题阻止了 Preview 使用鼠标指针图标指示您可以将节点移动到 Grid Layout 2D 节点中的另一个单元格。请参阅 在 Grid Layout 节点中将节点分配到单元格中。(PRODUCT-338)

  • 修复了阻止 Kanzi Studio 在 Asset Packages 窗口中显示 Render Pass 图标的问题。(PRODUCT-341)

  • 修复了 Properties 窗口中的问题,该问题导致在关闭 Operations 菜单时展开的绑定会折叠。(PRODUCT-345)

  • 修复了 Node Components > Input Manipulators 中的问题,该问题阻止您使用箭头键在下拉菜单中选择值。(PRODUCT-317)

  • 修复了导致 Status Bar 在 Kanzi Studio 繁忙时无响应且变暗的问题。(PRODUCT-365)

  • 修复了在着色器中使用 samplerBuffer uniform 时导致 Kanzi Studio 终止的问题。(RENDERING-752)

  • Kanzi Studio 安装程序现在安装 Visual C++ Redistributable for Visual Studio 2015-2022,而不仅仅是 Visual C++ Redistributable for Visual Studio 2017。(SDK-9072)

Kanzi Java API

  • 修复了一个问题,该问题导致 Kanzi Java API 在相同的 C++ 对象先前被不同的 Java 引用访问过,并且没有使用显式关闭或 try-with-resource 块的情况下,偶尔为有效的 C++ 对象返回空的 Java 引用。(ANDROID-560)

另请参阅

Kanzi 3.9.9 迁移指南

已知问题