这里的总opengl noob。
我有一个完整的图像目录,最终加载到内存中,并从这些图像的某些部分构建纹理。在运行中从这些图像的子部分构造纹理会使系统陷入困境,但我事先不知道需要选择这些图像的哪些部分来构建纹理。有没有比创建大量纹理更好的方法来处理这个问题?例如,为每个图像制作一个纹理,然后对该纹理的一个子集进行采样以应用于每个图像?
我可以发布代码,如果它有帮助,但有很多。我希望有更多的一般指导方针和有效使用纹理的方向。
答案 0 :(得分:2)
听起来像你只想调整纹理坐标。
纹理坐标在0和1之间给出。
要将整个纹理绘制到四边形上,您可以执行以下操作:
glTexCoord2f(0.0f, 0.0f);
glVertex3f(...)
glTexCoord2f(1.0f, 0.0f);
glVertex3f(...)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(...)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(...)
但是要在同一个四边形上绘制四分之一的纹理:(注意glTexCoord的不同值)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(...)
glTexCoord2f(0.5f, 0.0f);
glVertex3f(...)
glTexCoord2f(0.5f, 0.5f);
glVertex3f(...)
glTexCoord2f(0.0f, 0.5f);
glVertex3f(...)
在全能的谷歌上查找OpenGL纹理教程。