Unity3D着色器编辑器 Shader Forge 入门学习

引言:失踪人口回归,最近几个月刚刚毕业,进入社会,对着未来有着些许迷茫,但起风了,唯有努力生存!近日学习Shader Forge,记录下来,共同进步!内容主要包括Shader Forge的操作设置,并配合一些案例进行讲解。将会分成几篇博客分开记录,本篇着重于入门基础!

开发版本:Unity 2017.1.1f1

适合人群:对U3D材质有基础了解,想要学习材质特效的童鞋


一、什么是Shader?

着色器 (Shader) 应用于计算机图形学领域,指一组供计算机图形资源在执行渲染任务的时使用的指令,用于计算机图形的颜色或明暗。但近来,它也能用于处理一些特殊的效果,或者视频后处理。通俗的说,着色器告诉电脑如何用特有的一种方法去描绘物体。作为渲染器的一部分,负责计算目标的颜色,主要图形软件库有OpenGL和Direct3D。 (摘录于百度百科)

着色器就是用于绘制游戏中的物件资源,用于确定当前正在被渲染的表面颜色,透过使用纹理、光源、光色、网络数据等信息计算该处的颜色。


二、Shader Forge基础操作

1、简介

Shader Forge是适用于Unity基于节点的着色器编辑器,可以轻松创建自己的着色器,而不需要写代码!

官方提供了快速入门的文档:http://www.neatcorporation.com/Projects/ShaderForge/Media/ShaderForge_QuickStart-sc.pdf

您也可以直接看我的博客,小生会结合官方文档做更全面的介绍!

小生这里提供一个1.3.8.0版本的,用于大家学习,如需商用,还请到Asset Store下载正版

链接:https://pan.baidu.com/s/1tDevkk4xhLLuJBElP1vhHw 密码:3fgb

注意该版本尚不支持Unity 2018,不过2018已经有了内置的着色器编辑器Shader Graph,基本操作和思想与Forge基本一致。

扫描二维码关注公众号,回复: 2194740 查看本文章


2、界面介绍

<1>开始窗口

菜单栏 Window-Shader Forge,打开编辑器窗口,点击New Shader按钮,开始制作Shader。Load Shader 用于加载Shader Forge制作的Shader


按下New Shader 创建Shader,Shader Forge已经提供了一些Shader模板

从左到右依次介绍如下:

Unlit :指没有光照效果,不会受到光照的影响

Lit(PBR) :基于物理渲染材质,效果更加真实

Lit(Basic) :Blinn Phong

Custom Lighting :自定义光照

Sprite :用于2D精灵材质

Particle :适用于粒子

Sky :适用于天空盒子

Post Effect :用于屏幕后处理

<2>主界面

1:3D预览窗口,用于查看着色器运行时的外观

2:着色器设置窗口,用于设置着色器的渲染方式

3:节点操作区,用于创建和操作节点

4:节点浏览器,用于查找所有的节点,在Settings中可以打开和关闭

先观察左边的窗口

标签栏和预览窗口:

Return to menu:返回创建Shader的界面

Setting:对Shader Forge的创建界面进行设置

Real-time node rendering 节点实时渲染,勾选可以实时渲染着色器效果

Use scroll in the quickpicker 勾选后可以使用滚轮快速选择,当我们在ShaderForge面板按下某节点的首字母,就会列举出所有相关的节点,这时候就可以用滚轮去选择节点

Show variable name & precision 显示变量名和精度

Show node browser panel 显示节点浏览器窗口

Hierarchal Node Move 一起移动父节点,但也可以不勾选,通过按Ctrl键和鼠标左键

Compile shader:编译Shader,在改变Shader的一些节点之后,需要点击该按钮进行编译,然后在下面的预览窗口中才会显示效果,也可以勾选Auto,在改变Shader后自动编译。其有三种颜色表示三种编译状态,绿色表示编译成功,正常运行;黄色表示编译成功,但可能达不到预期效果,看预览窗口下的Console控制台,会有警告提示,点击感叹号可以自动修改问题;红色则表示编译失败。

下一排的小圆点可以更换显示效果的模型

Skybox单选框表示是否显示天空盒子

Rotate单选框表示是否旋转

在预览窗口中,滚轮可以缩放效果显示,左上角的照相机的Icon,可以快照下当前材质的连接通道和渲染效果。

下面的Select按钮,可以快速选择到Project窗口中的Shader对象。

着色器设置窗口:

Shader Setting:Shader的总体设置

Path:Shader的名称路径

Fallback:失败时的回调,可以理解为某些平台运行不了时候的备胎材质

LOD:例如LOD设置为200,当距离超过LOD值时,会调用Fallback的材质

Draw call batching:是否启用批处理,批处理会导致顶点无法操作,在使用顶点动画时一定要关闭

Inspector preview mode:针对的对象模式是2D、3D还是Sky

Target renderers:渲染平台的选择,例如发布IOS系统,需要勾选IOS Metal,避免特殊问题的出现

Properties:该Shader在Inspector面板显示时,能看到的属性,可以更改节点名字,上下更换位置

Lighting:Render Path:设置渲染路径 Forward是正向渲染,适用于手机等移动平台,仅支持单个光源。Deferred延时渲染,适用于电脑平台,特别是点光源多的情况下,延时渲染能提升处理性能。

                  Light Mode:Blinn-Phong是最经典的半兰伯特高光光照模型,逻辑比较简单,PBL就是PBR的光照模型
                  Light Count:预览效果时,一个方向光,还是多个光源

Geometry:Face Culling:Bakeface Culling 剔除背面 frontface Culling剔除正面 Double Sided用于双面显示

Blending:Blend Mode混合模式:Opaque 不透明的,AlphaBlended透明的,注意需要将Color节点右边的A通道连接到 Main节点下的Opacity输入通道,才会有透明效果。如下图所示。


Receive Fog:是否接受雾效果,一般不勾选,因为如果涉及复杂的运算,效果可能会有问题

Auto Sort:自动排序,用于调整渲染的队列


<3>快捷键 :

Ctrl + 鼠标左键 :一起移动父节点

Alt + 鼠标左键 :框选节点

Alt + 鼠标右键:取消连接线

通过点击节点名称的首字母,快速调出该节点的窗口,例如点击C键,出现Color的节点窗口


2、简单操作

Shader Forge通过连接各个节点,最后连到Main的输入通道,从而实现各种效果。

注意:节点的输出连接线有几根就说明该值是几维数据

鼠标右键可以查看所有的节点,节点名称首字母可以快捷选择节点

选择节点,按删除或者退格键即可删除

Main节点是所有着色器的中心,创建的所有节点都要连接到该节点,它有为不同目的服务的输入通道


现在,实现一个简单的着色器作为演示

1、按T键,创建Texture 2D节点,节点顶部可以更改名称,例如“Diffuse”

2、按C键,创建Color节点,更改名称为“Color”

3、按M键,创建Multiply节点

4、将Texture 2D节点的RGB输出连接到Multiply节点的A输入通道

5、将Color节点的RGB输出连接到Multiply节点的B输入通道

7、将Multiply节点的输出接口连接到Main的Diffuse的输入通道

8、点击Conpile Shader,编译shader

9、在Project窗口中,右键单击该着色器,Creat-Material,创建该着色器的材质,赋予给场景中的对象



结束语:本篇侧重于Shader Forge的基本介绍,下一篇介绍Shader Forge的主要节点使用。

喜欢我的,记得关注小生!坚持更新,坚持更新,坚持更新!




猜你喜欢

转载自blog.csdn.net/qq_35361471/article/details/81052008