2.4.1传统经验光照模型

为什么需要光照模型

  • 因为真实世界需要考虑的因素太多了 计算机完全模拟代价太大 通过简易化经验化的模型处理得到所需结果

局部光照模型

定义

  • 局部光照模型是指只考虑光源经过物体反射进入摄像机的情况
  • 全局光照模型除了考虑光源还要考虑 在其他物体上面的一些反射 最终进入摄像机的情况

组成

  • 漫反射
  • 高光
  • 环境光
  • 自发光
漫反射
  • 定义:光照在经过物体表面后均匀散射
  • 常见模型是兰伯特光照模型
  • 漫反射不受视角方向影响
    ![[Pasted image 20211220125320.png]]
    请添加图片描述
高光反射
  • 高光反射可以看作光完全不被吸收进行反射
  • 与反射方向和视角方向的夹角有关
  • 可以定义pow
  • ![[Pasted image 20211220130513.png]]
  • 请添加图片描述
环境光
  • 由于采用局部光照模型 缺少其他物体反射而来的光
  • 所以采用环境贴图乘以物体表面材质来实现环境光
    ![[Pasted image 20211220144101.png]]请添加图片描述
自发光

物体自身所发光发出来的一些亮点

经典光照模型

兰伯特光照模型

cos法线光方向 乘光颜色 乘材质颜色
![[Pasted image 20211220144912.png]]请添加图片描述

phong模型

![[Pasted image 20211220144628.png]]
phong模型是包含了漫反射 高光反射 环境光
其中漫反射 ndotl乘albedo乘光颜色 漫反射漫反射光乘漫反射材质 高光反射为反射光与视线的cos值乘光颜色乘高光材质颜色请添加图片描述

blinn-phong模型

v dot r 改成 h dot n

blinn phong 和phong的区别

  • 相对于phong更加的具有艺术感 但是没有phong真实
  • blinn phong 中h与n的最大夹角不超过90度
  • phong 中 最大夹角超过90度cos为-会被约束到0而导致材质的缺失
  • 本质上少了一个反射计算 效率提升大概1/3

flat模型

  • low ploy风格
  • 每个面一个法线一个颜色

作业

对于法线贴图的使用

  • 法线贴图导入时会被unity自动压缩 需要使用unity自带的解压函数去解开 基本上就是做了一个坐标系的转换 同时导入之后是切线空间的需要被转换为世界空间下再去进行一个操作

对于环境贴图的使用

  • 使用环境贴图 导入SamperCube类型的图片
  • 在采样时候采用TextureCubeLod(_CubeMap,Float4(RGB为反射uv,z为一个改变mipmap的值))

Trick1

  • 计算lambert时暗部死黑的解决办法:插值暗部为maintex乘diffuse贴图乘环境光 亮部为高光颜色乘maintex乘diffuse贴图

Trick2

不用PBR实现让金属带有一定的非金属的质感
![[Pasted image 20211220154815.png]]请添加图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值