TUTORIAL

从轮廓到体积:程序化地形的六步练习

用一条封闭曲线、等高层和三层噪声建立可控地形;教程以完整书面步骤交付,不依赖站外视频。

发布
更新
一条绿色封闭曲线依次变成层叠等高模型和带岩石表面的完整地形雕塑

本练习的目标不是做出某一张固定图片,而是建立一条可重复的判断链:轮廓决定区域,距离决定高度,等高层暴露结构,噪声只负责打破过度规则,材质与镜头最后验证尺度。完成后你应能解释每一层变化来自哪里。

准备与验收标准

  • 新建独立练习场景,场景单位使用厘米。

  • 导入资源包中的尺度参考,确认 180 厘米高度尺没有被错误缩放。

  • 最终地形控制在约 600 × 450 × 180 厘米范围。

  • 整个网络保留轮廓、基础高度、侵蚀细节和表面细节四个可独立关闭的阶段。

第一步:画一条有主次的封闭轮廓

在顶视图中画一条封闭 Curve。不要均匀撒点:主转折处保留控制点,长直段减少点数。轮廓至少包含一个宽阔平台、一个狭窄通道和一个向外突出的次峰区域。Resample 的目标不是增加细节,而是得到均匀弧长采样。

第二步:把平面距离变成基础高度

将轮廓转为平面 SDF 或 HeightField mask。计算每个内部点到边界的距离,把距离归一化后通过 Ramp 映射到高度。Ramp 的前 30% 控制岸边坡度,中段控制主体体积,末端不要直接拉满,以免中心只剩一个尖峰。先用平滑曲线得到可读大形。

第三步:用等高层审查结构

以 8 至 12 厘米高度间隔切出等高层。逐层查看:若所有层都只是等比例缩小,形体缺少方向;若相邻层突然翻转或断裂,基础场可能过于嘈杂。调整 Ramp 和轮廓,直到等高层同时表现平台、通道与次峰。

第四步:分层加入噪声

  1. 宏观噪声:频率约为主体宽度的 1/3,幅度不超过总高度的 12%,只改变山体走势。

  2. 中观噪声:频率约为主体宽度的 1/15,幅度不超过总高度的 4%,用 mask 避开平台核心。

  3. 微观噪声:只在渲染位移或法线阶段使用,屏幕占比不足两个像素时应自动减弱。

每加入一层都先单独预览 mask,再与前一层做差值检查。噪声关闭后仍应是一座成立的地形;否则它正在掩盖结构问题。

第五步:建立材料区域

用坡度、朝向和高度建立岩石、沉积和少量植被区域。先保证 mask 边界有物理理由,再用低幅度噪声打散边缘。岩石粗糙度可以在 0.55 至 0.8 之间变化,沉积区域更均匀;颜色差异应小于明暗差异,避免把地形切成彩色拼图。

第六步:用镜头证明尺度

从 50 毫米焦距开始,把相机高度放在约 140 厘米,再根据画面后退,而不是立刻使用超广角。保留 10 厘米立方体或一个已知尺寸的小树作为参照。柔光检查整体轮廓,掠射光检查等高层、倒角和位移。

常见问题

  • 中心总是尖峰:降低距离场末端 Ramp 斜率,或加入宽度受控的平台 mask。

  • 边缘像融化:减少边界附近的平滑半径,让中观噪声随边界距离衰减。

  • 细节只在大图有效:把微观层绑定到相机像素尺寸,并为远景设置上限。

  • 材质区域破碎:先降低 mask 频率,再检查坡度与法线是否在正确空间计算。

完成判定

关闭所有噪声时,轮廓与基础高度仍清楚;切换两套灯光时,材质不会完全失效;更换轮廓后,大部分网络无需重写;最终文件记录单位、关键 Ramp、噪声频率与幅度。满足这四点,练习才算完成。

Resources

本篇关联资源