2016-03-21 16 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は2つのテクスチャの非出力を繰り返すことはできません。 640と480の両方が2の累乗ではないため、例えば640x480のテクスチャは繰り返されません。1024x768は2の累乗で、768はそうではないため、1024x768は繰り返されません。両方の寸法が2の累乗であるため、512x256のテクスチャが繰り返されます。

関連する問題