在Blender中模拟宇宙飞船
介绍
你好!我叫Gesy Bekeyei,目前居住在圣彼得堡。我在Trace 工作室担任高级 3D 艺术家。我对 3D 的兴趣主要基于科幻硬表面元素,如航天器、内饰、武器和机械元素。
项目如何开始
Asteroid Cutter项目始于我受到现实航天器和一般空间的极大启发。我看着旧的和现在的俄罗斯航天器,想知道如果我将功能清晰的工业陆基机器集成到航天器中会发生什么。一个很酷的想法突然出现在我的脑海中:将岩石切割锯注入俄罗斯航天器,用于切割小行星。正如我的同事所说,这个想法可能听起来很古怪,但我想要一些以前没有人见过的东西;一些异想天开但看起来很实用的东西。
阻挡
在收集了大量的航天器参考图像后,第一步是设计一个看起来很有趣但又符合当前常规航天器设计的形状。我从日本水下无人机东芝 ROV 中获得灵感:
我提取了形状和形式并将其集成到我的航天器中。后来的计划是用紧密贴合的绝缘材料(例如 beta 布和铬合金 R 织物)覆盖它。起初,封锁被创建,所有的漏洞和未来的细节都被切入了资产。在将其包裹在布中之前,获得基础船体设计的最终设计非常重要。
在上图中,您可以看到初始形状迭代。使用简单的占位符提前计划未来的细节。在这次迭代中,我的锯太大而且不够有趣,所以我决定删除它并重新开始。在这些早期阶段,重要的是要灵活,不要害怕做出巨大的改变。为了保持头脑清醒,将资产的各个部分分解为层并组织场景非常重要。我使用 Blender 2.8 的新收集系统来帮助我解决这个问题。
Blender中的资产建模
对于这个资产,我使用Blender进行建模和一些附加组件来帮助概念阶段。这包括Hard-ops和Box-cutter。对于场景组织,我使用了一个非常强大的插件“ GroupPro ”。这个附加组件允许我在 Blender 中创建“组”,还可以在场景中实例化这些组,而不会占用我所有的系统 RAM。
因为我有一份全职工作,一个重要的其他人,一只鹦鹉和一只狗,所以我没有太多时间使用 sub-D、低多边形和全 UV 以及纹理它们。我希望能够使用我每天可用的少量时间来创建看起来干净且高度详细的东西。这让我在 Blender 中使用了一种强大的方法。方法很简单:模型基础网格,在所有硬边上添加折痕,细分以获得平滑的网格。尽管使用 sub-D 进行了平滑处理,但由于折痕,该网格仍然具有锋利的边缘。这是我使用 Blender 的斜角节点向边缘添加假圆角的地方。
现在此方法出现的一个问题是小对象和大对象都共享相同的斜角宽度。这会使小物体看起来太软,而大物体的斜角太薄。
为了解决这个问题,我想出了一个简单的着色器,它利用一个渐变图像和一个额外的 UV 通道来将对象映射到这个渐变。我将场景中所有对象的 UV 通道称为“斜角”。
控制斜角节点边缘大小的渐变。
下面是我为了使用渐变纹理控制斜角节点大小而设计的节点。然后将其插入到 Bevel 节点的 Radius 输入中。
在将对象的“斜角”UV 排列到渐变上之后,我们最终得到了更令人满意的结果。
这种方法为我节省了几个月的工作。例如,我的火箭发动机只是相互粘在一起的管子。我的斜角节点设置在每个交叉点之间创建了一个圆角,并赋予它逼真的外观。仔细地细分这样的资产需要很长时间,而且会浪费能源,从而阻止我完成该项目。为了创建一个详细的引擎,我简单地分析参考,并提取一些细节并将它们集成到我的设计中。它们中的大多数只是相互交叉的管道。在某些日子里,我会很累,我会在模型中添加一根管子,关闭 Blender,然后去睡觉。随着时间的推移,单管演变成火箭发动机。
航天器绝缘
对于航天器绝缘,我利用了Marvelous Designer的一项新功能:“从 UV 贴图中跟踪 2D 图案”。
此功能允许我在 Blender 中创建我的基本形状,生成 UV 来表示服装图案,将网格导入 Marvelous Designer 并保持 3D 形状,以及从导入的 UV 生成的布料图案。有时此功能无法完美运行,因此拥有直线、准确的 UV 以获得良好的转换非常重要。
在为您的基础代理布料网格建模之后。把它分解成单独的块。这减少了 Marvelous 设计师模拟的总工作量,并减少了过于复杂的网格带来的错误。将其导入MD。
这将使用您的 UV 并生成具有自定义 UV 图案的布料网格。
现在要模拟绝缘,我们需要 2 层这种图案。第一层将作为金属外壳,第二层将缝在“金属外壳”上。为此,请右键单击该图案并选择“图层克隆(上方)”。然后冻结原始图案以防止其移动。对于布料的物理特性,我喜欢使用“Cotton Gabardine”。增加收缩纬纱和经纱,为织物添加更多材料。按模拟并观察您的布料变成航天器绝缘材料。
此外,您可以在导入的 UV 图案中绘制各种切割、接缝和细节,使其更加复杂。
这种方法可以用于从船体到管道的任何东西。它被用于整个织物建模过程。在模拟了我所有的面料后,我将它们导入ZBrush进行更正和抽取。
纹理
实际上,我在这个项目中并没有使用太多的Substance。我使用 Substance 的唯一目的是绝缘的微观细节。我的大部分纹理都是使用 Cycles 着色器和垃圾贴图完成的。
垃圾纹理在着色器中混合和叠加,以提供光泽变化。
材料相对简单,没有什么特别或复杂的。
对于文本和徽标等贴花,我利用 UV 通道将贴花映射到模型的特定部分。我在之前的项目“OMAR”潜艇中使用了这种技术,如下所示:
在 Blender 中查看潜艇的制作:
在 Blender 中制作潜艇和水下外观
灯光
灯光方面,我想达到类似工作室的灯光效果;我没有选择刺眼的空间照明,而是选择使用大面积灯的柔和灯光来实现这一点。我使用了经典的 3 点照明方案,主灯、补光灯和边缘灯使模型从背景中突出。我有大约 11 个不同的镜头,每个镜头都有自己的照明设置。为每个镜头移动灯光并重新排列它们很重要,因为一个灯光设置可能不适用于下一个镜头
我使用主光来强调模型的顶部,并以自然的方式将光线投射到资产上。额外的补光灯用于照亮太暗的区域。
设置灯光后,我使用Blender 的Camera Manager插件来帮助我管理我的场景摄像机。然后我使用 Blender 的合成器渲染镜头并合成它们。Blender 的合成器允许我对所有镜头应用相同的处理以获得统一的结果。合成包括简单的色彩校正和亮度/对比度增强,以及镜头输入(校正),例如失真和色差。然后使用英特尔在 Blender 2.81 中的新型降噪器对最终镜头进行降噪。这个强大的节点在不影响任何细节的情况下清除了我所有的噪音。
挑战
这个项目背后的最大挑战是在合理的时间内添加足够的细节来支持和修饰这种规模的资产,同时又不会增加太多的噪音和混乱。在撰写本文时,Blender 2.8 当前遭受的限制使这一挑战变得困难。大量的细节和多边形暴露了 Blender 目前低效的撤消操作和糟糕的细分优化,这些问题使项目的周转时间增加了数周。使用了多种技术来减轻这些问题,例如跳过 sub-D 建模、抽取布料资产、使用实例集合复制资产而不会使系统过载,以及在单独的 Blender 文件中对所有资产和细节进行建模。要建造如此精细的工艺,尤其是在 Blender 中,我建议练习良好的场景组织,以及尽量减少多边形数量的方法。至于设计方面,我建议你的设计以现实世界为基础,看看航天器的真实参考图像。这将允许您构建可识别且与查看者相关的功能性对象。
奖励:照明秘密
有些人一直在问我是如何为我的太空场景制作灯光的。
这种照明效果只需使用 2 盏灯即可获得。一盏灯是非常强大的白色定向灯(强度为 18-25)。定位“阳光”并旋转它,直到您喜欢光线落在模型上的方式。尽量避免让光线方向平行于相机视线,因为这会导致光线平淡乏味。
下一步是添加来自附近天体(例如行星或小行星)的模拟反射光。这种反弹照明可以是蓝色或任何颜色,具体取决于反弹它的物体。
获得原始渲染后,我处理图像并添加元素以改善外观。
这些元素包括前景和背景元素、相机效果,例如色差、漏光、暴露在阳光下的区域的泛光、散景效果和薄雾。这些效果有助于将航天器融入太空背板,并增添一丝真实感。