为什么我的纹理没有正确重复?

时间:2016-03-21 11:39:20

标签: 3d three.js webgl

我试图使用THREE.RepeatWrapping将砖纹理应用到我的墙上,但由于某种原因它没有正确重复。我使用一个大的立方体作为墙壁,并且我已经在THREE.BackSide的帮助下使纹理只出现在立方体的内部。

var wallGeometry = new THREE.BoxGeometry(200, 100, 200);
texture = THREE.ImageUtils.loadTexture("textures/bricks.jpg");
texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
texture.repeat.x = 170 / 100;
texture.repeat.y = 170 / 100;

var material = new THREE.MeshPhongMaterial();
material.map = texture;
var wall = new THREE.Mesh(wallGeometry, material);

wall.material.side = THREE.BackSide;

scene.add(wall);

结果如下所示。

the result

提前致谢!

1 个答案:

答案 0 :(得分:1)

每个维度的纹理是2的幂吗? WebGL不能重复2个纹理的非幂。因此,例如640x480纹理将不会重复,因为640和480都不是2的幂.1024x768也不会重复,因为1024是2的幂,768不是。 512x256纹理将重复,因为两个维度都是2的幂。