Shader编程第二天

Shader编程思路来源浅墨大牛,思维记录用。

今天我们开始写第一个demo,用于两个纹理的混合。

用到素材为大热绝地求生demo,自带material失效,我们试着做出理想Shader。

两个纹理的混合

Shader “0_FirstShader”

{

       Properties

{

       _MainTex (“主纹理”,2D) = “white” {}

       _BlendTex (“混合纹理”,2D)= “white” {}

}

SubShader

{

       Pass

{

       SetTexture[“_MainTex”]{combine texture}

       SetTexture[“_BlendTex”]{combine texture *previous}

}

}

}

这是一层贴图效果

添加混合纹理

怎么样是不是耳目一新的感觉,当然了一共有四种贴图,我们后续慢慢优化。

 

纹理和颜色的混合

Shader "Sony/0_FirstShader"

{

    Properties

    {

        _MainTex("主纹理",2D) = "white"{}

        _BlendTex("副纹理",2D) = "white"{}

        _MainColor("主颜色,可调节",Color) = (1,1,1,1)

    }

    SubShader

    {

        Pass

        {

            SetTexture[_MainTex]

            {

                constantColor[_MainColor]

                combineconstant * texture

            }

            SetTexture[_BlendTex]

            {

                combinetexture * previous

            }

        }

    }

    FallBack"Diffuse"

}

修改颜色界面

衣服纹理还在,但是多了一层骚红

那么还有第二种写法就是在Material定义材质颜色,渲染中设置渲染

Shader "Sony/0_FirstShader"

{

    Properties

    {

        _MainTex("主纹理",2D) = "white"{}

        _BlendTex("副纹理",2D) = "white"{}

        _MainColor("主颜色,可调节",Color) = (1,1,1,1)

    }

    SubShader

    {

        Material

        {

 

            //漫反射颜色

            Diffuse[_MainColor]

        }

        Pass

        {

            SetTexture[_BlendTex]

            {

                combinetexture * previous

            }

            SetTexture[_MainTex]{Combine previous * primary}

        }

    }

    FallBack"Diffuse"

}

纹理与各种光效(高光,自发光,主颜色)的混合

Shader "Sony/0_FirstShader"

{

    Properties

    {

        _MainTex("主纹理",2D) = "white"{}

        _BlendTex("副纹理",2D) = "white"{}

        _MainColor("主颜色,可调节",Color) = (1,1,1,1)

        _EveColor("环境光",Color) = (1,1,1,1)

        _SpeColor("反射高光",Color) = (1,1,1,1)

        _ShineNum("反射光泽程度",Range(0,1)) = 0.5

        _EmissionColor("自发光颜色",Color) = (1,1,1,1)

    }

    SubShader

    {

        Material

        {

            //漫反射颜色

            Diffuse[_MainColor]

            //环境光照射颜色

            Ambient[_EveColor]

            //反射高光

            Specular[_SpeColor]

            //反射光泽程度

            Shininess[_ShineNum]

            //自发光颜色

            Emission[_EmissionColor]

        }

        Pass

        {

            LightingOn

            SeparateSpecularOn

            SetTexture[_MainTex]{combinetexture}

            SetTexture[_BlendTex]{combinetexture * previous}

            SetTexture[_MainTex]{Combine previous * primary}

        }

    }

    FallBack"Diffuse"

}

原版头盔

新版对比头盔

 

最终对比效果

 


猜你喜欢

转载自blog.csdn.net/icesony/article/details/80083977