码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-12-03 18:41:29      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:

在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)

宣布在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。

 

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

标签:

原文地址:http://www.cnblogs.com/OrangeZhang/p/5016883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!