更新时间:
最近沉迷一款修房子的小游戏《林间小世界》,其中最有意思的就是它可以通过鼠标拖画的方式,实现各种砖墙、栅栏的一笔画功能,而且还可以通过指示器来调整高度,很有意思。而实际上我们在Blender里也能通过几何节点来实现相同的功能,正好现在是冬天,我们就用北方屋檐下常见的冰锥为例,看看如何通过一笔画的形式自动生成冰锥效果吧。
01
利用曲线顶点生成曲线直线
既然是一笔画的教程,那自然就需要先制作一笔画的基础:曲线。可以使用任意的曲线,比如贝塞尔曲线,新建完成后进入它的编辑模式,先删除所有顶点,再用“自由线”工具,以俯视角度画一条曲线,之所以要俯视角度的原因就是要让所有绘制的顶点都处于水平平面上,我们后续可以利用几何节点,让这些顶点附着在物体表面上。
得到作为一笔画基础的曲线之后,我们可以利用原本默认生成的立方体作为基础,进入它的几何节点,然后将曲线导入其中。当然也可以直接以曲线为基础新建几何节点,具体操作方式大家可自行选择。
不过无论那种方法,在几何节点的第一步操作都是“重采样曲线”,这是因为曲线工具绘制的曲线基本上都只有两个端点,尤其是贝塞尔曲线,它的弯曲是通过类似Photoshop钢笔工具的端点调整来实现的,因为我们后续需要使用曲线的顶点作为基础来放置实例,如果只有两端有顶点,这显然就不符合我们的设计预期了。所以,以0.2m的长度进行“重采样曲线”就比较合理,当然,这个数值大家可以自行按需调整。
图1
接下来就是用“实例化于点上”将我们绘制的曲线作为“点”来进行输出,而“实例”则选择一个新的“曲线直线”,将这个“曲线直线”的起始点设置为0,0,0,结束点则是0,0,-1,这样就能得到一条指向下方的曲线了。
同样的,这条曲线我们也要为它添加“重采样曲线”,这是因为我们接下来会将这些曲线直线转换为冰锥的网格模型,如果这一步不进行“重采样曲线”就得不到足够的侧面顶点数量,从而无法对冰锥的表面进行拟真化的凹凸处理,这两部完成后的设置可以参考图1。
图2
因为不是所有的冰锥都是相同的长度,因此我们在“实例化于点上”的缩放上可以做一些变化,如图2所示,通过“随机值”来控制Z轴的缩放,比如随机为0.7到1倍,就能得到长短不一的曲线直线了,至此,我们的第一步工作算是圆满完成。
02
让曲线直线变出冰锥效果
有了这些按照曲线分布的曲线直线,我们就可以很方便地将其转换为网格椎体了,但在转换前需要先用一个“实现实例”将实例转换为曲线,不然将无法进行下一步的操作,这是很容易被新手玩家忽略的关键点。
图3
实现实例之后,使用“曲线转换为网格”节点,将这些曲线直线以“曲线圆环”为轮廓进行转换,可以得到一排柱体,要怎样才能把它们变成椎体呢?如图3所示,我们通过“设置曲线半径”的方法,联合“样条线参数”的系数和“颜色渐变”,来控制柱体的直径变化,这里用到的其实是颜色的“明度”,明度越高,也就是颜色约白,直径就越大。
注意颜色渐变里颜色的明度可以手动设置为大于1的数值,这样的操作会让它的直径大于作为轮廓的“曲线圆环”预设值,比如我们案例里的0.1m。同时我们不要把下面的尖端直接设置为明度为0的数值,过于尖锐反倒失去了真实质感,可以设置为0.03之类的数值。
图4
现实生活中的冰锥表面都不是光滑的,而是充满了各种冰渣碎屑,所以下一步我们就应该为这些冰锥添加表面凹凸效果,最简单的解决方案就是利用“设置位置”来让冰锥的各个顶点随机移动一些位置。
如图4所示,我们将“噪波纹理”通过“矢量计算”的“相减”连接到“设置位置”的“偏移量”,这里之所以要在XYZ三个方向各自减掉0.5,是因为Blender的纹理都是以世界坐标原点为中心,而不是以纹理几何原点为中心,所以我们要通过过“矢量计算”的“相减”来将原点移动到正确的位置,不然我们的冰锥会产生不必要的位移。接着我们还需要为它添加一个过“矢量计算”的“相乘”,让冰锥的每个顶点都沿不同的随机方向进行位移,通过用矢量的“随机值”即可实现这个设计目的。
图5
这时候又有一个新问题,那就是冰锥表面的凹凸其实并不是通体一致的,一般是越靠上,表面越粗糙,越靠下则表面越光滑,所以我们还需要如图5所示,通过“位置”来分离出Z轴信息,使其作为一层渐变遮罩,让靠下方的位置乘以较小的数值甚至直接乘以0,以此来使其表面更加平滑的效果,具体的起始位置通过“相加”来进行控制,然后和图4最右侧的“相乘”输出结果再“相乘”,并通过“缩放”来控制幅度,就能得到让人满意的效果了。
03
为冰锥设计着色器材质
最后一步就是给咱们的冰锥设计材质,冰的材质比较好设计,可以直接用“玻璃BDSF”并调成浅浅的蓝色即可,当然也可以用“原理化BSDF”将透射设置为1,糙度设置为0,同样可以实现类似的效果。
但这样的设计有一个小问题,那就是看上去像玻璃,不像冰,而如果我们观察过冰锥就会发现,因为它的内部有不少的杂质,而且是由水滴一层层生成的,所以透明度其实并不高。
图6
图7
因此,我们可以如图6那样,为它的着色器添加一个“原理化体积”节点,这个节点的主要功能就是在模型内部生成体积雾的效果,这时候只需要用“沃罗诺伊纹理”作为基础,将其特征设置为“到边缘的距离”,再适当调整参数后通过“颜色渐变”输出到“原理化体积”的“自发光强度”,这个数值还可以通过“相乘”来控制强度,最终得到如图7的效果。
微信订阅
欢迎通过邮局渠道订阅2025年《电脑报》
邮发代号:77-19
单价:8元,年价:400元
编辑|张毅
审核|吴新
爆料联系:cpcfan1874(微信)
壹零社:用图文、视频记录科技互联网新鲜事、电商生活、云计算、ICT领域、消费电子,商业故事。《中国知网》每周全文收录;中国科技报刊100强;2021年微博百万粉丝俱乐部成员;2022年抖音优质科技内容创作者