教程 | Shaderforge 学习之旅--入门篇
图文教程技术文章技术文库综合文库
显示全部 9
3819 5
实名

通过了实名认证的内容创造者

发布于 2019-4-18 21:12:00

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 V贪婪 于 2019-4-18 23:48 编辑


啦啦啦~今天像素君将给大家带来Shader forge的入门教程。自从发布以来,shader forge 广受好评,虽然在手游上由于兼容性还未能普遍使用,但在端游制作中已大放异彩,并获得Unite14的最佳技术成就奖。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg


告别此前的在代码中写shader(这对于美术出生的特效师们来说真的好难),通过可视化节点就能连出各种shader,简直6到不行~

话不多说,一起来学习吧~

如何创建Shader
1)安装好shader forge插件后,在window菜单下就可以看到shader forge选项

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg


2)选择“New Shader”创建shader,(若是修改Shader则选择“Load shader”)


3)根据需要选择材质球类型(早期版本没有这个面板)


【Unlit】不受光照和场景设置影响,只显示材质球本身赋予的颜色

【Lit(PBR)】基于Unity自身的物理环境,受灯光贴图、光源、反射等的影响

【Lit(Basic)】布林冯氏材质模型,只受直接光源影响,不受灯光贴图等的影响

【Custom Lighting】简单案例,展示基于布林冯氏材质模型如何创建灯光材质模型

【Spirt】2Dshader,用于spirits,可以选择像素优化,可以与其他Spirits层级显示正常

【Particle(additive)】这个特效师都很熟悉啦,叠加模式,可识别粒子颜色变化,主要用于粒子系统

【Particle(Alpha-Blended)】这个特效师都很熟悉啦,Alpha模式,可识别粒子颜色变化,主要用于粒子系统

【Particle(Multiplicative)】用于一些黑暗效果特效,乘法模式,越叠越暗,主要用于粒子系统

【Sky】用于创建天空所需的材质效果,渲染层级低于其他,在其他材质后面显示

【Post-Effect】全屏显示材质,通常用于后期特效制作

由于我们特效师常常要和粒子系统打交道,建议选择particle(additive)或particle(alpha-blended),特殊需求除外

4)选择存储路径并命名

5)接下来就进入shader forge的主要面板啦~

如何Main节点介绍(以下内容源于官网)

所有其他节点最终将链接到Main节点。它拥有为不同目的服务的多个输入。
以下动画图像显示所有输入及其随时间变化的行为。大部分输入会在 0 和 1(黑色和白色)之间来回绘制动画

Diffuse (漫反射)



这是着色器的主要颜色。漫反射颜色将根据出光的法线角度接收光线或衰减光线,以及被阴影遮罩




DiffusePower (漫反射力道)



这是光法线角度衰减的指数。可在使用大于 1的值时获得额外的金属外观。请注意,无论何时启用,它都相当消耗效能



Specular (镜面反射)




这是着色器镜面高光的颜色。值越高就越明亮,黑色完全不受着色器影响



Gloss (光泽)




这是镜面高光的指数。值越高光泽度越高,值趋近于 0 时将变得没有光泽。请注意,如果您取消选中光泽重映射,则应避免使用低于 1 的光泽值




Normal (法线)



这是切线空间法线方向,您可在此连接法线贴图或自定义法线向量



Emission (自发光)




这是无论光照条件如何始终都会添加到着色器的光线



Transmission(透射)





此选项在光源位于当前渲染的表面背后时控制有多少光线可以通过。这对于薄型材料十分有用,例如布料或植被



LightWrapping (环绕光)



这是控制出光法线角度衰减偏移的一种方法,可用于获得与次表面散射相似的效果。对于平滑对象最有用。输入偏红色的值将让红色通道比其他通道更多地“环绕”对象,这样看起来就像是光线传递到网格中并携带红色波长出来,与遮罩皮肤的方法类似


DiffuseAmbient Light (漫反射环境光)



此选项将光线添加到着色器,受漫反射影响。可以与立方体贴图(使用基于图像的光照 (IBL) 的法线方向)或环境光等一起使用


SpecularAmbient Light (镜面反射环境光)




此选项将光线添加到着色器,受镜面反射影响。可以与立方体贴图(使用基于图像的光照 (IBL) 的视图反射方向)等一起使用


DiffuseAmbient Occlusion (漫反射环境光遮蔽)




此选项抑制间接漫反射光线,例如光探头、间接光线和漫反射环境光




SpecularAmbient Occlusion (镜面反射环境光遮蔽)



此选项可抑制间接镜面反射光线,例如反射探头和镜面反射环境光


CustomLighting (自定义照明)



此输入在着色器设置为不打光时处于活动状态,可让您定义自定义照明行为。您在此处根据光线放置节点
  


Opacity (不透明度)



Opacity(不透明度)控制最终像素的透明度。请注意,部分透明度通常很难设置正确,特别是在使用延迟渲染时


OpacityClip (不透明度剪切)




OpacityClip(不透明度剪切)是控制是否应该绘制当前像素/片段的一种方法。始终对需要透明度的对象使用硬剪切,但不要对部分透明度使用硬剪切,因为 Opacity Clip(不透明度剪切)可以轻松排序,但是 Opacity(不透明度)不可以


Refraction(反射)



Refraction(反射)是用于折射背景像素的屏幕空间 UV 偏移。请确保在使用前将 Opacity(不透明度)设置为低于 1 的值,以便折射效果可见


OutlineWidth (描边宽度)




此选项将向着色器添加描边,渲染为具有反面法线的偏移网格。请注意,硬边将损坏描边


OutlineColor (描边颜色)



此选项控制描边的颜色


VertexOffset (顶点偏移)




此选项可用于随时间变化对着色器进行动画,或在不同条件下更改对象的形状。您只需插入每个顶点所需偏移量的 XYZ 坐标即可


DX11Displacement (DX11 位移)




此选项和 Vertex Offset(顶点偏移)的作用非常类似,但是与 DX11 曲面细分一起使用。(请注意,DirectX 仅适用于 Windows,需要 DX11 GPU 且必须在 Unity 设置中启用)


DX11Tessellation (DX11 曲面细分)




此选项控制您要将三角形分割为多少个细分。(请注意,DirectX 仅适用于 Windows,需要 DX11 GPU 且必须在 Unity 设置中启用)


在之后的推送中,会带来更多shaderforge相关内容,保持关注哟~

评分

参与人数 2元素币 +15 活跃度 +19 展开 理由
元素大使瓜... + 15 + 9 【点赞】这很有大网气质!
V贪婪 + 10 谢谢分享

查看全部评分

还没有设置签名!您可以在此展示你的链接,或者个人主页!
使用道具 <
Paint_小熊  发表于 2019-4-18 21:16:38  
2#
good 期待下一期!
回复 收起回复
使用道具
W阳光男孩X  发表于 2019-4-19 07:35:25  
3#
谢谢分享
回复 收起回复
使用道具
imbuonarroti  发表于 2019-4-23 16:16:08  
4#
thanks
回复 收起回复
使用道具
Unity0071  发表于 2019-10-10 10:05:50  
5#
谢谢分享
回复 收起回复
使用道具
夏天至  发表于 2020-3-20 12:36:35  
6#
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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