菜鸡的ShaderForge1:Blinn-Phong模型

本文详细介绍了漫反射和高光(Blinn-Phong模型)在计算机图形学中的应用原理。通过数学公式解释如何模拟不同材质的反射特性,并展示了如何利用贴图和特殊技巧增强视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)漫反射
漫反射是是投射在粗糙表面上的光向各个方向反射的现象,根据入射光线与此点的法线来决定此点的反射强度。
漫反射模型用法线与光线夹角模拟漫反射效果
以:
                       I1=dot(N,L)=|N||L|cosθ=cosθ
模拟夹角越大漫反射的光强越小的效果
再以反射光与Textrue的RGB相乘得到材质漫反射的模拟光效

暗面加亮
在实际使用中,为避免RGB趋于0(黑色)的物体背面和少光照面呈现过暗的颜色
常使用Remap将cosθ重分布于(0.2~0.5,1)的区间
未添加NormalMap的漫反射模型:

添加了NormalMap的漫反射模型:

(2)高光
高光是镜面反射产生的物体最亮部分 在shader中,高光模型不仅仅用于模拟高光部分,而是模拟整个物体的镜面反射。
高光(Blinn-Phong)模型
Blinn-Phong模型是对Phong模型的改进模型
(Blinn-Phong)以:
                                                               Ibp = Ks*Il*dot(N,H)^n
模拟镜面反射
H是光入射方向L和视点方向V的中间向量
Ks表示材质的镜面反射系数,n指高光指数,I1即为漫反射光强
可用slider留出拉杆控制Ks和n 制造出Smooth值不同的Material
添加了高光的模型:


高光补正贴图
在实际使用中添加高光补正贴图对贴图纹理的凹陷部分进行高光补正
实际材料的缝隙/凹陷处显然不可能有镜面反射
而Blinn-Phong公式会在凹陷处得出一定的镜面反射光强
所以用去色的Textrue作高光补正贴图
先将Textrue去色 再用Lerp对去色图片做值域拉伸(0,1)→(-x,y)(x,y为较大的值)
再用clamp函数将其重分布回(0,1)(小于0部分(凹陷)均置0)
再与Ibp相乘得到优化后的结果

得到高光补正贴图:

相乘处理:
补正后的材质:

显然在凹陷处没有了高光,材质看起来更加真实了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值