月球基地
独立完成的 3D 场景:Maya 建模、材质、场景搭建与光照。
职责
地编(独立完成)
引擎
Maya + Substance Painter + Arnold + AE
团队
个人项目
周期
2025
项目概述
3D 建模课的个人作业:一座完全独立完成的月球基地内景。这一页不打算把它当作渲图集来展示,而是以一名场景地编的视角来 review 这个项目:沿美术管线逐个环节推进,记录每个环节在哪里出了问题,以及修复它付出了什么代价。
最终场景约 42.6 万三角面、21.6 万顶点,贴图为 按资产划分的 2048 × 2048 PBR 材质集。管线本身是常规的:
白模 → 模型清理 → UV → Substance Painter → 回到 Maya 在 ACES 下指定材质与 lookdev → 场景陈设与植被 → Arnold 布光渲染 → After Effects 合成输出。
而制作过程中最有价值的一条认识是:这些环节并不是一条只走一遍的队列。清理是一道关卡,前期跳过它,意味着在之后每一道关卡都要补交学费。
1. 白模与建模
场景是按模块化套件来搭建的,而不是做成一整块网格:地砖、护栏、护栏窗、门洞、楼梯、观景窗,以及陈设道具(培养基槽、桌子、杯子、天文望远镜)。穹顶是一套结构桁架——在任何贴图存在之前,正是它确立了剪影,并承担了大部分构图工作。
对这类场景而言,把白模阶段拖得足够长是正确的选择。让几何计数器常驻视口,形体与可读性才能被单独评判,而面数预算也始终是一个有意识的决定,而不是渲染时才发现的意外。

2. 几何完整性——我学会敬畏的那道关卡
项目早期,Maya 的 Unfold 直接失败了。原因是非流形几何(non-manifold)与"蝴蝶结"顶点(bowtie vertices)——这类拓扑不存在有效的展开解,因此算法根本无从下手。
解决办法是把模型清理协议作为一个常设步骤固定下来,而不是当作救火手段:排查 T 型接点(T-junctions)、合并游离顶点,并在网格进入下游之前确认它是水密(watertight)且流形的。
这个环节是任何一张成品渲图都不会展示的,却决定了后面整条管线是否成立。从地编的角度看,这里的教训是流程性的而非艺术性的:清理应当紧跟在每个套件部件建模完成之后,因为一个损坏的网格不会当场报错,它会一直沉默到 UV 或渲染阶段才浮现,而那时追溯它的成本已经翻了好几倍。
3. UV 与纹素密度
拓扑干净之后,UV 成了下一个失效点。若干部件出现了 UV 炸裂与极端拉伸,表现为桌面贴图模糊、呈现"条形码"状——这是纹素密度严重不均的典型症状,而非贴图绘制的问题。
解法是按表面性质选择算法,而不是一套算法用到底:平整的板状面用 Planar Mapping,较为有机的外壳用 Unfold3D;随后重点检查模块化地砖之间的纹素密度是否保持一致。对模块化套件来说,密度统一比单块的排布完美更重要——因为地砖在最终场景中彼此紧邻,任何密度差都会立刻被读成一条接缝。

这是整个项目里最难的一部分。我反复想起的类比是"包礼物却不能有一丝褶皱"——表面是既定的,所有的功夫都在于你选择在哪里下刀。
4. Substance Painter 贴图制作
贴图按每个资产一个 2048² 材质集来组织——FloorTile、Barriers、BarrierWindow、Doorway、Stairs、ViewPort、BasinCultivater、LowCultivater、Table、Cup、DataBase、Ground。以套件部件来命名材质集,是模块化场景保持可检索的关键;而我自己工程窗口里暴露出的一个薄弱点,是仍有一个材质集沿用了 Standard_Surface 默认名——场景一旦膨胀,这类命名就会彻底找不回来。


通道栈按完整 PBR 输出——高度、粗糙度、金属度、法线、不透明度与自发光。把不透明度与自发光一并带过导出环节,正是玻璃面板与发光元素抵达 Arnold 后仍能正确表现的原因,而不必留到合成阶段去伪造。

5. 回到 Maya:材质指定与 Lookdev
回到 Maya 后,贴图按材质集逐一指定,场景则在 ACES 1.0 SDR-video (sRGB) 色彩管理下审看,以保证我在视口中判断的结果与 Arnold 最终产出的一致。在 lookdev 之前而非之后设定色彩管理,是一个能省下日后重做 albedo 的小纪律。
分批装配的好处在于场景始终可被审阅:下面这张内景中,已贴图的建筑结构与仍是白模的道具并置,一眼就能看出哪些资产已经跑通管线、哪些还没有。


6. 场景陈设与植被
温室培养槽是这座基地叙事的来源——一个在月面上种植粮食的居住舱——因此植被承担着真实的分量,而不是用来填空的。
它也贡献了整个项目最具教学意义的一次管线失败:用 Paint Effects 制作的植被在视口中显示正常,却在最终渲染中彻底消失。 原因不是 bug,而是一条硬边界——Arnold 无法渲染 Maya 原生笔触(strokes)。解决方式是将 Paint Effects 转换为多边形,再为转换结果指定 Arnold 标准着色器。
值得带走的通则是:对任何只存在于视口里的东西保持怀疑。 一个与渲染器解耦的场景,其内容必须落在渲染器真正能理解的几何与着色器上;而这一步转换应当发生在陈设阶段,而不是渲染前夜。

7. Arnold 布光与渲染
渲染阶段由两个问题主导。
Z-fighting 在地面上产生了闪烁的黑色瑕疵。这根本不是渲染设置问题,而是几何症状——共面重叠的表面——修复方式是移除重复几何,而不是在渲染器里去调偏移值。这已经是本项目中第三次出现"渲染阶段的症状,成因却在建模阶段"。
噪点与渲染时长是另一重约束,并因使用 GPU 渲染器叠加景深(DoF)而进一步恶化。解决方案不是全局提高采样数,而是**自适应采样(Adaptive Sampling)**配合 OptiX 降噪器——在初始采样数相对较低的情况下依然得到干净的画面,这是一个个人项目在截止日期前务实的取舍。

8. 合成与输出
最终帧以序列形式在 After Effects 中装配,用于呈现场景的环绕与运镜。
这一阶段也暴露了两个镜头层面的失误,若有第二轮我会最先修正它们:前景因景深压得过重而发虚,以及镜头运动过快,观众来不及读懂空间。两者修正成本都很低,却都是在管线最后 5% 做出的决定,反过来削弱了前面 95% 的工作——这正是应当在早期就把运镜白盒化、而不是把它当作交付包装的理由。

管线复盘
回看整个流程,最清晰的结论是:3D 美术大约一半是"搭建",另一半是"清理"。 我起初只想把场景做得好看,但很快意识到,如果引擎盖之下的东西——干净的拓扑、合理的 UV、无重叠的几何——是错的,项目一定会在更下游的某处崩掉,而且总是崩在诊断成本更高的那个阶段。
我遇到的四次失败中有三次其实是同一次失败换了件衣服:Unfold 拒绝执行、贴图读成条形码、地面在渲染中闪烁——它们都是几何问题延迟一个环节才浮现。因此修正方案是流程性的而非技艺性的:每完成一个资产就随手清理它,而不是把清理攒到最后集中处理,这也是我最想改变的一个工作习惯。
真正迁移得不错的是交接本身。资产在 Maya 与 Substance Painter 之间来回流转、材质集与套件部件保持对应、包含不透明度与自发光的完整 PBR 通道栈一路带到 Arnold——这些都站住了。相比开始时,我对在这条工具链上作业已经有了明显更强的把握。