Three js загрузка Obj-модели

245
24 апреля 2017, 03:58

Пытаюсь загрузить модель (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 тут - это мой объект, содержащий нужные мне объекты для рисования

Answer 1

Гугл сказал, что сам виноват. Стандартная ошибка новичка - размер модели был во много раз больше размера сцены, поэтому когда все корректно добавлялось и рисовалось, я не мог этого увидеть, поскольку был где-то глубоко внутри модели.

READ ALSO
Как получить доступ к DOM iframe другого сайта на своем домене?

Как получить доступ к DOM iframe другого сайта на своем домене?

Есть 2-а сайта (первый - HTTP, второй - HTTPS), оба на одном домене, но каталоги разныеДоступ ко всему есть

415
modal content and tabs content bootstrap

modal content and tabs content bootstrap

На одной странице у меня находится tabs content, в котором в одной из вкладок есть кнопка, вызывающая modal contentКогда я нажимаю на кнопку, появляется...

227
2 графика на hightchart на 1 странице

2 графика на hightchart на 1 странице

Добрый деньНужно вывести 2 графика на HightCharts на 1 странице

260
Тэг <use/> не работает в data:image/svg+xml,<svg

Тэг <use/> не работает в data:image/svg+xml,<svg

Я хотел вставитьsvg в мою

204