跳转到内容

Blender 3D:菜鸟到专业/如何进行程序化地形建模

来自维基教科书,开放世界的开放书籍

几个月前,我在 Blender 中玩耍,并使用云纹理来制作景观,我发现了一个可以在 Blender 内部完全制作景观的好方法(无需来自 GIMP 或其他应用程序的高度图),并决定制作一个教程(是的,它确实使用了噪声工具)。


对于 2.7X Blender 用户

虽然这是一个基于 2.4 的教程,但它适用于 2.7X 版本。唯一不兼容的重大差异是影响面板中的“正常”按钮,它取代了“映射到”面板,而他们稍后提到的漫射着色器实际上位于材质的上下文中,在漫射面板中。

创建网格

[编辑 | 编辑源代码]

首先,打开 Blender,选择立方体,按下 X 键 并单击“删除选定对象”。

添加一个网格(空格键--> 添加--> 网格--> 网格),使用你喜欢的任何数字,记住更大的数字意味着更多顶点。在本教程中,我将使用 60 作为 x 和 y 分辨率。放大网格,但只需稍微放大一点(我放大到 1.3),因为纹理不会使用非常大的网格来制作非常高的景观。按下 F5 键转到“材质”选项卡,然后添加一个新材质。

置换和阴影

[编辑 | 编辑源代码]

现在按下 F6 键转到“纹理”面板,并在第一个插槽(插槽 0)中添加云纹理。

按下 F6 后,查看底部的窗口。左侧是“预览”窗口,旁边(右侧)是一个带有“添加”按钮的纹理窗口...... 点击它,然后转到下方右侧出现的下拉菜单。从那里找到并选择“云”...... 现在,继续!


你可能想知道我们如何用云纹理来制作景观,因为你可以直接使用 GIMP 高度图插件、Terragen 或 Blender 中的 A.N.T. 建模脚本。好吧,我们将使用高度图来制作景观。颜色决定高度:白色 = 非常高;灰色 = 一半高;黑色 = 没有高度。这使得云纹理成为土地的理想选择。

接下来我们要做的是调整大小。你可以将噪声大小设置为你想要的任何值,但我想要几个更大的景观片段,而不是一堆小的片段,所以我将噪声大小设置为 1.00,噪声深度设置为 6,因为我想要高细节级别。(预览会立即显示你所做的“调整”效果。)

菜鸟提示:你可以按住 Shift 键并点击噪声大小旁边的数字,然后只输入 1 并按回车键,而不是使用箭头键。这同样适用于噪声深度,Blender 中几乎所有其他设置都可以这样更改。

在顶部,我们可以选择硬噪声软噪声。每个都提供了不同的景观,所以试试看。接下来,转到颜色选项卡(默认情况下它位于纹理按钮旁边)。根据需要调整亮度和对比度。对于“硬噪声”,尝试将亮度设置为 1.9,对比度设置为 3.45。对于“软噪声”,亮度大约在 1.0 到 1.2 之间应该可以。

菜鸟提示:上面的菜鸟提示也适用于亮度设置!

使用 F5 键跳回到材质按钮,然后进入“映射到”面板。关闭col 并按下nor 一次。

菜鸟提示:我很难找到“映射到”,如果你也是这样...... 这是按下 F5 后出现在屏幕底部的几个小窗口之一,对我来说,它在最右边,超出屏幕范围。我必须使用鼠标滚轮滚动窗口,将其移到视野范围内,并将其作为一个带有两个其他选项卡的窗口上的选项卡找到。“Col”和“Nor”是映射到选项卡中的按钮。

另一个菜鸟提示:在 2.66 版本中,“映射到”的等效项位于纹理窗口(在“影响”选项卡下),你可以在那里调整颜色和法线设置。它们被称为完整的名称。

  • 按钮的作用:“映射到”设置确定我们的“云纹理”将影响材质的哪些属性。
    • "Col" 指的是“color”。我们在这里将其关闭,因为我们不希望我们的表面看起来“像云”。
    • "Nor" 指的是“表面normals”。这是光线从表面反射的角度。(所谓的“凹凸贴图”。)
    • 尝试使用其他“映射到”按钮!例如,“Disp”(代表“displacement”)实际上会导致地图在渲染期间变形表面的几何形状...... 但只有在渲染期间。

在本教程中,你将看到,我们将结合几种技术来制作一个非常崎岖的表面。在这里,我们改变了表面反射光线的方式。然后,我们将实际变形表面的几何形状。


nor值调高到 25(这将使其呈现出岩石的外观)。进入着色器选项卡,然后将“漫射着色器”(左上角的选择器,默认为“Lambert”)更改为“Oren-Nayer”,将“镜面反射着色器”(第二个选择器,默认为“CookTorr”)更改为“Blinn”。将 Oren-Nayer 中的粗糙值调整为 1.5(岩石非常粗糙)。此外,将镜面反射值设置为 0.01,硬度设置为 25。现在我们准备制作一些山脉了!

  • 琐事提示:在计算机图形学中,“着色器”是一个数学函数,通常以发明它们的人的名字命名。这些函数准确地确定了云纹理将如何“映射到”我们选择的属性(例如“Nor”...)。

制作山脉

[编辑 | 编辑源代码]

按下 TAB 键进入编辑模式,并按下 A 键 两次,以防你选择了任何特定的顶点。进入正面视图并按下“噪声”按钮(位于 F9 中的网格工具下)。你应该看到顶点向上跳跃了一段距离。

如果没有,你可能将网格放大得太多,所以将其缩小一点。根据你想要山脉的高度,按下噪声按钮所需的次数,我按了 8 次。网格现在看起来不太好,因为它不仅是块状的,而且缺少最后一点随机细节。

  • 重要提示!名为“噪声”的网格编辑按钮会导致对象在“Z”轴上的几何形状发生永久性更改,如纹理所提供。(顶点实际上移动了,它们的新位置是永久的。)
    • 还有一个名为“噪声”的程序化纹理,但这纯粹是巧合。这两者在功能和工作方式上是无关的。


  • 重要提示!使用 Blender 2.5 Beta 的用户,为了让高度图影响几何形状,你需要使用“置换”修饰符

如果你不在编辑模式,进入编辑模式并选择所有顶点。按下分形(与噪声位于同一行,在网格工具下),并在随机因子中输入 15。希望你的系统可以处理所有这些顶点:如果不能,那么不要进行任何分形细分。如果你愿意,你可以在分形框中使用更小的值,并重复多次以获得更多位移。但是要小心:过多的随机性会导致顶点分离,从而导致网格出现撕裂,你需要手动修复它们。

最后,从编辑模式中退出,并按下设置平滑。然后,如果你想使网格更加平滑,请添加一个细分曲面修饰符,并设置你想要的级别。(我将使用 1 来获得更快的渲染时间。)

如果你愿意,可以将网格按你想要的任何大小放大,但对于特写镜头,你可能需要另一个级别的细分曲面或另一个细分。然后,应用颜色,设置灯光并渲染!但是,忠告一句:此过程会创建一个巨大的文件(大约 986kb)。

你已经使用 Blender 制作了山脉,无需在 GIMP 或任何其他程序中生成高度图。下一步是超越教程。尝试使用不同的噪声大小和噪声基础,甚至尝试使用其他纹理,如 Musgrave 和大理石。或者尝试使用两种纹理,看看结果。可能性几乎是无限的!尽情享受。

观察本教程中演示的技术与“高度图”教程中演示的技术“相同但不同”。

  • 一个程序化纹理被用来在渲染时为对象的法线映射提供更改。(这是对象反射光线的角度。)(“高度映射”教程没有这样做。)
  • 然后,使用名为“Noise”的网格编辑按钮(也...)来变形网格的实际几何形状。(这与“高度图”教程中使用的技术相同,尽管使用了不同类型的纹理...图像...)。
  • 用于高度映射(变形)的纹理仍然保留在原位,仍然映射到表面“Nor”mal。结果将是一个非常山地景观。

是的!所有这些地形建模教程中展示的技术可以组合使用!而且,它们经常被组合使用。最令人满意的结果通常是通过组合几种不同的技术来获得的。您可以使用来自“高度映射”教程的图像地图来变形几何形状,然后使用本教程第一部分中的“噪声Normal 映射”理念,甚至使用平滑。所有这些都可以同时进行。选择权在你。

使用“Map To”时,请记住,单个材质可以应用多个不同的纹理,每个纹理都映射到相同或不同的属性。这种映射甚至可以动画化

尽情实验吧!天马行空!

华夏公益教科书