地形生成
使用 Frontier 模型从 AI 生成的灰度高度图生成大尺度 Unity Terrain,并 自动应用到当前场景。输出一个 Unity Terrain GameObject + TerrainData 资产 + 处理后的高度图 PNG,保存到 Assets/TJGenerators/History/。
何时用地形而非 3D 模型: 峡谷、山脉、丘陵、平原、高原、海岛、火山、沙丘、海岸悬崖等大尺度地貌用本功能;独立物体(岩石、树、建筑)请用 3D 模型生成。
开始
从GUI开始
参考 生成3D模型 的开始部分(通过对话描述地形即可触发)。
从CLI开始
使用 generate_terrain 生成高度图,再用 apply_terrain_heightmap 应用为 Terrain。生成完成后,Terrain GameObject 自动出现在场景中。
输入模式(至少提供其一):
| 模式 | 参数 | 说明 |
|---|---|---|
| 文生地形 | prompt | 地形描述 |
| 图引导地形 | image_path | 参考图引导地形形状 |
模型
Frontier(唯一模型)
- 唯一支持的地形模型,无
generator_id参数;宽高比固定1:1(方形高度图),不可配置 generate_terrain关键参数:prompt:地形描述(有image_path时可选)image_path:参考图路径(Assets/...),引导地形形状resolution:"1K"/"2K"(默认)/"4K"
后处理选项(apply_terrain_heightmap)
use_default_options: true(默认)会应用推荐后处理(中值滤波 + 双边滤波 + 热力侵蚀 + 百分位归一化)。设为 false 可手动调参,常用项:
| 参数 | 默认 | 说明 |
|---|---|---|
height_gamma | 1.0 | < 1.0 更多山地;> 1.0 更平坦 |
remap_output_min | 0.02 | 抬高可提升"海平面"/基础高度 |
remap_output_max | 0.98 | 降低可压平峰顶高度 |
thermal_erosion | true | 模拟自然侵蚀 |
thermal_erosion_iterations | 25 | 迭代越多越平滑 |
bilateral_filter | true | 保边平滑(优先于高斯) |
terrain_go_name | "TJGenerators Terrain" | 生成的 GameObject 名 |
优化
提示词优化
| 地形类型 | 推荐提示词 |
|---|---|
| 山脉 | "rugged mountain range with steep peaks and deep valleys, gradual foothills" |
| 丘陵 | "gently rolling grassy plains with subtle elevation changes" |
| 海岛 | "tropical island with central mountain peak, flat coastal area" |
| 峡谷 | "deep canyon with layered rock formations, narrow river valley at bottom" |
| 火山 | "dormant volcano with central caldera, smooth sloped sides" |
| 沙丘 | "sand dunes with smooth flowing curves, gradual ridges, no sharp edges" |
技巧:
- 避免描述植被、建筑、树木——它们会变成意外的高度凸起
- 添加 "smooth"、"gradual"、"gentle" 让过渡更自然
- 可加
"top-down orthographic view"提示模型输出高度图风格 - 提供
image_path能显著提升地形形状精度
后处理选择
- 一般场景:
use_default_options=true - 更夸张的山地:
height_gamma=0.8;更平坦:height_gamma=1.2 - 保留锐利山脊:
bilateral_filter=false+thermal_erosion=false
并行生成
- 最大 5 个并发生成任务
注意事项
- ⚠️ 两步流程:
generate_terrain→apply_terrain_heightmap,默认自动完成 - ⚠️ 后处理耗时:2K 后处理需 60–180 秒,请勿重复提交
- ⚠️ 宽高比固定 1:1,无
generator_id参数 - ⚠️ 输出路径:默认
Assets/TJGenerators/History/;生成后 Terrain 会自动选中,并在缺少平行光时自动补一个 - ⚠️ Domain Reload:生成期间不要在磁盘写入
.cs文件,使用execute_csharp_script代替