案例链接:https://www.youtube.com/watch?v=Rsud16glp0U&list=PLB0wXHrWAmCy457vxKM4rQuJ-nvYm9j4M&index=23

SD的很多思路其实很简单,关键在于调参,这个过程对审美和美术直觉有一定的要求,希望能保持热情然后多练。

本篇也算是自己的一个复习吧,可能有一些尚未明白的地方,描述会出问题,希望见谅。

SD官方案例练习

第一节 星星

-节点:star

一个星星,可以调节大小和其它参数。

-节点:slope blur grayscale

非常常用的节点,输入一张图和一张blur map,将原图朝向blur map上的梯度进行模糊,能够轻易地做到directional blur的功能,同时经常用于将自己和自己进行slope blur形成边缘模糊的效果,创造细节,应用范围非常广泛。

-节点:multi dir warp grayscale

按照一张强度图进行多方向的warp,常用于创造细节,创造出的细节不容易破坏原有的细节。

-节点:threshold

平平无奇的二值化。

-节点:edge detect

平平无奇的描边,可以控制描边粗细和阈值。

-节点:blur hq

高斯模糊

-节点:radial blur

旋转模糊

示例

最终效果

最终效果

最终效果

最终效果

官方案例解释的非常清楚,主要是对这几个基础节点的一些应用。

最终效果

第二节 镜像-斜边-tile

-节点:mirror

镜像,可以选择水平、竖直、中心对称。

-节点:bevel

常用的节点,作用是把黑白交界处做一个斜边,配合threshold可以做到控制线条粗细,这个节点对本来就是斜边的地方会继续进行平滑,从而用distance可以做到把原来的软边变硬,作用非常广泛。

-节点:tile generator

用基础形生成阵列,可以控制行列数,位置、角度、大小、亮度等偏移,并可以进行随机打乱。

节点:swirl

扭曲

示例

最终效果

视频里用一个字母A通过mirror+bevel+threshold做基本型,然后用tile generator做成一个简单图案,通过控制节点参数可以简单地控制生成的图案。

最终效果

(意义不明的模拟)

第三节 曼荼罗图案

-节点:shape

一个基础形状,有很多款式任君挑选。

-节点:splatter circular

将一个图案循环放置,可以控制半径和数量。

-节点:gradient(dynamic)

常用节点,相当于一个lut,将一个灰度域映射到另一个灰度域的非线性变换,可以做到将连续的图案打乱成离散的图案,相当适合用来做镂空纹样。

-节点:levels

常用节点,上面两个节点可以控制亮部和暗部的变化率(或许可以当成gamma变换理解),下面的节点则是整体亮度的控制。

示例

最终效果

官方的案例,非常清楚,旋转一个提亮过的paraboloid,用tg捏一个lut映射成黑白镂空的纹样,通过blur+threshold来控制纹样粗细。

最终效果

自己捏了个图案,用了没有那么规则的新月来形成了特殊的纹样。

第四节 图形控制

-节点:anisotropic blur

各向异性的模糊,相当于一个多方向的directional blur。

-节点:directional blur

向一个方向模糊。

-节点:FXAA

平平无奇的抗锯齿,可以配合blur使用。

示例

最终效果

一些简单的图形变换效果。

第五节 笔刷效果

示例

最终效果

思路:用gradient+gradient(dynamic)形成一个连续的噪声条图,用它来进行multi directional warp来达到竖直上不同强度的变换,用高频噪声做细节,anisotropic noise+blend做出毛刺效果,再用一张渐变图作为强度,通过directional blur做出弯曲的效果。

思路非常容易理解,做出的效果也非常不错,可以用tile sampler来达到画纸的效果,这里只是简单做了一下。

第六节 木头

-节点:histogram range

调整直方图的范围,调节整个图像的值域

-节点:warp

平平无奇的位移

示例

最终效果

主要思路:基础是一张anisotropic noise,用tile generator生成的圆点进行warp,并混合上圆点,然后用柏林噪声的warp的扭曲,用gradient dynamic去做一个lut将原来连续的噪声条映射成同样连续但是并不规则的条纹,然后用噪声去做细节,调整结果。

调参调了一会儿,尽量接近视频里的效果,尤其需要注意一开始的blur和中间的lut,不要让木头的对比度太大或者细节频率太高。

最终效果

第七节 滴落效果

-节点:histogram scan

一个比较锐的灰度部分提取,和histogram select略有区别

-节点:non uniform blur grayscale

能够控制更多参数的blur,包括强度、各向异性、非均匀性

示例

思路非常简单,用噪声+histogram制作出随机散点,用slope blur进行拖尾,slope的强度决定了拖尾距离,然后用各种模糊和warp来制造细节。

最终效果

自己的调参和扩展

最终效果

看起来非常答辩的效果。

第八节 裂痕

-节点:cross section

提取图像频域的某一横截面,非常适合制作裂纹,有多种模式,可以是二值、线性、线条向一边或两边模糊。

-节点:high pass grayscale

平平无奇的高通滤波

示例

其实看完节点效果整个思路也就出来了,cross section的双向模糊模式创造裂痕,用高通滤波限定范围,threshold二值化,blur和mdwp做细节。

最终效果

最终的效果纹样取决于取cross section的图,频率比较高的图产生的裂纹也会比较复杂,反之亦然。

最终效果

第九节 高度

-节点:auto levels

归一化,把灰度值域扩大到0-1

示例

最终效果

思路是通过slope blur自己创造出硬边、控制锐利程度,调节颜色的值域并做细节,blur进行滤波,可以做出一些简单的高度效果。

最终效果

第十节 Koishi 石头

-节点:cube3d

一个3d的cube图。

-节点:crop

截取图中的特定范围,可以配合transform2D使用。

示例

最终效果

主要思路:用cube3d做基础型去减一个反转的crystal,用1x1的tile generator控制随机量,auto levels增大坡度,用slope blur+cloud(或者任意比较细的连续噪声)做细节,tile generator然后用crop做提取。

或者直接用parabloid做基础型,使得tile generator可以直接生成想要的结果。

看上去还是很简单的。

不过实际操作的时候会发现这个造型很难入愿捏出来,关键在于噪声添加的细节很容易让边变得过于毛躁从而不适合石头应有的硬边,这里其实可以使用上一节中slope blur自己的方法来增加坡度,也可以在前面用bevel直接给一个坡度(使用之前提到的技巧)。

把tesellation height拉高,形成了这样的效果,细节待进一步增强。

最终效果

用slope blur自己的方法加了坡度,然后用hq去去除一些过大的细节,形成这个效果。

第十一节 Custom Node

主要节点:input,output

custom node可以看成一个函数,输入一些东西,输出一些东西,可以在里面调整参数,使用这个可以降低耦合,便于修改,也使得graph更加优雅,秉持优雅是最重要的。

在graph里导出使用其他graph的节点,然后暴露参数。

没什么好说的,熟练使用就行。

如果使用不熟练,回头看看就行。

第十二节 自定义柱形

-节点:shape extrude

平平无奇的挤压

-节点:curve

输入贴图成为一条曲线,可以自行控制曲线,输出一张灰度图。

示例

最终效果

用自定义的图形去extrude,通过curve控制挤压的曲线。

说实话并不知道为什么用SD做这个,但是使用起来非常方便。

最终效果

莫名其妙的产物。

第十三节 岩石和山崖

示例

最终效果

主要思路:用tile generator搞出一堆pyramid,调节参数使其融合在一起,用mdwp进行扰乱,用histogram取特定值域,edge detect描边,融合blend在一起来创造硬边,auto level扩大值域。

这里的描边的作用很显然,是为了创造出石块之间的缝隙的凹槽,我们可以发现,描边的粗细越粗,凹槽也就越粗。同时凹槽的深度其实是由原来的图的亮度决定的,因为描边乘法把亮度归零了,而原来的亮度越亮归零造成的插值也就越大,所以在自己做的时候,我加了个level提高了原来的亮度再进行blend,从而提升凹槽的深度,不过这个的代价是在高值的部分细节变少了,建议认真调一下参来获得最好的效果。

如果出现大量的很乱的噪声,那么是fractal sum的roughness问题,调整使其减少。

拉高了height看看结果,和视频里其实还是有差距的,调参太难了。

(不同levels下的,第二个加了个AO,好看了一点)

最终效果

最终效果

之后视频中提到可以用3Dshape代替pyramid或者其它的技术(non uniform direction warp)来自定义形状达到更好的效果,就只能自行探索了。

第十四节 螺纹和侧壁

-节点:vector warp

输入一张彩色图,将rg通道作为变换方向输入进行warp,输入后原有的值域从[0,1]映射到[-1,1],因此如果要让一个轴不动的话,输入应该是0.5。

-节点:RGBA Merge

顾名思义,将四张灰度图合成一张彩色图。

节点:shape mapper

将一个图形以某些方式映射成别的图形,例如将长条弯曲成圆等等。

示例

最终效果

这节讲的是一些高级的花纹生成方式,主要是一些节点的使用吧,学会了节点就够了。

最终效果

然后又做出来了莫名其妙的东西现代主义艺术

最终效果

第十五节 石子街道

-节点:flood fill to gradient

给每一块区域添加gradient,范围判定用的大概是阈值填充的方式。

-节点:flood fill to random

和上一个类似,给每块区域添加不同的颜色,配合上一个可以使得每一块gradient不同。

-节点:quantize

量化节点,可以用于调整或去除色阶。

示例

最终效果

思路:flood fill to gradient和flood fill to random的作用显然是给每一个砖块去添加不同的方向,圆角tile random2和两个flood节点组成了基本的形状,剩下的noise全部都在添加细节,用不断multiply的方式来更新每个砖块的亮度制作细节。

因为之前的时候也做过这个,所以用旧节点浅捏了一下。

最终效果

效果并不好看,太规整了,强行不规整又容易太歪,看不出是街道的样子,考虑到很多原因还是用tile sampler或者generator做更适合吧()。

最终效果

不规整的样子,比起小路更像是什么星球的表面。

最终效果

自己用其它的方法整了一套,但是石头还是没法做到像示范那样规整

另一个版本(没有用bevel)

最终效果

按教程思路用flood fill to gradient的版本(突然发现自己的SD没有tile random 2…),做了些自己的改动,还是很不一样的(感觉。。不如视频的好看)

最终效果

第十六节 皮革

示例

思路十分简单,用voronois或者triangle grid做基础型模拟皮革表面,用之前描边切边的方法控制细节,添加细节并将其输出到材质,目测难度全在调参。

然后我发现自己的sd2021版本里没有vonoroi也没有triangle,不做了,换新版本再做qwq

最终效果

其实大可以用别的噪声加slope blur来模拟效果,不过没有voronoi这么可控。

第十七节 焊接缝

示例

最终效果

主要思路看图就可以理解,基础是有硬边的图形,通过gradient模拟一个平滑的凹凸,不断重复该图形,可以把结果导出到sp进行绘制。

最终效果

姑且还是手写了一个。

第十八节 喷绘

示例

最终效果

大概是案例的第一个特效向,思路是旋转一个crystal 2,输出法线做vector,然后用这个vector去位移一个圆饼,用blur和threshold来控制粗细,最后加个non uniform blur来控制整体渐变(细小的部分会变淡,粗的部分不太会受到影响)。非常有实用性的思路(魔法),通过调参可以做出非常丰富的效果。

最终效果

第十九节 地毯

示例

思路,cross section搓一个折线,上blur hq捏个变化,然后tile sampler,用mdwp做细节。

最终效果

用levels混了一下AO避免整体过黑(毕竟地毯毛也是会透光的)

第二十节 沙滩

示例

梦结束的地方(bushi)

思路:用anisotropic noise做基础型,non uniform directional warp来控制形状并且加轨迹拖尾,形成一些白线中间框住渐变黑块的效果,blur控制形状,mdwp加细节,也可以用levels来减少一下黑坑。

最终效果

第二十一节 织体

-节点:skew

做一个平行的形变

示例

最终效果

这节主要在于织体纹样的创建,相当有意思,发挥创造性吧。

最终效果

跟着捏了一个样例

第二十二节 高级技巧

-节点:height blend

顾名思义的高度混合,有很多可以调节的参数

示例

最终效果

这节其实没什么新节点,主要是调参,最后用了一个height blend,尽量多调试一下,建议下载官方提供的sbs雪山进行一个学习,能够学到挺多的,也让我进一步认识到了SD的上限所在还是非常遥远,要用好SD需要非常强大的美术直觉,而这并不是一朝一夕可以达成的。

第二十三节 纺织纹样

示例

主要思路:用tile sampler复制fiber,操作ts的rotation map和mask map功能制作纹样,和底纹合体,然后用bevel和mdwp制作梯度和细节。

我的版本没有alveolus,用tile generator做了一个(没那么密是因为两个tile开的比较小,实际上会发现细节低下的情况下开大了很容易产生摩尔纹,需要用滤波去消除掉,得不偿失),细节肉眼可见的差,之后再去进行改进。

最终效果

小结(暂时)

要是细究下去SD的每个节点需要用到很多数字图像处理的知识,而SD本身作为美术PCG软件又对使用者的审美又很高的要求(相当需要直觉)。作为生产贴图的最实用的工具之一,SD是有必要一直了解练习下去的,最后能连出来一个好看的纹理其实也还是非常有成就感的,现在才只是刚刚决心深入学习,希望大家入坑以后都不会放弃。