这是我的输出:![在此处输入图像说明] [2]
当我的墙很长时,图像被拉伸,当它们很小时,图像被挤压。
我的加载纹理代码,loadTGATexture方法来自superBible。
glGenTextures(1,&texture);
glBindTexture(GL_TEXTURE_2D,texture);
LoadTGATexture(textureFile, GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR, GL_REPEAT);
我给出纹理坐标的代码片段是: (j是建筑物墙壁的索引)
buildingArray[j][0] = n2.x;
buildingArray[j][3] = 0;
buildingArray[j][4] = n2.y;
texBlgArray[j][0] = repeat_after_length;
texBlgArray[j][5] = 0;
normals[j][0] = normal.x;
normals[j][6] = normal.y;
normals[j][7] = normal.z;
j++;
我将长度重复设置为1。
我认为如果长度为>则纹理GL_REPEAT会发生。 1,我应该将其设置为大于1的值,但如果我这样做,纹理中的窗口变得非常小而且大而不是。窗户是可见的。我想要平铺纹理,我不希望我的纹理纹理图像的尺寸发生任何变化:
我做错了什么?
答案 0 :(得分:5)
即使在长墙上,你的纹理坐标也可能被标准化(即它们的左角为[0,0],右下角为[1,1])。如果要重复纹理,则需要坐标超过 1.0。因此,如果三角形边的长度是x,则纹理应该超过x * some k。