当前3dmax实时渲染染中,一般是怎么实现基于物理的BRDF的

相关文章推荐
BRDF一般描述了两个物理现象,表面反射和表面散射。每个现象行为都是不一样的,所以BRDFs有分离的因子,其中描述反射的叫做镜面因子,描述散射的叫做漫反射因子。
BRDF一般都是对表面以...
参考自: http://blog.csdn.net/wolf96/article/details/单一光源的情况:多光源的情况:...
提要常见的光照模型一般包括四个部分ambient, diffuse, specular, 和emitted light. 即:vertex color = ambient + diffuse + sp...
基于物理的渲染已经提出好多年了,但在游戏中使用的渲染模型仍然是拼凑出来的经验公式(比如Phong)。这些拼凑的模型如果要渲染高质量的图像,就需要繁复地调参数。而基于物理的、保能量的渲染模型可以很容易地...
=============================
首先是一些基本概念
是一个物体对于一个特定观察点在三维空间中的角度(观测到的大小),记作Ω,
单位为球面度(sr),即三维弧度,...
前情提要:
讲求基本算法
Unity3d 基于物理渲染Physically-Based Rendering之specular BRDF
Unity3d 基于物理渲染Phys...
概要:续接上文,本文进一步讲解与分析了上文未讲完的Unity5中Standard Shader正向基础渲染通道源码的片段着色实现部分,以及对屏幕像素化后期特效进行了实现。
同样需要声明的是。本...
首先声明,我的主博客在[博客园](/zhouxin/),这是我转我博客上的一文,所以不要说是转载。本文主要介绍Untiy5以后的GI,PBS,以及光源探头,...
在实时渲染中Physically-Based Rendering(PBR)中文为基于物理的渲染
它能为渲染的物体带来更真实的效果,而且能量守恒
稍微解释一下字...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Unity Shader 学习笔记(31) 基于物理的渲染技术(PBS)、BRDF
时间: 19:53:26
Unity Shader 学习笔记(31) 基于物理的渲染技术(PBS)、BRDF
参考书籍:《Unity Shader 入门精要》
【《Real-Time Rendering 3rd》 提炼总结】(六) 第七章 · 高级着色:BRDF及相关技术
基于物理的渲染技术(Physically Based Shading, PBS)
是为了对光和材质之间的行为进行更加真实的建模。
在物理学上,光是一种电磁波。光与物体相交,一些光线被吸收(absorption),另一些被散射(scattering),最后被感应器(眼镜)吸收成像。
对于金属材质,一般所有折射的光线都会被直接吸收。
对于非金属材质,则会同时表现吸收和散射两种现象。散射出去的光称为次表面散射光(subsurface-scattered light)。
如下图:蓝色的就是次表面散射。
双向反射分布函数(Bidirectional Reflectance Distribution Function, BRDF)
辐射率(radiance):通常用L表示,量化光的单位。指单位面积、单位方向上光源的辐射通量。
绕着表面法线旋转入射方向或观察方向不会影响BRDF结果,称作各项同性(isotropic)的BRDF,对应各项异性(anisotropic)。
BRDF可以用 f(I, v)表示,I为入射方向,v为观察方向(双向的含义)。表示一束光延入射方向I到达表面时,能有多少部分的能力会反射到观察方向v上。BRDF的两种理解方式:
- 给定入射角度,BRDF可以给出所有出射方向上,反射和散射光线的相对分布情况。
- 给定观察方向(出射方向),BRDF可以给出所有入射方向上,到该出射方向的光线分布。
反射等式(reflection equation):出射辐射率Lo(v) = 所有(做积分)入射方向的辐射率(Li(I)) × 对应观察方向所占权重(BRDF值f(I, v)) × 该表面投影结果(余弦值(n · I)) 。
游戏中通常和精确光源打交道,可以简化公式:Ic为该光源方向,clight为光源颜色。
判断BRDF是否基于物理:是否满足交换律( f(I, v) = f(v, l))和能量守恒(表面反射的能量不能超过入射的光能,即 Lo ≤ 1)。
BRDF两种不同现象:表面反射和次表面散射。
漫反射项(diffuse term),描述次表面散射
Unity中漫反射项:roughness为表面粗糙度。
高光反射项(specular term),描述表面反射
微面元理论:物体表面由许多微面元组成,这些微面元被认为是光学平滑的,即有高光反射。
I:入射方向,v:观察方向,m为法线( I 和 v 的一半h)。
BRDF的高光反射项表示形式:
- D(h):法线分布函数(normal distribution function, NDF)。用于计算有多少比例的微面元满足m=h。
- G(I, v, h):阴影-遮掩函数(shadowing-masking function)。用于计算满足m=h中,没被遮挡的,能成功反射到视角的微面元浓度。
- F(I, h):菲涅尔反射函数(Fresnel reflectance)。上面两步之后,反射光占入射光的比例。
- 4(n · I)(n · v):校正因子。用于校正从微面元从局部空间到整体宏观表面数量的差异。
作者:l 发表于 21:53:26 原文链接
阅读:10 评论:0 查看评论1162被浏览60577分享邀请回答40428 条评论分享收藏感谢收起graphics.stanford.edu/papers/veach_thesis/thesis.pdf) 谈到的理论至今还是许多最新论文的基石。例如光线路径的公式(Light Path Formulation),多重重要性采样(Multiple Importance Sampling)还有Markov Chain的应用等。其他渲染所涉及到的基础理论例如光在介质中传播(Participating Media),Photon mapping那些基于Density Estimation那套东西的理论,各种材质的建模(Appearance Modeling),还有最基本的数学工具Sampling & Reconstruction都被搞得很成熟了。现在的渲染早已不是拼基础理论的方向,我认为也很难再出一些能颠覆我们认知的基础理论再被发明或者发现。这些方向的成果也大多都是站在物理学、数学、统计学等的肩膀上完成的。但我认为渲染就是一个不能止步于基础理论的方向。尽管各种理论都已经成熟,但是rendering equation积分的维度太高,中间brdf项还有蛋碎的delta或者near delta distribution,所以效率和健壮性都是很大的挑战,有挑战和不足自然就还有工作可以做。我用自己的渲染器随便举个例子,那个大玻璃窗上一堆噪点就是因为玻璃的反射分布是一个奇点(delta distribution)。因为从窗外射入窗内的房间,再由窗户反射出来到眼睛的光经过了两次这种delta distribution的洗礼,没有办法被很好的采样,就噪点了。。这是常说的Specular-Diffuse-Specular路径,类似比较难搞的场景还有不少。。(例如点光源的焦散,visibility很差的光源等)然后对于离线渲染来说,research的确相对于其他方向例如vision,animation来说不太好做。但我倒是觉得最近几年有些paper还是很不错和比较能开我的脑洞的。就不提热门的VCM了。我还很喜欢这一篇2013年的,作者天才的把Photon mapping里面那种merge临近光子的思想用到了采样光线路径方向上。这样做的好处是第一实现起来简单,不像PM、VCM有额外的内存开销,而且可以证明的是引入的Bias也更小(这是个有偏一致的算法)。因为是Analytical的所以实现的成本还是很小。还有2012年渲染Participating Media的. 它提出了一个explicit的在Volume里面建立特定长度的光线路径的方法,比传统直接重要性采样phase function或者transmittance来建立光线路径的做法收敛要快不少。而且将这个方法结合到Path Tracing里去是有Analytical的方程的。。十几行代码也就搞定了,太开心。还有去年SIGGRAPH的. 基本就是Participating media版本的VCM,将不同的volume estimator用多重重要性采样结合起来,能比较robost的渲染不同属性的volume。再例如去年的
,把robotics里的Generalized Coordinates用来表示光线路径而且得到了更快的收敛结果,当时真的开了我的脑洞。期待这方面后续的research。其他人提到的用神经网络和其他ML的方法我也觉得暂时在纯YY的实验性阶段。。但是综上我想说的是rendering从efficiency和robustness的角度来看还是有很多东西可以研究的。最后,对于实时渲染来说,学术圈很少做这方面的研究的东西。像我之前这个答案 -
说的,都是各种smart hacks,对真正学术理论的贡献比较小。Physically based shading就那么几个公式在网上还都是现成的,是个游戏引擎都可以用。做这方面工作的大多是游戏公司以及显卡公司,这类东西通常非常的practical和hacky,今天搞出来一个东西明天就马上想能加到游戏引擎里去那种,例如VXGI,HBAO+,TXAA等。而因为所有这些技术都是完全依赖GPU的,显卡公司当然有绝对的研究优势去运用新的硬件feature发明新的算法。再加上现在图形API的成熟,很多效果都高度受制于硬件的性能和feature,从这个角度来说实时渲染就是被显卡公司驱动的也不为过(当然还有Epic这类引擎公司)。总之实时渲染是跟着industry走的,学校要有研究大多也是和NV这种公司有合作,而industry关注的面往往比渲染多很多,甚至有4k,跨平台,VR,新的图形API。以上全是个人观点,完全不代表我的Employer1253 条评论分享收藏感谢收起物理渲染-基于物理的光照模型
时间: 17:15:17
&&&& 阅读:281
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&
文章所用图片来自相关领域文献,如有侵权请联系撤除, 转载本文请注明出处
1.关于光照模型
  对于图形学领域和图形学开发来说,实时渲染的光照模型是一个最最基础的问题,简单的来讲,光照模型就是用来描述在真实环境下,物体表面一点在在光照下的反射颜色值.有许许多多的光照模型试图用数学的公式来模拟这个问题,当然这即是一个物理问题,也是一个数学问题.大学时最初接触计算机图形学时,对书本上关于光照模型的推到过程就极为不解,最近为了研究基于物理的光照模型看到一篇10年siggrgrah的course,(&Physically-Based
Shading Models inFilm and Game Production&&中的background部分,Physically-Based Shading,其实现今大多流行于产业渲染如游戏中的技术集中来自己过去5-10年前这时间段的会议论文,读这期间的论文最能反应如今视频游戏渲染的前沿&)他是一个对基于物理的光照模型的很详细的教程,对光照模型的很多问题突然很多清晰明了了起来,尤其这篇文章中对于diffuse的解释让我顿感我一直在误解&漫反射&的意思,突然感觉很多国内基础教材的译文不准和推导不仔细会误导初学者,感觉这是篇好文,好文一定要分享,所以就有了把它较完整翻译下来的想法.
  首先本文先概述一下目前流行的几种光照模型,在图形学产业,尤其是游戏,实时的渲染要求我们不能完整的模拟自然界的光照,所以人们都是用各种计算上相对简单的光照模型去模拟.
Lambert模型:
&用来描述Diffuse Reflection,也就是被翻译为所谓的漫反射,愚以为这里漫反射翻译的并不准确,因为漫字偏晦涩,很多人会把它理解为&普通的&反射,但其实这里Diffuse的原意是弥散,散射的意思,其实更准确的物理学上的意思应该是&物体内部大量微粒子表面的反射&或者说是物体内部的散射,和直接的反射意义不同,下图可以直观的告诉我们什么是漫反射
,漫反射不是光线从一个点直接反出来的另一个光线,而是进入物体内部被各种子微粒散射出来的n条光线
Lambert模型这样近似的描述某一点的反射光强度:
即入射光和法线的点乘再乘以材质颜色和入射光颜色,这里为什么是入射光和法线的点乘其实国内教科书上的解释很难让人信服甚至没有解释,这里还是要从上图那个散射里面来解释,入射光的散射程度可以粗略的认为同夹角(入射光和法线)的增大而减小,比如当垂直入射时,光线完全射入物体,如果不考虑物体的吸收和折射,那这部分光线完全被散射后反射出来,认为这时反射出来的光是最强的,但是这是一个很粗略的模型,除了物体的吸收和折射,其实角度很大时,散射的区域很大,我们不能认为所有反射的光都是从入射点发出来的,不过这个模型还是可以近似描述一些塑料,大理石等亚光材质(不吸收,不折射).
给定上面的光线,Phone模型描述为
第一项表示为环境光影响,第二项是所有光照的lambert反射,第三项是反射光线和实现的点乘后alpha次幂,这里面不仅包括了环境光和漫散射,还考虑第三项的高光,让物体能够表现出高光斑,当实现和反射线重合时,认为高光最强.这个模型复杂了一些,但是能够表现金属这种有光泽的材质,事实上这个模型也没有遵从真正的物理原理,某种程度上是为了让物体看上去有个光斑而作的模拟.
Blinn-Phone模型
Blinn Phone基本假设与Phone是一样的,只是提高了运算效率,用替代上面的&,其中,被称为半角向量.这样的目的是因为反射光线的计算R相对复杂,减少了R的计算,用半角向量简单的模拟提高了运算效率,这也是Opengl和D3d固定管线的默认光照模型,Opengl和D3D默认的光照模型都是Goround shading(即常说的点光源,像素插值)而非Phone shading的(pinxel光源)
基本上Blinn-Phone就是我们现在游戏产业最流行的光照模型了,也是Opengl和DX的默认模型,但是随着硬件运算能力的提升和对更高品质真实感光照的追求,开发者在寻求更拟真实世界的光照模型,最近很火的基于物理的光照模型就是一种,从名字来看这种模型就是能更加真实的反应物理上光和材质上能量的转换关系.下面是对比图(源自unity引擎)
从上面的对比可以看出传统的blinn-phone模型的高光很突兀,因为这种模型是为了体现高光而模拟了一个高光项,而下面的物理的渲染则更加贴近自然,因为在物理模型中点的光度值是按照更贴近真实物理的能量传递的反馈.
那么什么是基于物理的光照模型,他最初来自于10年的siggraph,这篇course的题目是&Physically-Based
Shading Models inFilm and Game Production&&,文章的作者叫Naty Hoffman,是当时动视工作室中心的技术总监,负责全球工作室的图形学支持,文章对基于物理的光照模型解释的非常清楚,甚至很多解释我认为细致到冗余,但是消除了我很多疑虑,下面我对文章的翻译,有些许删减,但是力求不影响大意.
2.基于物理的光照模型
2.1渲染中的物理
光是一种电磁波,也就是说光线会沿着垂直与它的传播方向震荡, 光的特性决定与它的波长,但是人眼只能感知其中某些波长的光(400-700nm),物体对光的影响可以被一个叫折射率的特性量化,折射率是一个复数,其实数部分描述物体对光速度的影响,虚数部分描述光被物体吸收(转化为其他能量)的程度,折射率会随着光的波长而改变.
光作用与材质最简单的情况是在均匀介质中传播.
对于透明的介质,其折射率的虚数部分对可见光很小,意味着物体不会显著的吸收光,例如玻璃和水.然而如果介质能够吸收可见光,一般都会随着传播距离越远吸收的越多,但是在均匀介质中方向不会被改变,只是强度会随着吸收而降低.这里其实透明的物质如水其实也是会吸收光的,只是要把尺度放大到很大,水尤其对光中的红光吸收更多,例如光在大海经过很多米的传播后,光会被吸收成慢慢变成蓝色.
在均匀介质中,光线总是沿着直线传播,但是在非均匀介质中,不同物质对光的折射率不一样,如果物质的折射率变化的缓慢且连续,光传播的路径就会逐渐变弯,而如果折射率改变的突然,光就会发生散射,一束光会被分成很多束,但是光能的总量不会变.在污浊的介质中,散射光的方向会被在原始传播方向上发生随机,而如果是不透明的物体,由于散射元素太高导致散射光线是完全随机的.向吸收一样,散射也是个观察尺度问题,即时很清洁的透明的空气,光在几百米传输之后还是会发生散射.
平面交接处的散射
maxwell等式可以用来计算当折射率变化时光的行为,但在大多数情况下,可以用来分析的解决方法是不存在的(因为太过复杂),但有一种情况除外,就是交界是一个无限大的,完全平的平面,这种情况可以很好的用来做shading计算,maxwell等式在这种特殊情况下就变成了fresnel等式.在这种情况下,光线不会在很多方向上发生散射,而是会分成两束光,如上图,反射光和折射光.反射角等于入射角,但是折射角则取决于物质的折射率.
非视觉平滑的表面(反射)
世界上绝大多数物体都不是视觉上平滑的,当物体表面的凹凸尺度大于光的波长时,这时物体表面就好比有大量的细微的平滑表面,物体表面看起来的效果就是很多有着不同方向的表面点的反射效果的叠加,如下图
在围观上物体表面越粗糙,因为子平面的方向差异性越大,反射出来的光就越模糊,如下图
为了渲染,我们可以用统计学的原理把这些子几何体的反射效果看成是从入射点反射出来多个不同方向的反射光,如下图(译者注:传统的光照模型我们通常认为物体绝对光滑没有子表面,即反射后只有一条固定方向的反射光)
子表面的散射(折射)
上面说的是反射光,那么折射光的情况是怎样呢?这取决于交界处两侧的物质组合.金属对可见光有很高的吸收系数,所有折射的光被迅速吸收,而对非金属当折射光进入物质时,这些光就会继续在里面的子物质上继续正常的光与物质的交互流程,大多数情况下,这些光在物质内的散射的足够充分以至于可以从里面再反射出来.下面左图是金属的情况,右图是非金属,光线在内部散射后又反射处理,重新发射出来的位置离原入射点已经有一段距离(我们称这个为散射距离).
拿我们渲染的像素和入射点同散射距离做比较,有下面两种情况:
第一种情况是像素比散射距离大,这种情况散射距离可以被忽略了,可以认为光的入射以及内部散射后发射出来的光在同一个位置,即可以简化为右上图的情况,这种情况我们就可以用一个简化的局部的处理过程来计算.
但是还有一种情况就是我们关注的像素比散射距离短,这时每个像素的渲染还要受很多其他点的影响,这时局部渲染就不足以描述了,就需要更加专业的渲染技术来描述,这些技术被一般被称为&子表面散射&技术.(译者注:子表面散射通常是基于物理光照的基础),不过这也是个观察尺度问题,当传统的局部渲染模型可以描述的物体,我们离他越近,它就越发变成后者.
2.2渲染中的数学
用来描述光传播以及对物体作用的能量的度量叫做辐射度,当渲染一个点时,我们定义Li为进入这个点的辐射度,Lo为离开这个点的辐射度.
通常我们认为光线是可以在局部处理的,如上面图的第一种情况,这时一个点对光的反应只取决于入射光的方向和视线的方向,我们定义v为反射光的单位矢量,l为入射光的反方向单位矢量,该点对光的反应可以用一个叫BRDF(
Bidirectional Reflectance Distribution Function&)(双向反射率分布方程)的方程来描述,它表示为f(l,v).&
BRDF可以用两种方式来解释,一种是给定入射光线,BRDF给出离开入射点的所有方向上反射光线和散射光线的分布,另一种解释是给定观察者对于该店的视线,BRDF给出进入这个视线方向的所有入射光线的分布,如下左右两图
BRDF常被用在反射等式中,反射等式定义如下:
其中的f(l,v)就是BRDF,这个反射比等式可以这样解释:离开表面的光线能量=(进入表面的光线能量*BRDF*cos系数)的积分,并且f(l,v)=f(v,l)。
BRDF描述了光线作用表面后的两种物理现象:反射和散射,在BRDF中用于描述反射项通常称作“Specular”高光,用于描述散射的项称作“diffuse”漫反射(其实这个漫反射是内部微表面的散射造成)
2.2.1.1brdf的表面反射项(specular高光项)
物理渲染中的高光项是基于微表面理论,这里还要假设表面有大量的细微的以至于无法直接看到的微表面,每个微表面都是绝对光滑的,而根据前文绝对光滑表面只把光线分成反射和折射两条光,而这两条光的方向要依赖于微表面的法线M。当计算BRDF的时候,入射光线L和视线V通常也要指定。这意味着在成千上万的微表面中,只有那些恰好反射光线同V一致的面才真的可以计入计算,如下图只有红色的这些微表面才真正对BRDF有贡献。
我们定义l和v中间一半的向量为h(也称半角向量),这样就是那些法线m=h的微表面会被计入BRDF,但是也不是全部,有些m=h的微表面可能会在l方向上或v方向上发生阻挡(前者叫阴影区,后者叫蒙版区),如下图,微表面理论假设所有在这样区域的光能从高光项中移除,但是在现实中,这些阻挡的光线可能经过继续的多次反射后又被我们看到,但这不在微表面理论讨论的范畴。
基于上面的假设,BRDF中高光项的表示为
这其中F是半角向量为h处的fresnel反射,G项是那些与视角V朝向一致的微面的比例,D项是微面朝向的分布,分母是对那些被遮挡的光线的修正。
2.2.1.1.1fresnel反射项
fresnel反射计算的是在绝对光滑表面光的反射,它取决于两个参数,入射角和材质的折射系数,这里的折射系数都是rgb的向量。完整的fresnel等式非常复杂,并且非常不适合美术调整参数。然而通过观察真实世界材质的特性可以得到一个简单的表达式。这里可以先观察下图
这图是不同材质反射光能随入射角变化的曲线。可以看出反射的能量在0-45度入射角时基本保持不变,但是在45-75度会改变的非常明显(译者注:这个与我们传统的光照模型假设高光反射不随入射角损失能量不同),最后在75-90度反射能量会迅速达到1,因为在0度附近值基本固定不变的,这个0度的值有特殊的意义,它也是表示材质对光颜色的选择性反射,基于这些因素,我们把这个F(0)值认为是材质表面的反射颜色,记为Cspec。
Cspec看起来像一个理想的fresnel反射值的估计,后来Schlick提出了一个快速并且近似的方程计算反射值,
这就是对上图曲线的近似方程,给出Cspec,入射光和法线就能近似得到绝对平滑表面下的反射光的值。这个近似方程也广泛的应用于计算机图形学领域,对于活动微面(我们可见的)的特殊情况,n也可以用半角向量h代替。
下图是各种材质的F(0)
观察这个表可以就看出金属的F(0)要明显高于非金属,它的F0超过50%,而钻石(最亮的非金属),在F(0)只反射17%的光,几乎很少有非人造的材质的F0在20%-40%区间,这些通常是一些人造合成品,它们也很少出现在渲染中,同样小于2%(水的F0)的材质也很少见,事实上,如果除了金属 宝石 水晶之外,你能看到的大部分自然界的材质的f0都集中在2%-5%这个很窄的区间。
2.2.1.1.2法向分布项
对于大部分的表面,微表面的朝向并不是一致分布的。那些和整个表面总体法向一致的微表面有着更高的分布,确切的分布是通过微表面法线分布方程D(M)来定义的,它的值域并不限制在0到1内,虽然不可能为负数,但是可以任意的大,在BRDF里面,D()用来衡量H方向的分布(那些m=h的微面(即视线可见的)),所以BRFD里写为D(h)。
D()可以决定高光的大小亮度和形状。很多图形学文献中的法向分布方程都是类似高斯方程的,里面带有一些模糊或可变参数,随着物体表面粗糙程度的减小,趋近与总体法向N的微面的分布变多,这时D值会变得非常高,(在极限情况下,一个绝对的镜面,D(m=n)是无限大的),Water等人在《Microfacet Models for Refraction through Rough Surfaces》这篇文章中详细的论述了D()的计算。
2.2.1.1.3阴影-遮罩项
在BRDF相关文献中它又常备称为几何体项,G(L,V,H)表示示在法线m时,微面从入射光l和视线v双向上都可见的几率,值域是0-1,G项对于BRDF中光能的守恒来说是必要的,没有这项,表面计算出来的反射光可能会比入射光多。brdf的一个关键因素是可见微表面占总微表面的比例,如果阴影遮罩的面不算的话,可见表面可能算出来会比总的表面多,这就违反了能量守恒。
2.2.1.1.4微表面模型
D()和G()计算模型的选择是相互独立的,他们可以分别使用不同的微表面模型,可以在很多论文里找到他们的计算,一旦D和G确立了,完整的BRDF就会被所选的参数确定。微表面的BRDF有紧凑的参数化,通常只包含一个RGB值(为了F(0))和一个表示粗糙度的标量值。
2.2.1.2子表面反射(漫反射项)
对于表面局部反射模型来说,最广泛使用的还是朗伯模型,这其实就是一个常量,我们所熟知的cos值(L点乘N),是fresnel反射方程的一部分,而不是BRDF,在BRDF中的子表面反射项(漫反射项)的定义则是
在这里Cdiff是光线被折射后被漫反射的部分,,Cspec(也就是F(0))通常被认为是表面颜色, 而Cdiff通常被认为是漫反射颜色。
2.2.2渲染的实现
前面的部分我们看到了在表面渲染中的数学模型,这里我们将讨论在电影和游戏中的产业上的实现。
2.2.2.1通用光照
在大多数情况,BRDF必须要与其他来自不同方向的入射光整合在一起进行计算。这不仅包括主的入射光源,还包括像天光,还有来自其他表面反射后出来的光,全局光照(GI)算法就是位了解决这些问题的,关于这些GI的详细的算法不在本文的讨论范畴,可以参考一些其他文献。
2.2.2.2精准光源
一个更加多的限制是,同时也是通常工业渲染中常见的情况是光照环境是有一个或多个&精准光照&组成的,这里的精准光源是指由计算机模拟的点,方向或者聚光光源,因为这些光源都是发光体无限小并且无限明亮的,所以他们和物理世界的真实光源是不一样的,但是在很多情况下他们也能产生合理的光照结果,同时给计算机的计算带来方便.精准光源用参数光源颜色Clight和光线方向Lc来表示.为了美术的方便,精准光源的颜色Clight不是直接按照光源强度的辐射度度量的,而是被定义为对于一个纯白色的lambert表面,当这个光从垂直与表面的方向照射时表面的颜色.
精准光源的主要优点是他显著的降低了反射方程的复杂度,精准光源的反射方程是
他比原始的反射不等式简化很多,这里的NL最小不能低于0.
对于方向光来说,n和l在场景中都是常量,对于点光和聚光,n和l都是变的,在现实中,Clight是随着距离的平方而衰减的,但是在实践中,我们经常用其他的一些衰减公式来替代.
如果同时有多盏光照,每个光源都要按照上面的反射公式计算后相累加,但是精准光源不能只计算他们自己,因为缺少任何从其他方向发射来的光很容易被发现,尤其是当表面是高度高光的时候.所以精准光源经常要同一些周围的环境光配合在其一起,这些在下面描述.
2.2.2.3.1环境光
这里我们把环境光定义为一些低频率的光源,可以简单的表示为代表了各种方向来的一个常量的光强,也可以更复杂到用球谐光照来表示(SH),通常这种类型的环境光被应用在BRDF的漫反射项上,而更加高频的基于图像的光照则应用在高光反射项上,然而也可以把它用在漫反射项上.
2.2.2.3.2基于图像的光照
基于图像的光照通常是通过光照贴图来完成的, &这些贴图代表较远的光源,如果在某一个合适的位置采样(例如在物体的中心),贴图就可以很合适的代表远处物体反射来的光.为了正使用BRDF和环境贴图正确的处理局部渲染,通常需要很多个采样,按照重要性的采样可以帮助把采样的数量降低到一个合理的水平,另一个重要的方法是环境贴图的预滤波.&
Image-Based Lighting and Physical Shading at ILM&&中有关于在视频游戏中使用环境贴图的更多的讨论.
&real time rendering &第三版 的第七章有关于基于物理渲染更多的细节,&Principles of Digital Image Synthesis &, 和&Digital
Modeling of Material Appearance &&有更深的讨论.
文章对基于物理的渲染的基本理论做了深入的讨论,但是具体工程上,尤其在游戏渲染中的实时和高效性,简单来说基于物理的光照模型和传统的光照模型相比,传统模型做了大量的&假设&,lambrt漫反射假设表面所有子表面的散射值简单的随入射角改变,并且和为一定值,而phone模型的高光则假设物体表面是绝对平滑的面,而基于物理的模型就是基于更加接近真实的&微表面理论&,把物体还原成真实的大量连续的微表面,完整考虑光的表面反射,子表面散射和光被物体吸收这三个条件,而如果结合全局光照,则将带来照片化的真实感受.
标签:&&&&&&&&&&&&原文:http://blog.csdn.net/leonwei/article/details/
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!

我要回帖

更多关于 c4d实时渲染 的文章

 

随机推荐