Unity内部提供了一些可以直接使用的着色器,这些内置着色器包括以下6个方面:
(1)Performance of Unity shaders
  着色器的性能和两个方面有关:shader本身和render path。
  Deferred Lighting:每个对象都会被绘制2遍,无论其是否受到光照,性能与纹理数和具体的计算过程有关。
  Vertex Lit:每个对象只被绘制一次,性能与纹理数和具体的计算过程有关。
  Forward rendering:性能和灯光数量有关。
  Vertex-Lit shader in Forward rendering path:基于每个顶点计算所有光照的影响,只绘制一遍。
  Pixel-Lit shader in Forward rendering path:N rendering passes,每个光照会增加一次绘制,性能和物体在屏幕上的尺寸也有关系。
  性能开销很大,但是可以用来制作一些特殊的效果,比如shadows、normal-mapping、good look specular highlights and light cookies等。
  通常的shader性能开销排序如下:
  Unlit 不受光
  Vertex Lit 顶点光
  Diffuse 漫反射
  Normal mapped 法线贴图
  Specular 高光
  Normal Mapped Specular 高光法线贴图
  Parallax Normal mapped 视差法线贴图
  Parallax Normal Mapped Specular 视差高光法线贴图
(2)Normal Shader Family
  Specular 高光,强度和camera的观察角度有关,main_tex的alpha通道可以用来做Specular Map(反射贴图,也称Gloss Map),用于定义物体不同区域的反光率的大

小。
  Bumped Diffuse 法线贴图漫反射,使用Normal map来表现物体表面的细节。
  Parallax 视差着色器,通过HeightMap来实现,用来模拟高度信息。这个高度信息可以包含在Normal Map的Alpha通道里,也可以单独包含在一张贴图里面。
  Decal 贴花着色器,需要主纹理、贴花纹理(带alpha),用来对主纹理追加纹理,可以用来做涂鸦。性能比Vertex-Lit稍大一点,因为它需要多一张纹理。
  Diffuse Detail 漫反射细节着色器,需要主纹理、细节灰度纹理(50%中性灰),细节纹理必须是无缝贴图(四方连续的)。
  细节贴图是细小的,精致的纹理在你靠近一个表面的时候可以察觉,可用于地形细节、木纹、石头纹理等。
(3)Transparent Shader Family
  透明着色器用于实现全透明或者半透明效果。
  当多层透明时,会出现一些渲染问题。
(4)Transparent Cutout Shader Family
  透明镂空着色器使用的对象有完全不透明的,完全透明的部分(无半透明部分)。像铁栅栏,树木,草等之类的东西。
  带有Alpha cutoff参数用于控制透明和不透明的范围。
  没有透明着色器的图形排序问题,并可以接收和进行投影。
(5)Self-Illuminated Shader Family
  主要用于发光物体。
  一张主帖图,一张自发光纹理。
  发光基于发光纹理的alpha值,alpha为0的不发光,1表示充分发光。不需要任何灯光照射来发光。
  任何顶点灯光或像素灯光将简单增加更多光照到自发光上。
(6)Reflective Shader Family
  一张主帖图,一个Cubemap用于反射。
  主纹理的alpha通道定义在物体表面的反射强度。
  任何场景灯光将会增加反射表面的照明。

Unity3D内置着色器的更多相关文章

  1. Unity 内置着色器(转)

    Unity包括超过40种内置的shader. 标准着色器家族 Normal Shader Family 这些着色器都是Unity基本的着色器.适用于大多数的不透明物体,如果想要物体有透明.发光效果等, ...

  2. yii框架中验证器声明一组内置验证器可以使用短名称引用

    1.内置验证器的短名称分别有: boolean: yii\validators\BooleanValidator captcha: yii\captcha\CaptchaValidator compa ...

  3. Unity3D ShaderLab 布料着色器

    Unity3D ShaderLab布料着色器 布料着色器是我们在虚拟现实中经常使用的着色器.本篇就来完成一个较为简单的布料着色器. 新建Shader,Material,InteractiveCloth ...

  4. Flex 内置验证器—验证用户输入

    今晚对于Flex中的Validator类(所有验证器的父类)测试一下 ---->其中常用的验证类有StringValidator,NumberValidator,DateValidator 测试 ...

  5. Unity3d 网络编程(三)(Unity3d内置简单的网络server编制)

    使用Unity3d内置的网络建立一个简单的server.主机时,请使用机器.创建一个client连接到本机. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv ...

  6. python的内置下载器

    python有个内置下载器,有时候在内部提供文件下载很好用. 进入提供下载的目录 # ls abc.aaa chpw.py finance.py lsdir.py ping.py u2d-partia ...

  7. Struts2内置校验器——完整实例代码

    一.校验器的配置风格 1.字段校验器: <field name="被校验的字段"> <field-validator type="校验器名"& ...

  8. struts2内置拦截器和自定义拦截器详解(附源码)

    一.Struts2内置拦截器 Struts2中内置类许多的拦截器,它们提供了许多Struts2的核心功能和可选的高级特 性.这些内置的拦截器在struts-default.xml中配置.只有配置了拦截 ...

  9. python进阶04 装饰器、描述器、常用内置装饰器

    python进阶04 装饰器.描述器.常用内置装饰器 一.装饰器 作用:能够给现有的函数增加功能 如何给一个现有的函数增加执行计数的功能 首先用类来添加新功能 def fun(): #首先我们定义一个 ...

随机推荐

  1. 阅读开发高手的代码 分享二则.NET开发框架的技巧

    最近阅读了一套ERP开发框架的源代码,对开发框架的理解又深入一层,也为其将知识点运用的如此灵活而自叹不如. 郎咸平教授说,国际金融炒家对国际金融知识的理解与运用程序,是不可想像的.1997年的亚洲金融 ...

  2. oprofile

    一.原理 在关注事件发生一定次数时,进行一次采样,记录下需要的信息(比如指令寄存器或栈寄存器信息). 二.参数 项 说明 eventname   要关注的事件名称,常用的事件名称及功能如下:   CP ...

  3. //暴力打开某个APP iOS 私有API LSApplicationWorkspace

    //暴力打开某个APP = .= 如果可以打开.直接打开不解释 +(BOOL)isOpenApp:(NSString*)appIdentifierName { Class LSApplicationW ...

  4. python coroutine测试

    目的:实现一个类似于asyn await的用法,来方便的编写callback相关函数 from __future__ import print_functionimport timeimport th ...

  5. Hadoop map和reduce数量估算

    Hadoop在运行一个mapreduce job之前,需要估算这个job的maptask数和reducetask数.首先分析一下job的maptask数,当一个job提交时,jobclient首先分析 ...

  6. Android 组件系列-----Activity保存状态

    本篇随笔将详细的讲解Activity保存状态的概念,也就是saving activity state. 一.Activity状态保持概念 保存Activity的状态是非常重要的,例如我们在玩一个游戏的 ...

  7. Android 数据通信

    一. Http/Net1. http 通讯协议和android中相关API介绍 2.发送http请求实例[GET,POST]论坛参考文献:http://www.eoeandroid.com/viewt ...

  8. Android开发:第四日番外——Assets文件夹和RAW文件夹区别

    话说上回说到SQLite数据库,其中涉及到把已经设计好的数据库打包到APK中,提到可以放置在Assert文件夹或者RAW文件夹中,那么两者到底有什么区别呢?让我们来探究一下. 一.res/raw和as ...

  9. 自己写的一个Yeoman的Generator-Require-Angularjs

    Yeoman是一个常见的工作流,能够很方面的搭建属于自己的脚手架. 这段时间我用闲暇时间写了一个Generator来玩了一下,这个Generator的主要目的是快速建立一个RequireJS+Angu ...

  10. 使用 Python SimpleHTTPServer 快速共享文件

    近期,想着从一个服务器 向另一个服务器传输文件,但是对其知之甚少,就从别人那里知道一种方法,使用 Python SimpleHTTPServer 快速共享文件. 直接运行:python -m Simp ...