Независимо от того, что я делаю, мои текстуры, кажется, растягиваются/масштабируются до размера сетки, к которой я их применяю. Я прочитал много ответов на этот вопрос, ни одно из решений, похоже, не фиксировало меня, поэтому я отправляю новый. Просто немного информации,Как повторить текстуры без растяжения в Three.js?
- Мои текстур все 64x64 пикселей
- Я поджимать все мои текстуры
- Я использую Web GL рендерер
Вот мой код
makeTestObject:function()
{
var scope = this,
tileGeometry = new THREE.BoxGeometry(TILE_SIZE , TILE_HEIGHT , TILE_SIZE),
texture = new THREE.Texture(preloadedImageObject),
textureMaterial = new THREE.MeshLambertMaterial({map:texture}),
tile = new THREE.Mesh(tileGeometry , new THREE.MeshFaceMaterial(
[
textureMaterial, // +x
textureMaterial, // -x
textureMaterial, // +y
textureMaterial, // -y
textureMaterial, // +z
textureMaterial // -z
]));
texture.wrapS = THREE.RepeatWrapping;
texture.wrapT = THREE.RepeatWrapping;
tile.position.y = BASE_HEIGHT * 2;
tile.castShadow = true;
tile.receiveShadow = true;
texture.needsUpdate = true;
scope.scene.add(tile);
}
Если я делаю texture.repeat.set(x , x)
и устанавливаю x
на любую величину, текстура просто кажется исчезнуть, и я остался с плоским цветом.
Любая идея, что я делаю неправильно?
Каковы размеры вашей текстуры? Я думаю, что они должны быть силой 2, что-то вроде 512x512 или 1024x1024 или 512x256 (извините, я просто прочитал ваш пост и увидел, что ваши изображения 64x64) – 2pha