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
Reflection Threejs:glb文件反映环境,但不反映其本身_Reflection_Three.js_Raytracing - Fatal编程技术网

Reflection Threejs:glb文件反映环境,但不反映其本身

Reflection Threejs:glb文件反映环境,但不反映其本身,reflection,three.js,raytracing,Reflection,Three.js,Raytracing,在threejs中,我成功地导入并显示了一个房屋的glb文件(房屋有两层,每层都有各种对象,其中包括椅子、一些桌子、厨房等,例如真实的房屋)。我的问题是我能让房子和它的物体反射环境光,但我不能让房子的物体反射它们自己。我的最终目标是实现一些实时光线跟踪,但在这一点上,我很乐意只生成一些实时反射,这些反射除了环境光外,还反射房屋的其他对象。阴影也一样 我没有在网上找到任何关于这类反思的信息。有人知道从哪里开始的好地方吗?或者,如果您遇到过类似的难题,您是如何解决的?您需要使用渲染器来渲染场景和环境

在threejs中,我成功地导入并显示了一个房屋的glb文件(房屋有两层,每层都有各种对象,其中包括椅子、一些桌子、厨房等,例如真实的房屋)。我的问题是我能让房子和它的物体反射环境光,但我不能让房子的物体反射它们自己。我的最终目标是实现一些实时光线跟踪,但在这一点上,我很乐意只生成一些实时反射,这些反射除了环境光外,还反射房屋的其他对象。阴影也一样

我没有在网上找到任何关于这类反思的信息。有人知道从哪里开始的好地方吗?或者,如果您遇到过类似的难题,您是如何解决的?

您需要使用渲染器来渲染场景和环境,包括要在反射中的对象。然后将生成的纹理传递到要显示这些反射的对象的
.envMap
属性。唯一的问题是,如果有许多对象在反射中显示其他对象,则需要大量的cubeCamera渲染,每个渲染都来自该对象的位置

,它仅从球体的位置捕获一个反射过程,如上所述。你可以看到结本身有一个反射,这是不现实的,但它不是很明显。这是一种权衡


如果你只有几架飞机充当镜子,你也可以复制。

非常感谢你的回答。我知道立方体可以生成真实的反射,问题是我有一个包含许多几何图形的glb文件,而且我似乎无法为每个立方体指定一个立方体,因为它们似乎被评估为一个对象-房子。如果我用3JS从零开始建造一座房子,你的答案会很完美,但我有一个glb文件,正如我所说的,所有东西似乎都只反射环境光。我希望我能够解释我自己;我想知道你们还有什么其他的建议吗?我想你们想要的是屏幕空间反射,或者SSR。它尚未在three.js中实现。请参见此处: