传统的经验光照模型详解

本文详细介绍了光照模型,包括局部光照模型的漫反射、高光反射、环境光和自发光,以及经典的Lambert、Phong、Blinn-Phong和Gouraud模型。通过法线贴图、CubeMap环境贴图和IBL技术增强表现力,同时探讨了能量守恒在光照模型中的重要性,并提出了基础光照模型向PBR过渡的思考。
摘要由CSDN通过智能技术生成

光照模型

也成为明暗模型,用于计算物体表面某处的光强(颜色值)

光照模型分为两类:

  • 基于物理理论的光照模型:偏重于使用物理的度量和统计方法,遵守能量守恒。例如:PBR
  • 经验模型:通过前人的总结的经验对光照的一种模拟,例如:Lambert,Phong,Billing-Phong

为什么需要光照模型?
现实中的光照是极其复杂的,而且会受到诸多因素的影响,有限的计算能力无法完全模拟

光照模型发展图

局部光照模型

定义:局部光照模型只关心直接光照部分,即直接从光源发出并照射到物体表面并反射至摄像头的光线

例如:漫反射、高光反射、环境光和自发光

漫反射

定义:当光线照射到模型表面时,光被均匀的被反射到各个方向。在漫反射过程中,光线发生了吸收和散射,而因此改变颜色和方向
在这里插入图片描述

计算:Lambert定律:反射光的强度与法线和光线的夹角余弦值成正比
公司:Dot(N,L)
在这里插入图片描述
注:漫反射效果与观察者位置无关,与光源位置有关

高光反射

定义:

  • 光线没有被物体表面吸收直接发生的反射,光强不变,方向改变
  • 高光的反射率根据菲涅尔效应的物理现象决定
    在这里插入图片描述

计算:反射光的强度与视线和反射光的夹角余弦值成正比
公式:Dot(V,R)^Gloss
在这里插入图片描述
注:光泽度影响了物体表面发生高光反射的面积
在这里插入图片描述

环境光

定义:一个物体没有被直接光照照射,但是会被间接光照影响,为了处理这种间接光照,光照模型引入了环境光

计算:
在这里插入图片描述

自发光

定义:顾名思义,物体自身发出的光线
在这里插入图片描述

局部光照模型的整体效果

在这里插入图片描述


经典光照模型

Lambert模型

在这里插入图片描述
定义:只计算了漫反射部分的光照

计算:Diffuse = 光线颜色 x 漫反射颜色 x Dot(N·L)

//=======计算漫发射======
float3 normalDir = normalize(i.worldNormal);
float3 lightDir = normalize(UnityWorldSpaceLightDir(_WorldSpaceLightPos0.xyz));
float3 Diffuse =  _DiffuseColor.rgb * _LightColor0.rgb * saturate(dot(lightDir, normalDir));

注:通过这样的计算方式,模型的暗面会非常的黑,这是我们不希望达到的效果
因此我们用环境光和贴图颜色来作为暗部颜色与亮部进行插值运算

float3 Diffuse2 = lerp(Ambient.rgb *  _DiffuseColor.rgb, _LightColor0.rgb * _DiffuseColor.rgb, saturate(dot(lightDir, normalDir)));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值