我最初对住宅的要求很简单:风格极简但细节丰富的家具、一座花园,以及电影般的氛围。我在 Codex 中请 Astra 将这些要求转化为 Blender 中可编辑的 3D 场景。我们逐步将它完善为一座家具齐全的家庭住宅,在 Unreal Engine 5 中探索了其中一个版本,又继续打磨 Blender 场景,直到我能为它设计一段镜头导览。
最初的场景以一座家具齐全的起居厅为中心。后来,我们先为一座更大的家庭住宅设计了平面图,再逐一构建房间。在这个过程中,我与 Astra 一起完善建筑、家具、材质和照明,并根据每个版本的效果决定下一步要做什么。最近一轮修改增添了日常用品,也让照明更温暖,使住宅有了生活气息。
住宅的镜头导览,使用 Blender 中的 Cycles 渲染。
文中收录了项目中的几条提示,经过删减和润色,使其更简洁、清晰。它们展示了我在看到 Astra 能构建出什么之后,如何逐步调整设计要求。
从住宅和氛围入手
第一条提示描述了我想要的效果,没有提供平面图或家具目录:
设计一座漂亮的住宅,配备风格极简但细节十分丰富的家具和一座美丽的花园。仔细安排照明、材质和一天中的时间,让场景具有电影感。
Astra 通过 Blender Python API(bpy)构建了一个可编辑的场景。它创建了建筑、木作、家具、植物布置、材质、灯光和摄像机。第一版就已经具备了我想要的低矮屋顶、开放式起居空间、温润木材、浅色石材,以及与花园相连的设计。我们将这座住宅命名为 Solace。

根据第一条设计提示完成的初版庭院住宅。
这座住宅来自一条设计提示,但 Astra 在交付前仍自行做了几轮改进。它检查渲染预览,调整构图和照明,并修正植物相互穿插、沙发盖毯等细节。我不需要描述每一件物品,也不需要逐项指导这些修改。
这一阶段的重点是家具齐全的起居厅。私密空间所在的侧翼还只用外部体块表示。它为我们提供了可继续发展的视觉方向,还不是一套完整的家庭住宅布局。
接下来,我提出了改变环境的要求:
把时间设为黄金时刻。画面中要能看到太阳,住宅要坐落在一片翠绿的森林中央。
Astra 保留了住宅,并在周围构建森林。它添加了层次丰富的树木和林下植被,设置太阳的位置,并利用大气散射呈现穿过树林的光束。现在,景观的纵深延伸到了花园之外,温暖的室内空间在树木的映衬下更加突出。

同一座早期住宅,添加了森林和黄金时刻的照明。
最初的住宅和花园采用程序化建模。对于规模更大的森林,Astra 使用了 Poly Haven 现成的树木、蕨类和岩石资产。这样就能将精力集中在环境布置上,让场景呈现出理想的感觉。
先画出更大住宅的平面图,再开始建模
确定这个方向合我心意后,我想继续往前推进。中间的一个版本增加了一套家具齐全的卧室套间,并改进了几何结构、厨房和家具。随后,我提出要建一座更大的住宅,让它真正适合一家人居住:
我喜欢这种极简、现代的风格,请保留它,同时扩建住宅,让它更适合日常居住。先给我画一张平面图,我们以此为基础检查并继续完善。
这改变了工作的重心。我们需要决定房间如何连通、私密空间应该安排在哪里,以及人在屋内如何走动。仅仅给最初的场景多添些家具,无法回答这些问题。
Astra 提出了一个单层 U 形住宅方案,围绕种有植物的庭院展开。客厅、用餐区和厨房组成了中央厅区。两侧翼楼增加了三间卧室、一间书房、浴室和一间衣帽间。食品储藏室、洗衣房和储物空间则为厨房和日常家务提供了专用的配套空间。

重建住宅前,我们审查了这张概念平面图。选择图片可查看原尺寸版本。
这张平面图也让我们有了具体的检查对象。卧室不必兼作通道。环绕庭院的通路让人在两侧翼楼之间走动时无需穿过厨房的操作通道。户外用餐区、草坪和泳池延伸了起居空间,同时保持开放。
我认可了这个方向,并让 Astra 在构建新版本前保留现有场景:
保留当前场景作为备份,然后在 Blender 中构建更新后的住宅。持续迭代,直到住宅、家具和花园都具备丰富细节,且几何结构正确。等我们在 Blender 中验证完成后,再将它导出到 Unreal Engine 5。
这个顺序很重要。我们可以先审查平面图,再审查模型,之后才投入额外精力制作实时漫游。这仍然是一个可视化项目;这份概念方案若要作为施工参考,还需要由专业人员审查场地、结构和建筑要求。
构建房间和家具
花园住宅保留了森林环境和克制的配色,同时根据已认可的方案扩展了建筑。庭院成为构图的中心,从两侧房间都能望向庭院对面。

扩建后的花园住宅,在完成建筑细节和电影效果的打磨后,于 Blender 中渲染。
家具在很大程度上让这些房间显得可信。Astra 为沙发坐垫及其滚边、弯曲的椅架、书籍和中空陶瓷器物建了模。床具包含床架、排骨架、床垫和塑形后的床品。衣柜有内部结构、隔板和挂衣杆。书房配有带理线设计的书桌、显示器、键盘和带脚轮的椅子。
这些细节都是场景中的几何模型,可以换个角度检查,也可以带入漫游。坐垫和床品的形状是直接创建的,因此效果不依赖布料模拟。

客厅中的软包、家具、书籍和陶瓷器物都经过了建模。
厨房和浴室也得到了同样细致的处理。水槽和洗手盆都有真实的开口和中空盆腔。厨房包含烤箱内腔、烤架、餐具抽屉和食品储藏室搁板。这些在外观全景渲染中只是小细节,但当镜头靠近台面或探入房间时,它们就开始发挥作用。
材质在这样的近距离下也需要经得起观察。后期场景将自行制作的饰面与 Poly Haven 的橡木、胡桃木和灰泥扫描纹理结合使用,其中包括白橡木饰面。Astra 调整了木纹方向,并让纹理比例与家具尺寸保持一致。

厨房和用餐区沿用了初版住宅克制的配色,并为家具和木作增加了更多细节。
为了探索电影般的视觉效果,Astra 通过 Blender 自身的可执行程序,使用 --python 选项在后台模式下运行脚本。这些脚本负责布置摄像机、选择镜头并渲染画面。Astra 还通过计算机使用功能在 Blender 中打开并检查场景,结合应用中的情况和保存的渲染图进行核查。
我们持续通过渲染图检查模型。Astra 生成各房间的视图和材质特写,再利用这些图像查找并修复问题。钢制水槽就是一个例子:它的表面法线决定光照如何在网格上形成明暗,而当时的法线让槽体的一块平面看起来像是被挤出了凹痕。修正法线并细化圆角后,效果变得更干净,同时保留了厨房原有的设计。

优化水槽的明暗表现和边缘后的材质特写。
关闭材质,检查几何结构
电影感的图像有助于判断氛围。关闭材质后,可以从另一个角度审视作品:构成画面的墙体、洞口、家具和房间布局。

实体模式下的实际 Blender 几何模型。此检查视图隐藏了屋顶、周围森林和窗玻璃,源模型保持不变。
这样就更容易看出它相较于最初起居厅的进展。新住宅的布局连贯,两侧翼楼的房间都配有家具,并通过洞口与庭院相连。这些元素仍可在 Blender 中编辑,不受照明和最终摄像机视角的影响。
Astra 还检查了门洞、墙体连接等几何结构,并抽样检查了场景内的行走路线。这些检查为视觉审查提供了辅助,但不能替代查看渲染图,也不能证明所有可能的交接位置或建筑细节都正确无误。
让住宅有生活气息
探索这座家具齐全的住宅后,我回到 Blender,继续打磨细节。布局已经合理了,我希望房间看起来有人生活过,材质在镜头靠近时也经得起观察。接下来的要求聚焦于光线和日常生活的痕迹:
让照明更柔和、更温暖,也更准确。改善材质对光线的响应,添加餐具和日常用品,让住宅有生活气息。
Astra 保留了建筑,并在日常可能用到物品的位置添加了相应物件。餐桌上多了餐盘、刀叉、玻璃杯和折好的餐巾。厨房台面上摆着面包、香草和瓶子。摊开的日记本、阅读眼镜、马克杯、手机和钥匙,让茶几不再像单纯的陈列摆设。书房和卧室也增加了类似的使用痕迹。

完成细节和照明调整后的客厅,画面来自原生 4K Cycles 渲染。
新增物品都有实际模型:中空的餐具、带棱纹的玻璃杯,以及折叠后带有缝边的亚麻织物。Astra 还细化了表面的受光表现,将 Poly Haven 的木材和灰泥扫描纹理,与织物、陶瓷和金属的程序化细节结合起来。纹理比例、粗糙度和细微的表面变化,让材质在近距离下也能呈现出清晰的质感。
照明也随之调整。Astra 移除了让房间缺乏立体感的隐藏补光灯,将剩余光线调暖,并让光源与可见灯具对应。它为天花灯建了模,还在可透光的灯罩内放置了发光灯泡。这样,高光和阴影与室内物件之间的关系就更清晰了。

经过同一轮调整后的餐桌和厨房。餐具摆设和灯具都是可编辑场景中的几何模型。
设计 Blender 镜头漫游
我也想在动态画面中检验这些细节。我要求制作一段 30 秒的 1080p 住宅导览,让镜头运动既有动感,又像人在行走观察。我们先查看预览渲染,再调整取景和运动方式,之后才开始完整渲染。
Astra 将这些要求落实为四段镜头,分别展示主厅、书房、浴室和卧室,通过切换镜头衔接。它用 Python 脚本将摄像机放在离地约 1.65 米的位置,使用 24–26 mm 镜头,让每段镜头在起止时平缓变速,并加入轻微的行走晃动。它让镜头朝向家具和景观,并修改了预览中在空白墙面上停留过久或收尾生硬的镜头。
为了更清晰地展示建筑,景深效果始终关闭。Cycles 以每秒 30 帧的规格,将这段 30 秒的导览渲染成 900 张独立的 1080p 画面,并使用自适应采样和 OpenImageDenoise 控制噪点。Astra 将这些画面合成为影片,没有通过插值生成额外帧。这是一段预渲染的镜头序列,因此每帧可用的渲染时间远比交互式漫游充裕。
从泳池边走近住宅,再逐一游览房间,使用 Blender 的 Cycles 渲染。
看完导览后,我要求在进入住宅前增加五秒室外镜头,展示泳池、水面倒影和躺椅。Astra 渲染了这段走近住宅的镜头,并将其接入已有影片。它还制作了五张原生 4K 静帧,分别展示外观、庭院、客厅、厨房和卧室。同一个场景现在既能用于制作经过镜头编排的影片,也能输出细节丰富的静态图像。
在 Unreal Engine 5 中漫游住宅
在项目较早的阶段,我也曾让 Astra 把住宅做成可在 Unreal Engine 5 中交互探索的场景。我想以人的视线高度在其中行走,自由环顾四周,更直观地感受各个空间如何相连。这段漫游展示的是住宅的早期版本,尚未经过开篇影片中展示的那轮 Blender 细节和灯光调整。
早期 Unreal 交互式漫游的录屏。
Astra 围绕已确认的 Blender 文件编写了一套导出和导入流水线。它将求值后的几何体导出为 FBX 文件,其中包括 Blender 曲线和修改器生成的细节。除了这些文件,它还编写了一份 JSON 场景描述,记录各个部件的位置、所用材质,以及灯光和摄像机的摆放位置。
Unreal 可以根据这份描述重建场景。转换过程处理了 Blender 的米与 Unreal 的厘米之间的单位换算,以及坐标轴朝向的变化。重复出现的树木仍是共享几何体的实例,因此森林不必为每一棵树都保存一份独立的完整网格。
材质需要单独转换。Blender 和 Unreal 使用不同的材质系统。Astra 读取了受支持的 Blender 材质输入,复用源纹理,并为木材、石材、织物、玻璃和水等表面创建了对应的 Unreal 材质。它保留了纹理在几何体上的位置和缩放比例,包括木纹。部分着色器效果采用了近似实现,因此仍需检查外观是否一致。
灯光也是转换工作的一部分。太阳方向和原有灯光的位置提供了起点,Unreal 的天空和体积雾则用来重现林地氛围。Astra 对照 Blender 中的视图,调整了室外补光和薄雾。目标是在实时光照中延续原有的视觉风格,同时让场景在移动时保持流畅响应。

在 Unreal 中近距离观察厨房,可见中岛、凳子、电器和木质表面。画面截取自打包后的应用,使用了适合静态图像的设置。
最后,住宅还需要玩家角色和碰撞功能。Astra 添加了第一人称角色、行走控制和起始位置。地板需要承托玩家,墙壁、家具和玻璃需要阻挡移动。附近的树干可以成为障碍,但不必让每一株蕨类植物都变成隐形墙。Astra 将成果打包为原生 Mac 应用,并通过角色的正常移动方式测试了其中的行走路线。
在 Solace 中行走,让我多了一种审视设计的方式。我可以从花园走近住宅,进入起居空间,从预先构图的渲染画面未曾覆盖的位置观察各个房间。
完成 Blender 的细节和灯光调整后,我让 Astra 把这个更有生活气息的住宅重新带入 Unreal。它将更新后的几何体和材质重新导出到现有项目中,并为模型添加了交互功能。流水线记录了每扇门或每个抽屉包含哪些部件、绕哪里转动或沿哪里滑动,以及开关应控制哪些灯。在 Unreal 中,把手、抽屉盒及其内部物品会随各自所属的组件一起移动。
最大的变化是,住宅里的一些设施现在真的能用了。根据当前对象显示的操作提示配合 E 键,让我可以打开门和厨房储物柜、开关指定的灯,还能操作意式咖啡机。冲煮过程会按下按钮,让咖啡流入杯中,杯中的液面随之升高。我们在 Blender 中建模的那些细节,如今有了可以在房间里边走边体验的交互行为。
Unreal Engine 5 中更新后的住宅,其中包含可交互的咖啡机。
通过分镜图对比 Blender 和 Unreal
完成最新一轮调整后,我让 Astra 使用更新后的住宅和相匹配的摄像机角度,重新制作分镜图。它保留了各张独立画面,并分别为 Blender 和 Unreal Engine 5 拼成分镜图。每张分镜图都以一幅大尺寸外观图开篇,随后是六幅展示房间和花园的小图。Astra 处理了带编号的标题、简短图注、字体排版和间距,同时完整保留每幅图像,不做裁切。
更新后的分镜图分别使用 Cycles 渲染图和 Lumen 静帧截图。两者按相同顺序展示同样的七个主题,摄像机的位置、朝向和视野范围也相互匹配。每个引擎仍保留各自的灯光、材质和色调映射。Unreal 中的浴室镜子仍有一些反射瑕疵。统一的版式便于将两个版本放在一起审视,也让独立的视图组成了整栋住宅的展示。选择任意一张分镜图,即可放大查看其中的标签和图像。
探索建筑之外的设计
我也用同样的方法制作过截然不同的 3D 场景。在 HELIOS 项目中,我让 Astra 构建一个太阳系,并在太阳周围加上戴森球。这个虚构的能量收集装置逐步发展为由数千块独立面板组成的结构,带有内凹表面、散热片、加固的维护结构,以及更大型的控制枢纽。Astra 为这些几何体配上材质和灯光,让明亮恒星周围的结构依然清晰可见。

最初的 HELIOS 集能装置,敞开的外壳露出内部的太阳。尺寸和距离经过编排,以营造电影感,并未按统一的天文比例呈现。
Astra 在制作过程中不断检查渲染图。最初的预览中,它发现行星的颜色显得发白,土星环也被画面边缘截断了,于是减弱补光并扩大取景范围。后来,我要求制作一个从地球望去、外壳几乎闭合的视图,它便建模出一个留有三道狭窄开口的新版本。预览中只有一束光清晰可见,于是它将发光表面移到更靠近开口的位置。它还尝试调整海洋材质,柔化一处会抢走主体注意力的反光。

地球方向的构图,几乎闭合的外壳由 5,120 块面板组成,留有三处透光开口。这幅画面同样采用了富有电影感的比例和灯光。
HELIOS 渲染图中的太阳影像来自 NASA JPL / STEREO 和 SDO,由伪彩色紫外观测图像改编而成;地球影像来自 NASA Earth Observatory 的 Blue Marble。夜间灯光影像署名为 NASA Earth Observatory / Robert Simmon,使用了 NOAA NGDC 的 Chris Elvidge 提供的 Suomi NPP VIIRS 数据。来自 Solar System Scope / INOVE 的行星和云层贴图依据 CC BY 4.0 许可进行了改编。
在 Shipyard 项目中,Astra 构建了 AURELION-07,这艘巡洋舰拥有逐渐收窄的舰体、分段式环形结构和四台细节丰富的推进器。引擎配有约束环带、维护管线、内凹喷口和同心发光开口。陶瓷装甲、机加工金属和玻璃各有不同的材质。程序化纹理为装甲和金属的颜色、粗糙度及表面细节带来了变化。几何体、材质、灯光和摄像机在 Blender 中仍可继续编辑。

AURELION-07 是 Shipyard 项目中单独建模的一艘飞船,使用 Blender 渲染。
在这个项目中,Astra 同样通过预览找出了需要改进的地方。它发现舰艏过于简单,背景行星又太抢眼。下一轮调整为逐渐收窄的舰体加上了贴合其轮廓的面板和接缝,添加了对接装置与环形结构紧固件,并移动、调暗了行星。随后,它从多个角度检查飞船,包括引擎部分。在我逐一指出细节之前,这些检查就已经促成了模型和构图的改进。

同一艘飞船的另一角度,展示了引擎构造和表面细节。
参照实景设计花园
我还让 Astra 以吉维尼的莫奈花园为灵感,构建一个带有睡莲池、绿色小桥和茂密植被的花园。早期渲染图中,池塘以外的区域显得空旷,于是我让它研究真实的参考资料,完善周围的花园和建筑。
接下来,我反馈了一些表面仍然缺乏层次的问题。Astra 添加了带纹理的砾石和砖石,细化睡莲的叶片与花瓣,并用 Cycles 渲染了新的视图供我查看。最终成果仍是一个可编辑的 Blender 场景,并根据构图需要调整了真实花园的比例。

以吉维尼为灵感的水景花园 Cycles 渲染图。部分植物、纹理和天空环境来自 Poly Haven。
从您自己的场景开始
Solace 最让我喜欢的一点,是能在这些阶段中持续深化同一个想法。我可以描述一种氛围、审视平面图、要求更精细的家具,再亲自探索成果。Astra 贯通场景、脚本和 Unreal 项目,持续推进制作,而我则不断决定自己想建造怎样的地方。HELIOS 和 Shipyard 也给了我同样的创作空间,让我能从整体设计深入到各个部件,Astra 则在过程中不断检查并改进成果。
如果您想亲自尝试,可以从一个想看到的地方或物体入手:一个房间、一件家具、一艘飞船,或一片想象中的风景。描述它的用途和氛围,然后让 Astra 创建可编辑的场景,并提供几个视图供您查看。先看整体形态,再靠近观察,问问哪些地方需要改变。无论您是想打磨单个物体,还是最终探索整个世界,每张渲染图都可以成为下一次设计决策的起点。

