Precomputed Radiance Transfer for Real-Time Rendering .
来源:互联网 发布:医院数据机房维保方案 编辑:程序博客网 时间:2024/05/15 03:04
全称真长:
Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments".
DX9 sample里就有demo什么的。
这个文章真的比较喜欢,作者也牛,来自发siggraph最多的Max-Planck-Institut和Microsoft Research。
内容在游戏里没有听说用很多,但是在:
http://developer.amd.com/media/gpu_assets/ArtAndTechnologyOfWhiteout(Siggraph07).pdf
这里有提到。
前面背景介绍也比较高屋建瓴,ok, let's start.
PRT是针对low frequency lighting environment来做一些全局光照效果,像soft shadow, ambient occlusion, scattering, interreflection...
但是其他的像直接一个太阳光,弄一个大shadow出来的这种情况,不是处理范围的。
然后提到了全局光光照的几大困难:
- BRDF complexity----巨复杂的material不好搞
- Lighting Integration complexity----周围光照的积分不好搞
- Lighting Transport-----间接光照,阴影这些东西不好搞
本文就针对lighting integration和lighting transport来做工作。
这里比较特别的地方是针对glossy material也有工作做,不像之前辐射度系列主要针对diffuse material,glossy material在做SH投射的时候需要得出一个matrix,不像diffuse的直接一个vector,但是其他部分一样的,所以其实也没有太多可以说的。
然后提到Spherical Harmonics,因为这个东东太重要,不得不提。
主要特性在之前博客里面有说,比较特别的就是旋转一致性。这个比较不好表达:
比如一个environment map当环境光源,作用到一个球上,进而这个环境光源投射到SH上,生成一组系数。
然后当environment map(这个环境光源)绕着这个球做旋转的时候,那么我们就可以通过对原来那组系数做linear transformation来完成。
而且每个系数做的时候是各自独立的,不需要依赖于其他系数。
这样生成好的一组系数,在物体旋转(相对于environment map)的时候,对系数做一些操作就可以了,而不需要重新积分出来一组系数。
然后的工作是主体,但是简单讲就是将一切都表示成SH 系数,然后在将这些系数作用起来,就得出最终结果了。
比如:
diffuse surface要表示unshadowed diffse,shadowed diffuse, interreflection,逐vertex的把这些信息投射到SH上。
environment lighting map也是投射到SH上。
最后一个dot,搞定一切。
当然在precompute radiance transfer和存储的时候可以根据实际情况做调整,在将连续的geometry,光照信息离散化过程中,自己选择方式和密度。
存储的时候也是同样道理,比如文中推荐的per vertex的也是不错的,弄到texture里当materia也可以。
最后谈到PRT也不局限于单个物体,物体与物体之间也可以,道理一样,只是涉及到precomputed基本就是要静态的,或者几乎静态的(只能做一些简单变化,如旋转)。
之后作者们还要弄到更牛的model上,类似subsurface scattering,大家在dx sample里也可以看到,的确是有。
基本道理差不多这些,细节部分不用也是忘,就不记了。
- Precomputed Radiance Transfer for Real-Time Rendering
- Precomputed Radiance Transfer for Real-Time Rendering .
- Precomputed Radiance Transfer for Real-Time Rendering
- ( Precomputed Radiance Transfer ) PRT
- Precomputed Radiance Transfer心得
- Precomputed Radiance Transfer心得
- Precomputed Radiance Transfer (Direct3D 9)
- PRT(Precomputed Radiance Transfer)&球谐光照(Spherical Harmonic Lighting)
- PRT(Precomputed Radiance Transfer)&球谐光照(Spherical Harmonic Lighting)
- Real-time Expression Transfer for Facial Reenactment
- Real-time rendering笔记
- Real-Time Rendering 笔记
- Real-time rendering笔记
- Real-Time Rendering 笔记
- Real-time rendering笔记
- Real Time Rendering
- Real Time Transfer (RTT)
- Multi-style Generative Network for Real-time Transfer论文理解
- hdu1251统计难题
- jdk与jre的区别
- Trie树的简单实现(Java版本)
- 腾讯电商:先做好减法再说
- C++ 英语笔试题
- Precomputed Radiance Transfer for Real-Time Rendering .
- Firefox OS获18运营商支持
- 苹果为何不给“人民”面子
- 区间合并
- IO流-12
- 如何设计一个好的Windows 8应用
- 输入一个升序数组和一个整数,在数组里面找两个数使它们相加的和为这个整数
- 字典树
- iPhone5和iOS6上HTML5开发的新增功能