【发布时间】:2021-06-03 14:06:47
【问题描述】:
我正在开发一个使用统一 WebGL 的项目。 我需要做的是在另一个浏览器窗口中显示游戏场景。 所以我尝试将场景渲染到 RenderTexture,并将纹理指针(来自 GetNativeTexturePtr())发送到浏览器端。 当我发送纹理指针时,我使用了这个 jsdll 函数,例如:
ExtractWindow: function (windowId, w, h, texturePtr) {
ViewerManager.OnExtractWindow(windowId, w, h, GLctx, GL.textures[texturePtr]);
}
我使用 GL.textures[texturePtr] 因为我在 https://docs.unity3d.com/Manual/webgl-interactingwithbrowserscripting.html 中看到它。 我认为它应该返回 WebGLTexture 对象,但它返回 null。 这是我知道获得 WebGLTexture 的唯一方法(我几乎是 WebGL 和 Javascript 的初学者)。我什至不确定 GL.texutre[] 是统一方法还是 WebGL 方法。 有人知道“GL.texture[]”是如何工作的吗?或者还有其他方法可以通过纹理指针获取 WebGLTexture 吗?
感谢您阅读我的问题。
【问题讨论】:
-
我不知道 Unity 方面,但在 webgl 方面,您需要渲染到帧缓冲区 - RenderTexture 可能已经是一个,如果您可以渲染到它 - 绑定该帧缓冲区(gl.bindFramebuffer)然后是 gl.readPixels。 readPixels 并在其他地方写入它们非常慢,所以我希望这不是实时的。
标签: javascript unity3d webgl textures