然而,我仍在寻找在WebGL框架中导入/使用IES的方法。使用动画工具(在我的Blender案例中)导入和处理.ies文件,最后将项目导出为webgl格式似乎对我来说是最有前途的方法。我尝试了几个WebGL-Frameworks(three.js,x3dom,coppercube)和更多导出格式/ import- / converter脚本,但没有一个产生令人满意的结果。处理后的结果显示没有灯光,默认灯光或最多相同数量的灯光,没有其他属性。
有没有人知道动画工具的工作组合 - >出口功能 - > WebGL框架或WebGL-ies-format-import可以解决这个问题?
是否有人有同样的问题,并渴望解决方案?
答案 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/