这是一个用来制作shader的插件,也是一个很好的学习shader的工具。这个插件上手很容易,但是要用它来制作理想的Shader,需要下点功夫。

这儿先列举出基础知识,以及我的一些实践。以后我还会继续学习并记录更多的内容。

一、基本操作:  

  1)、截断连线:按住alt并右键
  2)、框选:按住alt键并框选
  3)、对于不认识的节点,右键选择what,出现API官网,可选简体字

二、开始设置:  

  1)、新建材质要命名并设置好路径
  2)、考虑shader可能会运行的平台或显卡配置
  3)、渲染路径:向前渲染或延迟渲染,后者能避免重复渲染,提高渲染效率,但不能实现抗锯齿和混合技术
  4)、光照模式:自定义光照等
  5)、镜面反射模式:镜面或金属
  6)、光泽模式:光泽或粗糙
  7)、Geometry->Face Culling:背面切除或正面切除或双面渲染
  8)、Blend Mode:混合模式

三、Main输出端:

  1)、Diffuse Power:漫反射力道,相当耗能
  2)、Metallic:金属质感,值越大时漫反射越小
  3)、Gloss:光泽,值越高光泽度越高,1为极值,物极必反
  4)、Emisson:自发光
  5)、Transmission:透射,决定有多少光线可以透过材质
  6)、Light Wrapping:环绕光,让光线或某个通道的值环绕对象,可做出皮肤的效果
  7)、Diffuse Ambient Light:漫反射环境光,添加光线或环境光或立体贴图,不用自发光或光源,也能显亮
  8)、Specular Ambient Light:镜面反射环境光,可映出环境的贴图???
  9)、Diffuse Ambient Occlusion:漫反射环境光遮罩,抑制间接漫反射光线
  10)、Specular Ambient Occlusion:镜面反射环境光遮罩,抑制间接镜面反射光线
  11)、Custom Lighting:自定义照明,被光照射时,自定义照射效果
  12)、Opacity:不透明度,控制最终像素的透明度
  13)、Opacity Clip:不透明度剪切,根据阿尔法通道剪切不透明区域
  14)、Refraction:反射,用于折射背景像素的屏幕空间 UV 偏移。请确保在使用前将 Opacity(不透明度)设置为低于 1 的值,以便折射效果可见
  15)、Outline Width:描边宽度
  16)、Vertex Offset:顶点偏移,插入每个顶点所需偏移量的 XYZ 坐标
  17)、DX11 Displacement:DX11 位移,此选项和 Vertex Offset(顶点偏移)的作用非常类似,但是与 DX11 曲面细分一起使用。(请注意,DirectX 仅适用于 Windows,需要 DX11 GPU 且必须在 Unity 设置中启用)
  18)、DX11 Tessellation:DX11 曲面细分,此选项控制您要将三角形分割为多少个细分。(请注意,DirectX 仅适用于 Windows,需要 DX11 GPU 且必须在 Unity 设置中启用)

四、部分节点:  

  1)、加减乘除:Add、Subtract、Multiply、Divide
  2)、乘方、平方根、对数:Power、Sqrt、Log
  3)、绝对值:Abs
  4)、Sign:取正负号及0
  5)、Ceil:进位取整,输出时将其输入向上舍入为最近整数
  6)、Round:四舍五入
  7)、Floor:舍位取整,输出时将其输入向下舍入为最近整数
  8)、Trunc:去零取整
  9)、Step:比较,输出0或1,用来区分出每一层的明暗,输出的是黑白纹理
  10)、If:条件
  11)、Frac:取小数部分,此节点在与 Time(时间)节点一起使用时非常有用,会随时间变化带来锯齿波
  12)、Fmod:取模,输出 [A] 除以 [B] 的余数
  13)、Clamp:限定范围
  14)、Lerp:插值,如果 [T] 为两者间的任一值,则将输入两者的线性混合
  15)、Posterize:色调分离,基于经过 [Steps] 的值对值进行四舍五入取整。[Steps] 值为 5 时将在 0 到 1 的范围内创建 5 段
  16)、Blend:混合,有不同的混合方式,用时查看API
  17)、Remap:重映射,将值从一个范围重映射到另一个范围,用来加深或减弱
  18)、Noise:噪音,根据两分量输入(例如 UV 坐标)生成伪随机点
  19)、One Minus:1 减,输出 1 减去其输入。与颜色输入一起使用时,将反转颜色
  20)、Negate:取反,输出其主输入乘以 -1。实质上让正值变负,让负值变正
  21)、Component Mask :分量遮罩,遮罩某个通道
  22)、Channel Blend :通道混合
  23)、Fresnel:菲涅耳,边缘亮显的效果

五、实例:

  1.自定义光照:

 

Unity给力插件之ShaderForge(一)的更多相关文章

  1. Unity给力插件之ShaderForge(三)

    地形模型材质: 使用Unity自带的地形会出现一些问题,所以我尽量使用手工制作的模型来制作地形.而地形又需要只使用一个材质球,于是在此制作一个简单的Shader. 效果图: 注意: 1.颜色遮罩的图片 ...

  2. Unity给力插件之ShaderForge(二)

    直接上实例: 一.自定义光照: 效果图(白色点光源照射时) 图片及参数 节点编辑 备注: 1.append为追加:两个一维数值合并为一个二维数值,一个二维数值与一个一维数值合并为一个三维数值,以此类推 ...

  3. Unity给力插件之MeshBaker

    这是一个用来合并网格.材质.贴图的插件. 其实网上也有一些比较详细的使用说明,但是真实操作起来时,总是有一些搞不清bug.而且,作为功能比较全的插件,在Unity版本更新时,也难免会一些不兼容的地方. ...

  4. Unity给力插件之MegaFiers

    这是一个关于网格变形的插件.其中有非常多的功能. 这是它的API地址:http://www.west-racing.com/mf/ 花了2天的时间实践并整理了其中绝大多数的功能,只有一些关于特殊格式的 ...

  5. Unity给力插件之LittleLocalization

    从网上随便下载了一个多语言的插件,原理很简单,自己就可以写一个.不过本身插件做的算比较全面,拿来就能用,所以精简了一下,然后重新打了个包. 为了快速使用插件,在此把步骤列出来. 1.创建空物体,添加L ...

  6. Unity给力插件之Final IK

    Final IK细节: 1.Aim IK:设定一个目标,关节末端始终朝向该目标,一般用来做头部的朝向. 步骤: a.在模型头节点处添加Aim空物体并reset b.给模型添加Aim IK组件,并填上A ...

  7. 开发unity DLL插件

    最近开发一款设备的SDK,想着要开发unity版本,怎么做呢?首先想到的就是在外部编写相关的驱动程序然后集成成几个dll作为unity的SDK使用了.So,我就开始了unity外部插件的研究之旅了. ...

  8. (转)Unity Cinemachine插件,实现单目标和多目标之间切换

    Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换*版本要求Unity2017.1及以上. 参考资料: [官方] Unity 2017.1正式版发布 Cinemachine插件 ...

  9. 开源Unity小插件CheatConsole

    我们在开发游戏的过程中,通常都需要一些快捷的方式来进行一些非常规的测试,这些功能一般被称作控制台或者GM指令,比如虚幻竞技场中,可以使用~键呼出控制台,输入一些指令即可进行快捷设置,比如设置分辨率,全 ...

随机推荐

  1. (转)Libevent(4)— Bufferevent

    转自:http://name5566.com/4215.html 参考文献列表:http://www.wangafu.net/~nickm/libevent-book/ 此文编写的时候,使用到的 Li ...

  2. 2015-01-27-从实验出发理解buffer与cache区别-吴伟顺

        通过du(find) 与 cat 体现buffer与cache差异实验: 实验表明: 1 通常 buffer << cache 2 "文件系统"相关内容(ino ...

  3. c# 实现文件批量压缩

    今天改一个网站的功能,网站提供一些微信的素材,每个页面对应一套素材,如果会员一张一张下载,那么网站交互性就有点太差了.所以修改的内容就是提供一个按钮,点击按钮将这套图片和网站信息进行打包下载. 思路: ...

  4. 迷你版 smarty --模板引擎和解析

    http://blog.ipodmp.com/archives/php-write-a-mini-smarty-template-engine/ 迷你版Smarty模板引擎目录结构如下: ① 要开发一 ...

  5. 【转】Spring事务管理

    原文链接 在 Spring 中,事务是通过 TransactionDefinition 接口来定义的.该接口包含与事务属性有关的方法.具体如清单 1 所示: 清单 1. TransactionDefi ...

  6. 负载均衡-多台机子session不起效:把php.ini中file改为memcache存储

    一 开启memcache服务 二 修改php.ini中session配置 php/lib/php.ini session.save_handler = memcache session.save_pa ...

  7. linux mysql字符编码问题

    发布:thatboy   来源:脚本学堂     [大 中 小] 本文介绍下,linux环境中mysql字符编码问题的解决办法,有遇到mysql编码问题的朋友,可以参考下本文的介绍,希望对你有一定的帮 ...

  8. simplexml 使用实例

    搞了几天php处理xml文件,终于有点头绪,记录下来分享一下.simplexml 是php处理xml文件的一个方法,另一个是dom处理,这里只说simplexml.目前php处理xml用的比较多,比较 ...

  9. Codeforces Problem 598E - Chocolate Bar

    Chocolate Bar 题意: 有一个n*m(1<= n,m<=30)的矩形巧克力,每次能横向或者是纵向切,且每次切的花费为所切边长的平方,问你最后得到k个单位巧克力( k <= ...

  10. “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法

    最近在项目中,使用EF编程时,在使用泛型类型的过程中,写了一上午,结果生成时,编译不通过,报出如下错误: “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法.如图: 找了好久,终 ...