是否可以在WebGL中导入/处理高级灯光属性(IES)?

时间:2013-05-24 22:39:40

标签: animation three.js webgl blender lighting

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

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

有没有人知道动画工具的工作组合 - >出口功能 - > WebGL框架或WebGL-ies-format-import可以解决这个问题?

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

这只能帮助你了解光线的面积和形状;你自己拥有其他属性。

P.S。你的问题很难说清楚,但如果你的光格式包含光谱,最近有一些关于实时光谱照明的好文章:

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