查看“︁辐射度算法”︁的源代码
←
辐射度算法
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{noteTA|G1=IT|time=2010-02-28T12:50:17+00:00}} {{about|一種繪製算法|同名之熱力學量的概念|辐射度}} '''辐射度算法''',一种[[全局光照]][[算法]],用于[[三维计算机图形学]][[绘制 (计算机图形学)|绘制]]。和倾向于只在一个表面上模拟一次光的反射的[[直接光照]]算法(例如[[光线跟踪]])不同,像辐射度算法这样的[[全局光照]]算法模拟光在一个场景裡的多次反射,通常会导致更柔和更自然的影子和反射。 辐射度算法做为绘制方法是在1984年由[[康奈尔大学]]的研究人员(C. Goral, K. E. Torrance, D. P. Greenberg 和 B. Battaile)在他们的论文"Modeling the interaction of light between diffuse surfaces"(漫射表面之间的光线的交互的建模)中引入的。<ref>{{英文}}{{cite web|url=http://dudka.cz/rrv|title=RRV - Radiosity Renderer and Visualizer|last=Dudka|first=Kamil|date=|website=dudka.cz|archive-url=https://web.archive.org/web/20200504081014/http://dudka.cz/rrv/|archive-date=2020-05-04|accessdate=1 February 2013}}</ref>该理论在工程中早有应用,用以解决[[辐射热传导]]中的问题,始于约1950年。 突出的商用辐射度算法引擎包括Lightscape(现已集成到Autodesk [[3D Studio Max]]的内部绘制引擎中),和更新的Next Limit的Maxwell~Renderer(麦克斯韦绘制器)。 ==视觉特点== [[File:Radiosity.png|frame|right|辐射度算法的例子]] 辐射度在绘制过程中的引入经常对最后的场景带来更多一份的真实感,这是因为它模拟真实世界现象的方式。考虑一个在白色地板上的红球。 光打在球上,投射出一个阴影,还有将一小部分红光反射到周围的物体上 - 在这个例子中,也就是地板。该现象给白色地板靠近球的地方加上了一点红色的[[色调]]。该效应是很微妙的,但因为人类的[[眼睛]]对于其真实世界的对应现象很习惯,它可以增加真实感。 ==物理特点== 基本的辐射度算法方法其基础在于[[热|热辐射]]的理论,因为辐射度依赖于两个表面之间光能的传输。为了简化计算,辐射度算法假设该数值在整个面片上恒定(完全或理想[[漫射]]曲面);这意味着要计算精确的图像,场景表述的几何部分必须分解成更小的区域,或者说面片,然后把它们组合起来得到最后的图像。 在这个分解之后,光能传输的量可以通过使用已知的反射表面的反射率和两个面片的''波形系数''来计算。波形系数是一个[[无量纲量]],它根据两个面片的几何朝向来计算,可以视为第一个面片所有可能发射区域的被第二个面片所覆盖的部分所占的比例。 更精确的讲,辐射度是每单位时间离开曲面片的能量,是发射和反射能量的组合: :<math>B_i d A_i = E_i d A_i + R_i \int_j B_j F_{ji} d A_j\,\!</math> 其中: * B<sub>i</sub> 是面片''i''的辐射度。 * E<sub>i</sub> 是发射的能量。 * R<sub>i</sub> 是面片的反射系数,和入射能量(从其他面片来的能量)相乘得到反射能量。 * 所有绘制环境中的''j'' (<math>j \ne i</math>)对于B<sub>j</sub>F<sub>ji</sub>dA<sub>j</sub>积分,得到离开每个面片''j''并到达面片''i''的能量。 * F<sub>ji</sub> 是面片''i''和面片''j''的几何关系决定的常数波形系数。 对偶性: :<math>F_{ij} A_i = F_{ji} A_j\,\!</math> 给出: :<math>B_i = E_i + R_i \int_i B_j F_{ij}\,\!</math> 作为简化,[[积分]]用每个面片上恒定的辐射度取代,上式简化为: :<math>B_i = E_i + R_i \sum_{j=1}^n B_j F_{ji}</math> 然后该方程可以应用到每个面片。这个方程是单色的,所以彩色辐射度需要对于每个所需的色彩进行计算。 常数F<sub>ji</sub>可以用几个计算方法。早期的方法采用''[[半立方体]]'' (一个假想的立方体中心位于第一个曲面,第二个曲面投影于其上,由Cohen 和Greenberg于1985年提出)以逼近波形系数,也解决了相交面片的问题。这在[[计算]]上耗费很大,因为理想的[[波形系数]]必须对一个可能的面片对导出,这导致了对于增加的几何复杂度在计算上的[[二次函数|二次]]增长。 ==参考资料== {{Reflist}} ==外部链接== *[https://web.archive.org/web/20110927010834/http://www.siggraph.org/education/materials/HyperGraph/radiosity/overview_1.htm Radiosity Overview,來自SIGGRAPH的HyperGraph] (提供Full Matrix Radiosity與Progressive Radiosity演算法) *[http://freespace.virgin.net/hugo.elias/radiosity/radiosity.htm Radiosity,作者Hugo Elias] {{Wayback|url=http://freespace.virgin.net/hugo.elias/radiosity/radiosity.htm |date=20051123214036 }} (也给出了光照算法的一般介绍,附带编程实例) *[http://web.cs.wpi.edu/~matt/courses/cs563/talks/radiosity.html Radiosity,作者Allen Martin] {{Wayback|url=http://web.cs.wpi.edu/~matt/courses/cs563/talks/radiosity.html |date=20210308000421 }} (更数学化的解释) *[http://www.cse.iitd.ernet.in/~parag/projects/CG2/asign2/report/RADical.shtml RADical,作者Parag Chaudhuri] {{Wayback|url=http://www.cse.iitd.ernet.in/~parag/projects/CG2/asign2/report/RADical.shtml |date=20170515102322 }} (使用OpenGL加速的Shooting & Sorting Progressive Radiosity演算法實作範例,該程式由Colbeck製作的GLUTRAD延伸而來) [[Category:三维计算机图形学]] [[Category:全局光照算法]]
该页面使用的模板:
Template:About
(
查看源代码
)
Template:Cite web
(
查看源代码
)
Template:NoteTA
(
查看源代码
)
Template:Reflist
(
查看源代码
)
Template:Wayback
(
查看源代码
)
Template:英文
(
查看源代码
)
返回
辐射度算法
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息