Shader中的一些标签意义

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Rhett_Yuan/article/details/68954782

一、SubShader的Tag:

1、RenderType(渲染什么样的类型)

     "Opaque":渲染不透明的物体

     "Transparent":渲染透明物体

     "BackGround":主要用于天空盒

     "Overlay":GUI、镜头光晕

2、Quene

     "BackGround" = 1000,可以用于天空盒

     "Geometry" = 2000 按空间位置从远到近进行渲染(大部分的物体都在这个队里包括不透明的)

     "AlphaTest" = 2450 已进行AlphaTest的物体在这个队列

     "Transparent" = 3000 透明物体

    "Overlay" = 4000 镜头光晕

      我们也可以自定义值,比如"Quene" = "BackGround+100"

3、ForceNoShadowCasting

      为true时不接受阴影

4、IgnoreProjector

      不接受Projector组件的投影

    一帧的渲染队列的生成,依次取决于每个物体的Shader的RenderType tag--Render.sortingLayerID--Render.SortingOrder-Material.renderQueue(默认值为Shader里的"Quene"),Transform.z(默认值从前到后,但当Quene是"Transparent"的时候,按Z值从后到前)

二、LOD

       Level of Detail的缩写,在硬件比较差的系统上,可以设置一个比较低点的值,减少细节的显示,Unity内置shader的LOD值如下:

  • VertexLit kind of shaders = 100
  • Decal, Reflective VertexLit = 150
  • Diffuse = 200
  • Diffuse Detail, Reflective Bumped Unlit, Reflective Bumped VertexLit = 250
  • Bumped, Specular = 300
  • Bumped Specular = 400
  • Parallax = 500
  • Parallax Specular = 600

三、Shader核心编程

  LightModel:光照模型

  • Lambert:该光照模型能很好的表示粗糙表面的光照,但不能表现出镜面反射高光

  • Toon:最近在游戏中常用的风格之一即是Toon shading(又称 cel shading).这是一种非逼真渲染风格,通过改变了光在一个模型上反射实际情况来给人以手绘的感觉

  • BlinnPhong:仿真镜面反射材料

  • Standard:Unity5中默认的光照模式是Standard, 其引入了 物理渲染 (PBR), 但是与其它光照模型没有什么不同。相比于朗伯反射, PBR提供了一个更加逼真的光线物体作用模型,PBR考虑了材料的物理属性, 比如能量守恒以及光的散射

   SurfaceOutput      

struct SurfaceOutput{

        fixed3 Albedo; // diffuse color 漫反射的颜色值。

        fixed3 Normal; // tangent space normal, if written 法线坐标

        fixed3 Emission; //自发光颜色

        half Specular;// specular power in 0..1 range 镜面反射系数

        fixed Gloss; // specular intensity 光泽系数

        fixed Alpha; // alpha for transparencies 透明度系数

    };

猜你喜欢

转载自blog.csdn.net/Rhett_Yuan/article/details/68954782