【发布时间】:2015-05-03 18:13:23
【问题描述】:
我想知道如何在物体表面循环纹理。
举一个实际的例子,我正在尝试处理渲染世界几何,这样当我将世界对象的大小调整为其纹理大小的两倍时,纹理将出现两次 - 而不是两倍大小。
是否有任何正确的方法来处理这个问题?我唯一能想到的就是物理创建一个大小合适的全新纹理并手动复制 X 次,但这听起来会很快消耗大量内存。
这是在 XAxis 上调整平面大小时显示我正在寻找的图片:
与许多其他变量一起,我将对象的 UVMap 作为“纹理坐标”传递给我的着色器,然后在调用绘制数组之前执行以下操作以渲染对象的纹理:
QImage image;
image = worldObject->getQImage(i); //Within a for loop, grabs the right texture if the object has differing textures per face of object
glBindTexture(GL_TEXTURE_2D, spot);
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, image.width(), image.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, image.bits());
【问题讨论】:
标签: c++ qt opengl textures texture-mapping