EG/CLAUDE.md
2025-10-11 16:41:59 +08:00

4.8 KiB
Raw Blame History

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

运行和构建命令

启动应用程序

python Start_Run.py [project_path]

或者直接:

python main.py

依赖安装

# 主要依赖
pip install -r requirements/requirements.txt

# Conda环境依赖
pip install -r requirements/conda-requirements.txt

工具脚本

# 安装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  # 工具系统
│   ├── vr_manager.py    # VR管理器待重构
│   └── vr/              # VR模块模块化重构后
│       ├── rendering/   # 渲染子系统
│       ├── tracking/    # 跟踪子系统
│       ├── interaction/ # 交互子系统
│       ├── visualization/ # 可视化子系统
│       ├── performance/ # 性能优化子系统
│       ├── testing/     # 测试调试子系统
│       └── config/      # 配置子系统
├── 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控制

VR模块开发

VR模块采用模块化架构包含7个子系统

  1. rendering/ - 渲染子系统

    • stages.py: VR专用渲染stagesGBuffer、光照、环境光、最终合成
  2. tracking/ - 跟踪子系统

    • controllers.py: VR控制器类LeftController, RightController
  3. interaction/ - 交互子系统

    • actions.py: OpenVR动作系统
    • joystick.py: 摇杆输入和转向/传送
    • teleport.py: 传送系统(抛物线轨迹)
    • grab.py: 对象抓取和交互
  4. visualization/ - 可视化子系统

    • controllers.py: 控制器3D模型和射线可视化
    • effects.py: VR特效管理
  5. config/ - 配置子系统

    • vr_config.py: VR基础配置
    • joystick_config.py: 摇杆配置
    • shadow_stage.py: 阴影stage配置
  6. performance/ - 性能优化子系统(预留)

  7. testing/ - 测试调试子系统(预留)

使用示例:

from core.vr import VRManager  # 主接口(向后兼容)
from core.vr.interaction.teleport import VRTeleportSystem  # 子模块

详细信息请查看 core/vr/README.md

材质和渲染

  • 材质系统集成在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支持
  • 某些功能可能需要特定的系统配置