本篇给读者介绍一个材质渲染的组件-Shader Forge,在材质渲染中可以起到事半功倍的效果,对于很多开发者不熟悉材质渲染的人来说,更容易上手,在应用时首先要对号入座,下面先把对应的Shader Forge版本给读者展示如下:
1.3.0(支持U3D5.5)
1.2.8(支持U3D 5.4)
1.2.7(支持U3D 5.3)
1.26(支持U3D 5.3)
对应的版本下载后,直接导入到Unity工程中即可,否则会出现Shader Forge与Unity3D引擎出现效果不一致的情况。
Unity3D引擎的次世代表现就是通过Shader Forge插件实现了,对于材质的渲染,首先要清楚各个材质的作用,其实Shader渲染就是通过把不同的材质进行相加或者相乘,取样等操作完成的,首先要清楚Shader Forge提供的各种材质的作用,然后针对不同的效果通过Shader Forge编辑器进行拖拽即可完成,编辑器会根据你编辑的结果,自动生成Shader,如果使用Unity制作次世代游戏,可以考虑使用该编辑器,缺点是非常耗的,但是对于初学Shader的编程人员或者美术非常适合。下面先把Shader Forge编辑器提供的各种材质给读者展示如下,这些需要开发者必须要搞清楚的。
扩散(Diffuse)
这是你的着色器的主要颜色,漫射颜色将接收光线,光线减弱取决于light-normal角,被阴影着色。
分散力量(DiffusePower)
这是指数的下降light-normal角度,可以用来获取额外的金属使用值高于1时。
镜面(Specular)
这是材质的高光的颜色,更高的值是亮度,黑色不会影响材质。
光泽(Gloss)
这是高光的指数,更高的值将使它看起来闪闪发光的、价值接近0会让它看起来无光。请注意,如果你有不光泽重新映射,您应该避免使用光泽值低于1。
正常的(Normal)
这是切线法线方向,你可以连接法线贴图或定制的法向量。
发射(Emission)
这只是光总是添加到您的材质,无论照明条件。
传输(Transmission)
时,将通过此控件有多少光表面背后的光源是目前呈现。这可以用于薄材料,如布或植被。
光包装(LightWrapping)
这是一个控制light-normal角下降抵消的方法,可以用来获得一个类似于地下散射的影响。最适合光滑的物体。输入red-ish值将使红色通道“环绕”对象超过别人,使它看起来好像光线传递到网格,和一个红色的波长出来,类似于皮肤着色。
分散的环境光(DiffuseAmbient Light)
这增加了光材质,受到你的扩散的影响。可以使用,例如,cubemap使用基于图像的照明的法线方向(IBL),或环境光
镜面反射环境光(specularambient light)
这增加了光材质,影响你的镜面。可以使用,例如,一个cubemap使用视图为基于图像的照明反射方向(IBL)
定制的照明(customlighting)
这个输入是活动当你的材质是不发光的,允许您定义定制的照明的行为。你把这里per-light的节点。
阿尔法(alpha)
阿尔法控制最终的像素的透明度。注意局部透明度通常是挑剔的,特别是当使用延迟渲染。
阿尔法夹(alpha clip)
阿尔法夹是一种控制如果当前像素/片段应该画。总是使用alpha夹需要透明的对象,而不是部分透明,阿尔法夹很容易排序,阿尔法不是。
折射(refraction)
折射是折射紫外线抵消屏幕背景像素。确保你设置下面的α,1在使用之前,所以折射效应是可见的。注意,这个效果需要统一的职业。虽然看起来好像它工作在统一免费编辑器中,它不会在一个没有专业的建设工作
轮廓宽度(outline width)
这将添加一个轮廓你的材质,呈现为一个偏移量逆转面法线的网格。注意,硬边将打破大纲。
轮廓的颜色(outlinecolor)
这个控制轮廓的颜色。
顶点偏移量(vertexoffset)
这可以用来激活阴影随着时间的推移,或改变对象的形状在各种条件。您只需插入XYZ坐标为每个顶点应该抵消。
DX11位移(dx11 displacement)
这工作非常一样顶点偏移,但用于由DX11棋盘花纹。(注意,举只是窗户,需要启用DX11 GPU,统一)
DX11棋盘花纹(dx11 tessellation)
这些材质通过不同的组合基本可以完成所有的材质渲染,包括次世代的渲染效果,下面把编辑器使用效果图给读者展示如下:
如果使用Diffuse,Normal,Specular等材质,同样可以使用该种方式实现,材质之间可以进行不同的组合,从而达到不同的效果,读者可以自行下载。
后面把渲染的效果图给读者展示一下。