MeshPhongMaterial 上的三个 js RectAreaLight 没有光反射(OES_texture_half_float 不支持)

Three js RectAreaLight on MeshPhongMaterial no light reflection (OES_texture_half_float not supported)

我想将 RectAreaLight 添加到 three.js 场景中,我在其中放置了带有 MeshPhongMaterial 的对象,但是对象上没有光反射。 我在这里找到了一个工作示例: Link

打开开发者工具即可看到源码

所以我尝试将其移植到React,场景渲染了所有对象但是有光反射。 在第 46 行,抛出了 OES_texture_half_float 错误。我评论了这一行。可能和这个有关。

这是不起作用的代码和框: Link

您的代码中存在几个问题:

  • 您必须导入 RectAreaLightUniformsLib 并调用其 init() 方法。
  • documentation所述,RectAreaLight只支持PBR材质(意思是MeshStandardMaterialMeshPhysicalMaterial)。
  • 还没有影子支持,所以设置像 castShadowreceiveShadow 这样的标志不会有任何效果。

固定代码和框:https://codesandbox.io/s/restless-cherry-4jh72