Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 只需将材质指定给loaded.OBJ-ThreeJS即可_Three.js_Loader_.obj - Fatal编程技术网

Three.js 只需将材质指定给loaded.OBJ-ThreeJS即可

Three.js 只需将材质指定给loaded.OBJ-ThreeJS即可,three.js,loader,.obj,Three.js,Loader,.obj,三个小时以来我一直在用这个砸自己的头。。 我的问题是,是否有人能以这样的方式重新组织我的示例,使我加载的对象带有颜色,任何颜色 var loader = new THREE.OBJLoader() loader.load( 'learning/exported1.obj', function ( object ) { object.traverse( func

三个小时以来我一直在用这个砸自己的头。。 我的问题是,是否有人能以这样的方式重新组织我的示例,使我加载的对象带有颜色,任何颜色

                var loader = new THREE.OBJLoader()
                loader.load( 'learning/exported1.obj', function ( object ) 
                {
                    object.traverse( function (child)
                    {
                        if ( child instanceof THREE.Mesh )
                        {
                            child.material.color.setHex( 0xffffff );
                        }
                    }
                    var OBJBoundingBox = new THREE.Box3().setFromObject(object);
                    OBJBoundingBox.center(object.position);
                    object.position.multiplyScalar(-1);
                    object.position.x = object.position.x;
                    object.position.y = object.position.y;
                    object.position.z = object.position.z;
                    scene.add( object );

                }, onProgress, onError );
如果我扔掉横移部分,对象成功加载,但为简单的白色,有了它,对象不会出现在我的屏幕上

        <script src="../build/three.js"></script>

    <script src="js/loaders/OBJLoader.js"></script>

    <script src="js/controls/OrbitControls.js"></script>

    <script src="js/shaders/CopyShader.js"></script>
    <script src="js/shaders/SMAAShader.js"></script>

    <script src="js/postprocessing/EffectComposer.js"></script>
    <script src="js/postprocessing/SMAAPass.js"></script>
    <script src="js/postprocessing/RenderPass.js"></script>
    <script src="js/postprocessing/MaskPass.js"></script>
    <script src="js/postprocessing/ShaderPass.js"></script>

    <script src="js/libs/dat.gui.min.js"></script>  

这些是我的进口品,以防你认为问题出在这里


提前非常感谢,这是一个我正在独立开发的项目,如果我能让它工作,我会喜欢它的

我觉得自己像个白痴,但我缺少的是

);
在object.traverse函数的末尾

var loader = new THREE.OBJLoader()
            loader.load( 'learning/exported1.obj', function ( object ) 
            {
                object.traverse( function (child)
                {
                    if ( child instanceof THREE.Mesh )
                    {
                        child.material.color.setHex( 0xffffff );
                    }
                });
                // ^This over here^
                var OBJBoundingBox = new THREE.Box3().setFromObject(object);
                OBJBoundingBox.center(object.position);
                object.position.multiplyScalar(-1);
                object.position.x = object.position.x;
                object.position.y = object.position.y;
                object.position.z = object.position.z;
                scene.add( object );

            }, onProgress, onError );

分配材料现在可以完美地使用此代码。

我觉得自己像个白痴,但我缺少的是

);
在object.traverse函数的末尾

var loader = new THREE.OBJLoader()
            loader.load( 'learning/exported1.obj', function ( object ) 
            {
                object.traverse( function (child)
                {
                    if ( child instanceof THREE.Mesh )
                    {
                        child.material.color.setHex( 0xffffff );
                    }
                });
                // ^This over here^
                var OBJBoundingBox = new THREE.Box3().setFromObject(object);
                OBJBoundingBox.center(object.position);
                object.position.multiplyScalar(-1);
                object.position.x = object.position.x;
                object.position.y = object.position.y;
                object.position.z = object.position.z;
                scene.add( object );

            }, onProgress, onError );

指定材质现在可以很好地使用此代码。

您是否执行了所有这些后处理效果?也许他们在洗掉你的颜色。您是否尝试过向场景中添加一个简单的THREE.BoxGeometry(),以查看是否出现了这种情况?可能是你的相机朝向错误的方向。可能您正在使用
.multilyscalar(-1)将对象移出视图。。。可能有数百种。你看到了什么?嗨,是的,我用这些导入来反别名我的对象。当然,我可能不需要所有的。。。问题是,当我删除对象。遍历代码的一部分——这样代码的其余部分从VAR ObjultIdBox开始——我的对象在屏幕的中间位置很好,但是是一个光滑的白色。应用颜色的方式有问题,例如使用遍历函数加载背景,但不加载对象。。。我真的放弃了这里,我想知道为什么分配一个材料这么难。。。object.material.color.set有人吗?:你完成了所有这些后处理效果了吗?也许他们在洗掉你的颜色。您是否尝试过向场景中添加一个简单的THREE.BoxGeometry(),以查看是否出现了这种情况?可能是你的相机朝向错误的方向。可能您正在使用
.multilyscalar(-1)将对象移出视图。。。可能有数百种。你看到了什么?嗨,是的,我用这些导入来反别名我的对象。当然,我可能不需要所有的。。。问题是,当我删除对象。遍历代码的一部分——这样代码的其余部分从VAR ObjultIdBox开始——我的对象在屏幕的中间位置很好,但是是一个光滑的白色。应用颜色的方式有问题,例如使用遍历函数加载背景,但不加载对象。。。我真的放弃了这里,我想知道为什么分配一个材料这么难。。。object.material.color.set有人吗?:P