资源描述:
《[unreal3_material]各材质节点详细图释讲解1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、这些是我在Unreal3项目开发中总结的的教程,面向于初次接触U3的使用者,对在U3材质节点方面想要进阶的朋友也有一点帮助,教程里面有一些简单的例子来诠释各个节点的功能,并没有针对某种材质的单独例子。通过这篇大纲式的教程,能帮助你对U3材质节点有个大概的了解。U3Shader不仅是给物体附上贴图,它也能做各种很酷的特殊效果,如材质动画——流动的岩浆,燃烧的火焰,雨雪效果,水体效果,天光等等等等。。。,还能制作通用的材质球模板,来提高制作效率。如果你想在这方面达到一个高级阶段,是要具备一定的数学基础的,因
2、为里面有很多节点功能与运算、向量、三角函数、矩阵有关~~这些高级的东西在真正制作时是很少用到的,所以只要掌握一小部分节点,就能胜任大部分基层的功能要求。模块化的节点网络可以方理解,查错和修改,规范上类似于写程序很多复杂的节点网络可以拆解成一个个小的功能模块,每个小的模块用来实现特定的功能。我们研究官方节点和自己做时可以用这种方法每个节点运算时耗的资源量是不一样的,节点网络也需要优化。Unreal3Shader各节点详细图释讲解为了方便理解,我把所有已知的节点分成以下几个大类:数值变换类数值限制—Clam
3、p,ConstantClamp降低维数(通道过滤)—ComponenMask小数进位取整—Ceil去小数取整—Floor只取小数部分—Frac使向量模为1—NormalizeClamp:作用:限制数值。无控制参数。Min,max没有输入时,自定义为无穷小和无穷大原理:Ifx>max,thenx=max;Ifx4、,因为5>3,所以输出3例1:min=(1,0,0)R(1,0,0)G(0,1,0)B(0,0,1)白色(1,1,1)Clampmin=(1,0,0)左上角R(1,0,0)每个数值和min(1,0,0)比较,因为每个数值都相等,结果为(1,0,0);左下角G(0,1,0)做三次比较0<1,输出1;1>0,输出1;0=0,输出0,结果输出(1,1,0);同理,右上角输出(1,0,1);同理,右下角输出(1,1,1)。例2:如图min为图片本身R通道左上角R(1,0,0)每个数值和min(1,1,1)比较,
5、结果为(1,1,1);左下角G(0,1,0)和(0,0,0)比较,结果输出(0,1,0);右上角B(0,0,1)和(0,0,0)比较,输出(0,0,1);右下角(1,1,1)和(1,1,1)比较,输出(1,1,1)。Tips:1.一维常数0.5在与三维常数作计算时,可以换算成RGB(0.5,0.5,0.5),分别与三维常数各个值分别作计算。2.引擎中对颜色的数值定义为0-1,超过1的颜色仍然存在,我称之为颜色的强度;Photoshop中定义为0-255,超过255的颜色不存在ConstantClamp:
6、常数限制,与Clamp类似,min和max为自定义,只能是常数ComponenMask:通道过滤,Mask(R)表示不过滤通道R。例1:Mask(R)=只取红色通道算法:Mask(R)[R,G,B]=[R,0,0]例2:Mask(G,B)=取GB通道,以RG通道的形式输出算法:Mask(G,B)[R,G,B]=[0,G,B]StaticComponentMaskParameter:和Mask功能一样,可以在MaterialInstance中调节Tips:所有名字里含Parm的节点都可以在Material
7、Instance中调节Ceil:让小数点进位,变成整数0.2->1;1.4->2在此颜色会从各个像素作计算,等于0的输出为0,大于0小于1的输出为1。Floor:去小数变成整数,0.2->0;1.4->1。与Ceil类似在此颜色会从各个像素作计算,等于1的输出为1,大于0小于1的输出为0。Frac:和Floor和Ceil类似,只取小数,3.4->0.4在此颜色会从各个像素作计算,等于0和1的输出为0,小数部分输出为其本身。Normalize:使输出向量的模为1。如一个三维向量a(x,y,z),要使输出新
8、的向量a’的值
9、a’
10、=1;计算方式:
11、a
12、=(x2+y2+z2)1/2,则输出向量a’为(x/
13、a
14、,y/
15、a
16、,z/
17、a
18、),且
19、a
20、!=0。同理:一维数a=x,
21、a
22、=
23、x
24、,输出a’=x/
25、x
26、(x>0,a’=1;x<0,a’=-1;x=0,输出无效)二维向量a(x,y),
27、a
28、=(x2+y2)1/2,输出a’=(x/
29、a
30、,y/
31、a
32、,z/
33、a
34、)例1:输入颜色(5,2,3),作Normalize运算后。输出颜色应该是(0.811