Files
BL/README_fused_system.md
nicomacbookpro 565bb02a28 案例
2025-09-02 15:58:31 +08:00

158 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 融合光学系统脚本
这个脚本将 `toModel.py``light_path_simple.py` 两个脚本的功能融合在一起,在一个场景中同时显示光学系统的几何体和光路可视化。
## 功能特点
- 🔧 **光学系统几何体**: 创建平面、抛物面、双曲面等光学元件
- 💡 **光路可视化**: 显示发光的光路曲线
- 🎨 **材质系统**: 金属、透明、发光等不同材质
- 📁 **文件组织**: 使用集合Collection组织不同类型的对象
- 📤 **多格式导出**: 支持 OBJ、GLB、Blend 文件导出
- 🖼️ **高质量渲染**: 使用 Cycles 渲染引擎
## 文件结构
```
├── fused_optical_system.py # 主要的融合脚本
├── run_fused_system.py # 运行辅助脚本
├── README_fused_system.md # 本说明文件
├── e8caffb4622e03b1495bbc1ed13fce13.json # 光学系统数据
└── miao_light_path_tsingtao.json # 光路数据
```
## 使用方法
### 方法 1: 使用运行辅助脚本(推荐)
```bash
python3 run_fused_system.py
```
这个脚本会自动:
- 检测 Blender 安装
- 检查必要的 JSON 文件
- 运行融合脚本
- 显示执行结果
### 方法 2: 直接使用 Blender 命令
```bash
blender --background --python fused_optical_system.py -- [optical_json_path] [light_path_json_path]
```
参数说明:
- `optical_json_path`: 光学系统 JSON 文件路径(可选,默认:`./e8caffb4622e03b1495bbc1ed13fce13.json`
- `light_path_json_path`: 光路 JSON 文件路径(可选,默认:`./miao_light_path_tsingtao.json`
### 方法 3: 在 Blender 中运行
1. 打开 Blender
2. 切换到 Scripting 工作区
3. 打开 `fused_optical_system.py` 文件
4. 点击运行按钮
## 输出文件
脚本执行完成后会生成以下文件:
- **`fused_optical_system.blend`** - Blender 工程文件,包含完整的场景
- **`fused_optical_system.glb`** - Web 友好的 3D 模型格式
- **`fused_optical_system.obj`** - 通用的 3D 模型格式
- **`fused_optical_system_render.png`** - 高质量渲染图像
## 场景组织
融合后的场景使用集合Collection来组织对象
- **OpticalSystem**: 包含所有光学系统几何体
- **LightPaths**: 包含所有光路可视化对象
## 材质系统
- **金属材质**: 用于光学元件表面
- **透明材质**: 用于"nothing"类型的对象
- **发光材质**: 用于特殊发光对象
- **光路材质**: 用于光路曲线,具有发光效果
## 光路可视化
- 支持多种颜色方案(红、绿、蓝、黄、紫、青、橙、粉)
- 发光强度增强,确保在场景中清晰可见
- 自动限制光路数量(最多 20 条)以避免场景过于复杂
- 曲线厚度适中,既清晰又不会遮挡几何体
## 相机和灯光设置
- **相机位置**: (20, -20, 15),角度适合观察整个系统
- **主灯光**: 太阳光,提供主要照明
- **环境光**: 区域光,提供柔和的环境照明
- **背景**: 深蓝色背景,突出光路效果
## 渲染设置
- **渲染引擎**: Cycles提供更好的材质和光照效果
- **分辨率**: 1920x1080全高清
- **输出格式**: PNG
## 故障排除
### 常见问题
1. **找不到 Blender**
- 确保 Blender 已安装
- 将 Blender 添加到系统 PATH 中
- 或手动指定 Blender 安装路径
2. **缺少 JSON 文件**
- 确保 `e8caffb4622e03b1495bbc1ed13fce13.json` 存在
- 确保 `miao_light_path_tsingtao.json` 存在
3. **脚本执行失败**
- 检查 JSON 文件格式是否正确
- 查看错误输出信息
- 确保有足够的磁盘空间
4. **渲染失败**
- 检查是否有足够的系统内存
- 确保输出目录可写
- 检查 Blender 版本兼容性
### 调试模式
如果需要调试,可以在 Blender 中直接运行脚本,这样可以看到更详细的错误信息。
## 性能优化
- 光路数量限制在 20 条以内
- 使用适当的几何体分辨率
- 优化材质节点设置
- 合理的灯光配置
## 扩展功能
可以基于这个融合脚本进一步扩展:
- 添加动画效果
- 支持更多几何体类型
- 自定义材质和纹理
- 添加交互式控制
- 支持实时渲染
## 技术细节
- **Python 版本**: 3.7+
- **Blender 版本**: 2.80+
- **依赖库**: bpy, json, mathutils, bmesh, numpy
- **渲染引擎**: Cycles
- **文件格式**: 支持 OBJ、GLB、Blend
## 许可证
本脚本遵循与原始脚本相同的许可证条款。