"RectAreaLightHelper" 在反应三光纤中不移动



简报:似乎所有其他灯光助手都是通过向我显示屏幕上的位置和旋转来工作的。我知道rectAreaLight只适用于特定的材料,现在位于";三个/实例";文件夹我用";useHelper"函数,并且当我更改位置参数时它不会移动。

代码笔:简单场景

代码描述:";moon.gltf";模型,背景,rectAreaLight,Helper,样板RectAreaLightHelper被卡在位置[0,0,0]

故障排除:我正在使用";反应三gui";库,在移除特征后;RectLightHelper";仍然无法在场景中移动。

=========================================

问题:如何设置";RectAreaLightHelper";适当地在";反应三纤维";场景

=========================================

如有任何信息或帮助,我们将不胜感激。

答案

当我回到THREE语法时,它似乎起作用了。然后,您可以将<RectArealightWithHelper>放在<Canvas>上,就像在@react three/fiber中放置任何其他组件一样。

const RectArealightWithHelper = () => {
const { scene } = useThree();
RectAreaLightUniformsLib.init();
const rectLight = new THREE.RectAreaLight("red", 5, 4, 10);
rectLight.position.set([-5, 5, 5);
scene.add(rectLight);
scene.add(new RectAreaLightHelper(rectLight));
return null;
}

Codesandbox

除了useThree钩子,所有这些都是直接从threejs.org上的示例:https://threejs.org/examples/#webgl_lights_rectarealight.


有关研究和错误报告,请参阅Codesandbox中的注释