oss

Radiance 记住光在房间里的流动

8 条来源 8 条一手来源 已翻译 2026年10月7号

正在加载阅读与收藏统计…
正文
伯克利实验室 FLEXLAB 试验平台内,一张摆着电脑和电话的办公桌靠窗放置,窗上装有百叶帘。

伯克利实验室 FLEXLAB 的照明与遮阳实地实验。与飞利浦合作项目中的实测数据用于同 Radiance 模拟结果作比较。摄影:伯克利实验室;转载自项目案例研究。[6]

窗户透进来的光能照亮书桌,也会让坐在桌前的人伸手调整百叶帘。要预测房间里的光照,需要描述各个表面、追踪光的传播,还要明确测量什么。伯克利实验室开发的开源光照引擎 Radiance 将这些工作交给不同的小程序。房间发生变化后,各个程序还能复用哪些结果?从这个问题入手,就能看清它的架构。[1]

设想一间办公室:一扇窗、浅色墙壁,以及一排书桌。我们既想看到坐在椅子上的视野,也想计算各处工作台面的光照水平。下文讨论 Radiance 常规的光线追踪与环境光计算;光子映射和全年天然采光分析还会用到其他方法与工具。

准备房间模型

Radiance 的场景文件描述几何形状、材料和光源。oconv 程序将这些场景描述编译成八叉树,通常保存为 .oct 文件。[2] 这种空间索引先用一个立方体包住整个场景,再不断把空间细分为八个更小的立方体。射线借助它缩小搜索范围,查找沿途会碰到的表面。[3]

八叉树回答的是一个几何问题:房间的这片区域里有什么?至于每张书桌上的光照,还要另行计算。准备场景与查询光照是两项独立的操作。

场景信息还有两种封装方式。通常,八叉树保留对场景文件的引用;使用 oconv -f 则会将场景信息冻结在八叉树内。改变表面坐标,或者增删图元,都需要重新生成八叉树。对于普通的、未冻结的八叉树,手册允许修改非表面参数并继续使用原有索引,因此重新编译的要求有其适用范围。[2]

为了让比较可以复现,可以为房间的每个变体同时保存冻结的八叉树及其对应源文件,留下一份明确的模型文件。要得到结果,还需补齐计算设置和查询输入。

用相机或测量点提问

rpict 接收八叉树和视图参数,生成一幅 Radiance 图像。[4] 椅子的位置与观看方向,决定了我们从哪个角度观察房间。

rtrace 则采用另一种输入输出方式。它从标准输入读取射线的起点和方向,再将结果写到标准输出。启用大写 -I 后,输入表示测量点及其朝向,输出表示辐照度,也就是单位面积接收到的辐射功率。[5]

这样就可以布置一排虚拟传感器,逐一测量桌面上的光照,省去为相机安排视角、让每张桌面都进入画面的步骤。朝向会影响结果:朝上的工作台面与人眼位置的竖直表面,接收到的光有所不同。在这个例子里,它们使用同一份房间描述,提出不同的查询。

参数字母的大小写只差一点,含义却相差很大。小写 -i 针对射线到达的表面计算辐照度;大写 -I 直接采用输入的测量点和朝向。混用两者,就会改变实际测量的位置。[5] 脚本即使顺利运行,回答的也会是另一个问题。

记住间接光

从窗户进入的光,会经过墙壁和天花板的反射再落到书桌上。若为图像中的每个像素单独重算这部分漫反射贡献,计算成本会很高。Ward 在 1994 年介绍 Radiance 系统的论文中描述了它的处理办法:在需要的位置计算间接辐照度,保存结果,再利用附近适用的数值做插值。采样会随场景调整,直射光与镜面反射的贡献则分别处理。[3]

保存下来的数值描述的是表面上的光照,因此换一个视角仍然有用。相机移动后,遇到尚待计算的新区域时可以补算,已经完成的计算也能继续派上用场。图像像素与可复用的光照结果各有自己的有效期,原因就在这套分工里。[3]

在常规环境光计算中,-ab 限制漫反射反弹的次数;设为零会关闭这项间接光计算。这个计数只涵盖漫反射反弹,渲染器还会处理其他类型的反射。-aa 控制环境光插值,设为零会关闭插值。[4] 这些设置决定光照如何计算;增大图像的像素尺寸,调整的则是视图采样的精细程度。

认清缓存何时失效

-af 选项将间接辐照度数值写入环境光文件,供后续程序运行时复用。rpict 手册介绍了一种做法:先计算一张较小的图像,预先积累缓存,再以相同的计算参数生成较大的图像。[4]

现在,把这间办公室的百叶帘放下来。先前保存的光照数值对应的是变化前的场景。Radiance 手册要求,在场景或计算参数改变后,丢弃旧的环境光文件。[4][5]

依据这条规则,小型研究或设计团队可以把每个场景变体、对应设置和环境光文件放在一起管理。如果多次实验悄然沿用 room.amb 这样的同名文件,就容易误用此前的计算结果。这项工作流程建议来自文档中的缓存规则;至于 Radiance 是否会自动追踪全部依赖关系,这条规则并未作出这样的保证。

排查问题时也要分清两件事:几何索引过期,与光照缓存过期,是两种不同的错误。重建几何索引后,光照缓存是否仍然有效,还需单独核实。

让计算与实测相互对照

伯克利实验室 FLEXLAB 与飞利浦的合作,将自动百叶帘、照明控制、传感器和有人使用的办公室纳入同一项实验。案例研究记载,研究人员比较了实测光度数据与 Radiance 模拟结果。[6][7] 照片呈现了这次比较背后的实地环境:实验设备,以及一间光照变化可供观察的房间。

到了实测环节,软件的局限便有了具体形态。即使计算方法在技术上成立,结果仍取决于输入的窗玻璃特性、表面属性、几何形状和照明条件。若模型描述的房间本身就与实际不符,再多的计算也无法弥补。团队用模拟辅助设计决策时,还需要记录这些输入,并选取有代表性的结果与实测数据核对。

洛桑联邦理工学院(EPFL)在一篇介绍 Greg Ward 获得 2018 年 Daylight Award 的独立报道中,强调了 Ward 与 Radiance 用户持续为天然采光研究作出的贡献。[8] 从架构上看,Radiance 的价值也有迹可循:同一个场景可以回答不同的问题,耗费大量计算所得的结果也能在生成一张图像之后继续使用。准确记录哪些内容发生了变化,这种复用才有可靠的依据。

来源

  1. 美国能源部,《Radiance》——开源项目介绍及其在照明设计中的应用;核查日期:2026 年 10 月 7 日。
  2. Radiance 项目,oconv(1) 手册——场景编译、冻结八叉树及重新生成的规则。
  3. Gregory J. Ward,《The RADIANCE Lighting Simulation and Rendering System》,SIGGRAPH 1994——重点参见第 3.2 节与第 3.6 节,涉及间接辐照度缓存和空间细分。
  4. Radiance 项目,rpict(1) 手册——图像生成、漫反射反弹、插值及环境光文件复用。
  5. Radiance 项目,rtrace(1) 手册——射线输入、测量点模式及环境光文件失效规则。
  6. 伯克利实验室,《FLEXLAB Helps Philips Light Offices Right》——实地实验及其与 Radiance 模拟结果的比较。
  7. 伯克利实验室,《Integrated Lighting & Shading Controls》——介绍该实验及其实地试验平台的配套文章。
  8. Sandrine Perroud,《EPFL to host the 2018 Daylight Award Ceremony》,2018 年 9 月 17 日——由独立机构介绍 Ward 的工作与 Radiance 社区。
Previous AYAB 为老式编织机换上新的图案读取器

Recommended In oss

Matched by subject and format