# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## 项目概述 这是一个基于Panda3D的3D渲染引擎和场景编辑器,集成了PyQt5界面和多种高级功能: - 3D场景编辑器(模型导入、材质系统、碰撞检测) - GUI元素管理(2D/3D GUI组件) - 项目管理系统(场景保存/加载、项目打包) - Cesium地图集成 - 渲染管线增强(RenderPipelineFile) ## 运行和构建命令 ### 启动应用程序 ```bash python Start_Run.py [project_path] ``` 或者直接: ```bash python main.py ``` ### 依赖安装 ```bash # 主要依赖 pip install -r requirements/requirements.txt # Conda环境依赖 pip install -r requirements/conda-requirements.txt ``` ### 工具脚本 ```bash # 安装FBX到GLTF转换工具 ./install_fbx2gltf.sh ``` ## 核心架构 ### 主要模块结构 ``` EG/ ├── main.py # 应用程序入口点 ├── Start_Run.py # 启动脚本(路径配置) ├── core/ # 核心功能模块 │ ├── world.py # 3D世界核心(继承Panda3DWorld) │ ├── scene_manager.py # 场景和模型管理 │ ├── selection.py # 对象选择系统 │ ├── event_handler.py # 事件处理 │ └── tool_manager.py # 工具系统 ├── gui/ # GUI元素管理 │ └── gui_manager.py # 2D/3D GUI组件 ├── ui/ # 用户界面 │ ├── widgets.py # 自定义Qt组件 │ ├── property_panel.py # 属性面板 │ └── interface_manager.py # 界面管理 ├── scene/ # 场景相关 │ └── scene_manager.py # 场景管理器 ├── project/ # 项目管理 │ └── project_manager.py # 项目生命周期 ├── RenderPipelineFile/ # 渲染管线扩展 └── QPanda3D/ # Panda3D Qt集成 ``` ### 核心设计模式 1. **模块化架构**: 每个功能模块独立,通过管理器类协调 2. **事件驱动**: EventHandler统一处理用户交互和系统事件 3. **组件系统**: SelectionSystem、ToolManager等可插拔组件 4. **MVC分离**: UI组件、核心逻辑和数据管理分离 ### 主要依赖集成 - **Panda3D 1.10.15**: 3D渲染引擎 - **PyQt5**: GUI框架 - **QPanda3D**: Panda3D的Qt集成 - **RenderPipeline**: 高级渲染功能 ## 开发指南 ### 添加新功能模块 1. 在对应目录下创建新的Python文件 2. 继承相应的基类(如Panda3DWorld用于3D功能) 3. 在main.py中集成新模块 4. 更新界面管理器以添加UI控制 ### 材质和渲染 - 材质系统集成在scene/scene_manager.py - 支持PBR材质和自定义着色器 - RenderPipelineFile提供高级渲染特性 ### GUI开发 - 使用PyQt5构建主界面 - 3D GUI元素通过gui/gui_manager.py管理 - 自定义组件在ui/widgets.py中定义 ## 文件约定 - Python文件使用UTF-8编码 - 中文注释和文档字符串 - 模块顶部包含功能描述注释 - 类和方法使用描述性命名 ## 注意事项 - 项目依赖多个大型库(Panda3D、PyQt5、RenderPipeline) - Cesium集成需要WebEngine支持 - 某些功能可能需要特定的系统配置