Shader Lab 笔记

                                    Shader Lab 笔记

2020   04  05

1、声明变量的属性。

数值属性:

        QiangDu("滑条_QiangDu",Range(0,50))=0

        A_Flot("浮点数_Flot",Float)=10

        A_int("整数_int",int)=1

纹理属性:

        A_2D("纹理2d",2D)=" "{}

        A_cube("四方贴图cube",Cube)=""{}

        A_3D("贴图3d",3d)=""{}

颜色属性和向量属性

        //声明 颜色属性和向量属性
        A_Color("颜色_Color",COLOR)=(0,0,0,0)
        //向量
        A_Vector("矢量图_Vector",Vector)=(0,0,0,0)

 

2、Shader中"Tags"的用法和意义

句法

Tags { "TagName1" = "Value1" "TagName2" = "Value2" }

  指定TagName1具有Value1TagName2具有Value2。您可以根据需要拥有任意数量的标签。

 

内置的5个标签

*有四个预定义的渲染队列,但是在预定义的渲染队列之间可以有更多的队列。预定义的队列是:

(渲染顺序)??

  • Background-此渲染队列先于其他任何队列渲染。您通常会将它用于确实需要在后台进行的操作。
  • Geometry (默认) -用于大多数对象。不透明几何使用此队列。
  • AlphaTest-经过Alpha测试的几何使用此队列。它是一个单独的队列,Geometry因为在绘制所有实体后,渲染经过Alpha测试的对象效率更高。
  • Transparent-此渲染队列以从后到前的顺序在Geometry和之后渲染AlphaTest。任何与alpha混合的内容(即不写入深度缓冲区的着色器)都应放在此处(玻璃,粒子效果)。
  • Overlay-此渲染队列用于叠加效果。最后渲染的任何东西都应该放在这里(例如镜头光晕)。

 

 

2020   04  06

 

3、ShaderLab 中LOD的含义是什么?

   1、  

   2、    Shader LOD其实就是根据设备性能的不同编译不同版本的Shader。

        这种编译方式最早是为了适应不同时代的显卡而准备的。主机端本来就不存在这个问题,而现在在PC端上想找到上古级别的显卡也不太容易。所以目前这玩意儿最大的用途也就是为了适配高低配置不同的手机

       

         官网链接:

          https://docs.unity3d.com/Manual/SL-ShaderLOD.html

          Unity论坛中坛友理解经验

          https://forum.unity.com/threads/shader-lod-cant-find-examples.381298/

 

        3、Unity的ShaderLab细节级别(LOD)*是开发人员的一项便利功能,可帮助他们在单个着色器中支持多个平台。基本思想是应用程序可能具有SweetLightingShader仅在PC上可以使用的。假设iPad不支持,SweetLightingShader但它支持SemiSweetLightingShader。您可以维护两个单独的着色器,或者甚至更好地将它们合并为一个着色器,并使用LOD决定要使用的功能。

*请勿将ShaderLab LOD与几何LOD混淆,它们是独立的主题。

          Unity渲染着色器时,它将遍历所有子着色器并使用硬件支持的第一个着色器。

          

        4、当需要支持各种性能不同的GPU时,Shader LOD非常有用。例如,如果您想让游戏在iPhone4和iPhone5S上流畅运行。

通常的做法是将一个着色器组合为一组具有不同LOD的子着色器(将它们视为同一着色器的版本)。您可以在具有较大LOD的子着色器中实现复杂的每像素照明,而在具有较小LOD的子着色器中实现粗糙的逐顶点照明。然后,您可以使用Shader.globalMaximumLOD在代码中启用适当版本的着色器。

                                                                  3和4的解释原文链接:

           https://stackoverflow.com/questions/25210767/unity3d-shaders-level-of-detail

 

 

 

4、pass

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章