02:快速掌握kanzi的文件管理

用户头像
其他/设计爱好者/64天前/359浏览
02:快速掌握kanzi的文件管理
一、kanzi的工程文件说明
1、Kanzi Studio 目录
在kanzi安装完成后,系统会创建工作区目录,如D:\KanziWorkspace3_9。在D:\KanziWorkspace3_9中,文件夹结构如下:
02:快速掌握kanzi的文件管理(图ZNDAyODQ5MTk2) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
安装目录文件夹
Collect
  • Assets目录包含 RuntimeAssets 和 kzuiassets 两个 Kanzi Studio 项目。RuntimeAssets 用于为引擎默认着色器和材质生成二进制着色器,减少启动时的编译时间;kzuiassets 用于为 3D 文本渲染生成二进制着色器,优化 3D 文本的渲染性能。
  • Engine目录包含 Kanzi Engine 二进制文件:
  1. applications目录包含 kzb 播放器的源代码,用于在目标平台加载和运行 kzb 文件,可用于预览验证或作为构建自定义应用的参考。
  2. cmake目录中包含使用 Kanzi Engine 构建项目的 CMake 配置文件。
  3. configs目录包含使用 Kanzi Engine 构建项目的配置文件。
  4. include目录包含 Kanzi Engine 的 .h 和 .hpp 的头文件。
  5. lib目录包含每个平台的 Kanzi Engine 二进制库,以及用于使用 Kanzi Engine 构建项目的 CMake 配置文件。
  6. libraries目录包含 Kanzi Engine 所需的第三方库。
  7. scripts目录包含为不同平台构建 Kanzi 应用的脚本。
  • Examples目录包含 Kanzi 示例项目,展示了某些 Kanzi 功能的运作方式。
  • Projects目录是Kanzi Studio创建项目的默认位置。
  • Templates目录包含你可以作为 Kanzi 应用程序编程起点的模板。
  • Tutorials目录包含 Kanzi 教程的项目和资源。
2、创建kanzi工程
02:快速掌握kanzi的文件管理(图ZNDAyODQ5MjAw) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
创建工程
Collect
打开 Kanzi Studio,在启动时的窗口点击
New Project
。选择创建工程的路径。根据需求在
Template中
选择工程类型。随后点击Create即可创建kanzi工程。
创建后的
工程位置
如图所示:
02:快速掌握kanzi的文件管理(图ZNDAyODQ5MjA0) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
工程位置
Collect
工程的template类型分为:
  • Kanzi Studio project:只做渲染、不写代码逻辑
  1. 只创建 Tool_project,没有 C++ 应用代码。
  2. 适合纯 Studio 逻辑。
  • Application:应用程序模板创建 Kanzi Studio 项目,使用 Kanzi Engine 应用程序
    会创建:
  1. Application 目录:包含 C++ 应用的结构和模板代码。
  2. Tool_project 目录:Kanzi Studio 工程。
适合要用 C++ / Kanzi Engine API 写逻辑的应用。
  • Application with Kanzi Engine plugin:带有 Kanzi Engine 插件.
会创建:
  1. Application:包含 C++ 应用 + 原生 Engine 插件模板代码。
  2. Tool_project:Kanzi Studio 工程。用于需要自定义组件、扩展 Engine 功能的场景。
  • Application with data source plugin:带有数据源插件模版
会创建:
  1. Application:包含 C++ 应用 + 数据源插件模板代码。
  2. Tool_project:Studio 工程。
  • Android application:Android 应用模版
创建基于 Kanzi Android framework 的工程(含 Gradle 工程),用于 Android 目标平台。
  • Android application with Java plugin:带有 Java 插件模板的 Android 应用
会创建:
  1. Application:Android 应用 + Java 插件的工程结构与模板代码。
  2. Tool_project:Studio 工程。
3、kanzi工程文件结构介绍
kanzi工程的文件结构如图所示:
02:快速掌握kanzi的文件管理(图ZNDAyODQ5MjA4) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
工程结构
Collect
如果创建kanzi工程时,只选择
“Kanzi Studio project”
模板(只做渲染,不带引擎应用),则
不会
有 Application 目录,因为该类型项目不包含应用程序代码,只用于资源和场景编辑。
3.1 Tool_project:Kanzi Studio 工程部分
02:快速掌握kanzi的文件管理(图ZNDAyODQ5MjEy) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
Tool_project目录结构
Collect
Tool_project 目录中包含 UI 工程和资源文件,是导出 kzb 的来源。这些目录在 Kanzi Studio 中对应 Library 面板下的 “Resource Files”,Studio 会自动与磁盘目录同步。其中主要包含这些内容:
  • 工程文件(
    kzproj
    ),描述项目中的节点、资源、属性设置等。文件内容为XML 格式,是在 Kanzi Studio 里打开和编辑的主文件。
  • 3D Assets,存放导入的 3D 资源文件(如 FBX 等)。Kanzi 会从这些文件中提取网格、动画等,在导出 kzb 时只导出提取后的数据,不直接导出原始 3D 文件。
  • Images,存放导入的图片文件(PNG、JPG 等),用于纹理、2D 图像等。
  • MeshData,存放导入的 3D 网格数据。
  • Scripts,存放脚本文件。
  • Fonts,存放字体文件(ttf/otf 等),用于文本渲染。
  • Shaders,存放着色器文件。
  • Generic,存放 Kanzi 不识别为 3D、图片、字体或 shader 的其他文件。Kanzi 不对这些文件做处理,但会原样打包进 kzb,可供插件或自定义逻辑在运行时从 kzb 中读取。
  • Temp,存放临时文件和缓存目录。
3.2 Application:应用程序代码部分
02:快速掌握kanzi的文件管理(图ZNDAyODQ5MjE2) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
Application目录结构
Collect
当用Application、Application with data source plugin、Application with Kanzi Engine plugin的kanzi模板创建工程时,会自动生成 Application 目录。有应用程序代码开发相关使用者需要了解Application中的这些内容:
  • bin,存放从 Tool_project 导出的 kzb 文件和应用配置文件。这是运行时加载 UI 内容的地方。
  • cmake,存放 CMake 构建配置的辅助脚本。
  • configs,存放针对不同平台的构建配置文件(例如 Windows/Android 等)。
  • src,C++ 应用源码目录。这里实现应用逻辑、与 Kanzi Engine API 交互等。
  • CMakeLists.txt,用于 CMake 生成 Visual Studio 解决方案的脚本,描述如何编译链接 Kanzi 应用。
  • generate_cmake_vs<Version>_solution.bat,生成 VS 工程的批处理脚本,例如 generate_cmake_vs2019_solution.bat。
  • build_vs<Version>,运行生成脚本后出现,里面是 Visual Studio 解决方案和工程文件。
3.2.1 关于Application中源码编译和开发环境的说明
  • Visual Studio (Windows):在 Windows 平台上,Kanzi 应用通常使用 Microsoft Visual Studio 进行代码编写、编译和调试。上述的 .bat 脚本和 build_vs* 目录就是为此准备的。需要预先安装 Visual Studio(2017、2019、2022) 和 C++ 开发组件。
  • 其他平台 (例如Android):构建过程略有不同。需要使用 CMake 命令,并指定对应的构建配置(在 configs/ 中)来生成适用于 Android Studio (Gradle/NDK)的项目。
  • 核心流程:无论使用哪种开发环境,基本流程都是:编辑 src/ 下的源码 -> 使用 CMake 生成对应平台的工程 -> 在生成的工程中编译 -> 运行生成的可执行程序。
二、kanzi的导出文件说明
1、什么是kzb?
kzb 文件
是 Kanzi Studio 项目的二进制打包结果,运行 Kanzi 应用必须先把项目导出为 kzb。导出的kzb文件默认放在<ProjectName>/Application/bin,或你在 Project > Properties > Binary Export Directory 里设置的目录。Kanzi 会把 kzb 中的内容加载到内存和 GPU,需要渲染时再使用这些资源。
.kzb.cfg
文件
.kzb.cfg 文件的主要作用是列出并配置应用要加载的 kzb 文件,相当于“kzb 清单/配置文件”。
kzb 的内容和大小取决于项目以及导出配置,一般会包含:
  • 属性类型(Property types)
  • 渲染通道 prefab(Render pass prefabs)
  • 资源字典(Resource dictionaries)
  • 资源文件(图片、着色器等,3D 资产文件本身不导出,只导出从中导入的网格、动画等)
  • 状态机(State managers)
  • 样式(Styles)
  • 标签(Tags)
  • 纹理(Textures)
  • 主题(Themes)及其资源(可作为主题资源包单独导出)
注意
  • 描述信息(Description 属性)不会导出到 kzb,只用于项目文档。
2、主 kzb 与资源包
2.1 主 kzb
使用菜单 File > Export > Export KZB 导出主 kzb。
  • 默认导出到项目属性里的
    Binary Export Directory
    指定目录。
  • 默认包含整个项目内容(除被标记为单独打包的主题/本地化资源等)。
Screen 节点是否导出到 kzb 会影响该 kzb 能否作为启动 kzb 使用
  • Screen 的
    Disable KZB Export
    关闭(默认):kzb 中包含 Screen,可作为应用启动 kzb。
  • 打开:kzb 不含 Screen,只能在运行时由已有 Screen 的应用动态加载。
2.2 主题资源包
主题资源包是只包含某个 Theme 资源的 kzb,用于减小主 kzb、按需加载或在有限存储/内存下切换主题。
  • 非 baked 主题 + Theme packs
    主 kzb:包含节点树和所有主题共用资源。每个被勾选导出的 Theme:生成一个独立 kzb,只含该 Theme 使用的资源(不含共用资源)。目录结构:主 kzb:<Project>/Application/binTheme packs:<Project>/Application/bin/Theme_packs
  • Theme pack 文件名 = Theme 名。
  • baked 主题 + Theme packs(Theme Group 级)
烘焙主题就是把 Theme 选择在导出时固化进 kzb,使节点直接引用最终资源,从而换取更低内存和更好性能,但失去在不加载新 kzb 的前提下自由切换主题的能力。
  当 Theme Group 启用
Export Baked Usages
并使用 “Export Baked Theme Binaries” 导出时,
  • 为每个被导出的 Theme Group 生成一个主 kzb:包含应用节点树 + 多个 Theme 共用资源。路径:<Project>/Application/bin/<ThemeGroupName>=<BakedThemeName>
  • 为 Theme Group 中每个被勾选导出的 Theme 生成一个 Theme pack:只含该 Theme 独有资源。路径:<Project>/Application/bin/<ThemeGroupName>=<BakedThemeName>/Theme_packs文件名 = Theme 名。
3、kzb文件的导出方式
02:快速掌握kanzi的文件管理(图ZNDAyODQ5MjIw) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
如何导出演示
Collect
  • Export KZB
    :导出主 kzb 文件。可通过命令参数控制是否将主题和本地化资源单独导出为资源包,以及是否同时导出 XML 版本的 kza 文件。
  • Export Baked Theme Binaries
    :导出 baked 主题相关的 kzb。根据 Theme Group 设置,可生成单个完整应用 kzb,或 "Theme Group 主 kzb + Theme packs" 组合(主 kzb 含公共资源,Theme packs 含各主题专用资源)。
  • Export Descriptions
    :导出项目中 Description 文本到一个 txt 文档(仅文档用途,不进 kzb)。
  • Export as KZB Player for Windows
    :从项目导出 kzb 文件,再用内置的 kzb Player 打包成一个可直接运行的 Windows exe 应用。
可以
自定义导出内容
:在 Project > Properties > Binary Export 中配置导出行为(如网格优化、图片处理、着色器源码导出等)。对于不需要的节点或资源,可在其 Properties 中启用 "Disable KZB Export" 属性,将其从 kzb 中排除。
4、kzb文件使用方法
  • 在 Windows 上预览 kzb(kzb Player)
当使用Export as KZB Player for Windows方法导出kzb后,生成的应用默认位于Tool_project\Application Player文件夹中,有 exe 文件,双击即可在 Windows 上运行。如图所示:
02:快速掌握kanzi的文件管理(图ZNDAyODQ5MjI0) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
运行windows的可执行程序
Collect
exe 文件运行失败常见原因:缺少运行时依赖库:需要安装 Microsoft Visual C++ 或 Java 插件路径问题:使用 Java 插件时,需将 JDK 的 bin 和 bin/server 目录加入 PATH 环境变量。
  • 应用启动时,Kanzi 根据配置加载指定的 kzb:
  1. 在 application.cfg 中:BinaryName = "my_application.kzb"    
  2. 加载流程1:
2.1 Kanzi 引擎启动时自动查找 application.cfg
2.2 解析配置文件获取 BinaryName 值
2.3 加载指定路径的 KZB 文件
2.4 反序列化二进制资源到内存
02:快速掌握kanzi的文件管理(图ZNDA1NTY0MTY0) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
加载流程图
Collect
3. 加载流程2:
3.1  或在 C++ Application::onConfigure 中:configuration.binaryName = "my_application.kzb";    
3.2 Kanzi 运行时初始化
3.3 创建 Application 实例
3.4 调用 onConfigure() ← 开发者可在此设置 binaryName
02:快速掌握kanzi的文件管理(图ZNDA1NTY0MTY4) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
加载流程图
Collect
5、kza文件
kza 是 kzb 的 XML 版本,Kanzi 可以在导出 kzb 时,同时生成一个 .kza 文件,它是同一项目内容的 XML 形式表达,用于查看和分析。与 kzb 内容对应,只是以 XML 形式存储项目中的节点属性等,用于阅读和比较,而不是运行时加载。
KZA文件导出方法
  • 菜单栏:Edit → User Preferences
  • 在Advanced中找到"Create XML version (kza) of kzb file"并勾选。
即可在导出kzb文件时同时导出kza文件,kza文件与kzb文件同目录。
示例
:当在kanzi studio中的Screens/Screen/RootPage/Viewport 2D/下添加了一个Text Box 2D节点
02:快速掌握kanzi的文件管理(图ZNDAyODQ5MjI4) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
kanzi工程示例
Collect
导出kza的XML文件中,可以清楚的看到节点节点的基本信息以及属性。描述了这个文本框节点,显示 "Hello world",字体大小 36,宽度 400,位置 (317, 321),水平内边距 20,垂直内边距 10。
如下图所示:
02:快速掌握kanzi的文件管理(图ZNDAyODQ5MjMy) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
kza文件示例
Collect
三、
kanzi工程的application.cfg配置说明
1、application.cfg文件作用
application.cfg 是 Kanzi 应用的配置文件,用来在
不改 C++ 代码、不重新编译
的情况下,设置应用启动和运行时的一系列参数。当你启动 Kanzi 应用时,应用会根据application.cfg中的参数配置你的应用。
2、application.cfg文件使用方法
在工程对应目录创建或编辑 application.cfg,按“键 = 值”的形式写入配置项。当application.cfg不存在/配置项缺失时,Kanzi引擎会使用系统默认配置/C++代码中Application::onConfigure设置的值。
  • 如果是一个没有 C++ 应用程序的 Kanzi Studio 项目,文件在<ProjectName>/Application Player中。  默认定义了如下配置:
02:快速掌握kanzi的文件管理(图ZNDA1NTY0MTcy) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
设置application.cfg
Collect
SurfaceClientAPI = "gl":指定渲染使用 OpenGL 作为图形 API。
GraphicsContextAPI = "wgl":在 Windows 上使用 WGL 作为 OpenGL 上下文创建方式。
FontEngine = "freetype":启动时加载 FreeType 字体引擎 来渲染文字(这是默认字体引擎)。SurfaceColorSpace = "srgb":把渲染表面的颜色空间设为 sRGB,配合 线性颜色工作流 使用,由 Kanzi 负责线性↔sRGB 转换。
ModuleNames = "kztargetpreview":启动时加载名为 kztargetpreview 的插件模块(ModuleNames 用来列出要加载的插件名)。
  • 如果带有C++应用的Kanzi Studio项目,文件在<ProjectName>/Application/bin中。应用启动时会自动读取同目录下的 application.cfg,其中的设置会
    覆盖
    C++ 中 Application::onConfigure 里设置的值。(仅对应相同配置项才会覆盖,未配置项仍使用代码中的默认值)  示例:  在Application/bin中,默认定义了如下配置:
02:快速掌握kanzi的文件管理(图ZNDA1NTY0MTc2) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
默认的application.cfg
Collect
典型的 8‑8‑8 颜色格式(每个颜色通道 8 位),提高颜色精度;如果想让平台自己决定,可以把这些值设为 "unspecified"。
3、application.cfg的常用配置
application.cfg的常用配置包括:
  • 窗口位置和大小:
    WindowWidth, WindowHeight, WindowX, WindowY, WindowOrder
    控制应用窗口在屏幕上的位置(左上角坐标)和尺寸,以及窗口的 Z 顺序(Z-order,在多窗口/多应用时谁在最上层)。
  • 抗锯齿:
    SurfaceSamplesAntialiasing = 4(整应用的 MSAA 采样数,如0、2、4、8),0为关闭抗锯齿。
    设置整个应用使用的多重采样抗锯齿样本数,例如 4 表示 4x MSAA,提升边缘平滑度,但会增加显存和带宽消耗。
  • 图形后端选择(Windows):
    SurfaceClientAPI = gles|gl,GraphicsContextAPI = wgl|egl|glx
    在 Windows 上选择使用 OpenGL ES 还是 OpenGL,以及使用哪种上下文 API(WGL/EGL/GLX),方便在 PC 上模拟目标平台或切换驱动栈。
  • 性能监控与帧率控制:
    LogOpenGLInformation、PerformanceInfoLevel、MaximumFPS
LogOpenGLInformation:启动时打印 GL vendor/renderer/version 等信息,便于确认 GPU 和驱动环境。
PerformanceInfoLevel:控制是否显示 FPS/完整性能 HUD,用于调试和分析性能瓶颈。
MaximumFPS:限制最大帧率(0=不限制,默认 60)。常见值 30/60,按性能消耗或流畅度需求选择。
  • 图形日志:
    GraphicsLoggingEnabled, LogOpenGLExtensions, LogOpenGLInformation
GraphicsLoggingEnabled:输出每个图形 API 调用,适合深入调试渲染问题(但会明显影响性能)。
LogOpenGLExtensions:启动时打印支持的图形扩展列表,方便确认硬件特性。
LogOpenGLInformation:打印基础 GL 信息(厂商、渲染器、版本、着色器语言版本)。
  • 渲染质量与颜色相关:
    SurfaceBitsRed / Green / Blue / Alpha、SurfaceColorSpace
SurfaceBitsRed/Green/Blue/Alpha:设置颜色和 Alpha 通道的位数(如 8-8-8-8),在画质和带宽/显存之间做权衡。
SurfaceColorSpace:选择输出色彩空间(如 "srgb"线性工作流,自动转换、"legacy"传统非线性工作流,无自动转换、"passthrough"直通模式,需自定义转换),决定 Kanzi 是否做线性工作流和自动 gamma 转换。
  • 资源加载与部署:
    DeploymentQueueBudget、LoadingThreadCount、MaxPendingResources
DeploymentQueueBudget:限制每帧在主线程用于“把资源部署到 GPU”的时间预算,平衡加载速度和 UI 流畅度。
LoadingThreadCount:设置后台加载资源使用的线程数,利用多核 CPU 加快纹理/网格/Shader 等从磁盘到内存的加载。(0代表禁用并行,大于0代表后台线程数)
MaxPendingResources:限制“已由加载线程处理但尚未部署到 GPU”的资源数量上限,在加载速度和峰值内存占用之间做平衡。
点击 Studio 主菜单中的Help > Documentation,即可查看对应版本的kanzi官方文档资料。
4
Report
|
收藏
Share
相关推荐
评论
用户头像
in to comment
Add emoji
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
推荐素材
You may like
相关收藏夹
大家都在看
Log in