针对渲染方程中的BxDF(参考:【PBR理论】第1讲 渲染方程概述),我们本节讨论BxDF中的BRDF的理想模型漫反射。

针对漫反射来说:

,其中可以是材质的颜色。而为什么要除以一个呢。

首先我们来做一个假设,假设入射光分布在该点的所有方向上且亮度相同,且此时都是常数,则:

,注意该是入射光与受光面法线的夹角。

上述是立体角积分(参考:【数学】立体角,积分求球的表面积、体积)

式中的

其结果显然为,以上的象限为何取是因为光线入射时,在上半球是有效的,在下半球是物体被面。

则:

此时我们考虑一下,倘若每个方向上的光强度都为都为,那么半球表面的入射光亮度(也即穿过半球的光通量之和)显然为=半球表面积=

每个方向上我们计算出的出射光强是,则半球的出射光强

由于能量守恒,则入射光通量=出射光通量,则

则得:

【PBR理论】第2讲 BRDF理想漫反射(Diffuse)相关推荐

  1. PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现

    PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现 BRDF简介 再介绍BRDF之前我们要引入渲染方程这个东西: 其中L表示辐射率,其公式为: 它表示了一个拥有辐射强度Φ的 ...

  2. 基于物理的渲染学习心得——面向使用的PBR理论

    本文是笔者在学习PBR理论中的一些心得,并试图以结合Substance系列软件为例,从使用(实用)层面介绍PBR理论. PBR的定义: PBR全称是基于物理的渲染(Physically Based R ...

  3. 【Unity Shader】三、漫反射Diffuse Shader例子

    学习目标: 漫反射Diffuse Shader,逐顶点计算和逐像素计算. 半兰伯特(HalfLambert)光照模型. 结合材质自身的色彩(Material Color)及环境光(Ambient). ...

  4. lgg7深度详细参数_深度学习平均场理论第七讲:Batch Normalization会导致梯度爆炸?...

    前言 Batch Normalization (BN)对于深度学习而言是一项非常重要的技术.尽管BN在网络训练的过程中表现力非常强大,但是大家始终没有一个很好的理论上的清晰理解.今天我们就试图解读这篇 ...

  5. 使用VC6.0开发COM组件 - 傻瓜式,不讲理论,只讲实例

    1.创建一个ATL COM AppWizard工程,如图: 2.  选择 Dynamic link Library (DLL),其它两个请百度,或参照其它文档.如下图: 3. 添加一个自己的COM类, ...

  6. 基于微平面理论的BRDF模型(PBR材质、Cook-Torrance、GGX)

    前言   因为前边讲了在Unity中如何实现一个BRDF--简单来说就是把公式抄到Shader里,于是这篇文章则主要从原理角度来讲一讲基于物理的BRDF公式为什么长那个样子.本篇文章主要是整理一下去年 ...

  7. 【技术美术图形部分】PBR全局光照:理论知识补充

    写在前面 最近做东西的流程是这样的,想实现一个风格化森林小场景,场景体现的主体是风格化树和交互草 --> 于是用了两天时间学SpeedTree做树模型 --> 用了两天时间SD做了树干贴图 ...

  8. Learn OpenGL 笔记7.1 PBR Theory(physically based rendering基于物理的渲染 理论)

    PBR,或更通常称为基于物理的渲染,是一组渲染技术,它们或多或少基于与物理世界更接近的相同基础理论.由于基于物理的渲染旨在以物理上合理的方式模拟光线,因此与我们的原始光照算法(如 Phong 和 Bl ...

  9. 图形学基础 | 基于物理的渲染理论(PBR)

    转载自: https://learnopengl.com/PBR/Theory Learn OpenGL PBR Theory PBR 基于物理的渲染(Physically Based Renderi ...

  10. 【技术美术图形部分】PBR直接光部分:Disney原则的BRDF和次表面散射模型

    写在前面 补充去年遗漏下的知识.很多叙述都是参考了众多大佬的文章!因为是作为个人学习总结的博客,所以直接卑微的借鉴过来了,后面会给出所有参考的文章. 另外,放上一个忘了在哪一篇知乎评论里的截图: 说的 ...

最新文章

  1. hdu 4602 Partition
  2. springboot工具类
  3. .NetCore 3.1 安装本地化中文智能提示
  4. 这句话说得不错freeeim
  5. Kubernetes—如何批量删除对象资源?(二十三)
  6. TensorFlow 教程 --进阶指南--3.4数据读取
  7. TCP/IP数据包结构具体解释
  8. 类的使用经典案例使用类的成员函数显示时间、找出元素的最大值【C++面向对象编程】
  9. FZU 1894 志愿者选拔 - 单调队列
  10. java restclient 调用_restclient 访问 springmvc java工程接口
  11. 用命令来操作vSphere:二十二 PowerCLI命令--虚拟主机操作(1)
  12. Spring @Aspect、@Before、@After 注解实现 AOP 切面功能
  13. 网易云视频html代码,网易云课堂-8小时学会HTML网页开发01-1
  14. H5禁止苹果手机页面缩放
  15. Bootstrap系列之面包屑导航(Breadcrumb)
  16. 成都Uber优步司机奖励政策(2月21日)
  17. MySQL及同类产品的技术调研报告
  18. 全球与中国终末期肾病(ESRD)设备市场现状及未来发展趋势(2022)
  19. 康奈尔大学对博士生的要求
  20. Design?Design!

热门文章

  1. Why you should not shrink your data files
  2. RT-thread 环境下使用 HASH hwcrypto 配置使用底层硬件HAH库问题记录
  3. 怎样看股市K线图指标之成本均线指标CYC
  4. [转载]OFDM基本原理及系统框图
  5. SVN提交时出现remains in conflict错误
  6. MindManager模板百度云下载分享教程
  7. Blue Coat:2015年数据安全趋势七大预测
  8. 【已解决】点击Import Package没有Environment与Effects等问题(从官网下载Environment等相关资源包)
  9. 自动化生产线仿真教学
  10. python数据分布统计_Python 数据可视化:数据分布统计图和热图