UE4·锤纹银
UE生成材质+RT烘焙纹理
1 min to read
不务正业的一篇。
在P站看到一个blender材质,用voronoi噪音制作的锤纹球,就在blender里复刻了一下,然后,想着在UE4里也整个一样的。
Blender里的shader如下,
Voronoi
Voronoi是挺出名的一种cellular noise。根据距离相邻cell中心位置的长度计算当前cell的颜色,可以创造出形似细胞的图形。The Book of Shader有一章专门讲这个。(下图是processing做的一个交互voronoi图,鼠标点击下方图片可以在鼠标位置新建cell。
在UE4中烘焙贴图
UE4中有一noise
节点,提供几种常用噪音算法,其中包括voronoi。在实践中,出于消耗上的顾虑,不应该直接使用节点生成噪音,而是应该将其制成贴图。
首先新建一个空Render Target
。
一个材质。材质如下,使用noise节点的voronoi噪音生成需要的噪音。
然后新建一个Actor
蓝图。蓝图内容如下,把刚才新建的材质和RT填进去即可。
此时compile蓝图,材质的内容即可被烘焙到RT上。
这里要注意几个问题——
材质的shader要选有emission
通道的shading mode(比如unlit),噪音图样要连接到emmisive上,否则bake不出图案。
此外在我第一次compile时,bake出的贴图alpha通道是全0,这是因为Draw material to render target
实际上是将材质图案与RT这张”图片”混合以改变RT的内容,这就涉及到blend mode的选择。
这里的blend mode应该选择AlphaComposite
,然后设置opacity
为0!(是0不是1)。
AlphaComposite
用于已经预乘透明通道的材质,这一模式经常用于UI或者特效贴图。该模式的混合计算如下,
$$Final_{rgba} = Source_{rgba} + (Dst_{rgba} * (1 - Source_{a}))$$
这样只要dst(即clear render target)的clear color设置为(0,0,0,1),然后将source的alpha设为0,就可以保证最终获得我所需要的source的rgb和dst的a。
(当然这个blend mode不是唯一选择,测试了一下addictive在这个例子中似乎也没什么区别,只是alpha又要根据相应的计算规则调整成其他数值。)
成功获得噪音图到RT后,右键→create static texture即可根据RT获得一张Texture。
锤纹材质
这个…没啥好讲的,就改改法线和颜色,over。