Javascript 将three.js画布与Custombox一起使用

Javascript 将three.js画布与Custombox一起使用,javascript,canvas,three.js,Javascript,Canvas,Three.js,我正在使用three.js在页面上创建360度全景。 我在页面上有几个缩略图,点击缩略图可以做两件事。它将正确的纹理交换到全景画布上(这很有效),然后使用custombox中的画布创建custombox模式 这不管用。我看到的是,原始的canvas元素仍然存在于DOM中,并且正在工作。在custombox中还有第二个canvas元素,但它看起来是空的,没有任何功能 我是否误解了canvas元素的工作原理,使其无法显示在模式对话框中?我假设,在没有任何代码的情况下,CustomBox的目标是包含画

我正在使用three.js在页面上创建360度全景。
我在页面上有几个缩略图,点击缩略图可以做两件事。它将正确的纹理交换到全景画布上(这很有效),然后使用custombox中的画布创建custombox模式

这不管用。我看到的是,原始的canvas元素仍然存在于DOM中,并且正在工作。在custombox中还有第二个canvas元素,但它看起来是空的,没有任何功能


我是否误解了canvas元素的工作原理,使其无法显示在模式对话框中?

我假设,在没有任何代码的情况下,CustomBox的目标是包含画布的div的ID,或者画布本身。在本例中,CustomBox将克隆您的div/canvas。您将看到所需的所有组成部分,但three.js不知道这些组成部分,因为您在实例化原始div时将其传递给了渲染器。您正在使用的render()调用采用以下参数:

.render ( scene, camera, renderTarget, forceClear )

由于渲染可以指向一个新的renderTarget作为第三个参数,因此我将从这里开始,并传入CustomBox显示的新画布的唯一ID。有很多可用的方法:例如getRenderTarget,这样您可以看到当前正在绘制的画布,重要的是setRenderTarget(),它可能对您也很有用。

这非常有用,让我花了几个小时进行研究,以更深入地了解CustomBox和three.js。