文本生成 3D 场景:一句描述如何变成一整片区域

「文本生成 3D」通常一次只生成一个物件。生成一整片场景——道路、建筑、地形、光照——是另一个问题,答案也不同。

由智能体在 Cuberta 中搭建的小镇:街道、斑马线、红砖公寓楼与独栋住宅

在文本生成 3D 的工具里输入「一辆红色跑车」,你会得到一辆红色跑车。输入「日落时分的海边小镇,有港口和一条上山的路」,大多数工具会给你一坨隐约像建筑的东西。这两个结果之间的差距不是模型质量问题,而是两个不同的问题。

同一个名字下的两个问题

物件生成是重建任务。模型见过大量椅子和汽车,对它们各个角度的样子有很强的先验,它的工作是产出一个连贯的形状并包上纹理。几秒 GPU 时间,一个网格,结束。

场景生成是构图任务。一个小镇不是一个形状,而是几百个形状按特定方式排布,再加上让这种排布读起来像小镇的规则:道路在路口相接而不是彼此穿过;建筑面向街道;人行道沿着路缘;路灯的间距合理;天空和太阳角度与阴影一致。这里面几乎没有一样是几何体,它们是关于几何体的决策。

让一个生成模型一次性完成全部,等于要求它在一次前向传播中同时持有几百个相互依赖的决策。这就是输出看起来像融化了的原因。

场景需要而物件不需要的东西

先有布局,再有几何

任何有说服力的环境都始于一张规划图,而不是一个网格。主路走哪里?它把地块切成了哪些街区?其中哪些是住宅、哪些是商业?先解决布局、再往里面放几何体的工具,做出来的东西可以走进去。先生成几何体、指望布局自己浮现的工具,做不到。

几百个部件之间的一致性

当物件达到四百个时,一致性就不再是加分项。所有建筑必须遵循同一套层高约定,否则屋顶线会歪歪扭扭。所有路缘必须是同一个剖面,否则街道读起来是断的。所有材质必须来自同一个小色板,否则小镇看起来像素材库的样品页。人类靠模块套件和风格指南来保证这一点,软件必须靠约束来保证。

能经受引擎导入的尺度

生成的物件可以是任意尺寸,导入时缩放一下就行。生成的场景不行。如果门是 1.6 米而人行道有 8 米宽,你的角色控制器手感就是不对,再怎么缩放也修不好,因为错误在比例而不是单位。场景必须从一开始就用真实的米来搭建。

从文本生成场景的三种做法

整个场景一个网格

最简单的做法:把整片区域当成一个巨大的物件,交给物件生成器。速度快,远看也很唬人。但你一走进去它就散架了——没有可分离的物件,没有可复用的材质,没有像样的碰撞,三角面预算还花在了看不见的地方。当背景板可以,当关卡不行。

检索加摆放

从资源库里取模型,再按程序化规则摆放。大多数「AI 城市生成器」就是这么做的,而且它确实做得不错:单个部件很干净,因为是人做的;摆放规则让整体保持合理。局限在于资源库。要一个库里没有的东西,你得到的是最接近的替代品——地中海渔村因此由美式郊区住宅拼成。

由智能体驱动一个真正的编辑器

第三种做法把关卡设计师会用的工具交给 AI 智能体:画路网、切分街区、放置指定尺寸和立面的建筑、在多边形内散布树木、把太阳设到某个角度——然后让它分步骤工作。每一步之后它把场景读回来并自我纠正,就像人在视口和规划图之间来回切换那样。

这比单次生成慢,而且底下需要一个真正的编辑器,而不是一个网页表单。作为交换,它做出来的每一样东西都是可以选中、移动、删除和导出的真实物件,而推理过程发生在你看得见、也能随时打断的地方。Cuberta 正是围绕这种做法构建的:编辑器通过 Model Context Protocol 开放场景层级的工具,任何 MCP 客户端——包括 Claude Code——都可以驱动它们。

该向文本生成场景的工具问什么

  • 我能选中单个物件吗?如果输出是一个网格,那是一张图片,不是一片场景。
  • 单位是米吗?要一扇 4 米的门,然后量一下。
  • 道路真的连上了吗?路口是生成器最先失败的地方。先看路口,再看天际线。
  • 能中途改变方向吗?只接受一次提示、只返回一个结果的工具是老虎机。
  • 最后导出的是什么?带纹理的 GLB 或 FBX,还是专有格式加订阅。

一个真正管用的提示词

不管用什么工具,场景的提示词和物件的提示词行为不同。物件喜欢形容词,场景喜欢结构。与其堆砌氛围,不如像规划师那样描述这个地方:

一个约 60 栋建筑的海边小镇。一条主路沿海岸延伸,第二条爬上山坡并与主路形成 T 字路口。沿海路是两层的石砌房屋、瓦屋顶,山坡上是更大的独栋住宅。北端有一个带石砌栈桥的港口。主路两侧都有人行道,路灯每 25 米一盏。傍晚的阳光,从西边低角度照过来。

数量、材质、道路拓扑、光的方向。每一句都可核查,这意味着出问题时你可以指出被忽略的那一句,而不是把整段提示词重写一遍再碰运气。

接下来会怎样

过去一年真正有意思的转变,不是模型在网格上变强了——它确实在稳步变强,但不算稀奇。转变在于生成不再是一次性的。一个能看着自己搭出来的东西、发现两条路没接上、然后回头去修那条路的智能体,做的是单次生成在结构上做不到的事。它把「文本生成 3D 场景」从抽奖变成了对话,而对话是可以引导的。

这同样是它诚实的局限。它要几分钟,不是几秒。它需要你机器上开着一个真正的编辑器。而且仍然需要一个有品味的人来说「这座山太陡了」——如果你和关卡设计师合作过就会知道,这恰恰是你本来就想留住的部分。