漫反射与高光反射总结

对于漫反射:

diffuse = 光照颜色*材质漫反射颜色*max( 0, cos( 点到光源方向与法线夹角 ) )

注:对于一般的纹理来说,材质漫反射颜色就是纹理采样颜色

这里主要需要求出的是点到光源方向,并且在这里点到光源方向是在世界空间下的。

求解说明:

1. UnityWorldSpaceLightDir( float4 worldPos )函数接收一个世界空间下的位置返回一个该位置到光源的世界空间下向量。因此要求解世界空间下顶点到光源的向量需要先求出顶点的世界空间下位置。

2. 顶点在世界空间下位置计算公式:float4 worldPos = mul( _Object2World, v.vertex )

 

 

对于高光发射:

Phong 模型:

specular = 光照颜色*材质高光反射颜色*max( 0, cos(视角方向与反射方向夹角) )^Gloss

Blinn Phong模型:

specular = 光照颜色*材质高光反射颜色*max( 0, 法线*h向量 )^Gloss

这里的h向量 = normarlize( 视角方向 + 光照方向 )

 

因此对于phong模型主要求出视角方向与反射方向夹角,也就是视角方向与反射方向

对于Phong模型主要求出角视方向与光照方向。

 

世界空间下光照方向在漫反射部分已经说明。

 

世界空间下光照反射方向:

1.normarlize( reflect( -世界空间下光源方向, 顶点世界空间下的法线 ) )

2.normarlize( UnityWorldSpaceLightDir( 世界空间下顶点位置 ) )

世界空间下视角方向:

1.normarlize( 世界空间下照相机位置 - 世界空间下顶点位置 )

2.normarlize( UnityWorldSpaceViewDir( 世界空间下顶点位置 ) )

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值