我可以从webgl中的其他小纹理创建大纹理吗?

我可以从webgl中的其他小纹理创建大纹理吗?,webgl,Webgl,我已经在内存中加载了纹理,我想在一次绘制调用中绘制它们。我可以将所有纹理坐标放入缓冲区,但如何从小纹理部分创建一个纹理?可能吗 或者我必须下载图像并将它们合并,然后从合并后的大图片中创建textrute?一般来说,将图像合并到一个大图片中是一种离线操作,您可以像在图像编辑程序中那样手动操作,也可以使用自定义的或。这是最常见和推荐的方法 如果出于某种原因必须在运行时执行此操作,那么将图像组合到单个纹理的最简单方法是首先加载所有图像,然后使用canvas 2D api,然后将该画布用作WebGL中t

我已经在内存中加载了纹理,我想在一次绘制调用中绘制它们。我可以将所有纹理坐标放入缓冲区,但如何从小纹理部分创建一个纹理?可能吗


或者我必须下载图像并将它们合并,然后从合并后的大图片中创建textrute?

一般来说,将图像合并到一个大图片中是一种离线操作,您可以像在图像编辑程序中那样手动操作,也可以使用自定义的或。这是最常见和推荐的方法

如果出于某种原因必须在运行时执行此操作,那么将图像组合到单个纹理的最简单方法是首先加载所有图像,然后使用canvas 2D api,然后将该画布用作WebGL中texImage2D的源。使用2D画布的唯一问题是,如果您需要图像以外的数据,因为2D画布仅支持预乘alpha


否则,在WebGL中执行此操作只需将较小的纹理渲染为较大的纹理。渲染到纹理需要创建纹理,附加到帧缓冲区,然后像渲染其他对象一样进行渲染。有关渲染到纹理以及将图像的任何部分渲染到画布或其他纹理中的任何位置的信息,请参见。

以上示例都很好。我使用纹理ATA或在2d画布上绘制图像,并在之前获得更大的纹理。但这是昂贵的过程。我已经有2个纹理在内存中,我只是把它们放在一个大纹理中。也许有一种方法我不知道。但我认为这是不可能的。谢谢你的回答。