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

问题描述 投票:0回答:1

我已将纹理加载到内存中,我想通过一次绘制调用对其进行绘制。我可以将所有纹理坐标放入缓冲区,但是如何从小的纹理部分创建一个纹理?那可能吗?

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

webgl
1个回答
0
投票

我通常将图像组合成纹理图集,您可以像在图像编辑程序中那样手动或使用专用工具来离线进行。这是最常见的方法,也是推荐的方法。

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

否则,在WebGL中只需将较小的纹理渲染为较大的纹理即可。渲染到纹理需要先创建纹理,然后将其附加到帧缓冲区,然后再像进行其他任何操作一样进行渲染。请参见this以渲染为纹理,并参见this以将图像的一部分渲染到画布中的任何位置或其他纹理。

© www.soinside.com 2019 - 2024. All rights reserved.