创建项目

要创建一个项目:

  1. 在 Kanzi Studio 中,要么:

    • 在主菜单中,选择 File > New Project。

    • 在 Quick Start 窗口中,点击 New Project。

      当您打开 Kanzi Studio 或关闭项目时,Quick Start 窗口可用。如果 Quick Start 窗口不可见,要打开它,请在主菜单中选择 File > Show Quick Start。

      ../../_images/new-project.png
  2. 在 New Project 窗口中,设置:

    • 将 Name 更改为您想要用于项目的名称。

    • Location 到您想要创建项目的目录。

      如果您不想为项目创建目录,请取消选择 Create folder。

    • Template 到您想要创建的应用程序类型:

      • 要使用 Kanzi Engine C++ API 创建应用程序,请参阅 C++。

      • 要使用 Kanzi Engine Java API 创建适用于 Android 的应用程序,请参阅 Android (Java, Kotlin)。

      • To create only a Kanzi Studio project, see Kanzi Studio 项目.

    • 将 Materials 到您要导入到项目中的材料。请参阅 材质类型 (Material Types)。

    单击 Create。

    ../../_images/kanzi-engine-plugin-new-project.png

Kanzi Studio 创建一个项目。您可以在 Kanzi Studio Node Tree 中以及在您在 Location 中设置的目录中查看项目的结构。

../../_images/new-project-in-project-window.png

创建工程后,可以导入您在 Kanzi Studio 之外创建的 2D 和 3D 内容,并开始构建您的 Kanzi 应用程序。请参阅 教程。

您可以在 Kanzi Studio 中配置您的项目。请参阅 配置 Kanzi Studio 项目。

应用程序类型

C++

要使用 Kanzi Engine C++ API 创建应用程序逻辑, 在 New Project 窗口中,将 Template 设置为以下模板之一:

  • Application 模板创建一个带有 Kanzi Engine 应用程序的 Kanzi Studio 项目。

    使用此模板创建 Kanzi 应用程序,您可以使用 Kanzi Engine C++ API 创建应用程序逻辑。请参阅 教程:Hello world!。

  • Application with Kanzi Engine plugin 模板创建一个包含 Kanzi Engine 插件的 Kanzi Engine 应用程序的 Kanzi Studio 项目。

    使用 Kanzi Engine 插件扩展应用程序的 Kanzi 功能。请参阅 扩展 Kanzi Engine 的功能。

  • Application with data source plugin 模板创建一个包含数据源插件模板的 Kanzi Engine 应用程序的项目。

    使用 Kanzi Engine 数据源插件为您的 Kanzi 应用程序定义数据源。请参阅 教程:从数据源获取应用程序数据 和 定义数据源。

../../_images/kanzi-engine-plugin-new-project.png

Kanzi Studio 创建一个项目,其中:

  • Application 目录包含项目的应用程序和插件的结构和模板源代码。

  • Tool_project 目录包含 Kanzi Studio 项目。

请参阅 应用程序开发。

Android (Java, Kotlin)

要使用 Kanzi Engine Java API 创建适用于 Android 的应用程序, 在 New Project 窗口中,设置:

../../_images/new-project-android-application.png

Kanzi Studio 创建一个项目,其中:

  • Application 目录包含应用程序的结构和模板源代码以及项目可能的插件。

  • Application/configs/platforms/Android_gradle 目录包含 Android 应用程序项目的源代码。

  • Tool_project 目录包含 Kanzi Studio 项目。

请参阅 应用程序开发 和 使用 Kanzi Android framework (droidfw) 进行开发时。

Kanzi Studio 项目

您可以创建一个 Kanzi Studio 项目,而无需 Kanzi Engine 应用程序。例如,您可以将多个 Kanzi Studio 项目合并到一个 Kanzi Studio 解决方案中。请参阅 将 Kanzi Studio 项目合并到 Kanzi 应用程序中。。

要仅创建一个 Kanzi Studio 项目,在 New Project 窗口中,将 Template 设置为 Kanzi Studio project。

../../_images/new-project-kanzi-studio-project.png

您可以将仅限 Kanzi Studio 的项目部署到 Windows。请参阅 从 Kanzi Studio 构建和部署 Kanzi 应用程序到 Windows。。

材质类型 (Material Types)

当您创建一个 Kanzi Studio 项目时,您可以选择要在项目中包含的材料。

在 New Project 窗口中,设置 Materials:

  • 要从不包含任何预定义材质类型的模板开始,请选择 Import material types manually。您可以在需要时从 Kanzi Studio 材质库中添加材质类型到项目中,或者创建您自己的材质类型。请参阅 为您的工程添加材质类型。

  • High performance vertex shaders 模板适用于低精度和高性能的 OpenGL ES2 应用程序。它包含针对 OpenGL ES2 优化的基于顶点的着色器。大多数 GPU 特定的计算,包括使用 Phong 反射模型应用光照,都是在顶点着色器中完成的。这是大多数设备的良好起点。

  • High quality fragment shaders 模板适用于高精度 OpenGL ES2 应用程序。它包含基于像素着色器的材料,用于 OpenGL ES2。大多数 GPU 特定的计算,包括使用 Phong 反射模型应用光照,都是在片段着色器中完成的。这通常以性能为代价提供更好的图像质量。

  • Physically based rendering 模板适用于 OpenGL ES3 应用程序。它包含基于实现物理基础渲染 (PBR) 原理的着色器的材质。这些材质的属性代表物理属性,例如金属度,因此易于控制。大多数 GPU 特定的计算,包括使用物理基础光照模型应用光照,都是在片段着色器中完成的。这在许多光照条件下提供了更逼真的渲染效果。

High performance vertex shaders、High quality fragment shaders 和 Physically based rendering 项目模板定义了一组在项目材料库中可用的材料类型,每种材料都有片段和顶点着色器。请参阅 着色器 (Shaders)。

如果您不确定选择哪一组材料,请选择 Import material types manually,并根据需要添加材料。

../../_images/kanzi-engine-plugin-new-project.png

在 Visual Studio 中开发应用程序逻辑

当您使用 Application、Application with data source plugin 或 Application with Kanzi Engine plugin 模板创建项目时,Kanzi 会在 Application 目录中创建项目应用程序的结构和模板源代码。要使用 Visual Studio 开发应用程序逻辑,您必须使用 CMake 生成一个 Visual Studio 解决方案。

要在 Visual Studio 中开发应用程序逻辑:

  1. 在 Kanzi Studio 中,使用以下模板之一创建项目:

    • Application

    • Application with data source plugin

    • Application with Kanzi Engine plugin

    Kanzi 在 <ProjectName>/Tool_project 目录中创建一个 Kanzi Studio 项目,并在 <ProjectName>/Application 目录中创建项目的应用程序代码结构:

    • bin 目录包含项目的 kzb 和配置文件。

    • configs 目录包含不同平台的配置文件。默认情况下,Kanzi 会为多个不同的平台创建配置文件。开发 Kanzi 应用程序的推荐平台是 Microsoft Visual Studio。请参阅 部署 Kanzi 应用程序。

    • src 目录包含您的应用程序的源代码。

    • CMakeLists.txt 文件包含 CMake 为 Kanzi 应用程序生成 Visual Studio 解决方案的说明。

    • generate_cmake_vs<Version>_solution.bat 是一个脚本,您可以使用它为 Kanzi 应用程序生成一个 Visual Studio 解决方案。该脚本在 <ProjectName>/Application/build_vs<Version> 目录中生成 Visual Studio 解决方案。

    请参阅 创建项目。

  2. 在 Kanzi Studio 中,选择 File > Open Kanzi Command Prompt。

    Kanzi Command Prompt 打开 Windows 命令提示符,并为您打开 Kanzi Command Prompt 的 Kanzi 版本设置 Kanzi 环境变量。

    使用 Kanzi Command Prompt 访问 Kanzi 实用程序和构建工具,例如 Gradle、SCons 和 CMake,而无需使用绝对路径或设置环境变量。

    ../../_images/open-kanzi-command-prompt.png

    小技巧

    您可以在 Windows 开始菜单的 Rightware 目录中找到 Kanzi Command Prompt。

    当您安装了多个版本的 Kanzi 时,确保将您要在该命令提示符下使用的 Kanzi 版本的 Kanzi Command Prompt 启动。

  3. 在 <ProjectName>/Application 目录中的 Kanzi Command Prompt 中,运行生成应用程序的 Visual Studio 解决方案的脚本。

    例如,如果您使用 Visual Studio 2019,运行

    generate_cmake_vs2019_solution.bat
    

    此脚本在目录 <ProjectName>/Application/build_vs2019 中为应用程序生成一个 Visual Studio 解决方案。

  4. 在 Visual Studio 中,打开 <ProjectName>/Application/build_vs<Version>/<ProjectName>.sln Visual Studio 解决方案。

    例如,如果您使用了 Application with data source plugin 或 Application with Kanzi Engine plugin 模板,Visual Studio 解决方案将包含:

    • 用于 Kanzi Engine 插件的项目名为 <ProjectName>。在此项目中定义您的 Kanzi Engine 插件。

    • 用于名为 <ProjectName>_executable 的 C++ 应用程序的项目。在此项目中定义您的 Kanzi 应用程序的逻辑。

    ../../_images/mykanziengineplugin-project-contents.png
  5. 在 Visual Studio 中,为您的 Kanzi 应用程序和您的 Kanzi Engine 插件创建逻辑,并在您的 Kanzi Engine 插件中为 Kanzi Studio 配置自定义组件。请参阅 应用程序开发、创建 Kanzi Engine 插件、定义数据源 和 扩展 Kanzi Engine 的功能。

    当您添加或删除 Kanzi 应用程序或 Kanzi Engine 插件使用的文件时,请在 CMakeLists.txt 中更新 set 命令中的文件列表,并运行 generate_cmake_vs<Version>_solution.bat 脚本:

    • 当您更改在 Kanzi 应用程序中使用的文件时,更新 <ProjectName>/Application/src/executable/CMakeLists.txt。

    • 当您更改在 Kanzi Engine 插件中使用的文件时,更新 <ProjectName>/Application/src/plugin/CMakeLists.txt。

    例如,要将 tinyxml2.cpp 和 tinyxml2.h 文件添加到您的 Kanzi Engine 插件中,请更新 <ProjectName>/Application/src/plugin/CMakeLists.txt 以包含这些文件。

    set(sources_plugin
        src/tinyxml2.cpp
        src/tinyxml2.h
        src/mykanziengineplugin.cpp
        src/mykanziengineplugin.hpp
        src/mykanziengineplugin.rc
        src/mykanziengineplugin_module.cpp
        src/mykanziengineplugin_module.hpp)
    
  6. 选择您要使用的解决方案配置。

    在开发期间,选择 Debug 配置。当您准备好创建生产版本时,选择 Release 配置。

    ../../_images/debug-configuration.png
  7. 构建您的应用程序:

    • 要仅构建 Kanzi Engine 插件 DLL,请右键单击 <ProjectName> 项目并选择构建。

      ../../_images/mykanziengineplugin-vs-build.png
    • 要构建 Kanzi Engine 插件 DLL 和您的 Kanzi 应用程序,右键单击 <ProjectName>_executable 项目并选择 Build。

      ../../_images/mykanziengineplugin_executable-vs-build.png

    Visual Studio 构建:

    • 在 <ProjectName>/Application/lib/<PlatformName>/<ConfigurationName> 和 <ProjectName>/Application/build_vs<Version>/runtime/<ConfigurationName> 目录中的插件 DLL

      Kanzi Studio 在 <ProjectName>/Application/lib 目录中使用插件 DLL。

    • 在 <ProjectName>/Application/build_vs<Version>/runtime/<ConfigurationName> 目录中的应用程序可执行文件。

  8. 运行您的应用程序:

    1. 在 Kanzi Studio 中,选择 File > Export > Export KZB。

      Kanzi Studio 将项目 kzb 和配置文件导出到 <ProjectName>/Application/bin 目录。

      ../../_images/export-kzb-binary.png
    2. 将这些文件放置到同一目录中:

      • 从 <ProjectName>/Application/build_vs<Version>/runtime/<ConfigurationName> 中获取 exe 和 DLL 文件。

      • 从 <ProjectName>/Application/bin 目录复制 kzb 和 cfg 文件。

      • 从 <KanziWorkspace>/Engine/lib/<PlatformName>/<ConfigurationName> 复制所有 DLL 文件。

      例如,将这些文件放到 <ProjectName>/Application/bin 目录中。

    3. 通过执行 Visual Studio 构建的 exe 文件来运行您的应用程序。

小技巧

要从 Visual Studio 构建并运行您的应用程序:

  1. 在 Kanzi Studio 中,导出 kzb 文件。

    ../../_images/export-kzb-binary.png
  2. 在 Visual Studio 中,右键单击 <ProjectName>_executable 并选择 Set as StartUp Project。

    ../../_images/visual-studio-set-as-startup-project-plugin.png
  3. 选择您要使用的解决方案配置并运行应用程序。

    ../../_images/visual-studio-run-application.png

另请参阅

配置 Kanzi Studio 项目

应用程序开发

使用 Kanzi Android framework (droidfw) 进行开发时

创建 Kanzi Engine 插件

将 Kanzi Studio 项目合并到 Kanzi 应用程序中。

着色器最佳实践