当前位置: 代码迷 >> 综合 >> Real-Time Rendering 第八章 Light and Color
  详细解决方案

Real-Time Rendering 第八章 Light and Color

热度:26   发布时间:2023-11-21 16:09:45.0

8.1 Light Quantities

基于物理渲染的第一步,就是如何量化光

光是以电磁波的 形式传播的,每一种电磁波都有不同的波长(wavelength)

 在自然界中,电磁波的波长范围很广,从不到百分之一纳米长度的伽玛波到数万公里长的极低频(ELF)无线电波。

下面是人眼可以观察到的波长:400nm-700nm

 在辐射学中,基本的单位是辐射通量( radiant flux), Φ.它表示辐射能随时间的流动,单位是瓦特 W.

辐照度:单位面积上的辐射通量,用E表示

立体角(solid angle):立体角测量的是三维空间中一组连续方向的大小,用ω表示,平面中2π可以表示整个圆,三维中,立体角的范围是4π

 球面角度(steradians):用sr表示,sr就是用立体角来测量的

辐射强度(radiant intensity):用I表示, 立方角上的辐射通量 W/sr

辐射率(radiance):用  L 表示, 单位立方角上的辐射通量,它测量的是垂直的辐射通量,如果有角度,要乘以cos

我们一般用到的是最后一个 ,我们渲染的目的就是计算平面上的辐射率

辐射率一个很重要的特性是它不收距离的影响,同时也不受大气介质的影响,比如有雾,一个表面即使离摄像机很远,在屏幕上只有几个像素,它每个像素的辐射率都是一定的。

大多数光源都包含了不同波长的光,可以通过spectral power distribution (SPD) 来查看。

如下图:

8.1.2 Photometry 

辐射测量学表述的是光在物理上的测量,而光度测量学,表数的是从人眼的角度,不同波长的光的表现

The results of radiometric computations are converted to photometric units by multiplying by the CIE photometric curve,1 a bell-shaped curve centered around 555 nm that represents the eye’s response to various wavelengths of light

辐射度测量学和光学测量学的区别就是测量单位和转换曲线不一样

辐射度和光学度是一一对应的,对应关系如下:

我们一般用到的是luminance:用来表示亮度

HDR 的屏幕亮度一般在500-1000nit,天空的亮度一般在8000nit

8.1.3 Colorimetry

我们在8.1.1节指出,光的颜色和光谱功率分布有关SPD,不同的波长对应不同的颜色,但是到了人眼感知的时候,不同的波长可能感知到的是同一种颜色,人眼可以感知到大约1000万中不同的颜色。

在颜色感知方面,眼睛的视网膜上有三种不同类型的锥体感受器,每种感受器对不同的波长有不同的反应。不同动物的锥体感受器的数量也不同,所以对于整个SPD,人的大脑只能接收到三种信号,这也是为什么仅仅使用三种信号,就能模拟出很多颜色来。

但是是哪三种信号呢?最先提出的是(CIE (Commission Internationale d’Eclairage)),他们通过混合三种不同波长的光,投射到一个白色屏幕上,如果混合的光正好是白色,就通过,最后得出来的三种颜色分别是 RGB ,波长分别为645 nm 、526 nm、 444 nm 。

也就是给我们一个SPD的光,我们通过一个方法,把它转化到这三种波长上,然后每种波长占有不同的权重,最后混合出来的光的颜色和原来的SPD相同,这个方法就是一个映射曲线,对应的是每种波长的波对应的rgb 通道的波长。如下图

  相关解决方案