У меня есть куб, на который я пытаюсь сопоставить изображение. Я загружаю изображение менеджером загрузки. Мне интересно, почему material.map возвращается как неопределенный, также задается вопросом, может ли я иметь проблему масштабирования. Исходное изображение 512x512. Ящики 20x20x20.Threejs textureLoader - масштабирование и сопоставление с сеткой
Я пропустил весь код камеры, средства визуализации и т. Д., Но я попытался включить его в фрагмент кода/интерактивную часть ниже.
var loadingManager = new THREE.LoadingManager();
loadingManager.onProgress = function (item, loaded, total) {
//Loading percentage
console.log(loaded/total * 100 + '%');
}
//Signify loading done
loadingManager.onLoad = function() {
//Start the animation when the models are done loading
animate();
}
function init() {
//create a loader
var loader2 = new THREE.TextureLoader(loadingManager);
//load the texture, and when it's done, push it into a material
loader2.load("../img/leo.jpg", function (texture) {
//do I need to do this?
texture.wrapS = texture.wrapT = THREE.RepeatWrapping
texture.repeat.set(boxSize, boxSize)
//why is this texture not coming through?
console.log(texture)
//does not work:
material1 = new THREE.MeshBasicMaterial({
map: texture,
side: THREE.DoubleSide
});
})
var geo = new THREE.BoxGeometry(30, 30, 30)
var mat = new THREE.MeshBasicMaterial({
color: 0xb7b7b7
})
mesh = new THREE.Mesh(geo, material1)
scene.add(mesh)
}
// This works, so I know the image path is correct
var img = document.createElement('img');
img.src = '../img/leo.jpg';
document.getElementById('container').appendChild(img);
Значение текстуры из журнала консоли заключается в следующем:
Вы пытались добавить точку останова при определении 'material1'? Какова ценность 'texture' на этой строке? Отладка имеет решающее значение, если у вас нет ожидаемого поведения. – Marcs
Спасибо @Marcs - я добавил screengrab из журнала консоли. И я добавил отладчик и проверил его. Любые мысли, учитывая, что изображение внутри материала приближается к нулю? – EJW
Не беспокойтесь о фрагменте, это не удобно, если вам нужны внешние библиотеки, вы можете удалить его, изображение тоже. – Marcs