• Unity_Shader开发_Shaderlab(三)---------2016.1.6


    一、UnityShader 的形态

          在Unity的Graphics Reference ---Shader Reference(http://docs.unity3d.com/Manual/SL-Reference.html)里有介绍 unity shader 有三种写法,分别是: 

             surface shader 

         Vertex and fragment shader

         fixed function shader

              可编程图形管线中能编写的部分主要是两部分: 顶点程序 ,片段程序。

             fixed function shader 是固定管线的shader ,在可编程管线硬件出现之前,很多光照计算放在硬件集进行处理。可以把这个固定管线的shader理解为固定管线集的操作。能在绝大多数的硬件上运行,能实现的功能如 简单的光照,纹理采样。

            surface shader 是unity 推荐使用的shader。在unity里创建一个物理默认的shader 就是surface shader。为什么有surface shader呢? 图形管线能够识别的 只有两种程序 就是Vertex 和 Fragment shader。 surface shader 是在这两种shader上的包装,更方便我们编写shader 代码,最终unity还是会吧surface shader编译成Vertex 和 Fragment shader。

           

    二、Shaderlab的基本结构

             surface shader 的语法 : Shader Properties SubShader Pass Fallback CustomEditor 

             Properties  能定义一系列的参数在材质面板中显示,来调整已达到想要的效果,详细地址(http://docs.unity3d.com/Manual/SL-Shader.html)

         Subshader 能定义一系列的shader 以适应不同的硬件设备,由上至下,一旦匹配就不再匹配了。

    Shader "MyShader" {
        Properties {
            _MyTexture ("My Texture", 2D) = "white" { }
            // other properties like colors or vectors go here as well
        }
        SubShader {
            // here goes the 'meat' of your
            // - surface shader or
            // - vertex and program shader or
            // - fixed function shader
        }
        SubShader {
            // here goes a simpler version of the SubShader
            // above than can run on older graphics cards
        }
    }

     unity的shader 语法统一了 三种shader编写的方式。 材质是 定义了一个物体的呈现方式,它包含了物体的一系列信息如 贴图、顶点、shader,他就像是一个商品,而shader就是加工这个商品的加工方式,而贴图就是加工的原材料。

    三、Build_In Shader

          unity内建shader ,unity有很多内建shader 

  • 相关阅读:
    文件比较运算符
    中山慧海人才市场9月份 现场招聘会预告
    80后智能科技公司诚聘业务人员
    元豪路灯厂诚聘
    对Discuz的简单认识
    discuz阅读权限的设置作用
    个人对织梦系统的认识
    awvs的用法
    cain使用方法
    CCNA笔记(1)
  • 原文地址:https://www.cnblogs.com/bambomtan/p/5107425.html
Copyright © 2020-2023  润新知