# 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   
```
