UnityShader之固定管线Fixed Function ShaderShader资料3

Posted 威少小二的园霖(微博:威少orz)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnityShader之固定管线Fixed Function ShaderShader资料3相关的知识,希望对你有一定的参考价值。

Fixed function shader简介:  属于固定渲染管线 Shader, 基本用于高级Shader在老显卡无法显示时的情况。使用的是ShaderLab语言,语法与微软的FX files 或者NVIDIA的 CgFX类似。

 

1、使用固定管线来显示单一的颜色

Shader "Custom/1_1color" {
   // 属性
    Properties {
        //定义一个颜色
        _Color ("Main Color", Color) = (1,0.5,0.5,1)
    }
    // 子shader
    SubShader {
        Pass {
            Material {    //Material块是固定管线的核心之一,接下来我们还有SetTexture的使用
                //显示该颜色
                Diffuse [_Color]
            }
            //打开光照开关,即接受光照
            Lighting On //同学们可以把这里的On设置为Off试一试,看下关于接受光照的效果。
        }
    }
}

 结果如下图所示:

 

2、将一张图片和一个颜色同时渲染

Shader "Custom/1_2show1texture" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _Color("Main color",Color) = (1,1,1,1)
    }
    SubShader {
        Pass
        {
            Material
            {
                Diffuse[_Color]
            }
            Lighting on
            SetTexture[_MainTex]
            {
                //combine color部分,alpha部分
                //      材质 * 顶点颜色
                Combine texture * primary,texture * constant  //下一节讲Combine纹理混合的用法
            }
        }
    }
}

表现效果如下:

 

3、同时渲染两张图片

Shader "Custom/3_3Texture" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _MainTex2 ("Tex2 (RGB)", 2D) = "white" {}
        _Color("Main color",Color) = (1,1,1,1)
    }
    SubShader {
        Pass
        {
            Material
            {
                Diffuse[_Color]
            }
            Lighting on
            SetTexture[_MainTex]
            {
                //      第一张材质 * 顶点颜色
                Combine texture * primary
            }
            SetTexture[_MainTex2]
            {
                //      第二张材质 * 之前累积(这里即第一张材质)
                Combine texture * previous  //下一节讲Combine纹理混合的用法
            }
        }
    }
}

表现效果如下:

 

以上是关于UnityShader之固定管线Fixed Function ShaderShader资料3的主要内容,如果未能解决你的问题,请参考以下文章

UnityShader之固定管线命令Combine纹理混合Shader资料4

[Unity] Shader(着色器)之固定管线

Python之固定样式输出

滚动之固定顶部

MQTT之固定报头分析

MQTT之固定报头分析