Anu*_*bha 1 opengl 3d graphics textures texture-mapping
这是我的输出:![在此输入图像描述] [2]
当我的墙很长时,图像被拉伸,当它们很小时,图像被挤压.
我的加载纹理代码,loadTGATexture方法来自superBible.
glGenTextures(1,&texture);
glBindTexture(GL_TEXTURE_2D,texture);
LoadTGATexture(textureFile, GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR, GL_REPEAT);
Run Code Online (Sandbox Code Playgroud)
我给出纹理坐标的代码片段是:(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++;
Run Code Online (Sandbox Code Playgroud)
我将长度重复设置为1.
我认为,如果长度> 1,纹理GL_REPEAT会发生,我应该将其设置为大于1的某个值,但是如果我这样做,纹理中的窗口变得非常小而且大而不是.窗户是可见的.我想要平铺纹理,我不希望我的纹理纹理图像的尺寸有任何变化:
我究竟做错了什么 ?
即使在长墙上,您的纹理坐标也可能被标准化(即它们的左角为[0,0],右下角为[1,1]).如果要重复纹理,则需要超过 1.0的坐标.因此,如果三角形边的长度是x,则纹理应该超过x*some k.