Lambert漫反射模型
看了闫令琪的视频,这里简单总结一下。
首先有个很重要的漫反射概念:漫反射表示的是光线到达物体表面的某一点,在以它为中心的半球内被均匀反射。
经验公式
两个问题:
1.我们观察到的点,有多少光到达?
2.有多少光被反射?
从上图可以看出,当face旋转了60°后,同样到达top face(我这里定义成dA)的光量变成一般即cos(π/3) = 1/2。
可以得出结论:单位面积接收的光量和cosθ成正比。
我们还需要考虑面积到光源的衰减问题,如下图:
假设光源的功率是Φ,由于所有球面总共的能量也是Φ,那么每个球面单位面积的辐照度(irradiance)是:
现在我们简化物理,把E简化成光照强度I(Intensity)。
半径为1的球面单位面积的Intensity是I,那么半径是r的球面的Intensity就是I / r²。
我们再定义一个反射系数,即到达的光有多少被反射
那么我们可以得出Lambert的Diffuse经验公式:
能量守恒下的漫反射
从经验公式可以看到,物体并不符合能量守恒。
怎样才符合能量守恒?
半球内任意一个方向的漫反射颜色的计算:
其中就是漫反射的比例系数。
由于漫反射是半球内的均匀反射,那么就是反射出去的radiance。
引入一个问题:
单位半球内的面积是是2π,为何ρ不是1/2π呢?
反射方程,计算的是半球到方向的反射,即hemispherical-directional reflectance。
那么反过来,也有方向到半球的反射,就入射光只是一个反向,但反射到半球内的所有方向,叫directional-heispherical reflectance,漫反射就是这种。
公式如下:
R(l)是一个反射率,并不是radiance。由于漫反射是均匀反射,即f(l,v)是一个常数ρd。
在假定没有吸收的时候,上式的R(l) = 1,上式写成:
求得:
================下面理解是错误的===================
那么半球内所有的基于漫反射的反射光的总和是:
要符合能量守恒,必须满足下面的不等式:
意思是反射光量的总和必须小于等于入射光量。
对半球做积分:
不等式移项得
最后得到
=================上面理解是错误的=================
所以Lambert的漫反射在能量守恒下,要除以π。
Lambert漫反射模型相关推荐
- Lambert漫反射光照模型归纳
此模型属于经验模型,主要用来简单模拟粗糙物体表面的光照现象 此模型假设物体表面为理想漫反射体(也就是只产生漫反射现象,也成为Lambert反射体),同时,场景中存在两种光,一种为环境光,一种为方向光, ...
- Shader编程——高光漫反射模型
在实现该模型之前,我对shader和计算机图形学的知识可谓是空白,但是立志成为伟大游戏设计师的我又怎么能放弃对梦想的探寻,在网上寻找相应的课程,恰好看到一篇关于Shader入门的教程,学完之后觉得有所 ...
- 3D图形学(5):BRDF经验模型和基于物理的BRDF模型
内容引自<Real Time Rendering 3rd> 一.BRDF 双向反射分布函数 在计算机图形学中,BRDF(Bidirectional Reflectance Distribu ...
- 【技术美术图形部分】PBR直接光部分:Disney原则的BRDF和次表面散射模型
写在前面 补充去年遗漏下的知识.很多叙述都是参考了众多大佬的文章!因为是作为个人学习总结的博客,所以直接卑微的借鉴过来了,后面会给出所有参考的文章. 另外,放上一个忘了在哪一篇知乎评论里的截图: 说的 ...
- 基于微平面理论的BRDF模型(PBR材质、Cook-Torrance、GGX)
前言 因为前边讲了在Unity中如何实现一个BRDF--简单来说就是把公式抄到Shader里,于是这篇文章则主要从原理角度来讲一讲基于物理的BRDF公式为什么长那个样子.本篇文章主要是整理一下去年 ...
- 虚幻4渲染编程(重写渲染管线篇)【第一卷:从零开始推导PBR渲染模型---上】...
我的专栏目录: 小IVan:专题概述及目录 章节概述: 作为一个美术,一般遇到渲染管线上的问题的时候往往会束手无策,因为整个c++层到shader层这么大一块的系统都是由图形程序大佬一手搭建起来的.这 ...
- (转)光照模型及cg实现
经典光照模型(illumination model) 物体表面光照颜色由入射光.物体材质,以及材质和光的交互规律共同决定. 由于环境光给予物体各个点的光照强度相同,且没有方向之分,所以在只有环境光的情 ...
- 简单 局部 整体光照模型计算机图形学,计算机图形学北大光照模型.ppt
计算机图形学北大光照模型 * 当来自光源和周围环境的入射光照射在景物表面上时,将有部分光被反射或透射: 在视线方向的反射或透射光,被观察者眼睛中的视觉细胞接收 人眼中的杆状及锥状细胞接收光线,产生视觉 ...
- 浅墨博客《Real Time Rendering 3rd》提炼总结 截取(一)
来源:https://blog.csdn.net/poem_qianmo?t=1 对浅墨提炼总结进行截取,没有提炼也没有总结. 另外第四版已经出了,在CSDN可以下载电子版,与第三版的差异:https ...
- 15.真实感图形——光照与明暗+光线跟踪+纹理映射+辐射度方法+阴影
♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥ ...
最新文章
- C++——运算符重载operator
- 网站优化关键词如何分类看好这四种!
- python3中map()函数用法
- 搭载「光线追踪」技术的次时代主机会有怎样的画面表现?
- CUBA Platform 6.3的新增功能
- 【Python算法】遍历(Traversal)、深度优先(DFS)、广度优先(BFS)
- w ndows10即将停止更新,微软开始警告Windows 10 v1909用户即将停止更新服务
- 家人重病什么心情都没了
- 深入分析MVC中通过IOC实现Controller依赖注入的原理
- 使用云打码识别验证码
- Ubuntu 20.04 虚拟机镜像源更改
- 怎样用计算机做周计划表,电脑如何制作学生学习计划表
- Shell脚本自动化部署实战(一)
- boost::geometry::ever_circling_iterator用法的测试程序
- 算法题:Rod Cutting
- selenium PhantomJS Fiddler使用
- Exchange 2013管理员账号登录ecp登陆不了
- 国内物流公司通用Material Number Range
- 【Base】ping-pong buffer
- 何以解忧,唯有暴富,2019再见
热门文章
- outlook邮件路径更改_如何更改Outlook的新邮件警报声音
- 解决jupyter notebook :No module named ‘tensorflow‘ 及python.exe无法找到入口问题及500 : Internal Server Error
- XML文件的操作--上
- 修改UEditor编辑器上传图片大小限制
- 云计算 ——虚拟化认识
- Java-----关于IO流的总结
- 解析Google地图的Search接口返回的f.txt文件数据(其他类似)
- 遥感图像超分辨重建综述
- 第一章 .NET体系结构
- 传统推荐模型——协同过滤