首页 > 代码库 > Unity3D引擎之Shader Forge应用

Unity3D引擎之Shader Forge应用

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。

CSDN视频网址:http://edu.csdn.net/lecturer/144

本篇博客给读者介绍一个材质渲染的组件-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等材质,同样可以使用该种方式实现,材质之间可以进行不同的组合,从而达到不同的效果,读者可以自行下载。

后面把渲染的效果图给读者展示一下。


Unity3D引擎之Shader Forge应用