zoukankan      html  css  js  c++  java
  • 在CG/HLSL中访问着色器属性(Properties)

    在CG/HLSL中访问着色器属性

    Shader在Properties块中访问材质属性。如果你想在一个着色程序中访问一些属性,你需要声明一个Cg/HLSL具有相同的名称和一个匹配的类型的变量。

    Properties

    例如这些材质属性:

    _MyColor ("Some Color", Color) = (1,1,1,1) 
    _MyVector ("Some Vector", Vector) = (0,0,0,0) 
    _MyFloat ("My float", Float) = 0.5 
    _MyTexture ("Texture", 2D) = "white" {} 
    _MyCubemap ("Cubemap", CUBE) = "" {} 
    
    • 2D:一张2的阶数大小的图
    • Rect:非2的阶数大小的图
    • Cube:立方体文理就是6张有联系的2D贴图的组合,主要用来做反射效果(比如天空盒和动态反射),也会被转换为对应的采样。
    • Range(min,max):最小值与最大值之间的浮点数
    • Float:任意浮点数。
    • Vector:四维向量
    • Color:以0~1定义rgba颜色,如(1,1,1,1)
    • 2D/Rect/Cube :对于贴图来说,默认值可以为一个代表默认颜色的字符串,可以是空字符串或则"white","black","gray"中的一个。
    • Float/Range:某个指定的浮点数
    • Vector:一个4维数,写为(x,y,z,w)
    Properties {
        // properties for water shader
        _WaveScale ("Wave scale", Range (0.02,0.15)) = 0.07 // sliders
        _ReflDistort ("Reflection distort", Range (0,1.5)) = 0.5
        _RefrDistort ("Refraction distort", Range (0,1.5)) = 0.4
        _RefrColor ("Refraction color", Color) = (.34, .85, .92, 1) // color
        _ReflectionTex ("Environment Reflection", 2D) = "" {} // textures
        _RefractionTex ("Environment Refraction", 2D) = "" {}
        _Fresnel ("Fresnel (A) ", 2D) = "" {}
        _BumpMap ("Bumpmap (RGB) ", 2D) = "" {}
    }
    

    宣布在Cg / HLSL代码访问

    fixed4 _MyColor; 
    float4 _MyVector;
    float _MyFloat; 
    sampler2D _MyTexture;
    samplerCUBE _MyCubemap;
    

     Cg / HLSL也可以接受uniform关键字

    uniform float4 _MyColor;
    

    参数类型在ShaderLab中是这样映射到CG/HLSL中的:

    Color和Vector属性映射到float4,half4或fixed4变量

    Range和Float属性映射到float,half或者fixed变量

    Texture属性映射到sampler2D 变量 给常规的2D纹理。Cubemaps映射到samplerCUBE。3D纹理映射到sampler3D。

  • 相关阅读:
    jmeter录制移动APP脚本
    java-装箱/拆箱-字符串转换成基本数据类型
    Java-接口和抽象类区别
    Java-适配器
    Java-instanceof关键字
    python递归的使用
    使用pygame库实现小球的运动
    while循环的使用
    python数据类型的介绍,以及练习题
    python变量的内存管理
  • 原文地址:https://www.cnblogs.com/OrangeZhang/p/5016883.html
Copyright © 2011-2022 走看看