首页 > 解决方案 > 将纹理放在 obj 文件上

问题描述

我想在我的 obj 文件上放置一个纹理,但我收到一条错误消息。这是我的代码:

    new THREE.MTLLoader()
            .setPath( 'models/cool' )
                .load( 'CobbleStones.mtl', function ( mat ) {
                    mat.preload();

            var loader = new THREE.OBJLoader( loadingManager );

            loader.load( 'models/cool.obj', function ( object ) {
                object.traverse( function ( child ) {
                    if ( child instanceof THREE.Mesh ) {
                        child.material = gemBackMaterial;
                        child.material = material;

                        loader.setMaterials(mat);

                        var second = child.clone();
                        second.material = gemFrontMaterial;
                        var parent = new THREE.Group();
                        parent.add( second );
                        parent.add( child );
                        scene.add( parent );
                        objects.push( parent );
                    }
                } );
            } );
        });

错误信息是:

GET http://localhost/alpha/Alpha/models/coolCobbleStones.mtl 404 (Not Found)

如果有人能帮助我解决我的问题,我将不胜感激。

标签: javascriptthree.js.obj

解决方案


你的路径是错误的。您将其设置为:

models/coolCobbleStones.mtl

但是你需要

models/cool/CobbleStones.mtl

只需添加/一个.setPath( 'models/cool/' )


推荐阅读