unityShder的基本类型

简介: unityShder的基本类型

本人小白,刚刚开始学unityShader第一次写关于unity相关的shader,请大佬勿喷!!

 

Shader "test/my_shader" {                                                          //shdaer名称 "/" 代表路径
    Properties{
        _Int("m_int",Int) = 111                        //int                           带引号的是变量类型,后面的是所有的类型
        _Float("m_float",Float) = 112                //float
        _Color("mainColor",Color) = (1,0,0,1)        //float4
        _2D("m_tex2d",2D) = "red" {}                //sampler2D
        _3D("m_tex3d",3D) = "red"{}                    //sampler3D
        _Cube("m_cube",Cube) = "red"{}                //samplerCube
    }
        SubShader{
            Pass {                                                  //每个程序段必须有个pass段
            CGPROGRAM                                    //这里是语言的类型如果是GLSL 语言就写 GLSLPROGRAM    ...... ENDGLSL
          int m_int;                                               //每个变量对应的变量类型
            float m_float;
            float4 m_color;
            sampler2D m_tex2d;
            sampler3D m_tex3d;
            samplerCube m_texcube;
            half m_hl; //应该类似16位float吧
            任何使用float的都可以使用half类型和fixed类型类存储
            half range 16位:-60000-+60000
            fixed range 11位: -2 - +2  颜色一般用这个存储
            ENDCG
        }
    }
    FallBack "Diffuse"
}


在shader程序段的内部不能像c#语言一样直接访问外部的程序变量,要在shader语句块内在重新定义才可以使用。

相关文章
|
3月前
|
存储 Java C#
C# 中的值类型与引用类型
在 C# 编程中,值类型和引用类型的区别至关重要,直接影响内存管理、性能优化及编程模式选择。值类型直接存储数据(如 `int`、`float`),而引用类型存储数据的引用地址(如 `class`、`string`)。值类型的赋值涉及数据复制,适合小数据量;引用类型仅复制引用,适合大数据量处理但需关注垃圾回收。本文通过具体代码示例详细解析二者的定义、存储方式及性能影响,并提供实战案例分析及易错点避免方法,帮助读者更好地理解和应用。
70 2
|
4月前
|
JavaScript 前端开发
值类型(基本类型)
【8月更文挑战第26天】
31 4
|
存储 Java
包装类和基本数据类型
包装类和基本数据类型
|
7月前
|
存储 编译器 程序员
C++基本数据类型
C++基本数据类型
|
存储 C# C++
值类型和引用类型
值类型和引用类型
|
7月前
05 # 基本类型
05 # 基本类型
42 0
|
缓存 Java
基本数据类型包装类
基本数据类型包装类
64 0
|
存储 Java
基本数据类型和引用数据类型的区别
基本数据类型和引用数据类型的区别
100 0
|
存储 Java
《基本类型和引用类型》
《基本类型和引用类型》
103 0
《基本类型和引用类型》