这一节来继续完善甜甜圈上的糖粒,我们需要完成两件事:
- 给糖粒上色,而且是随机上色。
- 给糖衣铺上其他形状、形态的糖粒。
给糖粒随机上色
通过上一节实操,我们知道甜甜圈糖衣上的糖粒是通过对糖衣添加了粒子效果实现的,而粒子的对象是一个母板糖粒,所以我们要更改糖粒的颜色,只能针对这个模板糖粒进行修改。
我们可以修改糖粒的颜色,但是可以看到糖衣上的所有糖粒都是同一种颜色。
可以在用Blender做甜甜圈学习笔记六 - 渲染甜甜圈这一节中回顾如何给对象添加颜色。
这肯定不是我们期望的。要实现随机的上色效果,我们需要使用一个新的功能,材质生成着色器。我们点击顶部的Shading
,进入着色器编辑视图。
在这个界面中,我们选中糖粒对象,在窗口下半部分,会看到和用Blender做甜甜圈学习笔记六 - 渲染甜甜圈中使用到的Compositing
视图中类似的界面。但是里面的节点不一样,首先我们会看到一个叫Principled BSDF
的节点。
Principled BSDF
这里简单地对Principled BSDF
作以解释。Principled BSDF
是将多个层组合成一个易于使用的节点。是一款综合型的材质生成着色器(Shader),跟时下普遍使用的 PBR (Physically based rendering)是原理类似的技术。
BSDF
是Bidirectional Scattering Distribution Function
的缩写,意思是双向散射分布函数,因为想要正确模拟真实世界中的光照,需要理解光遇到物体表面时发生的反射和散射,BSDF
就是帮助我们实现更逼真的光散射效果的函数。
对应的还有一个
BRDF(Bidirectional Reflectance Distribution Function)
双向反射分布函数。
增加Base Color随机效果
我们使用快捷键Shift + A
添加一个节点,在弹出的窗口中选择input/Object Info
,然后将Object Info
节点的Random
属性连接到Principled BSDF
节点的Base Color
属性。
Random
相当于提供了一组从0到1的随机数字,然后将这个随机的属性给了Base Color
。
可以看到甜甜圈上的糖粒的颜色已经是随机的了,只不过从0到1的随机数,映射到颜色的色域是从白色到黑色之间。我们也可以通过添加一个色谱节点来控制在哪些色域中进行随机。同样使用Shift + A
,然后选择Converter/ColorRamp
,然后将节点放在Object Info
节点和Principled BSDF
节点的连接上,Blender就可以自动的将ColorRamp
节点和Object Info
节点、Principled BSDF
节点对接。
当然我们也可以手动创建连接,将Object Info
节点的Random
属性和ColorRamp
节点的Fac
(因子)属性进行连接,然后将ColorRamp
节点的Color
属性和Principled BSDF
节点的Base Color
属性进行连接。
我们可以改变ColorRamp
节点中的颜色,可以看到随机的色域的也会发生变化。
然后我们可以在ColorRamp
中增加色标,每个色标可以指定不同的颜色,就可以实现不同色域之间的随机颜色了。
来一张渲染图看看效果:
增加不同形态的糖粒
实现了随机颜色后,我们来增加不同形态的糖粒。目前糖粒的形状都是一个圆柱体,我们可以多捏几种形态。
先捏一个更长一点的圆柱体,操作方法是选择糖粒圆柱体,Shift + D
复制一个,进入编辑模式,打开透视,选中圆柱体顶部的所有点,按下G
和Z
向上移动鼠标即可。可以回顾之前的笔记。
那么如何将这个更长一点的糖粒添加到糖衣上呢?我们来看糖衣上粒子效果的Render AS
属性,目前的值是Object
,那意味着只能有一个指定的对象来充当粒子效果,Render AS
其实还有其他的选项,这里可以选择Collection
。此时大家应该很容易理解了,这个选项的意思就是选择一个集合,该集合下的所有对象都会成为充当粒子效果的对象。
所以我们首先将两个糖粒对象放在一个集合中。可以回顾用Blender做甜甜圈学习笔记七 - 制作糖衣上的糖粒中如何创建集合。
然后选择糖衣,打开右侧Particle Properties
菜单,找到Render/Render AS
,将Object
修改为Collection
,然后将Collection/Instance Collection
的值设置为糖粒的集合。然后我们就可以看到糖衣上的糖粒同时包含了短的圆柱体和长的圆柱体。
然后我们再多添加几个形态的糖粒。再复制一个长的圆柱体,移动到旁边,进入编辑模式,将其再拉长一点。然后选择Loop Cut
工具,这个工具的作用是对选中的对象进行横向或纵向的换切,换句话说就是对物体在横向或纵向增加拓扑点。
在选择了Loop Cut
工具后,滚动鼠标滑轮,可以增加或减少换切的数量。
这里我们对圆柱体进行两次横向的环切,然后调整两头,进入对象模式,对其进行Shade Smooth
操作,呈现如下样子:
现在糖衣上的糖粒就有了三种不同的形态。
我们现在选中一个糖粒圆柱体,可以看到他的原点在底部,我们可以将原点设置为它的中心点,更符合我们对原点理解的习惯,同时这样在糖衣上糖粒的形态会贴合一些,有一些糖粒就不会那么翘。
单独调整糖粒数量
为了让糖粒更加丰富一些,我们再来添加一个圆形糖粒。
我们希望圆形的糖粒只在糖衣上点缀几个即可,这时我们就需要调整每一种形态的糖粒的数量。进入对象模式,选择糖衣,打开右侧Particle Properties
菜单,在Render/Collection
下找到Use Count
选项,打上勾,然后可以针对每一种形态的糖粒设置出现的次数,相当是在同一个集合下,该对象出现的比例。
我们将三种圆柱体形状的糖粒的Count
设置为30,然后球形的糖粒Count
保持为1,此时就可以看到糖衣上只有零星几个球形的糖粒。
到目前为止,糖粒的完善基本结束,上一张渲染图片看看效果。