3

IES(照明工程学会)是一种文件格式 (.ies),可增强动画工具中的灯光。它添加了准确的衰减、色散、色温、空间发射、亮度等。这是一个显示照明产品真实外观的工业标准。许多动画工具(Maya、Cinema4D、Blender 等)都能够使用这种格式。

然而,我仍在寻找一种在 WebGL 框架中导入/使用 IES 的方法。使用动画工具(在我的情况下为 Blender)来导入和处理 .ies 文件,最后将项目导出为 webgl 格式似乎对我来说是最有前途的方法。我尝试了几个 WebGL 框架(three.js、x3dom、coppercube)和更多的导出格式/导入/转换器脚本,但都没有产生令人满意的结果。处理后的结果显示没有灯光、默认灯光或最多相同数量的灯光,没有其他属性。

有没有人知道动画工具 -> 导出功能 -> WebGL-framework 或 WebGL-ies-format-import 的有效组合可以解决问题?

是否有人有同样的问题并渴望解决方案?

4

2 回答 2

1

您也许可以从 .ies 文件中传输一些属性(颜色、强度等),但是 Three.js 渲染器根本不支持 .ies 所要描述的复杂的光属性(如光的形状)。因此,即使您能够导入/导出这些属性,默认的 Three.js 灯光系统也无法正确渲染它们。

即使您实现了自己的着色器和灯光(您可以在 Three.js 中实现),它可能仍然会非常缓慢和/或不准确,因为您可能需要一些基于光线跟踪/路径跟踪的方法才能获得足够好的结果。一般来说,WebGL 的渲染方法,无论您使用什么库或框架,都不太适合复杂、准确的灯光和阴影模拟。

话虽如此,我会对任何解决方案都非常感兴趣,即使是粗略的近似支持也会很有用。

于 2013-05-26T22:08:05.647 回答
1

Three.js 现在有一个区域灯示例。这是一个非常粗略的近似(经过一些严重简化后对面积积分的分析评估)。Insomniac Games 在 GPU Pro 5 中有一篇文章提供了更准确的解决方案。

这只会帮助您了解光线的面积和形状;你是靠你自己的其他属性。

PS很难从你的问题中看出,但如果你的光格式包含光谱,那么最近有一些关于实时光谱照明的好文章:

http://www.numb3r23.net/2013/03/26/spectral-rendering-on-the-gpu-now-with-bumps/

于 2015-01-02T17:08:18.127 回答