UnityShader中surf函数的不同输出结构

SufaceOutput

结构属性属性类型备注
Albedofixed3表示材质的漫反射颜色
Normalfixed3如果写的话表示切面法线(待查明不写代表啥)
Emissionfixed3表示材质发射的颜色(该属性在标准着色器中声明为half3)
Alphafixed表示材质的透明度
Specularhalf表示高光的亮度,值域[0, 1]
Glossfixed表示光强度。

SurfaceOutputStandard

结构属性属性类型备注
Albedofixed3表示材质的基础颜色(表现在漫反射与高光)
Normalfixed3切面法线
Emissionfixed3该属性声明为half3,而在SurfaceOutput中为fixed3
Alphafixed表示材质透明度
Occlusionhalf表示遮挡,默认是1(遮挡)
Smoothnesshalf表示光滑度,0为粗糙,1为光滑
Metallichalf金属属性值,0表现为非金属,1表现为金属

SurfaceOutputStandardSpecular

结构属性属性类型备注
Albedofixed3表示材质的基础颜色(表现在漫反射与高光)
Normalfixed3切面法线
Emissionfixed3该属性声明为half3,而在SurfaceOutput中为fixed3
Alphafixed表示材质透明度
Occlusionhalf表示遮挡,默认是1(遮挡)
Smoothnesshalf表示光滑度,0为粗糙,1为光滑
Specularhalf表示高光颜色,与SurfaceOutput结构中的Specular属性有很大区别,这里可以指定一种颜色,而非单一颜色值

顺带说明一下Shader中常用的基础数值类型

类型占位与值域使用场景
float32bit浮点数,高精度浮点数值。一般用于世界坐标、纹理坐标,或用于复杂的缩放函数、三角函数和幂函数等计算
half16bit浮点数,中等精度浮点数,数值范围在[-6万,+6万],保留小数点后3位精度。一般用于短矢量、方向、物件空间位置、HDR颜色
fixed11bit定点数,低精度定点数,数值范围[-2, 2],精度是 1/256非常适用于存储于纹理上的颜色值,适合做简单的加减乘除运算
int32bit整形数,数值范围[-2^32, 2^32-1]一般用于循环的迭代器和数组的下标,用于这个途径上能很好适配多平台。因为有些GPU不支持整型数。譬如,Direct3D 9 和 OpenGL ES 2.0 中只运算浮点数据,整型数据会使用相同的浮点进行。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值