# xuhw_engine **Repository Path**: Macro1995/xuhw_engine ## Basic Information - **Project Name**: xuhw_engine - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-21 - **Last Updated**: 2025-12-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GameEngine - C++ Game Engine Framework 一个现代化的C++跨平台游戏引擎框架,专为高性能3D渲染和企业级应用设计。 ## 🚀 特色功能 - **高性能渲染**: SIMD优化,多线程渲染,支持OpenGL/DirectX/Vulkan - **WPF集成**: 专为WPF应用程序设计的无缝3D嵌入方案 - **跨平台**: 支持Windows/Linux/macOS三大平台 - **模块化**: 清晰的模块架构,易于扩展和维护 - **现代C++**: 基于C++17标准,智能指针,RAII模式 ## 📁 项目结构 ``` GameEngine/ ├── Core/ # 核心系统 │ ├── Application.hpp # 应用程序主类 │ ├── Engine.hpp # 引擎核心 │ ├── Timer.hpp # 时间管理 │ └── Logger.hpp # 日志系统 ├── Math/ # 数学库 │ ├── Vector.hpp # 向量运算 │ ├── Matrix.hpp # 矩阵运算 │ ├── Quaternion.hpp # 四元数 │ └── MathUtils.hpp # 数学工具 ├── Graphics/ # 图形渲染 │ ├── Renderer.hpp # 渲染器 │ ├── Shader.hpp # 着色器管理 │ ├── Texture.hpp # 纹理管理 │ ├── Camera.hpp # 相机系统 │ ├── Light.hpp # 光照系统 │ └── FrameBuffer.hpp # 帧缓冲 ├── Physics/ # 物理系统 │ ├── Collision.hpp # 碰撞检测 │ ├── Raycast.hpp # 射线检测 │ ├── AABB.hpp # 包围盒 │ └── OBB.hpp # 有向包围盒 ├── Input/ # 输入系统 │ ├── InputManager.hpp # 输入管理 │ └── EventHandler.hpp # 事件处理 ├── Resources/ # 资源管理 │ ├── ResourceManager.hpp # 资源管理器 │ ├── Model.hpp # 模型加载 │ └── Mesh.hpp # 网格数据 ├── Scene/ # 场景管理 │ ├── Scene.hpp # 场景类 │ ├── GameObject.hpp # 游戏对象 │ └── Component.hpp # 组件系统 └── Utils/ # 工具库 │ ├── FileUtils.hpp # 文件操作 │ ├── StringUtils.hpp # 字符串工具 │ └── MemoryPool.hpp # 内存池 └── docs/ # 文档 ``` ### 设计原则 1. **模块化**: 各模块独立,接口清晰 2. **高性能**: 使用SIMD优化,内存池管理 3. **跨平台**: 支持Windows/Linux/macOS 4. **可扩展**: 插件化架构,易于扩展 5. **现代C++**: 使用C++17/20特性 ## 技术特性 ### 数学库特性 - **SIMD优化**: 支持SSE/AVX指令集加速 - **矩阵运算**: 完整的矩阵操作(加、减、乘、求逆、转置) - **向量运算**: 2D/3D/4D向量操作 - **四元数**: 高效的3D旋转表示 - **LU分解**: 矩阵求逆和线性方程组求解 - **SVD分解**: 奇异值分解支持 - **[重要] GLM数学库**: 用于向量、矩阵、四元数等数学运算 ### 模型管理系统特性 - **模型加载**: 支持OBJ/FBX等格式 - **网格数据**: 高效的内存管理 - **动画系统**: 骨骼动画、关键帧动画 - **[重要] 集成Assimp库**: 用于模型加载和动画处理 - **[重要] 集成stb_image库**: 用于图像加载 ### 渲染系统特性 - **OpenGL 4.6**: 现代OpenGL支持 - **着色器系统**: GLSL编译和管理 - **延迟渲染**: G-Buffer技术 - **光照模型**: Phong光照实现 - **纹理系统**: 多纹理支持 - **Compute Shader**: GPU计算支持 ### 物理系统特性 - **碰撞检测**: AABB/OBB碰撞算法 - **射线检测**: 高效的射线相交测试 - **空间分割**: 视锥体剔除 - **物理模拟**: 基础物理运算 - **[重要] 集成Bullet物理引擎**: 用于碰撞检测、物理模拟等 ### 工具特性 - **ImGui集成**: 调试界面支持 - **GLFW窗口**: 跨平台窗口管理 - **资源管理**: 智能资源加载和缓存 - **日志系统**: 分级日志输出 - **[重要] 集成SpdLog**: 用于日志输出 ### 依赖库 - GLFW (窗口管理) - GLAD (OpenGL加载) - GLM (数学库,可选) - ImGui (调试界面) - stb_image (图像加载) - Assimp (模型加载) - Bullet物理引擎 (物理模拟) ## 编译要求 ### 最低要求 - C++17兼容编译器 (GCC 7+, Clang 5+, MSVC 2017+) - OpenGL 4.6支持 - CMake 3.10+ ## 🛠️ 快速开始 ### 基本C++应用 ```cpp #include "GameEngine.h" int main() { auto engine = GameEngine::Create(); if (!engine->Initialize()) return -1; engine->Start(); while (engine->GetState() == EngineState::Running) { engine->UpdateFrame(0.016f); engine->RenderFrame(); } engine->Stop(); engine->Shutdown(); return 0; } ``` ### WPF集成 ```csharp var [engine, wpfIntegration] = WPFEngineHelper.CreateWPFEngine(hwnd, width, height); engine->Initialize(); engine->Start(); ``` ## 📚 文档 - [开发文档](GameEngine_Dev_Documentation.md) - [产品文档](GameEngine_Product_Documentation.md) - [对外接口总结](EXTERNAL_API_SUMMARY.md) ## 🎯 应用场景 - **工业仿真**: 设备仿真、工艺流程可视化 - **建筑可视化**: 建筑渲染、虚拟漫游 - **游戏开发**: 独立游戏、教育游戏 - **技术演示**: 产品展示、数据可视化 ## 📄 许可证 MIT License - 详见LICENSE文件 ## 🤝 贡献 欢迎提交Issue和Pull Request!