Go to file
2026-06-17 16:34:03 +08:00
.codex Update Infernux submodule to fix path decoding crash globally 2026-06-08 11:41:58 +08:00
Apps feat(build): implement cooked player packaging flow 2026-06-17 10:28:58 +08:00
build_filament feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
cmake milestone: remove Panda3D backend and stabilize JSON asset pipeline 2026-05-21 11:32:37 +08:00
docs feat(editor): align MetaCore workflows with Infernux 2026-06-04 22:14:22 +08:00
FeishuAgent feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
SandboxProject Fix tree model depth rendering, ImGuizmo interactions, HDR IBL format, and link stb_image_impl 2026-06-10 17:24:45 +08:00
scripts Rebuild MetaCore editor on Panda3D with single-window viewport 2026-03-20 16:02:35 +08:00
Source feat(editor): support viewport range selection 2026-06-17 16:34:03 +08:00
TestProject feat(editor): align MetaCore workflows with Infernux 2026-06-04 22:14:22 +08:00
tests feat(editor): refine scene workflow and viewport grid 2026-06-17 16:16:40 +08:00
third_party Fix tree model depth rendering, ImGuizmo interactions, HDR IBL format, and link stb_image_impl 2026-06-10 17:24:45 +08:00
tools feat(build): implement cooked player packaging flow 2026-06-17 10:28:58 +08:00
.gitignore milestone: remove Panda3D backend and stabilize JSON asset pipeline 2026-05-21 11:32:37 +08:00
build_log.txt Unify MetaCore editor workflow and debug logging 2026-04-11 17:13:06 +08:00
build_out_final_2.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
build_out_final_3.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
build_out_final_4.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
build_out_final_5.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
build_out_final_6.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
build_out_final_7.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
build_out_final.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
build_out.txt refactor: 迁移GameObject到EnTT ECS架构并修复编译错误 2026-05-12 15:29:16 +08:00
build_output.txt Unify MetaCore editor workflow and debug logging 2026-04-11 17:13:06 +08:00
CMakeLists.txt feat(editor): refine scene workflow and viewport grid 2026-06-17 16:16:40 +08:00
CMakePresets.json feat(build): implement cooked player packaging flow 2026-06-17 10:28:58 +08:00
demo_err.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
demo_out.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
diff_head.txt Stabilize debug startup and modularize scene interactions 2026-03-26 09:58:09 +08:00
diff.txt Stabilize debug startup and modularize scene interactions 2026-03-26 09:58:09 +08:00
do_ecs_refactor.py feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
fix_ecs_api_3.py feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
fix_ecs_api_5.py feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
fix_ecs_api_6.py feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
fix_ecs_api.py feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
README.md milestone: remove Panda3D backend and stabilize JSON asset pipeline 2026-05-21 11:32:37 +08:00
rewrite.py Unify MetaCore editor workflow and debug logging 2026-04-11 17:13:06 +08:00
run_err2.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
run_err4.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
run_err.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
run_out2.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
run_out4.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
run_out.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
test_err3.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
test_err4.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
test_err.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
test_merge_err.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
test_merge_out.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
test_out3.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
test_out4.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
test_out.txt feat(editor): fix gizmo spatial misalignment and drift by reordering viewport render loop and aligning projection spaces 2026-05-16 21:07:53 +08:00
vcpkg.json feat(build): implement cooked player packaging flow 2026-06-17 10:28:58 +08:00

MetaCore

MetaCore 是一个使用 C++20 开发的自主 3D 引擎与编辑器原型。项目以 EnTT ECS 为底层架构,使用 Google Filament 作为现代渲染核心,使用 Dear ImGui 构建编辑器界面,并规划使用 RmlUi 承载运行时 UI。目标是在轻量、可控、可国产化适配的基础上形成类似 Unity / Unreal Engine 的可视化 3D 应用开发工作流。

当前阶段的核心策略是:编辑期优先 JSON 与可读元数据,快速迭代、便于调试和版本管理;发布期再通过 Cook / Package 转换为二进制运行时资产,保证交付性能和封装性。

当前定位

  • 底层架构:基于 EnTT 的 ECS外层提供 GameObject + Component 的编辑器友好语义。
  • 编辑器界面:使用 Dear ImGui Docking 构建 Hierarchy、Scene、Inspector、Project、Console 等编辑器面板。
  • 渲染核心:以 Google Filament 为主渲染后端,面向 PBR、glTF/GLB、材质、灯光和现代多图形 API 能力。
  • 运行时 UI:规划使用 RmlUi 作为正式项目 UI 系统,定位类似 Unity UGUIImGui 只作为编辑器和工具 UI。
  • 模型导入:当前优先围绕 glTF/GLBgltfio 建立模型、材质、贴图、节点层级导入闭环。
  • 资产路线:编辑器阶段使用 JSON / .mcmeta / 可读项目文件;打包阶段生成 cooked 二进制资产与运行时配置。
  • 交付方向:编辑器面向 Windows、Linux、统信 UOS、麒麟等桌面系统运行时面向 C/S 桌面交付,并为 B/S / WebGPU 嵌入预留边界。
  • 行业对标:工作流对标 Unity渲染和工程化目标参考 Unreal Engine但第一阶段更聚焦工业仿真、数字孪生和实时可视化交付。

技术栈

  • 核心语言C++20
  • 构建系统CMake
  • 包管理vcpkg
  • ECSEnTT
  • 渲染核心Google Filament
  • 模型导入gltfio / glTF / GLB
  • 编辑器 UIDear ImGui (Docking)
  • 运行时 UIRmlUi(规划主线)
  • 3D 操控ImGuizmo
  • 数学库glm
  • 数据通信Winsock2、文件回放、运行时数据绑定

渲染目标

MetaCore 当前不从零自研完整 RHI而是借助 Filament 的成熟后端能力逐步覆盖多平台渲染:

  • Vulkan:首选高性能现代图形 API。
  • OpenGL:用于兼容、过渡和更广泛设备适配。
  • DirectX 12:面向 Windows 高性能运行时。
  • WebGPU:面向未来 B/S 架构、浏览器嵌入和 Web 交付。

目录结构

构建与验证

前提条件

  1. 已安装 Visual Studio 2022 / MSVC 工具链。
  2. 已安装 vcpkg 并正确设置 VCPKG_ROOT
  3. third_party/filament_installed 下存在已编译好的 Google Filament SDK或根据 cmake/MetaCoreFilament.cmake 配置对应路径。

构建步骤

cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config RelWithDebInfo --target MetaCoreEditorApp
cmake --build build --config RelWithDebInfo --target MetaCoreSmokeTests
.\build\RelWithDebInfo\MetaCoreSmokeTests.exe

当前能力

  • 原生窗口、输入和主循环。
  • 基于 EnTT 的场景对象、组件、层级、快照和序列化。
  • Dear ImGui Docking 编辑器框架。
  • Filament 离屏视口桥接与 PBR 场景渲染。
  • glTF/GLB 模型导入、节点层级同步和模型实例化。
  • ImGuizmo 移动、旋转、缩放工具链。
  • 资产 GUID、.mcmeta、AssetDatabase、导入与重导入基础链路。
  • 编辑期 JSON 场景/资产元数据方向,运行期 Cook / Package 二进制方向。
  • TCP / 文件回放 runtime data 驱动,支持绑定到场景组件。
  • Smoke Tests 覆盖场景编辑、选择、Undo/Redo、模块组合、资产导入、运行时数据、UI 文档序列化等基础行为。

开发原则

  • 敏捷开发,快速迭代:先打通可运行闭环,再逐步工程化和性能化。
  • 编辑期可读优先JSON、元数据、项目文件必须便于 diff、调试、人工修复和团队协作。
  • 运行期性能优先:发布包通过 Cook 生成二进制资产与运行时配置。
  • 模块边界清晰ECS、渲染桥、编辑器 UI、运行时 UI、资产导入、数据源都应保持可替换。
  • 国产化适配优先Windows 先行,同时面向 Linux、统信、麒麟等环境保留平台抽象。

参考