[Unreal3_Material]各材质节点详细图释讲解1.doc_第1页
[Unreal3_Material]各材质节点详细图释讲解1.doc_第2页
[Unreal3_Material]各材质节点详细图释讲解1.doc_第3页
[Unreal3_Material]各材质节点详细图释讲解1.doc_第4页
[Unreal3_Material]各材质节点详细图释讲解1.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

这些是我在Unreal3项目开发中总结的的教程,面向于初次接触U3的使用者,对在U3材质节点方面想要进阶的朋友也有一点帮助,教程里面有一些简单的例子来诠释各个节点的功能,并没有针对某种材质的单独例子。通过这篇大纲式的教程,能帮助你对U3材质节点有个大概的了解。 U3 Shader 不仅是给物体附上贴图,它也能做各种很酷的特殊效果,如材质动画流动的岩浆,燃烧的火焰,雨雪效果,水体效果,天光等等等等。,还能制作通用的材质球模板,来提高制作效率。 如果你想在这方面达到一个高级阶段,是要具备一定的数学基础的,因为里面有很多节点功能与运算、向量、三角函数、矩阵有关这些高级的东西在真正制作时是很少用到的,所以只要掌握一小部分节点,就能胜任大部分基层的功能要求。 模块化的节点网络可以方理解,查错和修改,规范上类似于写程序很多复杂的节点网络可以拆解成一个个小的功能模块,每个小的模块用来实现特定的功能。我们研究官方节点和自己做时可以用这种方法每个节点运算时耗的资源量是不一样的,节点网络也需要优化。 Unreal3 Shader 各节点详细图释讲解为了方便理解,我把所有已知的节点分成以下几个大类: 数值变换类数值限制Clamp, ConstantClamp降低维数(通道过滤)ComponenMask小数进位取整Ceil去小数取整Floor只取小数部分Frac使向量模为1Normalize Clamp:作用:限制数值。无控制参数。Min, max没有输入时,自定义为无穷小和无穷大原理:If xmax, then x=max; If xmin, then x=min; If min=x=max, then x=x;举例1:如输入1,2,3,因为12,所以输出2;如输入2.5,2,3,因为22.53,所以输出3 例1:min=(1,0,0)R(1,0,0) G(0,1,0) B(0,0,1) 白色(1,1,1) Clamp min=(1,0,0)左上角R(1,0,0)每个数值和 min(1,0,0)比较,因为每个数值都相等,结果为(1,0,0);左下角G(0,1,0) 做三次比较00,输出1;0=0,输出0,结果输出(1,1,0);同理,右上角输出(1,0,1);同理,右下角输出(1,1,1)。 例2:如图min为图片本身R通道左上角R(1,0,0)每个数值和 min(1,1,1)比较,结果为(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:常数限制,与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的节点都可以在MaterialInstance中调节 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),要使输出新的向量a的值|a|=1;计算方式:|a|=(x2+y2+z2)1/2,则输出向量a为(x/ |a|, y / |a|, z / |a|),且|a|!=0。同理:一维数a=x,|a|=|x|,输出a=x/ |x| (x0,a=1; x0,a=-1;x=0,输出无效)二维向量a (x, y), |a|= (x2+y2)1/2,输出a=(x/ |a|, y /|a|, z /|a|) 例1:输入颜色(5,2,3),作Normalize运算后。输出颜色应该是(0.8111,0.3244,0.4867)对比发现颜色是一样的。可以理解为改变颜色强度。 例2:运算结果可以理解为:把颜色(R,G,B)各值等比例缩放后,满足(R2+G2+B2)1/2=1。左图中,Frac运算之后,除纯黑色区, R:G:B的比值是一致的,为x:0:0,0x1,只是颜色强度不一样。最后输出都变成(R2+G2+B2)1/2=1 ,因为G=0,B=0,所以这块区域的颜色为(1,0,0)。 Tips:1.颜色(R,G,B)是三维向量2.图片属于矩阵,如512*512 就是其矩阵大小。3.U3常用的图片是2次幂大小的TGA格式图片4.很多时候,图片代表的是数字而不是颜色。我们常增加一些自定义控制参数去调整Shader,其载体就是一张张贴图,如高光贴图,法线贴图。简单说来,引擎就是把贴图转化成矩阵进行一系列运算后,形成一个新的矩阵,在转化为我们可以看到的颜色,这就我们最后看到的渲染后的画面了。 数学方程运算类定义数值14维Constant自定义运算方程MathBox绝对值运算Abs加法运算Add减法运算Subtract乘法运算Multiply除法运算Divide平方根运算SquareRoot幂运算Power1-xOneminus常数节点,从上到下依次为:Constant:常数任何整数,小数 5,0.25等Constant2Vector:2维常数例如平面坐标就是2维常数Constant3Vector: 3维常数颜色RGB就是3维常数Constant4Vector:4维常数RGBA就是4维常数 ScalarParameter:与Constant作用相同,不同点在与Parm可以在MaterialInstance中调参数,但Constant不能 VectorParameter:与Constant4Vector作用相同,不同点在与Parm可以在MaterialInstance中调参数,但Constant4Vector不能 MathBox (Tiberium Engine Only):自定义运算方程,包含通道过滤功能(同ComponenMask ),输入值可以向低维

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论