所以我有一个简单的OpenGL查看器,您可以在其中绘制用户想要的任意数量的框。我还添加了获取PNG或JPG图像并将其纹理映射到基元的功能。
我希望能够让用户指定屏幕上的任何立方体,并将不同的纹理应用于它们。我是OpenGL的新手。现在我可以很容易地将一个图像映射到一个图元,但我想知道将两个单独的图像(可能大小不同)映射到两个单独图元的最佳方法是什么。
我在2D纹理阵列上做了大量的阅读,这似乎是我想要的方式,因为我可以在一个纹理单元中存储多个纹理,但考虑到我上面提到的,我不确定这是否可能。如果这两个图像都是不同的维度,那么我认为我做不到(至少我不这么认为)。我知道我可以将每个图像存储到单独的纹理单元中,但在阵列中进行似乎是更干净的方法
最好的方法是什么?事实上,你能把不同大小的图像存储到2d纹理阵列中吗?如果是,怎么办?还是我最好将它们存储在单独的纹理单元中?
纹理阵列主要用于绘制单个基本体(或整个网格),着色器能够在图像之间进行选择,而不会耗尽可用纹理采样单元的数量。你可以按照自己的想法使用它们,但我怀疑这对你是否有益。另一种方法(类似于纹理阵列)是使用纹理图谱,即创建构成单个纹理的图像拼接,并使用适当的纹理坐标来选择子图像。
在您的情况下,我建议您只需将每张图片加载到一个单独的纹理中,并在绘制立方体之前绑定适当的纹理。