【PBR理论】第2讲 BRDF理想漫反射(Diffuse)
针对渲染方程中的BxDF(参考:【PBR理论】第1讲 渲染方程概述),我们本节讨论BxDF中的BRDF的理想模型漫反射。
针对漫反射来说:
,其中可以是材质的颜色。而为什么要除以一个呢。
首先我们来做一个假设,假设入射光分布在该点的所有方向上且亮度相同,且此时和都是常数,则:
,注意该是入射光与受光面法线的夹角。
上述是立体角积分(参考:【数学】立体角,积分求球的表面积、体积)
式中的
其结果显然为,以上的象限为何取是因为光线入射时,在上半球是有效的,在下半球是物体被面。
则:
此时我们考虑一下,倘若每个方向上的光强度都为都为,那么半球表面的入射光亮度(也即穿过半球的光通量之和)显然为=半球表面积=
每个方向上我们计算出的出射光强是,则半球的出射光强
由于能量守恒,则入射光通量=出射光通量,则
则得:
【PBR理论】第2讲 BRDF理想漫反射(Diffuse)相关推荐
- PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现
PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现 BRDF简介 再介绍BRDF之前我们要引入渲染方程这个东西: 其中L表示辐射率,其公式为: 它表示了一个拥有辐射强度Φ的 ...
- 基于物理的渲染学习心得——面向使用的PBR理论
本文是笔者在学习PBR理论中的一些心得,并试图以结合Substance系列软件为例,从使用(实用)层面介绍PBR理论. PBR的定义: PBR全称是基于物理的渲染(Physically Based R ...
- 【Unity Shader】三、漫反射Diffuse Shader例子
学习目标: 漫反射Diffuse Shader,逐顶点计算和逐像素计算. 半兰伯特(HalfLambert)光照模型. 结合材质自身的色彩(Material Color)及环境光(Ambient). ...
- lgg7深度详细参数_深度学习平均场理论第七讲:Batch Normalization会导致梯度爆炸?...
前言 Batch Normalization (BN)对于深度学习而言是一项非常重要的技术.尽管BN在网络训练的过程中表现力非常强大,但是大家始终没有一个很好的理论上的清晰理解.今天我们就试图解读这篇 ...
- 使用VC6.0开发COM组件 - 傻瓜式,不讲理论,只讲实例
1.创建一个ATL COM AppWizard工程,如图: 2. 选择 Dynamic link Library (DLL),其它两个请百度,或参照其它文档.如下图: 3. 添加一个自己的COM类, ...
- 基于微平面理论的BRDF模型(PBR材质、Cook-Torrance、GGX)
前言 因为前边讲了在Unity中如何实现一个BRDF--简单来说就是把公式抄到Shader里,于是这篇文章则主要从原理角度来讲一讲基于物理的BRDF公式为什么长那个样子.本篇文章主要是整理一下去年 ...
- 【技术美术图形部分】PBR全局光照:理论知识补充
写在前面 最近做东西的流程是这样的,想实现一个风格化森林小场景,场景体现的主体是风格化树和交互草 --> 于是用了两天时间学SpeedTree做树模型 --> 用了两天时间SD做了树干贴图 ...
- Learn OpenGL 笔记7.1 PBR Theory(physically based rendering基于物理的渲染 理论)
PBR,或更通常称为基于物理的渲染,是一组渲染技术,它们或多或少基于与物理世界更接近的相同基础理论.由于基于物理的渲染旨在以物理上合理的方式模拟光线,因此与我们的原始光照算法(如 Phong 和 Bl ...
- 图形学基础 | 基于物理的渲染理论(PBR)
转载自: https://learnopengl.com/PBR/Theory Learn OpenGL PBR Theory PBR 基于物理的渲染(Physically Based Renderi ...
- 【技术美术图形部分】PBR直接光部分:Disney原则的BRDF和次表面散射模型
写在前面 补充去年遗漏下的知识.很多叙述都是参考了众多大佬的文章!因为是作为个人学习总结的博客,所以直接卑微的借鉴过来了,后面会给出所有参考的文章. 另外,放上一个忘了在哪一篇知乎评论里的截图: 说的 ...
最新文章
- hdu 4602 Partition
- springboot工具类
- .NetCore 3.1 安装本地化中文智能提示
- 这句话说得不错freeeim
- Kubernetes—如何批量删除对象资源?(二十三)
- TensorFlow 教程 --进阶指南--3.4数据读取
- TCP/IP数据包结构具体解释
- 类的使用经典案例使用类的成员函数显示时间、找出元素的最大值【C++面向对象编程】
- FZU 1894 志愿者选拔 - 单调队列
- java restclient 调用_restclient 访问 springmvc java工程接口
- 用命令来操作vSphere:二十二 PowerCLI命令--虚拟主机操作(1)
- Spring @Aspect、@Before、@After 注解实现 AOP 切面功能
- 网易云视频html代码,网易云课堂-8小时学会HTML网页开发01-1
- H5禁止苹果手机页面缩放
- Bootstrap系列之面包屑导航(Breadcrumb)
- 成都Uber优步司机奖励政策(2月21日)
- MySQL及同类产品的技术调研报告
- 全球与中国终末期肾病(ESRD)设备市场现状及未来发展趋势(2022)
- 康奈尔大学对博士生的要求
- Design?Design!
热门文章
- Why you should not shrink your data files
- RT-thread 环境下使用 HASH hwcrypto 配置使用底层硬件HAH库问题记录
- 怎样看股市K线图指标之成本均线指标CYC
- [转载]OFDM基本原理及系统框图
- SVN提交时出现remains in conflict错误
- MindManager模板百度云下载分享教程
- Blue Coat:2015年数据安全趋势七大预测
- 【已解决】点击Import Package没有Environment与Effects等问题(从官网下载Environment等相关资源包)
- 自动化生产线仿真教学
- python数据分布统计_Python 数据可视化:数据分布统计图和热图