我是靠谱客的博主 狂野纸鹤,最近开发中收集的这篇文章主要介绍大气散射光照模型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

上面这个图使用大气散射光照模型来计算天空颜色和在晨阳照耀下的薄雾的颜色,不同于传统的天空球和雾的算法,这里很好的诠释了光线(太阳光,天空散射的光,物体反射的光)在大气中传播的效果,效果也更加真实绚丽。

paper list:

precomputed atomspheric scattering:

http://hal.inria.fr/docs/00/28/87/58/PDF/article.pdf

Modeling Skylight and Aerial Perspective

http://developer.amd.com/media/gpu_assets/PreethamSig2003CourseNotes.pdf

Accurate Atmospheric Scattering

http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter16.html

Rendering Outdoor Light Scattering  in Real Time

http://developer.amd.com/media/gpu_assets/ati-lightscattering.pdf

Lighting Research at Bungie

http://www.bungie.net/images/Inside/publications/siggraph/Bungie/SIGGRAPH09_LightingResearch.pptx


讲解理论的话,Modeling Skylight and Aerial Perspective这个比较好,precomputed atomspheric scattering:应该说更全面,但是写的好晦涩,看的累。

bungie的这个是对PreComputedAtomsphericScattering的应用,摘取了主要部分,配上各种图片,容易看多了。


光在空气中的Absorption/OutScattering/InScattering

我们看光从空气中传过来,主要经过了这么几个过程:

  • 视线方向的光,会经过absorption&out scattering,损失了一些亮度,然后进入眼睛
  • 还有一些光,就是别的方向散射进来的,又加强了一些亮度。
其中散射,吸收的计算过程,涉及到光和粒子的交互,是一个和:
  • 光的波长----不同情况下对不同波长的光的吸收和散射不同,因此才有天空在不同时刻的不同颜色
  • 空气分子大小:对于高空干燥的空气,分子小于光的波长,这时候的系数公式和位于浓烟部分的散射系数公式截然不同
  • 空气分子密度
有关的计算过程。
结果呢,对于天空,就是可以正确计算太阳在不同时刻,不同天气状况下天空的颜色。
对于雾效,相比于传统的雾(主要是计算对光线的吸收)可以进一步的带有光的散射效果:





散射系数计算

基本分成两个类型,

  • 高空干燥的空气:使用Raleigh模型

  • 浑浊的空气:使用mie模型,这个之前的blog也提到过,也可以用于计算云的散射

预计算:
做到完全正确的计算,可以说计算量是相当大的,那么在PrecomputedAtomasphericalScattering里面使用了预计算的方式,尽可能把能预计算的部分都预计算,存在贴图里面,这样就具有了比较好的性能。


最后

以上就是狂野纸鹤为你收集整理的大气散射光照模型的全部内容,希望文章能够帮你解决大气散射光照模型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部