虚幻引擎(UE4)游戏技术基础 课件 第2章 材质基础_第1页
虚幻引擎(UE4)游戏技术基础 课件 第2章 材质基础_第2页
虚幻引擎(UE4)游戏技术基础 课件 第2章 材质基础_第3页
虚幻引擎(UE4)游戏技术基础 课件 第2章 材质基础_第4页
虚幻引擎(UE4)游戏技术基础 课件 第2章 材质基础_第5页
已阅读5页,还剩180页未读 继续免费阅读

下载本文档

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

文档简介

第二章

材质基础

目录2.1材质概述2.2材质编辑器2.3材质关键节点2.4材质优化2.5材质练习案例2.6材质综合案例2.1.1PBR材质概述首先需要了解什么是PBR?PBR全称是基于物理的渲染(PhysicallyBascdRcnding),它是一套先进的渲染方案,能够基于物理属性,对光线照射作出精确的反应。还可以通过定义模型的基础颜色、法线贴图信息、粗糙度和金属值就可以设置模型在不同光照条件下反应出来的真实渲染效果。PBR目前应用广泛,在渲染器中,NVIDIAiray、Octanerenderer、PixarRenderman都已采用新的PBR模式。

同样,在RealTime渲染工具或游戏引擎中广泛使用。主流引擎如UnrealEngine4、CryEngine、Unity乃至问世不久的AutoDeskStingray引擎也都采用PBR模式。PBR材质优点1.能够准确的定义非常真实的材质表现,相反对于非写实类型的材质同样同样也能容易完成。2.对于开发者,完成所需要的材质质感表现更为直观,并不需要手动绘制阴影高光细节等。更为简单快捷。3.Metallic通道为数值或简单的黑白贴图,相比传统材质,可以节约贴图数量或者减少素材资源的容量这是不同光照条件下的实时渲染结果。传统贴图VSPBR贴图PBR重要输入数据SubstanceDesignerUnrealEditor4基色,可以理解为物体本身的颜色。控制PBR的三种属性主要贴图类型介绍:BaseColor/Oiffuse/Albedo主要贴图类型介绍:NormalmapNormalmap法线贴图是低模展现高模细节的手段。在有限面数下,要完成高质量贴图,就需要用到凹凸贴图和法线贴图来完成一些小的细节,并展示模型的精度。主要贴图类型介绍:Metallic(金属值)当数值为(0,0,0),则物体为非金属;当数值为(1,1,1)或(255,255,255),变为纯白色,则物体是纯粹的金属。主要贴图类型介绍:AmbientOcclusionAO(也称OCC,环境光遮罩)利用物体自身夹角所产生的阴影,使用灰度图,0~255或0~1区间来进行数值输入,使用OCC通道可以增强画面层次感。主要贴图类型介绍:Roughness(粗糙度)定义模型某一区域的光滑程度,也是通过灰度图来控制,而灰度值区间在SubstanceDesigner中,是0~255;在UnrealEditor4中,则是0~1。两种PBR制作流程:掌握PBR材质理论的关键点2:掌握PBR材质理论的关键点1:

使用通道的思维来看贴图,基础颜色(贴图)、法线(贴图)、金属(贴图)、高度(贴图)都是不同维度的数据。

颜色、法线都是三维数据,粗糙度、高度、Occlusion都是一维数据。传统材质VSPBR材质2.1.2数据基础什么是数据?

其实一切信息都可以看作数据,例如:一个数值、颜色信息、贴图信息、法线信息、UV(纹理坐标)信息。

连接的节点就是数据处理的流程,各节点类似于工厂里的机器,整个节点数相当于一条流水线,将需要处理的原料放进去,经过加工处理后,输出的结果就是产品。数据维度

用数据维度来对数据进行分类,从数学角度来说,关于空间维度的解释,是指在空间中的任意一点作相互垂直的直线,能作出几条相互垂直的线,那么这个空间就是几维空间。

在三维空间中,当我们表达某一点的位置时,需要观察点分别在三个坐标轴上的位置,假设点位置为(x,y,z),由此可知位置信息由3个元素构成,所以称它为三维数据。三维数据三维数据包括三维空间的位置或向量、RGB颜色、模型法线信息、法线贴图。二维数据

从以下的二维坐标看出,其由两个数据组成,再例如:UV信息,在UV中我们把三维的点的分布,改为二维的分布,所以展现的效果是平的,反应了二维到三维之间的投射关系。一维数据

我们可以这样理解,所谓的一维就是一条线,线上的每个点的位置可以用一个坐标值来表示。注:一维数据由一个元素构成,举例:整数:1、2、3、4、5、6、7、8、9、0小数:0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9四维数据

四维数据主要用于颜色,比如RGBA模式的颜色,不仅包含RGB信息,还有一个透明信息,这种模式的信息就是一个四维数据。每个维度的数据不单单是一个数据,也可以是一组数据,比如:一个颜色是一个三维数据,但一张图片是一个三维数组。一维数组

下图中的数据用Texture节点来载入一张这样的贴图

怎样将三维数组转化为一维数组?使用其中一个通道,如下:数据的自动转换

数据维度的自动转换:在编辑器中完成,按理说不同维度的数据是不能进行计算的,但在虚幻4的材质编辑器中,我们可以用高维数据和低维数据来进行数学运算。但是在虚幻4材质编辑器中,不能用二维数据和三维数据来进行运算。想要进行计算,就要把二维,三维转化为低维数据,才能和高维数据进行计算。注:只有一维数据才能和高维数据进行运算。

数据意义的自动转换:通过我们的大脑意识去完成,一维数据与高维数据运算原理

用二维数据和一维数据进行运算,一维数据就会通过复制自身的方式,将自身升级为二维,然后再和二维数据进行计算。一维数据乘以三维数据或四维数据均同上原理。

例如:用二维数据(4,5)乘以一维数据2一维数据通过复制本身得到二维数据(2,2)数据意义的自动转换

数据意义的转换在我们的脑子里进行,需要同时具有美术和程序员两种职业的思维,

当我们看见一个颜色时,它或许还表示位置信息、UV信息,这些信息都可以相互转换,如下图所示:1(1,1,1)on≠(0,1,0)0(0,0,0)off0.5(0.5,0.5,0.5)half

例如,当我们创建一个颜色,发现不能在属性栏中看见,这时,就要创建一个Constant3Vector节点,可以在这里定义了一个三维数据,可以通过拾色器或者输入数值来改变颜色,则此节点会以颜色形式表现出来。在数据运算中,每个通道的范围将由0~255转换为0~1,如下:这样,我们的颜色在与向量、位置等数据进行计算的时候就不会出现问题了。2.1.3纹理格式压缩与纹理大小设置

在虚幻4的材质中,纹理是一个非常重要的部分。首先创建一个新文件夹,命名为textures,双击textures文件夹,导入纹理图片,可以通过点击Import,或者右击最下方面板,在弹出的面板选择import,又或者直接将图片拖入textures文件夹。怎么导入纹理?关于纹理压缩

我们所有导入UE4引擎里的纹理贴图都会被压缩,不管它之前的体积有多大,导入到UE4以后同样的压缩率,同样的分辨率下,图像的大小都是一样大的。

虚幻4常用的纹理格式包括PSD、TGA、PNG、JPEG、BMP等在诸多纹理格式中只有PSD和TGA是未压缩的图片格式;默认情况纹理导入到就会被统一压缩成DXTC或BC格式;因此PSD和TGA格式也成为了虚幻4引擎最常用的纹理素材格式

双击纹理图片,可以发现正常图片和法线图片弹出的面板右侧细节面板上的压缩形式不同。正常图片法线图片

还可以通过选择Grayscale(R8,RGB8sRGB8),去掉颜色信息,改变图片颜色压缩格式的改变会影响图片的大小

虚幻4常用的纹理素材尺寸大小一般都设置为2的幂数,最大不超过8192X8192如:1X1;2X2;4X4;8X8;16X16;32X32;64X64;128X128;256X256;512X512;1024X1024;2048X2048;4096X4096;8192X8192

当然我们也可以使用这些参数相互配合,如:1024X4096长方形贴图也是可以的,但是它的长度和高度必须是2的幂数纹理大小设置

即使导入的图片为500×500,也会重新换算成512×512,每次使用都要进行一次换算,不仅麻烦,还要占用系统资源。2.2.1材质创建以及材质编辑器介绍材质创建首先在资源管理器中右键创建Material,也可以在Materials&Textures中创建Material,或者在内容管理器AddNew中创建Material。

鼠标右键,创建一个文件夹Material,打开文件夹,创建一个新材质,材质命名为M-Sculpture-Mat(Material首字母-模型名称-材质)

双击创建好的材质球,打开材质编辑器,中间最大的区域为节点操作内容的区域,节点算法均可在这里实现。右侧区域为控制板,可以找到需要的节点拖入中间最大的区域。在节点操作区域,可以通过鼠标滑轮键放大缩小视图,左键可以框选节点,右键可以拖动视图节点预览视口

节点预览视口右下角前4个图标的意思是四种显示形态,像什么用什么,而第五个是当物体不像前面任何四个时,可以在资源管理器中,选择模型,将模型在茶壶中进行指定。如果没有选择模型,点击茶壶,就会弹出错误窗口。如果模型过于复杂,在材质运算过程中消耗也会比较大。一般,只会用基础几何体来进行材质模拟。当选择某一节点,细节面板会出现相应的信息。当材质选择无光照,最终节点那一块有很多是被锁定的。可以根据需要自主选择不同的模式

有的时候在用到玻璃材质时,需要用到半透明材质,这时能发现半透明参数被激活

做植被时,需要遮罩,需要打开不透明遮罩,同时不透明遮罩通道也被开启。

点击Stats,节点操作区域下方出现一个统计面板,它可以显示在节点区域的正常操作或错误操作,操作错误时,我们可以根据提示,及时更改。常用工具栏:Browse:点击放大镜,会直接找到材质球Apply:当给材质添加颜色,节点预览窗口的模型颜色改变,但是材质球的颜色依旧不变,这时,需要点击Apply(应用),材质球颜色改变Search:可以搜索出在材质编辑器中用了哪些资源。Home:回到主页,当节点操作视图偏移,点击Home,节点回到正中心。Connectors:当我们编辑时,默认的打开,若关闭,则只显示最简化,有效节省了视图空间。LivePreview:实时显示,当赋予材质颜色时,预览视图会跟随变化LiveNodes:实时节点,一般用于动态贴图,LiveUpdate:实时更新,在预览视口实时更新贴图。HideUnrelated:隐藏不相关的设置PlatformStats:不同平台的统计数据和操作PreviewNodes:节点预览Hierarchy:层级,材质层级包含材质实例材质实例2.2.2赋予材质与纹理显示如何赋予材质?两种方法:1、选择需要赋予材质的模型对象,将材质拖拽到模型上。2、或者直接将材质球拖拽到细节面板,material的材质框中;还可以选择材质,再点击材质框下的箭头直接赋予。怎样将贴图应用到材质中?

可以在材质文件夹里选择纹理图片,拖入到材质编辑器中,在节点视图中会出现对应的纹理节点,也可以在材质编辑器中,直接按T键,出现Texture节点,再将纹理图片进行指定,选择需要的纹理图片,再到材质编辑器的细节面板Texture中点击箭头进行指定。还可以先选择图片纹理,再到材质编辑器中按T键,这时材质会直接赋予。又或者直接在节点视图鼠标右键搜索Texture,或在控制面板搜索。蓝图连接,再点击Apply,在场景中可以看见贴图被指定在模型上

当模型较多时,可以选择模型,在细节面板,StaticMesh中双击模型,打开静态模型的编辑面板,可以直接选择材质球,再点击如图2所示的箭头进行指定,或者直接将材质球拖到图2中的材质框里,回到场景中,发现所有模型都被赋予材质。图1图22.2.3虚幻4材质简单的数学运算虚幻4的简单数学计算

数字1+鼠标左键,创建一维常量;数字2+鼠标左键,创建二维常量;数字3+鼠标左键,创建三维常量,以此类推。或者在控制面板中搜索constant创建。加法快捷键:A乘法快捷键:M除法快捷键:D减法没有快捷键

新建两个一维常量,可以给他们赋予想要的值,通过算法连接,就能实现加减乘除。在加法和乘法运算中,与两个数的位置顺序无关,而两数的位置会影响减法和除法的结果。简单的两个数据间的运算

当设置两个一维常量相加,给它们都赋值1时,最终应该等于2,但在显示器中只能显示唯一的参数值,如果想要显示为2,只能是光的溢出,将Add节点连到自发光,并把赋值调大,可以明显看出光的溢出,乘法运算同理;减除除了与运算顺序有关,其他大致同理。找到两张图片,拖到材质编辑器中,由于图片由许多像素组成,故为数组(Add)加法运算Add接收两个输入,将其相加,然后输出结果。这个加法运算按通道执行,这意味着输入的R通道、G通道和B通道等等将分别相加。两个输入必须具有相同数目的通道,除非其中之一是单个常量值。常量可以添加到具有任意数目输入的矢量。注:Add常用于使颜色变亮/变暗(加正负值)或偏移UV纹理坐标(参考二维向量那里)(Multiply)乘法运算

表达式接收两个输入,将其相乘,然后输出结果。类似于Photoshop的多层混合。乘法按通道进行,即,第一个输入的R通道将乘以第二个输入的R通道,第一个输入的G通道将乘以第二个输入的G通道,依此类推。除非其中一个值是单个浮点值,否则两个输入必须具有相同数目的值。(Subtract)减法运算

右键搜索创建Subtract(减法)节点,节点接收两个输入,从第一个输入中减去第二个输入,然后输出它们的差。减法按通道进行,即,第一个输入的R通道将减去第二个输入的R通道,第一个输入的G通道将减去第二个输入的G通道,依此类推。除非第二个输入是单个常量值,否则两个输入必须具有相同数目的通道。常量可以从具有任意数目输入的矢量中减去。(Divide)除法运算

表达式接收两个输入,并输出第一个输入除以第二个输入的结果。除法按通道进行,即,第一个输入的R通道将除以第二个输入的R通道,第一个输入的G通道将除以第二个输入的G通道,依此类推。除非除数是单个浮点值,否则两个输入必须具有相同数目的值。切勿以零作除数。2.3.1线性插值节点与限制节点线性插值节点

在控制板的Math中选择Linearlnterpolate并拖入节点操作视图,也可在操作面板中所需要创建节点的位置点击键盘键L并点击鼠标左键

起过渡作用,在Photoshop中,可以想象成一个图层的效果,类似于图层遮罩。将两个图片进行混合,调节Alpha值,Alpha的大小决定下面那张图片的显示

如果Alpha是0.0,就使用第一个输入值。如果Alpha是1.0,就使用第二个输入值。如果Alpha在0.0和1.0之间,输出是两个输入之间的插值,当Alpha小于0或大于1,图片会出现不正常显示。这时可以添加限制节点Clam,不管设置的数值多大,最终都会回归0~1之间。在A中插入RGB(0,100,0),在B中插入RGB(0,-100,0)的数值,通过插入Time和Sine在Alpha中进行柔和过渡,最后把Lerp连接到世界坐标轴中(WorldPostionOffset)怎么让材质球在Y轴左右移动?限制节点

Clamp表达式接受一个或多个值,并将它们约束到由最小值和最大值定义的指定范围内。如果最小值为0.0,最大值为1,则意味着结果值永远不会小于0.0,且永远不会大于1。2.3.2一减节点的原理与使用方法原理

当直接用1-x节点连接材质节点时,则用1分别减去输入的R、G、B值

而添加Subtract节点并连接两个输入通道,将第一个输入减去第二个输入,然后输出差值。

如果使用多个通道传递值,每个通道将分别相减。当A和B中全部连接的是RGB,则A的R值减去B的R值,A的G值减去B的G值,A的B值减去B的B值,最后结果保存并输出使用方法1、把材质贴图只留下一个红色通道R,把材质R节点连接到Subtract的B中,A使用数值1连接,最后连接到BaseColor中就会得到反转的颜色,既黑色变成白色,白色变成黑色2、把材质贴图只留下一个红色通道R,把材质R节点连接到Subtract的B中,A使用数值1连接,如果把Subtract连接到Roughness中,贴图的RGB连接到BaseColor中,此时就会使得白色区域的光滑度变高2.3.3贴图的UV控制节点

TextureCoordinate节点用于控制贴图的UV,快捷键是U。其中CoordinateInde属性是选择贴图的UV层,一张贴图可能会包含多层UV;UTiling属性是U方向的平铺次数;VTiling属性是V方向的平铺次数。

贴图中的UVW对应三维中的XYZ,但是UVW的原点在左上角。在UVW代表的是颜色的空间位置时,U朝向红色R,V朝向绿色G,W朝向蓝色B。

使Utiling为15,Vtiling为0.5,再把TexCoor连接到贴图和法线贴图中即可呈现拉丝效果。还可以运用加减乘除运算来调整金属拉丝效果。2.3.4算法练习制作写实金属材质

在材质面板中带点击鼠标右键,选择“Material”,双击进入材质编辑器。

然后找到贴图,并将贴图拖拽到材质编辑器中,将贴图的RGB连接到基础颜色BaseColor,将贴图的Alpha连接到粗糙度Roughness中,金属值设置为1。

改变金属的颜色,在面板中添加一个偏蓝的三维RGB颜色,与贴图的RGB颜色相乘Multiply,就会得到一个完整的贴图基础颜色添加金属坑坑洼洼的效果,在材质面板中选择一个法线贴图,拖入到材质编辑器中,法线贴图RGB连接到Normal写实金属,对材质的粗糙度用线性插值曲线Lerp控制,给A值为0.5,给B值为0.3

添加锈渍。把带有锈渍的贴图拖拽到材质编辑器中,但如果此时直接与基础颜色相乘的话就会完全失去金属的样子,所有我们先把锈渍贴图用UV节点控制重复次数,但在UV连接时只有一对的话就会显得锈渍单调且不真实,所以我们使用多对贴图UV相乘的方法叠加,得到一个较为真实的锈渍

将相乘得到的数值连接到基础颜色中。如果觉得铁锈的颜色太黑,可以在每个贴图RGB的R通道中添加亮度使其变量,或者也可以在最后相加的到的数值上直接添加亮度。最后将第六点铁锈贴图最后的值与金属贴图的Alpha叠加,再连接到粗糙度中2.3.5向量运算点积叉积归一化点积运算

可以描述为一个矢量投影到另一个矢量上的长度,最后输出的是一个数。DotProduct要求两个矢量输入具有相同数量的通道。

两条有方向的向量A和B,如果向量A和向量B同向则A与B的点积为1;如果向量A和向量B之间的夹角为90°向则A与B的点积为0;如果向量A和向量B之间的夹角是锐角则A与B的点积为小于0;如果向量A和向量B反向则A与B的点积为-1叉积运算

计算两个三通道向量值输入的交叉乘积,并输出产生的三通道向量值。

当我们知道三维向量中其中两个向量时,就可使用叉积算出条向量的向量值。并且两个向量的叉积与这两个向量都垂直向量归一化

Normalize(归一化)表达式计算并输出其输入的归一化值。归一化矢量(也称“单位矢量”)的整体长度为1.0。这意味着输入的每个分量都除以矢量的总大小(长度)。

示例:将一个红色贴图传递给没有光照的材质球的自发光EmissiveColor中,则会呈现自发光效果;如果在其中添加归一化Normalize,则会呈现红色材质球的效果注:没有必要对插入到法线材质输出中的表达式进行归一化2.3.6菲涅尔节点的原理

菲涅尔材质表达式会根据表面法线与摄像机方向的点积再使用一减节点和数值控制,最后传递给线性插值节点输出。如果想要控制范围可以添加一个power值。

菲涅尔公式计算的衰减基于标量乘积的表面法线和相机的方向。当曲面法线朝向摄像机时,输出值为0。当曲面法线垂直于摄像机时,输出值为1。结果限制在[0,1]范围内,以确保中心不产生负片色彩。Exponentln:指定输出值衰减的速率。值越大,表示衰减越紧密或越快。BaseReflectFractionln:从表面的方向查看表面时的镜面反射的强度。值越小反射越强,值为1将有效地禁用菲涅耳效应。反转菲涅尔(B)(InvertFresnel(B)):反转菲涅尔的效果。当需要菲涅尔仅在中心或边缘应用时,可以运用此函数。使用低开销对比度(B)(UseCheapContrast(B)):启用此属性后,菲涅尔节点会使用开销更低的方法来计算亮色与暗色之间的对比度。限制菲涅尔点积(B)(ClampFresnelDotProduct(B):将菲涅尔点积的结果限制在0到1之间。此属性默认为true,但你可以使用设置为false的静态布尔(StaticBool)将其覆盖。2.4.1材质优化算法1.可以让近处的物体显示高分辨率贴图,远处物体显示低分辨率贴图。2.可以通过这种算法优化置换贴图对电脑产生的功率损耗,远处物体细分值低,近处物体细分值高,这样就可以让置换贴图的效果更好的运用在近景物体的细节表现材质优化算法的作用材质优化具体算法导入两张贴图,一张大,一张小,大贴图细节丰富,离视口较近,小贴图离视口较远。怎么获取这样的材质?首先获取当前摄像机的位置,通过摄像机的位置来决定场景中每个点离视口的距离。

首先创建一个材质球,打开材质编辑器,获取摄像机位置CameraPosition,接着获取世界位置,二者相减,得到摄像机位置和世界位置的距离。指定哪些范围内用大的贴图,哪些距离用小的?

新建两个节点,Divide和距离,将距离设为2048,则在此范围内显示大贴图,超出2048,则是小贴图。建一个power节点,将两张图柔和过渡。将过渡值设为2,过渡值越大,则越硬,越小则越柔和。将数据作为一个alpha通道,将值转化为0~1,新建clamp,Lerp节点,再调两个颜色,分别看作大小贴图,给其指定,并运行。将两张贴图拖入材质编辑器,运用加法,将数据进行加法运算的叠加。使用无光照,再创建一个材质实例,指定给当前地貌。并调整合适的参数回到材质编辑器,创建一个LandsacpeCoords节点,运用除法运算,大贴图给到20,小贴图给10。可以在材质实例中调整距离参数,加大其数值。另一种运算方法新建摄像机和世界节点,再建一个Distance节点,运用除法运算,设置一个近距离2048,再建一个Clamp设置一个远距离4096。将数值取绝对值,建立Abs节点,连接,将其优化到0~1区间,再建一个Clamp,作为Alpha运算通过Clamp节点约束了近距离的解算最大值小于远距离的开始位置。近距离用减法来计算近距离范围,远距离用除法,远距离值为分母确认远距离的范围和开始位置数据。蓝图最终呈现2.4.2材质优化算法应用材质函数创建在内容浏览器中点击右键并选择新建(New)>材质与纹理(Materials&Textures)>材质函数(MaterialFunction)以创建一个材质函数,改名为DistanceTessellation,双击,打开函数编辑器,新建input节点,将其与output连接,并点击应用

将材质函数拖到材质编辑器中,可以对齐通过数据的输入运用算法得到结果输出。复制上节课的材质优化算法到材质函数编辑器。给input命名,把它转化为scalar一维数据,命名为Min-Diatance-Height(输入最小距离高度),用命名给它打上标签,连接Stubtract“B”,Ctrl+D复制以上节点,命名为Max-Diatance-Height(输入最大距离高度),连接Clamp“Max”。再添加一个input,转化为scalar,命名为HeightMap(输入置换贴图),运用乘法节点,将置换贴图与数据进行修正。给置换贴图取一个中间值0.5再新建一个input,转化为scalar,命名为Max-Height(输入最大高度0),复制到标签。最大距离范围除以最大高度,产生的数值小于输入最大距离高度,作为远距离进行相除。给最大距离高度设置1200,最小距离高度600,最大高度3,进行减法运算,建一个Stubtract,与最大高度相连,取绝对值(针对置换贴图的高度来进行补偿),通过Multiply,乘以一个-0.5,置换的转换值添加,再建一个input,转化为scalar,默认参数为0,命名Tessalation-shift(输入镶嵌转化值),把它们进行加法运算,打个组,凹陷补偿,添加一个拐点。添加一个VertexNormaIWS,与之相乘。

我们最终输出的值是置换贴图,命名Displacement,增加一个Lerp,如果使用前面的算法,连接B,数值唯一,不适用则是默认数值(0,0,1),连A。设一个转化开关Switch,真为1,假为0。

新建input,选择Bool类型,命名Tessalation-Enabled(是否启用置换贴图效果),再输入Bool,开启输出为真(如图),并连接。

增加一个输出端output,改名为Multiplier(输出细分乘积),排列位置归1,操作与前面大致同理,只不过把最大距离高度、最小距离高度、最大高度,改为最大距离乘积、最小距离乘积、输入迭代值。把这一堆运算最后通过线性插值lerp节点,连接到B。如果不启用置换效果,则迭代次数为0

材质函数编辑完成,点击应用,在材质编辑器中看出,我们在函数编辑器中标记好的输入端,回到函数编辑器,可以通过调整排列位置大小,来排列输入端位置。将迭代值降低为2,以防死机,乘积值增大,让它在离得远或近时,远高于高度值。点击应用,回到材质编辑器。将置换贴图拖进材质编辑器中,使用置换贴图其中一个通道,输入一个最小距离高度,默认值设置600,再输入一个最大距离高度,默认值1200,最大高度3,镶嵌转换值0,最小距离乘积1200,最大距离乘积1500,迭代次数2,用Bool开启是否启用置换贴图效果。恢复默认,置换贴图效果选择PN,WorldDisplacement被打开,与置换贴图连接将所有材质贴图拖入材质编辑器,分别将它们依次连接,再应用到场景中,创建材质实例,可以通过调整参数,改变材质展现效果。与函数相关节点MaterialFunctionCall(材质函数调用)-允许使用来自另一个材质或函数的外部函数。这个外部函数的输入及输出节点将变成函数调用节点的输入和输出。FunctionInput(函数输入)-只能放在材质函数中,用于在该函数中定义该函数的某个输入。FunctionOutput(函数输出)-只能放在材质函数中,用于在该函数中定义该函数的某个输出。TextureObject(纹理对象)-用来为函数内的纹理函数输入提供默认纹理。此节点不会对该纹理进行实际取样,因此必须与TextureSample(纹理样本)节点配合使用。TextureObjectParameter(纹理对象参数)-定义一个纹理参数并输出纹理对象,以便在调用具有纹理输入的函数的材质中使用。此节点不会对该纹理进行实际取样,因此必须与TextureSample(纹理样本)节点配合使用。StaticSwitch(静态开关)-根据输入值在两个输入之间执行编译时选择。StaticBool(静态布尔值)-用来为函数内的静态布尔函数输入提供默认布尔值。此节点不会在任何内容之间切换,因此必须与StaticSwitch(静态开关)节点配合使用。StaticBoolParameter(静态布尔参数)-定义一个静态布尔参数并输出静态布尔值,以便在调用具有静态布尔输入的函数的材质中使用。此节点不会在任何内容之间切换,因此必须与StaticSwitch(静态开关)节点配合使用。2.5.1材质案例练习玻璃材质

首先创建材质球,将材质球命名为M_Glass。双击材质球进入材质编辑器面板,在左下角面板中将“混合模式”改为半透明

继续勾选“屏幕空间反射”,“光照模式”改为表面半透明体积

设置基础颜色,按住数字3同时单击鼠标左键,创建“三维向量”。将其“G值”改为0.1,既颜色改为墨绿色,将此三维向量命名为“玻璃颜色”

设置高光以及粗糙度。按住数字1同时按下鼠标左键新建“一维向量”,将其“默认值”改为0.85,再次新建“一维向量”,将“默认值”改为0

设置玻璃材质的不透明度。通过“菲尼尔方式Fresnel_Function”制作玻璃的透明遮罩。按住S键同时按下鼠标左键,新建“标量参数Param”,并命名为“透明度菲尼尔功率”,将其“默认值”改为4

L键+鼠标左键,新建“Lerp节点”,将“菲尼尔方式Fresnel_Function”连接至“Lerp节点”的“Alpha”通道,S键+鼠标左键,新建“标量参数Param”,命名为“透明度线性插值A”,复制一份并改名为“透明度线性插值B”,分别连接至Lerp的A、B。修改“透明度线性插值A”节点的“默认值”为0.05,“透明度线性插值B”的“默认值”为0.25。新建“乘法节点Multiply”,再新建“标量参数Param”,改名为“设置整体透明度”,将其“默认值”改为5

设置玻璃材质的折射。新建“菲尼尔节点Fresnel_Function”,新建“Lerp节点”,命名为“折射功率”,将其“默认值”改为14。新建线性插值“Lerp节点”,将“菲尼尔节点Fresnel_Function”连接至“Lerp节点”的“Alpha”通道。数字1+鼠标左键,新建“一维向量”,值改为1。S键+鼠标左键,新建“标量参数Param”,命名为“折射”,将其“默认值”改为1.5,分别连接至“Lerp节点”的“A”、“B”通道最后,可以在创建材质实例中对参数进行适当修改。2.5.2玻璃的假反射效果制作

承接上一节课,在M_Glass材质的材质编辑器面板中,T键+鼠标左键调入“TextureSample节点”,在“材质表达式纹理Base”中将“纹理”替换成HDR贴图“HDRI_Epic_Courtyard_Daylight(Texturecube)”

新建“CustomReflectionVector节点”,新建“菲尼尔方法Fresnel_Function”节点,S键+鼠标左键,新建“标量参数Param”,命名为“假反射边缘功率”,“默认值”改为2。新建“PixeNormalWS”节点,新建“乘法节点Multiply”以及”加法节点Add”,再新建“标量参数Param”,并将其命名为“玻璃深度”,将其“默认值”改为6.36。新建“1-X(反向表达式)”节点,再新建“标量参数Param”,并将其命名为“贴图反射乘积”,将其“默认值”改为0.3。新建“Power”节点,新建“标量参数Param”,命名为“反射功率EXP”,将其“默认值”改为1.407

新建“菲尼尔方法节点(Fresnel_Function)”,新建“标量参数Param”,并命名为“假反射菲尼尔功率”,并将其“默认值”改为4。再新建“Lerp节点”,新建“标量参数Param”,并命名为“假反射线性插值A”,复制该标量参数,改名为“假反射线性插值B”,并将其“默认值”改为1

新建“CheapContrast”节点,连接“Lerp节点”,新建“标量参数Param”节点,命名为“假反射菲尼尔对比度”,并将其“默认值”改为0.1619。新建“Clamp节点”,新建“Lerp节点”,再新建“一维向量”,新建“乘法节点Multiply”,再新建“加法节点Add”将假反射算法与“玻璃颜色”相加,再将“加法节点Add”与“玻璃材质”的“基础颜色”连接。最后回到材质实例中对参数进行调整。2.5.3磨砂玻璃的制作

创建材质,在“内容浏览器面板”中点击鼠标右键,再点击材质,将材质命名为“M_GlassBlur”

双击“M_GlassBlur”材质球进入“材质编辑器面板”,在“材质”中找到“混合模式”,将“混合模式”改为“半透明”

新建“SpiralBlur-SceneTexture”节点,将“SpiralBlur-SceneTexture”节点的“Result”连接至“M_GlassBlur”节点的“自发光通道”,“SceneColorclampto0”连接至“M_GlassBlur”节点的“不透明度通道”。S键+鼠标右键新建“Param”节点,命名为“距离”,在“材质表达式标量参数”中将“默认值”改为0.05,“滑条最大值”改为0.1,将“距离”节点连接至“SpiralBlur-SceneTexture”节点的“Distance(S)”通道

新建“Param”节点,命名为“距离过渡”,将其默认值改为16。再次新建“Param”节点,命名为“过渡半径”,将其“默认值”改为8.0,“滑条最小值”改为0.85,“滑条最大值”改为50.0。将“距离过渡”节点连接至“SpiralBlur-SceneTexture”节点的“DistanceSteps(S)”通道。将“过渡半径”节点连接“SpiralBlur-SceneTexture”节点的“RadialSteps(S)”通道

新建“Param”节点,命名为“半径偏移”,将其“默认值”改为0.62,“滑条最大值”改为1。将“半径偏移”节点连接至“SpiralBlur-SceneTexture”节点的“RadialOffset(S)”通道。再次新建“Param”节点,命名为“模糊半径AA”,将其“默认值”改为1,“滑条最大值”改为100。将“半径偏移”节点连接至“SpiralBlur-SceneTexture”节点的“TempAARadialBlur(S)”通道

按住S键+鼠标左键,新建“Param”节点,命名为“模糊距离AA”,将其“默认值”改为1,“滑条最大值”改为500。新建“Param”节点,命名为“距离遮罩”,将其“默认值”改为1回到材质实例中对参数进行调整。2.5.4皮革和布料材质的制作

导入文件贴图,新建材质球。在“内容浏览器面板”中右键“新建Material”,命名为“M_LeatherCloth”。双击进入材质编辑器面板,将“皮革_AO”,“皮革法线”,“皮革粗糙”这三张贴图拖拽进入“M_LeatherCloth”材质球的材质编辑器面板

右键将“TextureSample”纹理采样节点“转化为参数”,分别相应地命名为“粗糙度贴图”,“法线贴图”,“AO贴图”

通过“TexCoord”节点来控制贴图的UV。新建“TexCoord”节点,新建“标量参数Param”节点,命名为“纹理重复次数”,将“标量参数Param”节点的默认值改为2,再新建“乘法节点Multiply”。将“TexCoord”节点连接至“乘法节点Multiply”的“A通道”,“一维向量”节点连接至“乘法节点Multiply”的“B通道”。将“乘法节点Multiply”与各个贴图节点的“UVs”通道相连接

新建“TransformVecter”节点,连接“法线贴图”节点。新建“VertexNormalWS”节点,“L”键+鼠标左键,新建“Lerp”节点,将“TransformVecter”节点,连接“Lerp”节点的“B”通道,“VertexNormalWS”节点连接至“Lerp”节点的“A”通道,再新建“标量参数Param”节点,并命名为“法线强度混合”。将“法线强度混合”节点的默认值改为1,滑条最大值改为1。再将“Lerp”节点连接至“材质编辑节点M_LeatherCloth”的“Normal”通道

在“细节”面板中取消勾选“切线空间法线”既改使用世界空间法线。新建“CheapContrast”节点,连接“AO贴图”节点,新建“乘法节点Multiply”,将“CheapContrast”节点连接至“A通道”,再新建标量参数“Param”,连接至“CheapContrast”节点的“contrast”通道,将“AO对比度”节点的默认值改为0.5。点击“Multiply”节点,在细节面板中将“Multiply”节点的“常量B”改为1

新建“Lerp”节点来控制粗糙度的红色通道。将“粗糙度贴图”节点的“红色通道”连接至“Lerp”节点的“Alpha”通道。S键+鼠标左键新建“标量参数Param”,将其命名为“最小粗糙度”。

复制一份并改名为“最大粗糙度”,将“最小粗糙度”和:“最大粗糙度”节点分别连接至“Lerp”节点的“A”、“B”通道。右键“Lerp”节点,点击“开始预览节点”,可以知道当材质的最小粗糙度和最大粗糙度的数值为0时,材质为黑色。将将“最小粗糙度”节点的默认值改为0.2,将“最大粗糙度”节点的默认值改为0.45,新建“乘法节点Multiply”,连接上述“Lerp”节点。S键+鼠标左键,新建“标量参数Param”,并命名为“整体粗糙度调节”,默认值改为1.5,并将其连接至“乘法节点Multiply”的“B”通道。将“乘法节点Multiply”连接至“M_LeatherCloth”材质输出节点的“粗糙度”。

新建“1-x”节点,新建“乘法节点Multiply”,将“AO贴图”连接至“乘法节点Multiply”的“B”通道,将“1-x”节点连接至至“乘法节点Multiply”的“A”通道。将另一个“乘法节点Multiply”连接至“M_LeatherCloth”材质输出节点的“环境光遮挡”

L键+鼠标左键新建“lerp”节点,将上面的最后一个“乘法节点Multiply”连接至新建的“lerp”节点,S键+鼠标左键新建“标量参数Param”节点,命名为“最小高光”,复制一份,改名为“最大高光”,分别连接至“Lerp”节点的“A”、“B”通道。再将“Lerp节点”连接至“M_LeatherCloth”材质输出节点的“高光度”。设置“最小高光”的默认值为0.35,“最大高光”的默认值为0.55

数字3+鼠标左键新建三维向量,右键点击“转换为参数”,并命名为“基础颜色”,将皮革颜色调整为蓝色。再到材质实例调整其参数。

最后复制一份上述皮革材质的材质实例,只需要替换“AO贴图”,“法线贴图”以及“粗糙度贴图”并修改其参数2.5.4车漆材质制作

新建材质球,命名为“M_CarPaint”,双击进入材质编辑面板,在“细节”面板中将“着色模型”选择为“透明图层”。新建“一维向量”节点,设置其数值为0.8,将“一维向量”连接至“M_CarPaint”材质输出节点的“Metallic”。

导入一张彩色贴图将彩色贴图命名为“RandomAngles”。一张带纹理的,凹凸不平的质感的法线贴图(目的是体现车漆内部的细节),命名为“T_Bump_N”。一张颗粒贴图(目的是模拟粗糙度,用来体现车漆内部的金属质感),命名为“T_FlakeMask”。

将颗粒贴图“T_FlakeMask”拖拽到“M_CarPaint”的材质编辑器面板。新建“AbsoluteWorldPosition(绝对世界位置)”和“CameraPosition”节点。新建“Subtract”节点,将“AbsoluteWorldPosition”节点连接至“Subtract”节点的“A”通道,“CameraPosition”节点连接至“B”通道,既用物理位置减去摄像机位置。将“Subtract”节点备注“获取坐标差值”

新建“VectorLength”节点,新建“除法节点Divide”,再输入到颗粒贴图节点的“UVs”通道。S键+鼠标右键,新建“标量参数Param”,并命名为“颗粒尺寸”,默认值改为2。新建“乘法节点Multiply”,将颗粒贴图节点连接至“A”通道,再新建“Param”节点,命名为“颗粒倍增”,将其默认值改为1.5,连接至“B”通道。新建“加法Add”节点,将颗粒贴图与“乘法节点Multiply”相加。

新建“Power”节点,让“加法节点Add”输出到“Power”节点。新建“Param”节点,命名为“颗粒对比值”,默认值改为3,连接到“Power”节点的“Exp”通道。新建“Lerp”节点,让“Power”节点输出到“Lerp”节点的“Alpha”通道。S键+鼠标左键,新建“Param”节点,命名为“底层材质做小粗糙度”,默认值改为0.2,复制一份,改名为“底层材质最大粗糙度”,默认值改为0.8,并分别连接至“lerp”节点的“A”,“B”通道。最后,让“Lerp”节点输出到“M_CarPaint”材质输出节点的“粗糙度”。全选这些节点,C键打组,备注为“粗糙度设置”3+鼠标左键调出“三维向量”节点,右键将其转换为参数,在“细节”面板将其颜色改为黄色

将彩色贴图“RandomAngles”拖拽到此材质编辑器面板。新建“TexCoord”节点,输出到“乘法节点Multiply”,再新建“Param”节点,命名为“杂色贴图重复次数”,输出到“乘法节点Multiply”的“B”通道。再将“乘法节点Multiply”输出到彩色贴图节点

再新建“三维向量”节点,右键将其转换为参数,并改名为“叠加颜色”,将“叠加颜色”改为白色(既R,G,B,A值均为1)。新建“乘法节点Multiply”,让彩色贴图节点与“叠加颜色”相乘。新建“Lerp”节点,让“叠加颜色”输出到“Lerp”节点的“A”通道,“乘法节点Multiply”输出到“B”通道。再次新建“Param”节点,输出到“Lerp”节点的“Alpha”通道。

新建“Power”节点,将下面的“粗糙度设置”的“Add”节点输出到“Power”节点的“Base”通道。S键+鼠标左键新建“param”节点,命名为“杂色噪波对比强度”,将其默认值改为5,输出到“Power”节点的“Exp”通道。新建“Multiply”节点,让“Lerp”节点和“Power”节点分别输出到“Multiply”节点的“A”,“B”通道。再次新建“Multiply”节点,使上面的“Multiply”节点输出到现在新建的“Multiply”节点的“A”通道,S键+鼠标左键,新建“Param”节点,命名为“杂色整体控制”,输出到“Multiply”节点的“B”通道,默认值改为1。再新建“加法Add”节点,让“车漆颜色”与“Multiply”节点相加,最后输出到“M_CarPaint”材质输出节点的“基础颜色”。全选这些节点,C键打组,并备注为“车漆颜色设置”

将法线贴图“T_Bump_N”拖拽到材质编辑器面板,新建“TexCoord”节点,输出到“Multiply”节点,再新建“Param”节点,命名为“底层法线贴图尺寸”,修改其默认值为50,连接至“Multiply”节点的“B”通道。再将“Multiply”节点输出到法线贴图节点的“UVs”通道。再新建“三维向量”,将其颜色改为蓝色(既B值改为1)。新建“Lerp”节点,使“三维向量”与法线贴图节点分别连接至“Lerp”节点的“A”,“B”通道。S键+鼠标左键,新建“Param”节点并命名为“底层法线贴图强度”,连接至“Lerp”节点的“Alpha”通道。最后输出到“M_CarPaint”材质输出节点的“Normal”。全选节点,C键打组,并修改备注为“法线控制”。创建材质实例,并进行参数修改。

“项目设置”中,找到“渲染”,在“材质”中勾选“透明图层启用第二法线”,按提示重启应用,如图3-89所示。在材质编辑器中,右键空白地方搜索“ClearCoatNormalCustomOutput”,新建这个节点。将颗粒法线贴图拖拽到材质编辑器中,新建“TexCoord”节点,新建“Multiply”节点,再新建“Param”节点,命名为“透明图层法线尺寸”,分别连接至“Multiply”节点的“A”,“B”通道。将“Multiply”节点输出到颗粒法线贴图节点的“UVs”通道。新建“三维向量”节点,将其“B”值改为1,新建“Lerp”节点,让“三维向量”节点输出到“Lerp”节点的“A”通道,“法线贴图”节点连接至“B”通道。S键+鼠标左键,新建“Param”节点,并命名为“透明图层法线强度”,将其“滑条最大值”改为1,输出到“Lerp”节点的“Alpha”,再将“Lerp”节点输出到“ClearCoatNormalCustomOutput”节点,最后修改材质实例的数值即可实现影视级别的材质2.6.1材质练习-汽车材质制作A

导入汽车模型:找到模型后拖拽到面板中即可,选择全部导入。因为我们时对模型添加贴图,所以我们可以把模型自带的材质全部删除,保留骨骼。

选择灯光,把灯光的移动性改为可移动的,这样场景就不会去烘培灯光,减少烘培的时间

把汽车模型“Chevrolet”拖拽到场景中,在内容浏览器中双击汽车模型,进入编辑器。选中材质实例“M_CarPaint_Inst”(第18课制作的车漆材质),进入右侧的“AssetDetails”中找到汽车外壳喷漆“CarYellowPaintMat”,可以选择右侧的高光和隔离确定是否选择正确。再点击小箭头(如图3-93),就会赋予上材质,这样做的目的是防止材质只对本关卡场景有用。

制作塑料外壳材质。在材质面板鼠标右键选择材质,给材质命名为“M_suliao”对材质鼠标右键创建材质实例,选择它,在到汽车模型中赋予到“CarBlackPlasitc”中

选择塑料的材质,双击,进入材质编辑器。在Textures中找到“suliao”和“suliaoFAX”拖拽到材质编辑器中。观察要被赋予材质的模型法线比较复杂,所以我们关掉“切线空间法线”使用世界法线。

将法线贴图的RGB来连接TransformVector,再使其与线性插值Lerp连接,同时匹配VertexNormalWS,在材质面板中按住键盘S键在点击鼠标左键,就可以快速导出ScalarParameter节点,将节点命名为法线强度,默认值改为0.68,最小值为0,最大值为1。最后将Lerp输出连接至Normal中。

因为我们制作的是塑料材质,所以金属值为0。

对粗糙度进行细节的调整。因为我们的贴图是一个灰度图,所以无论是RGB的哪个颜色通道都是一样的,这里来我们选择蓝色B通道。在调出Lerp,将B通道连接至Alpha中,再调出两个ScalarParameter节点,一个命名为“最大粗糙度”取值为0.72,连接到Lerp的B中,另一个为“最小粗糙度”取值为0.35,连接到Lerp的A中。再将Lerp的输出连接到粗糙度中。

调整高光值,设置两个参数,一个命名为“高光值A”取值为0.3,连接到Lerp的B中,另一个为“高光值B”取值为0.6 ,连接到Lerp的A中。再将Lerp的输出连接到粗糙度中。

调整颜色,连接线性插值Lerp的Alpha中,再在面板中按住键盘键3并且的点击鼠标左键,添加一个Constant3Vector节点,对节点点击鼠标右键,把节点转化为参数,将这个节点命名为基础颜色A,对其的颜色调整偏灰色,并且连接到Lerp的A中。用同样的方法再添加一个Constant3Vector节点,命名为基础颜色B,对其颜色调整偏深蓝颜色,并且连接到Lerp的B中。

颗粒纹理太大怎么办?在面板中按住键盘U键再点击鼠标左键,添加一个坐标节点TextureCoordinate,再调出ScalarParameter节点设置值为1,用乘法节点Multiply使其相乘后连接两张贴图的UV。

不锈钢材质:在材质面板中添加一个材质,命名为“M_buxiugang”,对其实例化后,双击进入材质编辑器,创建一个三维参数,给基础颜色为RGB(0.9,0.9,0.9)的颜色,调出三个ScalarParameter节点,第一个命名为金属值,值为0.9,第二个命名为高光度,值为0.8,第三个命名为粗糙度,值为0.1,如图3-104汽车不锈钢材质所示。选择汽车中不锈钢材质的模型区域WhiteStainlessSteelMat,将不锈钢材质赋予上去。如果对赋值有自己的想法,可以双击不锈钢实例化进入面板,在右边修改属性值。

在材质面板中找到“M_Glass”的实例化材质(玻璃材质在第14课案例中有详细讲到,这里直接引用),赋予到“GlassAMat”中,再结合实际修改一个材质的参数

后车窗玻璃的制作,因为后车窗玻璃和前挡风玻璃的材质不同,前者的透明度没有后者的高,所以我们对“M_Glass_Inst”进行实例化变成“M_Glass_Inst_Inst”再对其修改属性值。对“M_Glass_Inst_Inst”设置双面材质。最后把“M_Glass_Inst_Inst”赋予给“GlassCMat”和“GlassBMat”。

给汽车座椅添加皮革材质。在材质面板中选择“M_LeatherCloth”将他赋予到车座“CarZuoYiMat”中改变材质中纹理重复次数,控制它的粗糙度。

在材质面板中创建素材,命名为“M_Rad”,作为汽车内的红色内饰。双击进入材质编辑器,对基础颜色调一个红色,高光值为1,粗糙值为0,金属值为0.最后把材质实例化后赋予到“PlasticRedMat”。2.6.2材质练习-汽车材质制作B

在材质面板中创建材质,命名为“M_ClearCoat”,双击材质进入材质编辑器,在细节处,将着色模型改为“透明图层”。

在材质面板中找到“yibiaopan”图片,拖拽到材质编辑器中与基础颜色连接。

添加一个转化判断节点“StaticSwitchParameter”,我们要使它在是true得时候不显示贴图,在false的时候显示贴图,金属值为0,高光为0.3,法线贴图也使用“StaticSwitchParameter”,使它在true的时候显示法线,在false的时候不显示,最后这两张贴图用ScalarParameter节点连接控贴图。

将“pige”拖拽到材质编辑器中,使用Lerp设置两个ScalarParameter节点,一个为最小粗糙度值为0,另一个为最大粗糙度值为1,再将Lerp与名为粗糙度值为0.7的ScalarParameter节点相乘Multply,再使用名为“使粗糙度贴图”的StaticSwitchParameter节点连接到粗糙度中,其意思就是,当为true时就使贴图与粗糙度值相乘得到粗糙度,当为false时就只使用粗糙度为0.7。最后把材质“M_ClearCoat”赋给“YiBiaoPanMat”即可。

将“M_Glass”赋予给“CarCamGlassMat”中,将“M_suliao”赋予“CarCameraMat”中。

将“M_CarPaint”实例化得到“M_CarPaint_Inst1”,对其的颜色更改为黑色。最后赋予给“CarBlackPaintMat”。

新建一个材质,命名为“M_Lighte”,对其的关照模型改为无光照。如图3-112所示,自发光材质的无光照照射。再对自发光颜色属性,使用蓝色和值为5Paran相乘得到的值输出给自发光颜色。

对“M_buxiugan”进行实例化,得到“M_buxiugan_Inst_Inst2”对其的粗糙度,金属感和高光值进行调节,赋给“CarMirrorA”

创建一个新的材质,命名为“M_weiyi”,把贴图“weiyi”拖拽到材质编辑器中,对于尾翼材质的基础颜色,我们使用线性插值与尾翼的贴图进行调整

给尾翼的金属值设置为0。对尾翼的粗糙程度。我们使用Lerp控制尾翼贴图,设置粗糙度为1再在B端连接一个Lerp,下有塑料材质所用到的贴图。对于法线Normal

温馨提示

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

评论

0/150

提交评论