- 添加对有线连接的支持,特别是 Pico 4 的有线连接 - 改进 ALVR 服务器检测和连接逻辑 - 优化 VR 帧获取和处理流程 - 增加备用帧获取功能(主摄像机视图) - 修复 VR 眼部纹理相关问题 - 优化 VR 任务管理,确保正确渲染和提交帧
3.7 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Overview
This is a Python-based 3D engine editor built with Panda3D and PyQt5. It integrates a comprehensive render pipeline (RenderPipelineFile) and provides VR support through ALVR streaming. The application follows a modular architecture with separate systems for world management, GUI, VR, scripting, and project management.
Development Commands
This project is a Python application without npm/package.json build commands. Key development commands:
# Run the main application
python3 main.py
# Run specific demo/test files
python3 demo/basic_gui_demo.py
python3 demo/script_system_demo.py
python3 vr_test.py
# Install dependencies
pip install -r requirements/requirements.txt
Core Architecture
Main Application Structure
- main.py: Entry point - initializes MyWorld class which extends CoreWorld
- MyWorld class: Central coordinator that initializes all major systems:
- SelectionSystem, EventHandler, ToolManager, ScriptManager
- GUIManager, SceneManager, ProjectManager, PropertyPanelManager
- InterfaceManager, VRManager, VRInputHandler, ALVRStreamer
Key Modules
-
core/: Core engine functionality
world.py: CoreWorld base class extending Panda3DWorldselection.py: Object selection and transformation systemevent_handler.py: Event processing and input handlingtool_manager.py: Tool system managementscript_system.py: Dynamic script loading and executionvr_manager.py,vr_input_handler.py,alvr_streamer.py: VR support
-
ui/: User interface components
main_window.py: MainWindow class using PyQt5widgets.py: Custom PyQt5/Panda3D integration widgetsproperty_panel.py: Object property editing interfaceinterface_manager.py: UI state management
-
QPanda3D/: Custom Panda3D-Qt integration
QPanda3DWidget.py: Core Qt widget for embedding Panda3DPanda3DWorld.py: Base world class- Translation modules for Qt/Panda3D event mapping
-
RenderPipelineFile/: Advanced rendering pipeline
- Complete PBR rendering system with plugins
- Shader management, lighting, post-processing effects
- Material system and environment probes
-
scripts/: User scripts directory
- Contains example scripts like BouncerScript.py, RotatorScript.py
- Scripts are dynamically loaded by the script system
VR Integration
- ALVR streaming support for wireless VR
- VR input handling with hand tracking
- VR-specific UI and interaction systems
Demo and Testing
- demo/: Extensive collection of test files and examples
- GUI testing examples (basic_gui_demo.py, etc.)
- VR testing and integration demos
- Picking and selection system tests
- Script system demonstrations
Key Dependencies
- Panda3D 1.10.15: Core 3D engine
- PyQt5: GUI framework
- QPanda3D 0.2.10: Qt-Panda3D integration library
- Various supporting libraries for VR, rendering, and utilities
Development Notes
Camera Controls
- Default camera speed: 20.0 units
- Default rotation speed: 10.0 degrees
- Mouse right-click for camera rotation
Coordinate System
The engine uses Panda3D's coordinate system with specific camera and world setups defined in CoreWorld.
Script System
Scripts in the scripts/ directory are automatically discovered and can be loaded dynamically. The script system supports hot-reloading and provides a management interface.
Render Pipeline Integration
The project integrates a sophisticated render pipeline with:
- PBR materials and lighting
- Post-processing effects (bloom, SSAO, motion blur, FXAA, etc.)
- Environment mapping and IBL
- Shadow mapping (PSSM)
- Day/night cycle simulation