2016-03-21 3 views
1

Я пытаюсь применить кирпичную текстуру к стене, используя 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

Заранее спасибо!

+0

, как вы можете видеть на https://jsfiddle.net/567xyxo4/ ваш код должен работать. – gaitat

+0

спасибо, текстура может быть неправильной для него – masm64

+0

обычно текстура не проблема – gaitat

ответ

1

Является ли ваша текстура мощностью 2 в каждом измерении? WebGL не может повторять немощность двух текстур. Так, например, текстура 640x480 не будет повторяться, потому что как 640, так и 480 не имеют мощности 2. 1024x768 не будет повторять либо потому, что в то время как 1024 - это мощность 2, 768 нет. Текстура 512x256 будет повторяться, потому что оба измерения имеют степень 2.

Смежные вопросы