选择纹理的一部分,然后绘制GPU

时间:2015-05-07 14:38:50

标签: opengl opengl-es libgdx glsl

我有几天在寻找如何做到这一点,但是如果有人可以告诉我一些对我有用的资源,我会做我想要的,我不想写我的所有代码都指导我如何做,"因为我认为这是可能的"

我的目的是在GPU上托管一个纹理,然后选择该纹理的一部分,传递你想要拍摄的尺寸,并画出" quad"或"网格"在libgdx。

我可以使用顶点和着色器创建多重纹理,但不像在另一个纹理中将纹理的一部分带到它们中,并更改应该绘制的部分。

但也许这不是我想要的正确方法。

下面,我展示一张图片以便更好地了解我:

enter image description here

  1. 是GPU上的纹理,原始
  2. 图像,将根据坐标绘制 传递
  3. 结果将显示

1 个答案:

答案 0 :(得分:1)

如果我理解你的意图,我想你想要的只是纹理坐标或UV贴图。假设你有纹理(1),那么你将绘制四个四边形,每个四边形使用不同的纹理坐标来访问多重纹理。例如,查看(3)的顶部图像,

  • 左上角和右上角四边形将使用[0.0,0.0]到[0.5,0.5]的纹理坐标来访问黑色区域,
  • 左下方的四边形将使用[0.5,0.5]到[1.0,1.0]的纹理坐标来访问红色区域,
  • 右下方的四边形将使用[0.5,0.0]到[1.0,0.5]的纹理坐标来访问蓝色区域。

如果需要,可以创建一个将“atlas frame index”1,2,3或4映射到正确的纹理坐标的函数,以使绘图更容易。