我可以找到关于将纹理映射到多边形、指定顶点等的教程,但是没有关于如何将纹理应用到使用glut (glutSolidCube)绘制的立方体(或其他东西)的教程。
我正在做一些类似的事情:
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, decal);
glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, repeat);
glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, repeat);
glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, nearest);
glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, nearest);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexImage2D(GL_TEXTURE_2D, 0, 4, myImageWidth, myImageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid *)myImage);
//...
glEnable(GL_TEXTURE_2D);
//now draw the cube
glutSolidCube(N);
这样做,我得到了纹理应用于立方体,但整个立方体获得了纹理中第一个字节的颜色!
使用glutSolidCube时,是否可以将纹理映射到实体立方体(和其他实体)?
发布于 2011-02-16 08:51:49
实际上有一个解决方案。
您可以使用生成纹理坐标,如下所示
glEnable(GL_TEXTURE_GEN_S); //enable texture coordinate generation
glEnable(GL_TEXTURE_GEN_T);
glBindTexture(GL_TEXTURE_2D, theTexture[2]);
glutSolidCube(2);
glDisable(GL_TEXTURE_GEN_S); //enable texture coordinate generation
glDisable(GL_TEXTURE_GEN_T);
https://stackoverflow.com/questions/327043
复制相似问题