Unity3D Shader教程:ShaderForge的使用
在具体介绍Shader之前准备再写一篇有关于ShaderForge的,虽然我们可能使用代码来直接编写Shader,但拥有ShaderForge这样的可视化编辑工具,简直如虎添翼,方便至极。
想要有什么Shader的想法,直接用ShaderForge来编写,得到shader文件之后,有不满意的地方再改动改动,我们的shader就成型了。也可以参考参考它里面的代码,能让自己对Shader的理解更进一层。
界面说明:
将Shader Forge添加进Unity工程中后,在Unity的Window菜单下就有了Shader Forge的菜单,点击便能打开Shader Forge的编写界面了。
在这边建议一下,Unity在使用时最好使用5.x的版本,因为只有在5以上的版本Unity才支持PBR,也就是Physically Based Rendering,基于物理的渲染。3A级大作大多都会使用这种光照模型的渲染方式提供照片级的画面,Unreal的画面大家有目共睹,正是使用的这样的方式。(不过最近玩的黑魂3,貌似并没有使用,只是打了很多的灯光,如果有这方面的文章,希望大家分享给我一下)
两个按钮:New Shader、Load Shader。不用说了吧,一个创建Shader、一个读取Shader。大家最好不要用自己写的Shader读取到Shader Forge中,Shader Forge会做很多处理,可能会改变Shader效果。
创建界面(4.x版本可能就没有下面的PBR选项了):
我们来创建一个Lit(Basic)的Shader,创建之后的效果是这样的:
♦ 首先来讲一下Shader Forge标签下,最上面的三个按钮:
Return to menu:返回回创建Shader的界面;
Setting:对Shader Forge的创建界面进行设置,最好勾选Show node browser panel,显示创建节点的窗口;
Compile shader:编译Shader,在改变Shader的一些节点之后,需要点击该按钮进行编译,然后在下面的预览窗口中才会显示效果,当然可以勾选Auto,让它在改变Shader后自动进行编译。
♦ 接下来是预览窗口的菜单:
sf_sphere:预览窗口中使用的模型,可以在自己的工程中随意选取想要的模型;
Skybox:预览窗口模型的背景是否使用天空盒(只有在当前项目场景中有天空盒才能使用)。不行的话,可以使用前面的颜色改变背景的颜色;
Rotate:是否自动旋转,勾选的话模型会自动旋转,嗯,没毛病。
♦ 最后是属性窗口:
Shader Setting:Shader的一个总体设置,Path Shader的名称路径,Fallback失败时的回调啊,LOD值,Draw call batching 是否启用批处理(批处理会导致顶点无法操作,在使用顶点动画时一定要关闭),Inspector preview mode 针对的模式2D还是3D的呢,Target renderers渲染的平台;
Properties:用户在使用该Shader时能看到的属性;
Lighting:使用的光照模型,不详细说,感觉说这个展开来说可以写一本书了。需要知道的是Forward是前向渲染适用于手机等移动平台,Deferred延时渲染适用于电脑平台,特别是点光源多的情况下,延时渲染能提升处理性能。光照模型中,Blinn-Phong是最经典的半兰伯特高光光照模型,逻辑其实比较简单,到时候我们也会实现,PBL就是PBR的光照模型,目标3A级请往这边看;
Geometry:几何,大多数选项我也不大清楚,哈哈。不过想要模型双面显示,请将Face Culling设置为Double Sided;
Blend:混合模式,可以设置该物体是透明(Transparent)的,还是实体(Opaque),想要透明效果的话选择Alpha Blended,然后你会发现调整编辑窗口的Color的Alpha值没有效果。嗯,看到Color节点最右边的A了吗,把它连到Main节点下的Opacity就可以了,再试试看吧。
操作说明:
我们来看看我们的编辑窗口。
在编辑窗口中创建各式各样的节点,然后连接到Main上面,就能输出自己想要的效果,接下来我来说说主要的一些操作。
连接,刚刚说透明效果的时候应该已经试过了吧,点中Color节点上的A,不要松开鼠标左键,将线拖到Main上的Opacity标签上;
断开连接,那我这条连接不想要了怎么办?键盘上按住Alt,按住鼠标右键,可以拖出一条虚线,在松开右键时,虚线碰到的连接会被删除;
创建节点,直接点击右键会出现创建节点的菜单,或者使用我们一开始说的创建窗口,也可以按下属性的开头字母,比如想要创建一个Color,按下键盘上的C,不要松开,用鼠标左键去选区Color就可以了,如下图:
拖动编辑界面,按住鼠标左键即可拖动;
选中多数的节点,按住Alt并按住鼠标左键托出的方框即可选中;
删除节点,选中节点后,按下delete。
好了,上面的基本操作就能满足使用的需求了,顺便值得一提的是,Project标签中的资源(比如图片),可以直接拖动到节点中初始化。
总结:
ShaderForge使用方便,便于调试,大家试试就能掌握它的使用方法,但是如果没有Shader的基础知识,想要实现理想的效果还是困难重重,比如实现透明效果一定要在Blend中调整Shader的设置。所以在学习Shader的时候各种理论基础一定要打结实,这样在来看看ShaderForge的各种操作,心中就游刃有余。
Unity3D Shader教程系列: