# 光学系统光路可视化 本项目提供了多种方式来可视化光学系统的光路数据,使用 Blender 生成高质量的 3D 光路模型。 ## 文件说明 ### 数据文件 - `miao_light_path_tsingtao.json` - 光路数据文件,包含多条光路的 3D 坐标点 ### 可视化脚本 #### 基础版本 - `light_path_blender.py` - 基础版 Blender 光路可视化脚本 - `run_light_path.py` - 运行基础版脚本的启动器 #### 增强版本 - `light_path_advanced.py` - 增强版 Blender 光路可视化脚本 - `run_light_path_advanced.py` - 运行增强版脚本的启动器 #### 其他工具 - `linemodel.py` - 使用 matplotlib 的 2D/3D 光路可视化脚本 ## 功能特点 ### 基础版本功能 - ✅ 3D 光路曲线可视化 - ✅ 不同颜色区分光路 - ✅ 发光材质效果 - ✅ 自动相机调整 - ✅ 导出 GLB 和 Blend 文件 - ✅ 渲染高质量图像 ### 增强版本功能 - ✅ 所有基础版本功能 - ✅ 光路起点和终点标记(绿色/红色球体) - ✅ 光路密度体积可视化 - ✅ 更高质量的光照和材质 - ✅ 更精确的相机控制 - ✅ 更丰富的渲染选项 ## 使用方法 ### 方法 1:使用运行脚本(推荐) #### 基础版本 ```bash python run_light_path.py ``` #### 增强版本 ```bash python run_light_path_advanced.py ``` ### 方法 2:直接在 Blender 中运行 1. 打开 Blender 2. 切换到 Scripting 工作区 3. 打开 `light_path_blender.py` 或 `light_path_advanced.py` 4. 点击运行脚本 ### 方法 3:命令行运行 ```bash blender --background --python light_path_blender.py # 或 blender --background --python light_path_advanced.py ``` ## 输出文件 ### 基础版本输出 - `light_path_model.blend` - Blender 工程文件 - `light_path_model.glb` - Web 友好格式(可在浏览器中查看) - `light_path_render.png` - 渲染图像 ### 增强版本输出 - `light_path_advanced.blend` - Blender 工程文件 - `light_path_advanced.glb` - Web 友好格式 - `light_path_render.png` - 高质量渲染图像 ## 系统要求 ### 必需软件 - **Blender 3.0+** - 3D 建模和渲染软件 - 下载地址:https://www.blender.org/download/ - **Python 3.7+** - 编程语言环境 ### 推荐配置 - **操作系统**: Windows 10+, macOS 10.15+, Ubuntu 18.04+ - **内存**: 8GB+ RAM - **显卡**: 支持 OpenGL 3.3+的显卡 - **存储**: 至少 2GB 可用空间 ## 安装步骤 1. **安装 Blender** ```bash # macOS (使用Homebrew) brew install --cask blender # Ubuntu/Debian sudo apt update sudo apt install blender # Windows # 从官网下载安装包 ``` 2. **验证安装** ```bash blender --version ``` 3. **运行脚本** ```bash python run_light_path.py ``` ## 故障排除 ### 常见问题 #### 1. 找不到 Blender ``` ❌ 错误:未找到Blender安装 ``` **解决方案**: - 确保 Blender 已正确安装 - 将 Blender 添加到系统 PATH - 手动指定 Blender 路径 #### 2. 找不到数据文件 ``` ❌ 错误:未找到光路数据文件 miao_light_path_tsingtao.json ``` **解决方案**: - 确保数据文件在当前目录 - 检查文件名是否正确 #### 3. 渲染失败 ``` ❌ 渲染失败 ``` **解决方案**: - 检查显卡驱动是否最新 - 降低渲染分辨率 - 使用 Eevee 渲染引擎替代 Cycles #### 4. 内存不足 ``` ❌ 内存不足错误 ``` **解决方案**: - 关闭其他应用程序 - 减少光路数量(修改脚本) - 增加系统虚拟内存 ### 性能优化 #### 提高渲染速度 1. 使用 Eevee 渲染引擎 2. 降低采样数量 3. 减少光路数量 4. 使用 GPU 渲染 #### 减少内存使用 1. 分批处理光路 2. 简化几何体 3. 优化材质设置 ## 自定义配置 ### 修改光路颜色 在脚本中修改 `base_colors` 列表: ```python base_colors = [ (1.0, 0.2, 0.2, 1.0), # 红色 (0.2, 1.0, 0.2, 1.0), # 绿色 # 添加更多颜色... ] ``` ### 调整光路粗细 修改 `thickness` 参数: ```python obj = create_light_path_curve(path, f"light_path_{i}", thickness=0.05) ``` ### 更改渲染质量 修改采样数量: ```python scene.cycles.samples = 256 # 更高的采样数 = 更好的质量 ``` ## 技术细节 ### 数据格式 光路数据采用 JSON 格式,结构如下: ```json [ [ [x1, y1, z1], [x2, y2, z2], ... ], [ [x1, y1, z1], [x2, y2, z2], ... ] ] ``` ### 渲染引擎 - **Cycles**: 基于物理的渲染引擎,提供最真实的光照效果 - **Eevee**: 实时渲染引擎,速度更快但质量稍低 ### 导出格式 - **GLB**: 二进制 GLTF 格式,适合 Web 展示 - **Blend**: Blender 原生格式,包含完整项目信息 ## 许可证 本项目采用 MIT 许可证,详见 LICENSE 文件。 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目! ## 联系方式 如有问题或建议,请通过以下方式联系: - 提交 GitHub Issue - 发送邮件至项目维护者 --- **注意**: 确保在运行脚本前备份重要文件,脚本会生成新的文件并可能覆盖同名文件。