2025-07-18 16:48:39 +08:00
|
|
|
|
# Isometric Room Generator (IRG) - Blender插件
|
|
|
|
|
|
|
|
|
|
一个用于Blender的等轴测房间生成插件,支持快速创建各种类型的房间场景,包括窗户、拱门、门等道具。
|
|
|
|
|
|
|
|
|
|
## 🎯 功能特性
|
|
|
|
|
|
|
|
|
|
### 核心功能
|
|
|
|
|
- **等轴测房间生成** - 快速创建等轴测视角的房间
|
|
|
|
|
- **多种道具支持** - 窗户、拱门、门等建筑元素
|
|
|
|
|
- **灵活尺寸设置** - 自定义房间长、宽、高
|
|
|
|
|
- **智能相机定位** - 自动计算最佳相机位置和角度
|
|
|
|
|
- **高质量渲染** - 支持EEVEE渲染引擎
|
|
|
|
|
|
|
|
|
|
### 道具类型
|
|
|
|
|
- **无道具** - 纯净的房间空间
|
|
|
|
|
- **落地窗** - 使用archimesh插件创建的大型窗户
|
|
|
|
|
- **拱门** - 内置拱门生成功能
|
|
|
|
|
- **门** - 使用archimesh插件创建的门
|
|
|
|
|
|
|
|
|
|
### 视图模式
|
|
|
|
|
- **正视图** - 正面观察房间
|
|
|
|
|
- **侧视图** - 侧面观察房间,支持角度调整
|
|
|
|
|
|
|
|
|
|
## 🎮 安装方法
|
|
|
|
|
|
|
|
|
|
### 方法一:手动安装
|
|
|
|
|
1. 下载插件文件
|
|
|
|
|
2. 打开Blender,进入 `Edit > Preferences > Add-ons`
|
|
|
|
|
3. 点击 `Install...` 选择插件文件
|
|
|
|
|
4. 启用插件
|
|
|
|
|
|
|
|
|
|
### 方法二:自动安装
|
|
|
|
|
```bash
|
|
|
|
|
# 复制插件到Blender插件目录
|
|
|
|
|
cp -r isometric_room_gen ~/.config/blender/4.2/scripts/addons/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🎮 使用方法
|
|
|
|
|
|
|
|
|
|
### 基本操作
|
|
|
|
|
1. 在Blender中启用插件
|
|
|
|
|
2. 在3D视图中按 `N` 打开侧边栏
|
|
|
|
|
3. 找到 `Isometric Room Generator` 面板
|
|
|
|
|
4. 设置房间参数
|
|
|
|
|
5. 点击 `Generate Room` 按钮
|
|
|
|
|
|
|
|
|
|
### 参数说明
|
|
|
|
|
|
|
|
|
|
#### 房间设置
|
|
|
|
|
- **Room Width** - 房间宽度(X轴)
|
|
|
|
|
- **Room Depth** - 房间深度(Y轴)
|
|
|
|
|
- **Room Height** - 房间高度(Z轴)
|
|
|
|
|
- **Wall Thickness** - 墙体厚度
|
|
|
|
|
|
|
|
|
|
#### 窗户设置
|
|
|
|
|
- **Windows** - 窗户类型选择
|
|
|
|
|
- `NONE` - 无窗户
|
|
|
|
|
- `BACK` - 后墙窗户
|
|
|
|
|
- `SIDE` - 侧墙窗户
|
|
|
|
|
- `BOTH` - 两面墙都有窗户
|
|
|
|
|
|
|
|
|
|
#### 拱门设置
|
|
|
|
|
- **Arch Settings** - 启用拱门设置
|
|
|
|
|
- **Arch Placement** - 拱门位置
|
|
|
|
|
- `NONE` - 无拱门
|
|
|
|
|
- `BACK` - 后墙拱门
|
|
|
|
|
- **Arch Width** - 拱门宽度
|
|
|
|
|
- **Arch Height** - 拱门高度
|
|
|
|
|
- **Arch Thickness** - 拱门厚度
|
|
|
|
|
|
|
|
|
|
#### 房间样式
|
|
|
|
|
- **Style** - 房间样式
|
|
|
|
|
- `Square` - 方形房间
|
|
|
|
|
- `L-Shape` - L形房间
|
|
|
|
|
- `U-Shape` - U形房间
|
|
|
|
|
|
|
|
|
|
## 🔧 API服务
|
|
|
|
|
|
|
|
|
|
插件还提供了REST API服务,支持远程调用:
|
|
|
|
|
|
|
|
|
|
### 启动API服务
|
|
|
|
|
```bash
|
|
|
|
|
cd Isometquick-server
|
|
|
|
|
./irg.sh start
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### API端点
|
|
|
|
|
- `POST /render` - 创建渲染任务
|
|
|
|
|
- `GET /render/{task_id}` - 获取任务状态
|
|
|
|
|
- `GET /render/{task_id}/download` - 下载渲染结果
|
|
|
|
|
- `GET /health` - 健康检查
|
|
|
|
|
|
|
|
|
|
### API示例
|
|
|
|
|
```python
|
|
|
|
|
import requests
|
|
|
|
|
|
|
|
|
|
# 创建渲染任务
|
|
|
|
|
request_data = {
|
|
|
|
|
"room": {
|
|
|
|
|
"length": 7.0, # 房间长度
|
|
|
|
|
"width": 4.0, # 房间宽度
|
|
|
|
|
"height": 3.0, # 房间高度
|
|
|
|
|
"prop_type": 1 # 道具类型:1=落地窗
|
|
|
|
|
},
|
|
|
|
|
"camera": {
|
|
|
|
|
"height": 1.3, # 相机高度
|
|
|
|
|
"view_type": 2, # 视图类型:2=侧视图
|
|
|
|
|
"rotation_angle": 45.0
|
|
|
|
|
},
|
|
|
|
|
"render": {
|
|
|
|
|
"resolution_x": 1080,
|
|
|
|
|
"resolution_y": 2400,
|
|
|
|
|
"engine": "eevee"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
response = requests.post("http://localhost:8003/render", json=request_data)
|
|
|
|
|
print(response.json())
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🎨 渲染设置
|
|
|
|
|
|
|
|
|
|
### 渲染引擎
|
|
|
|
|
- **EEVEE** - 实时渲染引擎,速度快
|
|
|
|
|
- 支持透明背景
|
|
|
|
|
- 启用屏幕空间反射
|
|
|
|
|
- 启用环境光遮蔽
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 照明设置
|
|
|
|
|
- **环境光** - 柔和的环境照明
|
|
|
|
|
- **阴影** - 启用柔和阴影
|
|
|
|
|
- **材质** - 优化的材质设置
|
|
|
|
|
|
|
|
|
|
## 📁 文件结构
|
|
|
|
|
```
|
|
|
|
|
isometric_room_gen/
|
|
|
|
|
├── __init__.py
|
|
|
|
|
```
|