问题
我已经在我的项目中达到了一个点,我将渲染到 WebGLRenderTargets 并将它们用作我的主场景中的纹理。它有效,但似乎我让它做的工作比它需要的要多得多。我生成的纹理只需要为 64x64,但因为我同时使用我的主渲染器(窗口宽度乘窗口高度),它不必要地以更大的分辨率渲染 WebGLRenderTargets。
我可能是错的,但我相信这会增加绘制到每个 RenderTarget 所需的处理以及然后将大纹理绘制到网格所需的处理。
我尝试使用第二个渲染器,但在从渲染器 B 绘制到渲染器 A 后尝试在渲染器 A 中使用 WebGLRenderTarget 时,我似乎收到此错误:
WebGL: INVALID_OPERATION: bindTexture: object not from this context
例子
作为参考,您可以在此处查看我的摘要页面(警告:由于我正在询问的问题,此页面可能会延迟您)。我在辅助场景中的平面上运行单纯形函数,并使用相机放置将其分割成多个部分,然后通过 WebGLRenderTarget 将这些片段应用于平铺片段,以便它们流畅但单独的片段。
问题
我的假设是否正确,即使用相同的渲染器大小比渲染到较小的渲染器效率要低得多?如果是这样,您认为最好的解决方案是什么?目前有没有办法实现这种优化?