GAMES101-现代计算机图形学入门-闫令琪 - lecture15 光线追踪3 - 辐射度量学、渲染方程(Ray Tracing 3) - 课后笔记

光线追踪3 - 辐射度量学、渲染方程和全局光照

内容:

  • 辐射度量学
  • 光线传输(Light transport)
    • 反射方程(The reflection equation)
    • 渲染方程(The rendering equation)
  • 全局光照(Global illumination)

辐射度量学

Radiant energy:辐射能量,单位位焦耳J,在图形学中几乎不用

Radiant flux(power):单位时间内辐射出的能量
在这里插入图片描述
Radiant Intensity:在单位时间内,往每个立体角(Solid Angle)上辐射出的能量
在这里插入图片描述
立体角(Solid Angle):球体上对应面积与半径的平方的比值
在这里插入图片描述
单位立体角(Differential Solid Angles):单位面积对应的立体角的大小,dA表示单位面积,dw表示单位立体角
在这里插入图片描述

Irradiance

定义:在单位时间内,每个单位面积上接受到的光照的能量,Radiant Intensity的微分/面积的微分。注:这个单位面积必须要和光线垂直,如果不垂直的话要把面积投影到垂直的方向上,类似之前的Biling - Phong里的内容。
在这里插入图片描述

Lambert’s Cosine Law

在这里插入图片描述

  • 左图:单位面积和光线垂直,所以直接用Irradiance的计算式即可
  • 中图:面积与光线不垂直,其投影只能接受到三根、一半的光线,所以要×1/2
  • 右图:更普遍的情况,当单位面积与光线不垂直时,要×cos将其投影到垂直的方向上去。

为什么地球会出现四季的变换?

上面的Lambert’s余弦定理就解释了地球为什么会出现四季变换。
在这里插入图片描述
当北半球是夏天时,太阳光直射北半球,北半球接收到的光的能量更多,也就更热;而当北半球是冬天时,光线与地球的表面有一定的夹角,吸收的能量减少,所以冬天就更冷。(如上图地球中黑色虚线处)

用Irradiance解释能量的衰减

之前曾经说过,我们是假设能量集中在一个球壳上,随着球壳的增大,光的强度会有一个r平方的衰减;

现在可以用Irradiance正确解释:在最内部的单位球上,Irradiance(E) = φ/4π,单位面积上接受到的能量就是φ/4π,而在外部的球面上,Irradiance(E’) = φ/4πr^2,,在单位面积上接受到的能量就是 φ/4πr^2,所以就是r平方的衰减。

所以就可以知道,在这里衰减的并不是Radiant Intensity,而是Irradiance在衰减。如果从球心以一个立体角画一个锥形,就可以知道,随着球面越来越大,立体角的大小是不变的,而立体角对应单位面积的大小却越来越大,所以球面越大时,dA越大,Irradiance也就会越小。

Radiance

Radiance时描述环境中光的分布的基本场量(fundamental field quantity)

  • 主要用来准确描述光线的一些属性
  • 准确的光线追踪与radiance关系非常大,渲染就是在计算radiance

定义:

英文定义:The radiance (luminance) is the power emitted, reflected, transmitted or received by a surface, per unit solid angle, per projected unit area.

定义:radiant power(flux)在每个单位立体角、每个投影的面上有多少
在这里插入图片描述
定义中有两个”每“,所以这里要做两次微分,其中做θ是面的投影时用到的角度
在这里插入图片描述
Radiance如上图所示:dA为一个单位面积,该单位面积有自己的方向,所以和入射的光线会有一个夹角θ,然后从这个面往某个方向w上辐射出一些能量。

联系

Radiance :Radiant power(flux) per unit solid angle , per projected unit area.

Irradiance : Radiant power per projected unit area.

Radiant Intensity : power per solid angle

所以上面三个物理量联系起来就是:

Radiance : Irradiance per solid angle
在这里插入图片描述
按照这种联系解释就是说:Radiance表示单位面积dA将接受到的能量朝w方向辐射出的能量。同样,反过来也可以说从w方向发射来的Radiance到dA上一共接受得到了Irradiance的能量。

Radiance: Radiant Intensity per projected unit area
在这里插入图片描述
Intensity代表的是向单位立体角的方向上辐射出的能量,这里Radiance就代表在某个单位面积的投影上的Intensity

Radiance和Irradiance的区别

  • Radiance是面向某个单位立体角辐射出去的能量,Irradiance是单位面积上接受到来自四面八方的能量。
  • 把半球面上的所有Radiance积分起来得到的就是Irradiance
    在这里插入图片描述

双向反射分布函数(Bidirectional Reflectance Distribution Function,BRDF)

反射

在之前说过,反射就是一道光线到达一个表面,然后反射到其他的方向去;这个过程其实也可以看作是从某一个方向来的光线到达物体表面后被物体表面所吸收,然后再由物体表面发射到其他方向去,如下图所示:
在这里插入图片描述
dE(wi)表示从wi方向射来的radiance到达反射点时被吸收转化得到的Irradiance(其实就是反射点从某一个方向接收到的能量转化为自己的能量之后然后再辐射出去),下面的等式可以通过前面的内容变换得到。
在这里插入图片描述
dL(x,wr)则表示反射点向wr方向反射出去的radiance。

我们知道反射点要吸收来自某一个方向的radiance然后反射到四面八方的立体角上,但是我们不知道反射到wr的方向上会有多少能量。

所以我们就定义一个函数,计算出:考虑一个微小的面积dA,从某一个微小的立体角dwi上接受到的Irradiance,会如何被分配到各个立体角上。其实求得就是一个比例,是什么比例?这个比例是 对于任何一个立体角上发出去的Radiance / 单位面积接收到的Irradiance,这就是BRDF的定义。它会告诉我们如何把表面上收集到的能量以某一种比例放射到其他的方向上去。

BRDF

BRDF能表示从每个入射方向收集到的能量以某种比例反射到每个出射方向上的能量。

就是说某个光线打到物体表面后,往不同方向反射的能量分布。如果说是镜面反射,那么只有反射方向上会有能量,其他所有方向上都没有能量;如果是漫反射,就会告诉我,这个进来的能量会被均等的分布到各个方向上。
在这里插入图片描述
忽略其推导部分,其实BRDF就是描述了物体和光线之间的相互作用。正是由于BRDF的这种概念,决定了物体不同的材质到底是怎么一回事,也就是BRDF定义了材质。

反射方程(The Reflection Equation)

由上面的式子我们可以得到:
在这里插入图片描述
从wi角度入射的能量最后反射到wr方向上的能量为dLr(wr)。
在这里插入图片描述

而在反射的过程,我们并不是只对单一的,来自某一个方向的能量进行反射,而是要将来自四面八方的能量都收集起来,然后反射到某一个角度上,所以要得到最终的反射效果,应该是:

  • 通过BRDF计算出每个接受的能量反射到wr方向上的能量
  • 然后把这些能量全部累加起来,得到就是wr方向上反射的能量。

用积分表示就是:
在这里插入图片描述
其中H的平方表示的积分面积为整个半球面。上面的整个表达式就是反射方程

挑战:递归等式、

在这里插入图片描述
在考虑反射方程的时候,我们要注意到:

  • 反射点接受的能量(Irradiance)并不只是来自于光源,还会来自别的表面反射来的光(Irradiance)
  • 从反射点反射出去的能量(Radiance)也并不只会反射到Camera或者人眼,还会作为Irradiance反射到其他的面上。

所以反射方程的定义就成了一个递归的定义,也因此,光线反射的次数不同,得到的最终效果也就不会不同。

但是我们目前先不考虑这些,我们先学一个通用的方程即可。

渲染方程(The Rendering Euqation)

渲染方程很简单,与反射方程相比,渲染方程只是多加了一个自己发光的能量。因为我们在考虑物体表面对光进行反射的时候,没有考虑物体自己发光的情况,所以渲染方程就加上了物体自身发光的能量。反射光 + 自身 发光 = 渲染效果,渲染方程如下:
在这里插入图片描述
其中Le是物体自身发的光,后面的积分是反射光。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/49845.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GAMES101-现代计算机图形学入门-闫令琪 - lecture8 着色2(Shading 2) - 课后笔记

着色2(Shading 2) Blinn - Phong 光照模型包括 : 漫反射、镜面反射、环境光。上一节讲了漫反射,下面讲一下镜面反射和环境光。 镜面反射(Specular reflection) 镜面反射:当物体的表面很光滑的…

GAMES101-现代计算机图形学入门-闫令琪 - lecture11 几何3(Geometry 3) - 课后笔记

几何2 - 曲线和曲面(Geometry 2 - Curves and Surface) 上一节提到,要表现一些复杂的几何模型有两种方法: 隐式几何显式几何 本节课讲的为显式几何 显式几何(Explicit Representations) 显式几何有两种…

GAMES101-现代计算机图形学入门-闫令琪 - lecture4 观测变换(viewing transformation) - 课后笔记

观测变换(Viewing transformation) 视图 / 相机变换(View / Camera transformation)投影变换(Projection transformation) 正交投影(Orthographic projection)透视投影(…

GAMES101-现代计算机图形学入门-闫令琪 - lecture9 着色3(Shading 3) - 课后笔记

着色3(Shading 3) 重心坐标纹理查询纹理应用 插值 - 重心坐标 (Barycentric Coordinates) 为什么要插值? 能够获得三角形三个固定顶点的属性,但是不知道三角形内部的属性希望三角形内部属性能有一个平滑…

GAMES101-现代计算机图形学入门-闫令琪 - lecture6 光栅化2(抗锯齿) - 课后笔记

光栅化2(抗锯齿)(Rasterization 2 - Antialiasing) 抗锯齿的内容包括: 采样理论(Sampling theory)抗锯齿的实践应用(Antialiasing in practice) 接着上节 我们采样是…

GAMES101-现代计算机图形学入门-闫令琪 - lecture5 光栅化(三角形的离散化) - 课后笔记

光栅化(三角形的离散化)(Rasterization1 (Triangles)) 接着上面的透视投影开始: 如何确定一个近平面的 l(left) , r(right) , b(bottom) , t(top)四个面?通常使用竖直可视角度(vertical field…

GAMES101-现代计算机图形学入门-闫令琪 - lecture3 变换(transformation) - 课后笔记

变换 为什么要变换? 变换有两种,一种 model 和 view 变换,其中model变换中包括缩放, 而view则主要是讲3D投影到2D的画面上 二维变换 要找到一个变换,实际上就是寻找变换后得坐标(x‘,y’)和变换之前的坐标&#xf…

GAMES101-现代计算机图形学入门-闫令琪 - lecture7 着色(Shading) - 课后笔记

着色(Shading) 可视性 / 遮挡 Z - 缓冲 (Z - buffering,深度缓冲) 着色 光照 和 着色 (illunmination & Shading) 画家算法(Painter s Algorithm) 先注明一下&am…

全网最详细中英文ChatGPT-GPT-4示例文档-场景问题智能生成从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

从0到1快速入门场景问题智能生成应用场景 Introduce 简介setting 设置Prompt 提示Sample response 回复样本API request 接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例 其它资料下载 ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和…

记一次alertmanager发送邮件失败的处理过程

文章目录 0 说明环境说明阅读说明 1 先验证smtp信息是否正确2 配置alertmanager配置文件并触发告警3 解决 smtp.plainAuth failed: wrong host name4 解决 dial tcp 127.0.0.1:5001: connect: connection refused5 解决 配置文件不对应的问题6 解决configmap跟挂载文件名不对应…

使用telnet客户端发送假冒邮件出现由某某代发怎么解决

使用telnet客户端发送假冒邮件出现由某某代发怎么解决 步骤如下,打码的是邮箱地址 想知道为什么我的有"由某某代发",而别人的没有,都是通过同样的操作在自己的电脑上操作的

奇葩经历之一_Hotmail邮箱无法查看和发送任何邮件

起因——“似乎有其他人使用你的帐户!” 因为IP活动异常,微软通知你账号有风险: 自动处理——“别慌,我们停用你的账户,这样就安全了!” 没有任何通知和提示就直接关闭邮箱功能,从这以后&…

记录项目里面用到的几个给国外邮箱发邮件的代码

一些说明: 这几个都可以正常发邮件,但是免费的每天都会有限制,发多了就会黑名单。。。 最终选择了exchange付费的版本,每天可以发1万条邮件,也不是很贵,基础的32一个月的就可以了 import javax.mail.inte…

JavaMail邮件发送不成功的那些坑人情况及分析说明(巨坑跳出专用姿势)

https://blog.csdn.net/xyw591238/article/details/69530950 前言 JavaMail的使用本身并不难,网上有不少案例,简单易懂,而且有详细的中文注解。但是由于JavaMail的机制设置不够完善,特别是异常出错时的参考信息太少,给…

Python通过发邮件通知自己电脑被入侵

我对IT技术有着狂热的追求,虽然现在很渣,但是我有颗钻研的心,例外我还比较喜欢看小说,相信看过最强黑客的人对里面的黑客的技术佩服得无以复加,黑客一般对自己的电脑数据都比较在意,一般都会设置些密码等并…

如何在线伪造邮箱发件人,用任意邮箱发送邮件

今天邮箱收到一封自己域名发过来的邮件,但是询问当事人说并没有发送相关邮件,于是去百度了下,看是否可以伪造发件人,于是找到一个网站 http://tool.chacuo.net/mailanonymous,这个网站可以用任意的邮箱地址发邮件&…

单播通信、主播通信和广播通信

单播 简介 单播(unicast)是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。每次只有两个实体相互通信,发送端和接收端都是唯一确定的。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用…

Qt 之图形(转换)

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 QTransform 用于指定坐标系的 2D 转换 - 平移、缩放、扭曲(剪切)、旋转或投影坐标系。绘制图形时,通常会使用。 QTransform 与 QMatrix 不…

全网最全!!Qt实现图片旋转及图片旋转动画的几种方式

实现图片旋转的两种方式 第一种方案 使用 QPixmap 的 transformed 函数来实现旋转,这个函数默认是以图片中心为旋转点,不能设置旋转的中心点,使用如下: QMatrix matrix; matrix.rotate(45);QLabel *Label new QLabel(); Label-…

网页特效——女儿国国王

目录 💝💝💝💝💝💝💝💝💝💝💝💝💝💝💝💝💝💝💝&…