我试图使用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);
结果如下所示。
提前致谢!
答案 0 :(得分:1)
每个维度的纹理是2的幂吗? WebGL不能重复2个纹理的非幂。因此,例如640x480纹理将不会重复,因为640和480都不是2的幂.1024x768也不会重复,因为1024是2的幂,768不是。 512x256纹理将重复,因为两个维度都是2的幂。