这个项目能做什么

ZEngine(Zodiac Engine)是一个使用C++编写、基于Vulkan图形API的开源3D渲染引擎。README将其定位用于游戏以及科学计算和可视化等活动。 该项目由三个组件组成。ZEngine是核心运行时,涵盖ECS、Vulkan渲染器、物理、音频和虚拟文件系统。Tetragrama是构建在ZEngine之上的编辑器,用于场景创作和资产管理。Panzerfaust是一个用C#/.NET编写的项目启动器,用于创建、打开和管理游戏项目;它托管在单独的仓库(ZodiacEngineHub)中。 支持的平台包括Windows、macOS和Linux(Debian/Ubuntu),均被描述为积极开发和测试中。完整文档位于项目wiki中,并引用了路线图文件。 设置需要C++工具链及辅助工具。在Windows上:Visual Studio 2022(含使用C++的桌面开发)、MSVC v143和Windows 10/11 SDK、PowerShell Core、Python、CMake 4.1.2或更高版本,以及LLVM。在macOS上:Xcode、Homebrew,然后通过brew安装CMake、NuGet、PowerShell Core和LLVM/ClangFormat。在Linux上:通过apt安装build-essential、CMake、Ninja、LLVM/Clang、Python 3和NuGet,外加PowerShell Core。 依赖项在CMake配置时通过FetchContent自动获取,因此无需手动初始化子模块。构建由仓库根目录的PowerShell脚本驱动:BuildEngine.ps1,使用-Configurations Debug或Release以及-RunBuilds $True。传递-RunBuilds $False会生成构建目录而不编译,省略-Configurations则会构建两种配置。 依赖列表广泛并按用途分组。渲染和窗口使用Vulkan-Headers和Vulkan-Loader、VulkanMemoryAllocator用于GPU内存、SPIRV-Cross、glslang和SPIRV-Tools用于着色器编译管线,以及GLFW用于窗口创建和输入。UI系统(ZUI)使用FreeType进行字体光栅化,使用rapidhash进行控件键哈希。资源加载涵盖Assimp用于传统3D导入、fastgltf用于glTF 2.0、ufbx用于FBX、meshoptimizer用于顶点缓存、过度绘制和LOD优化、STB用于图像加载(PNG、JPEG、HDR)以及miniz用于zip/deflate压缩。内存使用tlsf作为O(1)动态分配器,用于引擎可变大小的slab。数据格式包括nlohmann/json、simdjson用于资源管线,以及yaml-cpp用于配置。日志和工具包括spdlog、fmt、stduuid、CLI11和Tracy作为通过ZENGINE_TRACY标志可选启用的帧分析器。GoogleTest用于单元测试,GitHub Actions工作流用于构建和测试引擎。 该项目采用MIT许可证,欢迎贡献,在提交拉取请求前请参考贡献指南。