Пытаюсь загрузить модель (Obj+Mtl) по примеру из официальной документации
THREE.Loader.Handlers.add( /\.dds$/i, new THREE.DDSLoader() );
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setPath('obj/constitu/');
mtlLoader.load('constitu.mtl', function( materials ) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials( materials );
objLoader.setPath( 'obj/constitu/' );
objLoader.load('constitu.obj', function ( object ) {
Canvas.model["constitu"] = object;
//Canvas.scene.add(object);
}, Canvas.onProgressLoad, Canvas.onErrorLoad );
});
потом в нужном мне месте хочу использовать эту модель
obj.obj = new THREE.Group();
Canvas.scene.add(obj.obj);
obj.obj.add(Canvas.model["constitu"]);
Модель успешно грузится, но никак не отображается на сцене (даже если добавлять на сцену прямо в момент загрузки сняв комментарий со строки Canvas.scene.add(object);). Если вместо использования этой модели рисовать черные параллелепипеды, то все отображается и работает хорошо:
obj.obj = new THREE.Group();
Canvas.scene.add(obj.obj);
var shipGeometry = new THREE.CubeGeometry(
100 * Canvas.scale,
2,
50 * Canvas.scale
);
var shipMaterial = new THREE.MeshLambertMaterial({color: 0xff0000});
var shipMesh = new THREE.Mesh(shipGeometry, shipMaterial);
obj.obj.add(shipMesh);
Что может быть не так и как это исправить? В консоли никаких ошибок нет, при первом запуске вылез варнинг gl.getProgramInfoLog() и впоследствии больше не появлялся (даже при полной перезагрузке страницы через Ctrl+F5)
Canvas тут - это мой объект, содержащий нужные мне объекты для рисования
Гугл сказал, что сам виноват. Стандартная ошибка новичка - размер модели был во много раз больше размера сцены, поэтому когда все корректно добавлялось и рисовалось, я не мог этого увидеть, поскольку был где-то глубоко внутри модели.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники