ShineEngine 项目技能清单
描述
本文档基于对 ShineEngine 源代码及构建脚本的深度审计生成,旨在为开发者和 AI 提供关于引擎核心能力的详细技术参考。它定义了项目在架构、渲染、框架、构建及合规性方面的技术标准和实现路径。
使用场景
- •当需要了解 ShineEngine 的核心架构设计与模块划分时
- •当需要查询渲染管线、资源管理或跨平台适配的具体实现路径时
- •当需要验证代码质量或性能指标(如 FPS、内存碎片率)时
详情
1. 核心架构 (Core Architecture)
1.1 模块化系统 (Modular System)
- •技术要点: JSON 驱动的依赖管理,支持动态/静态库切换。
- •实现路径: 定义于
Module/*.json,通过 CMakeparse_and_cache_modules解析。 - •验证标准: 循环依赖检测耗时 < 1s,模块加载成功率 100%。
1.2 反射系统 (Reflection System)
- •技术要点: 运行时类型信息 (RTTI),宏自动注册,模块化架构。
- •实现路径:
EngineCore/reflection,现已重构为模块化结构:- •
ReflectionCore.h: 核心类型定义和基础功能 - •
ReflectionError.h: 错误处理和Result类型 - •
TypeRegistry.h: 类型注册和查找 - •
Core/目录:- •
TypeView.h: 基础视图结构 - •
ReflectionHelpers.h: 辅助函数 - •
ReflectionMacros.h: 宏定义
- •
- •
Views/目录:- •
InspectorView.h: 编辑器视图 - •
ScriptView.h: 脚本视图 - •
ECSView.h: ECS视图
- •
- •
DSL/目录:- •
FieldDSL.h: 字段DSL节点 - •
MethodDSL.h: 方法DSL节点 - •
TypeBuilder.h: 类型构建器
- •
- •
Script/目录:- •
ScriptValue.h: 脚本值类型 - •
ScriptBridge.h: 脚本桥接接口
- •
- •
Reflection.h: 主入口聚合头文件
- •
- •验证标准: 反射调用开销 < 原生调用 2x,覆盖率 ≥ 95%,模块化分离完成度 100%。
1.3 Tick 调度 (Tick Scheduling)
- •技术要点: 基于 Kahn 算法的依赖图拓扑排序。
- •实现路径:
TickManager对TickFunction进行排序,支持分层(Pre/Physics/Post)。 - •验证标准: 调度开销 < 0.05ms,无死锁,拓扑排序正确性 100%。
1.4 内存管理 (Memory Management)
- •技术要点: 高性能分配器集成与标签监控。
- •实现路径: 集成
mimalloc,通过ReflectionMemory实现带标签监控。 - •验证标准: 内存分配速度提升 ≥ 20%,内存碎片率 < 5%。
1.5 对象模型 (Object Model)
- •技术要点: 实体组件系统 (Actor-Component)。
- •实现路径:
SObject提供 GUID,Actor聚合UComponent,由World管理。 - •验证标准: 对象创建/销毁吞吐量 ≥ 10k/s,无内存泄漏。
1.6 事件系统 (Event System)
- •技术要点: 泛型事件分发与解耦。
- •实现路径: 集成
eventpp,使用EventDispatcher和CallbackList。 - •验证标准: 事件分发延迟 < 10μs,监听器上限 ≥ 1000。
1.7 全局上下文 (Global Context)
- •技术要点: 单例生命周期管理。
- •实现路径:
EngineContext统一管理Subsystem实例(Input, Asset, Render)。 - •验证标准: 子系统初始化顺序正确率 100%,全局访问无锁竞争。
1.8 数学库优化 (Math Optimization)
- •技术要点: SIMD/WASM 指令集加速。
- •实现路径:
math/模块,WASM 平台使用__builtin_elementwise优化。 - •验证标准: 矩阵乘法性能 ≥ 10M ops/s,单元测试通过率 100%。
- •模块文件清单:
- •
mathDef.h: 基础数学定义与常量 (PI, EPSILON, 角度转换) - •
vector.ixx: C++20 Module 封装的向量库 (TVector) - •
matrix.ixx: C++20 Module 封装的矩阵库 (Matrix4) - •
quat.h: 四元数实现 (TQuat) - •
rotator.h: 欧拉角旋转器 (TRotator) - •
transform.h: 变换定义 (TTransform - Position, Rotation, Scale) - •
mathUtil.h: 通用数学工具函数 (MakeTransform, Perspective, LookAt)
- •
2. 渲染管线 (Render Pipeline)
2.1 可脚本化管线 (Scriptable Pipeline)
- •技术要点: 渲染流程解耦,支持自定义 Pass。
- •实现路径:
ScriptableRenderContext收集指令,RenderPipeline定义流程。 - •验证标准: 管线切换耗时 < 1ms,支持自定义 Pass 数量 ≥ 10。
2.2 渲染后端抽象 (RHI Abstraction)
- •技术要点: 跨平台图形 API 隔离 (OpenGL/WebGL)。
- •实现路径:
IRenderBackend接口层,隔离 GL 3.3 与 WebGL 2.0。 - •验证标准: 跨平台渲染一致性 ≥ 99% (Pixel Diff),API 调用零错误。
2.3 命令缓冲区 (Command Buffer)
- •技术要点: 延迟执行模型与多线程录制支持。
- •实现路径:
CommandBuffer序列化渲染指令。 - •验证标准: 指令录制吞吐量 ≥ 1M cmds/s,回放开销 < 0.1ms。
2.4 材质系统 (Material System)
- •技术要点: 数据驱动着色器与 Uniform 自动绑定。
- •实现路径:
Material类管理 Shader 参数。 - •验证标准: 材质切换开销 < 10μs,Shader 编译错误率 0%。
2.5 纹理管理 (Texture Management)
- •技术要点: 多格式异步加载与引用计数。
- •实现路径:
TextureManager集成stb_image,支持 PNG/JPG/WebP。 - •验证标准: 纹理加载速度 ≥ 100MB/s,显存泄漏 = 0。
2.6 UI 渲染 (UI Rendering)
- •技术要点: ImGui 深度集成与 Docking 布局。
- •实现路径:
imgui_impl_opengl3后端绑定。 - •验证标准: UI 渲染帧率 ≥ 60 FPS,DrawCall < 50 (Batching)。
2.7 后处理特效 (Post Processing)
- •技术要点: Framebuffer Ping-Pong 处理。
- •实现路径:
PostProcessPass实现屏幕空间特效。 - •验证标准: 全屏特效耗时 < 2ms (1080p),显存占用优化。
2.8 模型加载 (Model Loading)
- •技术要点: GLTF 2.0 完整支持。
- •实现路径:
gltfLoader解析 Mesh/Material/Node 树。 - •验证标准: 解析速度 ≥ 50MB/s,顶点属性完整性 100%。
2.9 渲染架构 (Rendering Architecture)
- •Pipeline (应用层): 位于
src/render/pipeline,负责定义渲染流程(如前向/延迟渲染、阴影 Pass、透明物体排序等)。它接收场景数据,组织成CommandBuffer。 - •Command (中间层): 位于
src/render/command,CommandBuffer是一个平台无关的指令列表(如DrawMesh,SetViewport),用于解耦上层逻辑和底层图形 API。 - •Backend (驱动层): 位于
src/render/backend,负责将CommandBuffer翻译成具体的图形 API 调用(OpenGLglDrawElements/ WebGL 等)。它是唯一直接接触图形驱动的地方。
3. 游戏框架 (Gameplay Framework)
3.1 脚本绑定 (Script Binding)
- •技术要点: JS/TS 互操作与 C++ 接口暴露。
- •实现路径: 集成 QuickJS,通过
ScriptBridge暴露接口。 - •验证标准: JS 执行开销 < 5ms/frame,绑定接口覆盖率 ≥ 80%。
3.2 输入系统 (Input System)
- •技术要点: 跨平台输入映射 (Win32/Web)。
- •实现路径:
InputManager统一处理消息与事件。 - •验证标准: 输入延迟 < 16ms,按键响应丢失率 0%。
3.3 场景管理 (Scene Management)
- •技术要点: 层级化节点树与可视化。
- •实现路径:
Scene管理Actor树,配合SceneHierarchyView。 - •验证标准: 场景节点数支持 ≥ 10k,遍历更新耗时 < 2ms。
3.4 相机系统 (Camera System)
- •技术要点: 视图矩阵计算与视锥体剔除。
- •实现路径:
CameraManager管理投影与剔除逻辑。 - •验证标准: 剔除准确率 100%,矩阵计算精度误差 < 1e-6。
3.5 插件机制 (Plugin Mechanism)
- •技术要点: 动态库热加载。
- •实现路径:
PluginsManager使用LoadLibraryA加载 DLL。 - •验证标准: 插件加载耗时 < 500ms,崩溃隔离成功率 100%。
3.6 文件监视 (File Watching)
- •技术要点: 热重载支持。
- •实现路径:
FileWatchManager监控资源目录变更。 - •验证标准: 变更检测延迟 < 1s,回调触发准确率 100%。
3.7 性能分析 (Profiling)
- •技术要点: 实时 CPU/Memory 监控。
- •实现路径: 集成
Tracy及内置FpsControlView。 - •验证标准: Profiler 自身开销 < 5%,采样精度 ≥ 1μs。
3.8 编辑器框架 (Editor Framework)
- •技术要点: 视图组件化与面板系统。
- •实现路径:
EditorView基类派生各功能面板。 - •验证标准: 编辑器启动时间 < 3s,面板响应延迟 < 50ms。
4. 构建与平台 (Build & Platform)
4.1 现代构建系统 (Modern Build System)
- •技术要点: CMake 4.1+ 配置与 C++20 Modules。
- •实现路径: 自定义
parse_json_type宏,多配置管理。 - •验证标准: CMake 配置耗时 < 10s,构建成功率 100%。
4.2 WASM 工具链 (WASM Toolchain)
- •技术要点: Emscripten 适配与子工程构建。
- •实现路径:
subcmake机制独立编译smallwasm。 - •验证标准: WASM 包体积 < 10MB (Gzip),浏览器兼容性 Chrome/Edge/FF。
4.3 批处理自动化 (Batch Automation)
- •技术要点: 环境自检与参数注入。
- •实现路径:
Build.bat检测 VS 版本与构建模式。 - •验证标准: 脚本执行错误码准确率 100%,环境变量污染 = 0。
4.4 注册表集成 (Registry Integration)
- •技术要点: 文件关联扩展。
- •实现路径:
Register.bat操作HKEY_CLASSES_ROOT。 - •验证标准: 注册表写入成功率 100%,卸载清理残留 = 0。
4.5 跨平台抽象 (Platform Abstraction)
- •技术要点: 平台宏隔离与 OS 封装。
- •实现路径:
src/platform区分 Win32/WASM 实现。 - •验证标准: 跨平台编译通过率 100%,特定平台代码隔离度 100%。
4.6 持续集成 (CI Integration)
- •技术要点: 命令行构建接口。
- •实现路径:
Build.bat支持--no-pause及错误码返回。 - •验证标准: CI 流水线单次构建耗时 < 5min,日志可读性 Pass。