- 创建详细的README文档,介绍项目功能、架构、使用方法等 - 新增.pyc文件和目录,用于缓存编译后的Python代码 - 添加.lingma规则文件,用于代码格式检查 - 删除ALVR串流处理器代码,准备替换为OpenXR输入处理器 - 新增OpenXR输入处理器代码,处理VR控制器输入 |
||
|---|---|---|
| __pycache__ | ||
| .idea | ||
| .lingma/rules | ||
| .vscode | ||
| core | ||
| demo | ||
| gui | ||
| project | ||
| QPanda3D | ||
| RenderPipelineFile | ||
| requirements | ||
| scene | ||
| scripts | ||
| tex | ||
| ui | ||
| _tmp_material.py | ||
| CLAUDE.md | ||
| gui_preview_window.py | ||
| index_name.txt | ||
| main.py | ||
| nul | ||
| openxr_test.py | ||
| README.md | ||
| test_openxr_simple.py | ||
| 参考文档.md | ||
EG - 3D编辑器与游戏引擎
EG是一个功能强大的3D编辑器和游戏引擎,基于Panda3D和PyQt5构建,提供直观的可视化编辑功能和VR支持。该引擎适用于游戏开发、3D可视化和交互式应用程序创建。
功能特性
核心功能
- 3D场景编辑与管理:完整的场景编辑工具集
- 模型导入与处理:支持多种3D模型格式导入
- 材质系统:高级材质编辑和管理
- 光照系统:环境光、定向光、聚光灯和点光源
- 相机控制系统:灵活的相机操作和视角控制
- 场景保存与加载:BAM格式场景保存和恢复
编辑器功能
- 对象选择与变换:精确的对象选择和变换工具
- 坐标轴拖拽控制:直观的3D变换控制
- 属性面板编辑:实时编辑对象属性
- 场景树管理:层次化场景结构管理
- 材质编辑器:可视化材质编辑
- 日夜循环系统:动态光照和环境变化
GUI系统
- 2D GUI元素:按钮、标签、输入框、滑块等
- 3D空间GUI:3D文本和虚拟屏幕
- GUI编辑模式:可视化GUI布局编辑
- 事件处理系统:GUI交互事件响应
VR支持
- VR系统集成:完整的VR环境支持
- VR控制器输入处理:精确的控制器输入识别
- ALVR串流支持:无线VR体验
- 触觉反馈:增强沉浸感的触觉反馈
- VR手势识别:自然的手势交互
脚本系统
- Python脚本热重载:实时脚本更新无需重启
- 脚本模板创建:快速创建新脚本
- 对象脚本管理:为游戏对象添加行为脚本
- 脚本调试支持:内置调试功能
项目管理
- 项目创建与保存:完整的项目管理功能
- 资源管理:统一的资源导入和管理
- 项目打包:一键打包发布项目
系统架构
核心模块
core/world.py- 核心世界管理,集成所有子系统core/event_handler.py- 输入事件处理系统core/selection.py- 对象选择和变换系统core/tool_manager.py- 编辑工具管理core/script_system.py- Python脚本系统core/vr_manager.py- VR系统管理core/vr_input_handler.py- VR输入处理core/alvr_streamer.py- ALVR串流支持
子系统
scene/scene_manager.py- 场景管理系统gui/gui_manager.py- GUI系统管理ui/- 用户界面组件ui/main_window.py- 主窗口设置ui/property_panel.py- 属性面板ui/widgets.py- 自定义UI组件ui/interface_manager.py- 界面管理
project/project_manager.py- 项目管理系统
快速开始
系统要求
- Python 3.7+
- Panda3D
- PyQt5
- 支持OpenGL的显卡
依赖安装
pip install -r requirements.txt
运行编辑器
python main.py
基本操作
- 鼠标左键:选择对象
- 鼠标右键:旋转视角
- 鼠标中键:平移视角
- 滚轮:缩放视角
- WASD:在场景中移动
- 数字键1-0:切换不同时间点
- F键:聚焦选中对象
- Delete键:删除选中对象
编辑器使用指南
导入模型
- 点击"文件" > "导入模型"
- 选择支持的3D模型文件
- 调整模型位置和属性
场景编辑
- 使用选择工具选中对象
- 通过属性面板修改对象属性
- 使用变换工具(移动、旋转、缩放)调整对象
GUI创建
- 进入GUI编辑模式
- 选择GUI元素类型
- 点击场景放置GUI元素
- 通过属性面板调整GUI属性
VR模式
- 连接VR设备
- 点击"VR" > "启用VR模式"
- 使用VR控制器进行交互
脚本编辑
- 点击"脚本" > "创建新脚本"
- 编写Python脚本代码
- 将脚本附加到场景对象
开发指南
架构概述
EG采用模块化设计,核心功能通过MyWorld类集成各个子系统。所有子系统都通过代理方法暴露功能,使API保持一致性。
添加新功能
- 在相应目录下创建新模块
- 在
MyWorld类中添加代理方法 - 通过子系统管理器集成功能
扩展VR功能
- 修改
vr_manager.py添加新功能 - 更新
vr_input_handler.py处理新输入 - 在
alvr_streamer.py中添加串流支持
创建自定义工具
- 在
tool_manager.py中添加新工具类型 - 实现工具的交互逻辑
- 在UI中添加工具选择按钮
贡献
欢迎提交Pull Request或Issue报告问题。贡献前请先查看贡献指南。
许可证
MIT License