渲染基础知识

Before After
Before
After

Rhino 提供一系列工具,可建立 3D 模型或场景的逼真效果。您可以设置场景环境、应用材质并控制灯光。这个过程称为渲染。在本章中,我们将浏览各种工具,这些工具可以帮助我们通过 Rhino 实现引人入胜的视觉效果。

渲染流程

渲染流程包括四个基本步骤:

  1. 赋予材质。
  2. 设置场景:
    • 环境
    • 天光
    • 底平面
  3. 必要时需加入灯光。
  4. 渲染。

你可以通过以下几种方式预览渲染后的场景:

  • 设定视图 渲染显示模式
  • 设定视图 光线跟踪显示模式
  • 执行 Render 指令。

默认情况下,物件以白色显示,直到您赋予材质为止。

材质

Materials 材质可用于为渲染器指定颜色、表面质感、透明度、贴图和凹凸效果。它们可以模拟现实世界中的材料,例如塑料、金属、玻璃等。

你可以在 Materials 面板中创建或导入材质,然后将其分配给图层或物件。也可以将材质从材质库中直接拖放到物件上。

按物件赋予材质

在这个练习中,我们将学习如何为每个物件赋予材质。当材质创建完成后,可以直接拖拽它并将其放置到物件上。你也可以先选中物件,然后在属性 Properties 面板的材质页面中为其应用材质。

  1. Open Materials-Utility-Knife.3dm in Rhino .
  2. 将视图设置为 渲染模式
  3. 执行 Materials 指令开启面板。
  4. 点击新增材质图标。
  1. 从列表中选择塑料
  1. 塑料模板会出现在 Materials 材质编辑器中。
  2. 名称和类型选项下,将名称更改为 Handle
  3. 颜色选项下,点击将色调更改为红色(#B74242)。塑料的缩略图预览将会更新。
  4. Materials 材质面板中的塑料缩略图拖拽到手柄上。
  1. 塑料材质编辑器中,滑动反射度的滑块到40%。你会注意到材质的反射度会降低。
  2. 反射度滑块滑动到100%
  3. 将视图设置为 光线跟踪模式 ,可以看到更准确的视觉效果。
  4. 自己动手试试!尝试调整 Materials 材质面板中塑料材质的其它选项。图中刀具的手柄材质会实时更新。

按图层赋予材质

在这个练习中,我们将学习如何为每个图层赋予材质。当你需要将同一种材质应用到位于同一图层中的多个物件时,这种方式非常有用。 我们将直接从 Layer 属性面板访问材质编辑器。

  1. 继续使用刚刚下载的 Materials-Utility-Knife.3dm 模型。
  2. 确认视图设置为 渲染模式
  3. 转到右侧面板的 Layer 图层面板。
  4. 关闭 / 开启 the Slider 图层。你会注意到,该图层中包含多个由该图层统一控制的物件。
  5. Slider 图层,点击 材质图标。这将会打开 Materials 材质编辑器。
  1. 在默认材质的下拉菜单中,点击**+**符号。
  2. 从弹出的菜单中选择 从材质库导入。这将打开 Rhino 自带的材质文件夹。
  3. 浏览到 Metal/Polished 文件夹。
  4. 选择 Polished Chrome.rmtl
  5. 点击确定关闭 Materials 材质编辑器。
此时图层中的所有物件都会自动被赋予抛光铬材质。

此时图层中的所有物件都会自动被赋予抛光铬材质。

11.**自己动手试试!**继续为场景中的其它物件赋予材质吧。

渲染模式 vs 光线跟踪模式
渲染模式是一种模拟预览。它会模仿材质和灯光的视觉效果,即使在入门级硬件上也能提供快速的视觉反馈。但它并不是基于真实物理计算的结果,因此在显示效果上会存在一定误差。光线跟踪模式会在场景中真实计算光线的传播路径,生成更接近真实世界的渲染效果。这种差异在使用反射材质和透明材质时尤为明显。其代价是需要更多的计算时间和系统资源。

场景

场景通常指模型周围的可见背景:

  • 环境 (或背景)
  • 天光
  • 底平面

在 Rhino 中,场景配置有多种方式。有时我们希望它作为可见的背景显示。有时希望环境 Environments 仅用于照明和反射,而底平面 GroundPlane 仅用于接收阴影,本身则不可见。

环境 & 天光

在这个练习中,我们将通过 Rendering 渲染面板来进行背景设定。我们会更改背景颜色,并使用不同的环境来影响场景中的反射效果和光照强度,这些都会通过天光来控制。

  1. Open Scene-Utility-Knife.3dm in Rhino .
  2. 将视图设置为 渲染模式 。你会注意到场景背景是白色的。
  3. 执行 Rendering 指令开启面板。
  4. 在面板的背景选项下,选择渐变色。您会发现背景会从纯白变为灰度渐变。
  1. 点击底部颜色选择器,将颜色更改为沙色 (#C2C1BF)。
  1. Rendering 渲染面板中,点击反射使用自定义环境下拉菜单中的 + 符号。
  2. 从弹出的菜单中选择 从环境库导入。这将打开 Rhino 自带的环境文件夹。
  3. 浏览并选择Dublin Studio环境,按确定按钮。 你会发现物体表面的反射发生了变化,反射效果会继承该环境 HDR 图像中的明暗分布。
  4. .在面板的灯光选项,将天光强度滑块增加到1.20
反射效果和整体照明主要由天光和环境的 HDR 图像共同控制。

反射效果和整体照明主要由天光和环境的 HDR 图像共同控制。

底平面

默认情况下, GroundPlane 底平面是不可见的,并且只能接收场景中物件的阴影。在本练习中,我们将通过 Rendering 渲染面板对底平面赋予材质。

  1. Open Scene-Utility-Knife.3dm in Rhino .
  2. 视图设置为 渲染模式 。你会注意到周围环境是白色的。
  3. 执行 Rendering 指令开启面板。
  4. 在面板的底平面选项下,勾选使用材质。此时会显示一个下拉式菜单。
  5. 点击下拉式菜单并点击 + 符号。
  6. 从列表中 添加一个油漆材质 。现在底平面设定为白色塑料。
  7. 点击油漆材质旁的铅笔图标,即可打开材质编辑器。您可能需要放大才能进行设定。
  1. 点击颜色框更改颜色。
  2. 选择一个深灰色。按确定按钮。
  3. 返回材质编辑器并将光泽度滑块降低至88%。关闭编辑器。
底平面设定为深灰色,并带有柔和的光泽。

底平面设定为深灰色,并带有柔和的光泽。

灯光

灯光是实现成功渲染最关键的因素之一。在前面的练习中,场景的照明主要通过天光来完成。在 渲染 光线跟踪 显示模式下,天光默认为开启的。您可以通过 Rendering 渲染面板对其进行设定。天光可以理解为包围整个场景的一组不可见穹顶灯光,它能产生柔和的阴影和均匀自然的整体照明效果。

有时我们会需要对灯光进行更精细的控制。在本练习中,我们将学习如何在 Rhino 中建立 Lights 灯光,通过灯光与反射来突出产品的不同细节和特征。

  1. Open Lights-Utility-Knife.3dm in Rhino .
  2. 点击 视图并按 。这会在其他正交视图中激活摄影机物件。
摄影机对于放置灯光物件非常有用。

摄影机对于放置灯光物件非常有用。

  1. 更改 工作视窗为 渲染模式
  2. 执行 Lights 指令开启面板。
  3. 在面板中,点击天光灯泡图示将其关闭。你会发现场景变暗,阴影变得更加生硬、对比更强。
为什么要关闭天光?
天光是一种快速、方便的整体照明方式。如果你想通过灯光物件获得更高级、更可控的照明效果,最好从最基础、最干净的光照环境开始。
  1. 执行 RectangularLight 指令。
  2. 指令提示 下,点击目标,并在刀刃与手柄之间的区域进行目标点的指定。
  3. 视图,点击第一个点定义灯光的高度。
  4. 视图,点击第二个点第三个点分别定义灯光的长度和宽度。
你会注意到,这个矩形灯光的朝向与摄影机方向垂直。

你会注意到,这个矩形灯光的朝向与摄影机方向垂直。

  1. 工作视窗,执行 Mirror 指令建立与第一个光源相对的第二个光源。
  1. 更改 工作视窗为 光线跟踪 模式。我们将获得更精确的场景计算结果。
  2. 转到 Lights 灯光面板。您会看到两个未命名的灯光。它们正是我们刚才添加的两个矩形灯光。
  3. 单击灯光名称进行重命名。第一个命名为 Front,第二个命名为 Back
  4. 点击 Front强度设定,将其更改为 0.8
  5. 点击 Back强度设定,将其更改为 0.6。您会注意到 光线跟踪 工作视窗已经更新。
  6. 继续在灯光面板中尝试不同的设置。调整每个灯光的衰减方式颜色,这样可以为场景设定不同的效果。
前方灯光被改成了偏蓝色,并使用了 线性衰减。

前方灯光被改成了偏蓝色,并使用了 线性衰减。

  1. **自己动手试试!** open Lights-Utility-Knife-Finish.3dm in Rhino .此文件包含用于产生上图效果的灯光设定。

渲染

有很多种方法可以输出最终渲染图像。目前为止,我们在工作视窗中一直使用 渲染 光线跟踪 显示模式预览结果。您可以使用 ViewCaptureToFile 从工作视窗结果产生一张图像文件。

如果你希望对渲染图像的尺寸和质量进行更精细的控制,可以在 Rendering 渲染面板中的分辨率与质量部分选择并设置不同的选项。这些选项正是你运行 Render 指令时所使用的参数。

完成
恭喜您已经学完了本篇内容!如果有任何问题或反馈,请随时在 Discourse Tutorials 上发文。