SufaceOutput
结构属性 | 属性类型 | 备注 |
---|---|---|
Albedo | fixed3 | 表示材质的漫反射颜色 |
Normal | fixed3 | 如果写的话表示切面法线(待查明不写代表啥) |
Emission | fixed3 | 表示材质发射的颜色(该属性在标准着色器中声明为half3) |
Alpha | fixed | 表示材质的透明度 |
Specular | half | 表示高光的亮度,值域[0, 1] |
Gloss | fixed | 表示光强度。 |
SurfaceOutputStandard
结构属性 | 属性类型 | 备注 |
---|---|---|
Albedo | fixed3 | 表示材质的基础颜色(表现在漫反射与高光) |
Normal | fixed3 | 切面法线 |
Emission | fixed3 | 该属性声明为half3,而在SurfaceOutput中为fixed3 |
Alpha | fixed | 表示材质透明度 |
Occlusion | half | 表示遮挡,默认是1(遮挡) |
Smoothness | half | 表示光滑度,0为粗糙,1为光滑 |
Metallic | half | 金属属性值,0表现为非金属,1表现为金属 |
SurfaceOutputStandardSpecular
结构属性 | 属性类型 | 备注 |
---|---|---|
Albedo | fixed3 | 表示材质的基础颜色(表现在漫反射与高光) |
Normal | fixed3 | 切面法线 |
Emission | fixed3 | 该属性声明为half3,而在SurfaceOutput中为fixed3 |
Alpha | fixed | 表示材质透明度 |
Occlusion | half | 表示遮挡,默认是1(遮挡) |
Smoothness | half | 表示光滑度,0为粗糙,1为光滑 |
Specular | half | 表示高光颜色,与SurfaceOutput结构中的Specular属性有很大区别,这里可以指定一种颜色,而非单一颜色值 |
顺带说明一下Shader中常用的基础数值类型
类型 | 占位与值域 | 使用场景 |
---|---|---|
float | 32bit浮点数,高精度浮点数值。 | 一般用于世界坐标、纹理坐标,或用于复杂的缩放函数、三角函数和幂函数等计算 |
half | 16bit浮点数,中等精度浮点数,数值范围在[-6万,+6万],保留小数点后3位精度。 | 一般用于短矢量、方向、物件空间位置、HDR颜色 |
fixed | 11bit定点数,低精度定点数,数值范围[-2, 2],精度是 1/256 | 非常适用于存储于纹理上的颜色值,适合做简单的加减乘除运算 |
int | 32bit整形数,数值范围[-2^32, 2^32-1] | 一般用于循环的迭代器和数组的下标,用于这个途径上能很好适配多平台。因为有些GPU不支持整型数。譬如,Direct3D 9 和 OpenGL ES 2.0 中只运算浮点数据,整型数据会使用相同的浮点进行。 |