【发布时间】:2017-10-27 21:10:17
【问题描述】:
我想使用 opengl 使用土壤将纹理图集的不同区域映射到立方体的不同侧面。到目前为止,我设法将单个图像映射到立方体的一侧:
int LoadTexture(const char*);
int texID;
void DrawCube(float width)
{
float wd2 = width / 2;
glColor3f(0, 0, 1);
glBegin(GL_QUADS);
//front
glTexCoord2f(0, 1);
glVertex3f(-wd2, -wd2, wd2);
glTexCoord2f(1, 1);
glVertex3f(wd2, -wd2, wd2);
glTexCoord2f(1, 0);
glVertex3f(wd2, wd2, wd2);
glTexCoord2f(0, 0);
glVertex3f(-wd2, wd2, wd2);
//left side..
//right side..
//back..
//top..
//bottom..
glEnd();
}
int LoadTexture(const char* tex) {
texID = SOIL_load_OGL_texture(tex, 4, 0, 0);
if (!texID) {
cout << "Texture not loaded!\n";
}
return texID;
}
在init 函数中:
glEnable(GL_TEXTURE_2D);
texID = LoadTexture("sas.jpg");
glBindTexture(GL_TEXTURE_2D, texID);
但我的问题是如何只获得整个纹理的一个精灵?
【问题讨论】:
-
但是你如何计算分数呢?我的意思是,如果我想要例如第一行中的第二个图块,我怎么知道 glTexCoord2f 的参数?
标签: c++ opengl mapping textures soil