Unity3d Shader开发(一)Properties
2013-09-08 17:56
316 查看
着色器可以定义一个参数列表,可以由开发者在材质检视面板编辑参数。着色器文件中的Properties块定义了这些参数:
语法:
Properties {
Property [Property ...]
}
定义属性块,其中可包含多个属性,其定义如下 :
name ("display name", Range (min, max)) = number
定义浮点数属性,在检视器中可通过一个标注最大最小值的滑条来修改。
_WaveScale ("Wave scale", Range (0.02,0.15)) = 0.07
name ("display name", Color) = (number,number,number,number)
定义颜色属性。
_RefrColor ("Refraction color", Color) = (.34, .85, .92, 1) // color
name ("display name", 2D) = "name" { options }
定义2D纹理属性
_MainTex ("Base (RGB)", 2D) = "white" {}
name ("display name", Rect) = "name" { options }
定义长方形(非2次方)纹理属性
_DisplayRect("Display Rect",Rect) ="white"
name ("display name", Cube) = "name" { options }
定义立方贴图纹理属性
_DisplayCube("Display Cube",Cube) =""
name ("display name", Float) = number
定义浮点数属性
_DisplayFloat("Display Float",Float) =20.1
name ("display name", Vector) = (number,number,number,number)
定义四个向量组成的属性
_DisplayVector("Display Vector",Vector) =(1,1,1,1)
细节:
包含在着色器中的每一个属性通过name索引(在Unity中, 通常使用下划线来开始一个着色器属性的名字)。属性会将display name显示在材质检视器中,还可以通过在等符号后为每个属性提供缺省值。
1.对于Range和Float类型的属性只能是单精度值。
2.对于Color和Vector类型的属性将包含4个由括号围住的数描述。
3.对于纹理(2D, Rect, Cube) 缺省值既可以是一个空字符串也可以是某个内置的缺省纹理:"white", "black", "gray" or "bump" 。
随后在着色器中,属性值通过[name]来访问。
http://game.ceeger.com/Components/SL-Reference.html
语法:
Properties {
Property [Property ...]
}
定义属性块,其中可包含多个属性,其定义如下 :
name ("display name", Range (min, max)) = number
定义浮点数属性,在检视器中可通过一个标注最大最小值的滑条来修改。
_WaveScale ("Wave scale", Range (0.02,0.15)) = 0.07
name ("display name", Color) = (number,number,number,number)
定义颜色属性。
_RefrColor ("Refraction color", Color) = (.34, .85, .92, 1) // color
name ("display name", 2D) = "name" { options }
定义2D纹理属性
_MainTex ("Base (RGB)", 2D) = "white" {}
name ("display name", Rect) = "name" { options }
定义长方形(非2次方)纹理属性
_DisplayRect("Display Rect",Rect) ="white"
name ("display name", Cube) = "name" { options }
定义立方贴图纹理属性
_DisplayCube("Display Cube",Cube) =""
name ("display name", Float) = number
定义浮点数属性
_DisplayFloat("Display Float",Float) =20.1
name ("display name", Vector) = (number,number,number,number)
定义四个向量组成的属性
_DisplayVector("Display Vector",Vector) =(1,1,1,1)
细节:
包含在着色器中的每一个属性通过name索引(在Unity中, 通常使用下划线来开始一个着色器属性的名字)。属性会将display name显示在材质检视器中,还可以通过在等符号后为每个属性提供缺省值。
1.对于Range和Float类型的属性只能是单精度值。
2.对于Color和Vector类型的属性将包含4个由括号围住的数描述。
3.对于纹理(2D, Rect, Cube) 缺省值既可以是一个空字符串也可以是某个内置的缺省纹理:"white", "black", "gray" or "bump" 。
随后在着色器中,属性值通过[name]来访问。
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) = "" {} }
http://game.ceeger.com/Components/SL-Reference.html
相关文章推荐
- Unity3d Shader开发(一)Properties
- Unity3d Shader开发(四)UsePass ,GrabPass ,SubShader Tags
- Unity3D 开发之shader教程(浅谈GPU渲染之shader language概述)
- 详解Unity3D Shader开发之渲染管线
- Unity3d Shader开发(五)Fallback ,Category
- unity3d Shader开发简介
- 详解Unity3D Shader开发之渲染管线
- 详解Unity3D Shader开发之Shader框架
- Unity3d Shader(一) Properties
- Unity3d Shader开发(三)Pass(Fog )
- Unity3d Shader开发(三)Pass(Pass Tags,Name,BindChannels )
- Unity3d Shader开发(三)Pass(Texturing )
- Unity3D 开发之shader教程(浅谈光照之漫反射diffuse)
- 详解Unity3D Shader开发之Shader框架
- Unity3d Shader开发(二)SubShader
- Unity3d Shader开发(三)Pass(Culling & Depth Testing)
- Unity3D 开发之shader教程(实现圆角矩形)
- Unity3D 开发之shader教程(浅谈GPU渲染之shader language概述)
- Unity3d Shader开发(三)Pass(Texturing )
- Unity3d Shader开发(二)SubShader