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
Javascript Three.js在没有背景的情况下导入gltf_Javascript_Three.js_Loader_Gltf - Fatal编程技术网

Javascript Three.js在没有背景的情况下导入gltf

Javascript Three.js在没有背景的情况下导入gltf,javascript,three.js,loader,gltf,Javascript,Three.js,Loader,Gltf,Three.js(我正在使用)上有两个示例场景,它们教您如何导入gltf模型。 两者都使用RGBELoader函数,该函数会初始化背景 new RGBELoader() .setDataType( THREE.UnsignedByteType ) .setPath( 'textures/equirectangular/' ) .load( 'venice_sunset_2k.hdr', functio

Three.js(我正在使用)上有两个示例场景,它们教您如何导入gltf模型。
两者都使用RGBELoader函数,该函数会初始化背景

new RGBELoader()
                .setDataType( THREE.UnsignedByteType )
                .setPath( 'textures/equirectangular/' )
                .load( 'venice_sunset_2k.hdr', function ( texture ) {

                    var cubeGenerator = new EquirectangularToCubeGenerator( texture, { resolution: 1024 } );
                    cubeGenerator.update( renderer );

                    //background = cubeGenerator.renderTarget;

                    var pmremGenerator = new PMREMGenerator( cubeGenerator.renderTarget.texture );
                    pmremGenerator.update( renderer );

                    var pmremCubeUVPacker = new PMREMCubeUVPacker( pmremGenerator.cubeLods );
                    pmremCubeUVPacker.update( renderer );

                    envMap = pmremCubeUVPacker.CubeUVRenderTarget.texture;

                    pmremGenerator.dispose();
                    pmremCubeUVPacker.dispose();
我现在想得到一个空的背景(或只是一个地面或smth),而不加载该背景

它可以在代码中注释“background”行以查看我的对象,而不是背景,但不必加载背景的纹理。当我评论/删除更多内容时,我的对象没有纹理

我如何才能看到头盔/吊杆盒(示例场景“gltf loader”中的示例对象)并摆脱背景? 我知道这和“环境地图”有关

但是应该没有必要加载背景的纹理

new RGBELoader()
                .setDataType( THREE.UnsignedByteType )
                .setPath( 'textures/equirectangular/' )
                .load( 'venice_sunset_2k.hdr', function ( texture ) {

                    var cubeGenerator = new EquirectangularToCubeGenerator( texture, { resolution: 1024 } );
                    cubeGenerator.update( renderer );

                    //background = cubeGenerator.renderTarget;

                    var pmremGenerator = new PMREMGenerator( cubeGenerator.renderTarget.texture );
                    pmremGenerator.update( renderer );

                    var pmremCubeUVPacker = new PMREMCubeUVPacker( pmremGenerator.cubeLods );
                    pmremCubeUVPacker.update( renderer );

                    envMap = pmremCubeUVPacker.CubeUVRenderTarget.texture;

                    pmremGenerator.dispose();
                    pmremCubeUVPacker.dispose();
立方体纹理也用于glTF模型的环境贴图。因此,如果确实要删除它,则必须删除中的以下代码部分

gltf.scene.transverse(函数(子函数)){
if(child.isMesh){
child.material.envMap=envMap;
}
} );
但是,由于环境贴图是场景中唯一的(间接)光源,因此执行此操作时头盔将或多或少变暗。然后,您可能需要添加环境光和平行光或点光源

three.js R109