用新浪微博登录

只需一步,快速搞定

 找回密码
 立即注册

用新浪微博登录

只需一步,快速搞定

查看: 7074|回复: 0
打印 上一主题 下一主题

Unity3D Shader之路 写Shader前必须要知道的事情3 ShaderForge的简单使用

[复制链接]

该用户从未签到

715

主题

2161

帖子

6439

积分

LV 11.会员

MS爱好者!!!!

积分
6439

社区居民偶尔光临工蜂最爱沙发在线达人社区平民做个有钱人略有小成常驻会员忠实会员

跳转到指定楼层
楼主
发表于 2018-6-16 18:45:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式 |          

版本:unity 5.4.1  语言:Unity Shader

Shader Forge版本:1.32


总起:

在具体介绍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的各种操作,心中就游刃有余。


最后把自己使用的Shader Forge 1.32提供给大家:http://download.csdn.net/detail/u012632851/9829036


Unity 2017版都已经有测试版了,引擎越研究越感觉到自己知识的不足,其实有时候也会有疑问,自己学的这些东西到底有没有有用,现在的工作只要会Unity的一些简单操作就可以了,但是记起以前老师说过的一句话:我不知道努力能不能成功,但不努力一定不会成功。以此激励自己,望自己过几年后能成为团队的技术核心!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

     
    Archiver|手机版|小黑屋|( 沪ICP备12034951号 )

GMT+8, 2024-12-22 09:25 , Processed in 0.114970 second(s), 31 queries .

© 2001-2011 Powered by Discuz! X3.1

快速回复 返回顶部 返回列表