美文网首页
Unity-shader基本结构

Unity-shader基本结构

作者: 应届毕业生_18 | 来源:发表于2019-02-20 11:53 被阅读0次
    Unity Sharder 基本结构

    //定义shader的显示等级以及名字    Shader "Level/Name"

    Shader "Custom/SinShader"{    }

    //定义shader中所用到的属性        Properties{    }

    常用属性类型(格式: 属性变量名("Unity属性显示名称",属性类型)):

    其中,属性变量名 以及 Unity属性显示名称 可自己定义,属性类型固定:

            _Color("_Color",Color) = (1,1,1,1)     // 颜色类型

            _Vector("_Vector",Vector) = (1,2,3,4)    // 四维向量类型 X Y Z W

            _Int("_Int",Int) = 100     // 整数类型

            _Float("Float",Float)=12.3     // 小数类型 默认值不加F shader里面没有double类型

            _Range("Range",Range(1,100))=50    // 范围类型 从哪个范围到哪个范围 这里设置的范围是1-100 默认值是50 可以取到1和100

            _2D("Texture",2D) = "white"{}    // 指定图片 类型  若{}里指定图片了会显示图片的颜色 如果没有指定图片会显示为设置的纯色 这里为white

            _Cube("_Cube",Cube) = "white"{}    // 立方体纹理 立方体贴图

            _3D("Texture",3D) = "white"{}    //3D 纹理

    // SubShader 可以有很多个 里面编写的是渲染的代码 利用属性编写一些 控制 渲染出来的效果

        创建多个SubShader 因为不同的SubShader可以实现不同的效果 在不同的显卡上运行时需要,比如不同的显卡对应不同的SubShader 好一点的对应 一个SubShader 差一点的对应一个SubShader.显卡运行效果时,从第一个SubShader开始,如果里面的效果都可以实现,那么就使用第一个SubShader,如果这个SubShader满足不了这个显卡的需求,它会自动跳到下一个 如果没有可以实现的会调用 Fallback"VertexLit" 默认的,一般第一个SubShader是显示效果最好的 第二个比第一个次一点以此类推这样会增加shader的适应能力

    //Pass块

        SubShader 里面必须有一个 Pass块 也可以有多个,一个Pass块代表一个方法。 

    相关文章

      网友评论

          本文标题:Unity-shader基本结构

          本文链接:https://www.haomeiwen.com/subject/znzhrqtx.html