• 在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。

  • 相关阅读:
    远程GIt仓库地址改了,如何在本地修改
    Vue中使用element-ui中的el-table时修改列的字体颜色
    vue子组件给父组件传值
    百度、高德、谷歌、火星、wgs84(2000)地图坐标相互转换的JS实现
    Canvas画图的基本命令与操作
    MySQL 索引的面试题总结
    面试官:Redis监控指标有哪些?
    ansible笔记(1):ansible的基本概念
    Nginx的超时timeout配置详解
    Etcd+Confd实现配置文件动态更新
  • 原文地址:https://www.cnblogs.com/OrangeZhang/p/5016883.html
Copyright © 2020-2023  润新知