Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Animation 是否可以在WebGL中导入/处理高级灯光属性?_Animation_Three.js_Webgl_Blender_Lighting - Fatal编程技术网

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

Animation 是否可以在WebGL中导入/处理高级灯光属性?,animation,three.js,webgl,blender,lighting,Animation,Three.js,Webgl,Blender,Lighting,IES(照明工程学会)是一种文件格式(.IES),用于增强动画工具中的灯光。它添加了精确的衰减、色散、色温、空间发射、亮度等。这是一个工业标准,显示照明产品的真实外观。许多动画工具(Maya、Cinema4D、Blender等)都可以使用这种格式 然而,我仍在寻找在WebGL框架中导入/使用IES的方法。对我来说,使用动画工具(在我的例子中是Blender)导入和处理.ies文件,并最终将项目导出为webgl格式似乎是最有希望的方法。我尝试了两个WebGL框架(three.js、x3dom、co

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

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

有没有人知道动画工具->导出功能->WebGL框架或WebGL ies格式导入的有效组合可以实现这一点

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

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

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


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

Three.js现在有一个区域灯光的示例。这是一个非常粗糙的近似值(经过严重简化后的面积积分的解析计算)。GPU Pro 5中失眠游戏的一篇文章提供了更精确的解决方案

这只对光线的面积和形状有帮助;你可以自己处理其他属性

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