Opengl - 使用纹理图集绘制圆柱体

时间:2014-08-25 06:32:37

标签: c++ opengl texture-mapping

//component
    glRotatef((GLfloat)-90, 1, 0, 0);
    gluCylinder(qObj,t_width/2,t_width/2,t_height+2*UDwall, 20, 20);
    glRotatef((GLfloat)90, 1, 0, 0);

我想绘制一个附加纹理部分的圆柱体。

        glBindTexture(GL_TEXTURE_2D, texName[1]);//+

但是不像glVertex3f,当我绑定一个使用TexCoord无法做到的纹理时。 (所以只打印整个纹理;ㅅ;)

首先是我可以做些什么来调整纹理部分。

第二个(有人建议使用纹理图集)我可以将纹理的Max coord(0.0~1.0)更改为其他数字吗?

1 个答案:

答案 0 :(得分:0)

您可以使用TextureMatrix转换纹理的坐标,以便所需的矩形形状(来自纹理altas)位于正确的位置。

因此,假设您要为具有坐标(x,y)和尺寸(a,b)的矩形进行纹理处理。我们在这里要实现的是(0,0)的{​​{1}}和(x,y)的{​​{1}}。

解决方案

使用纹理矩阵
翻译(1,1)
(x+a, y+b)

缩放