Three.js 无后台导入gltf

Three.js Importing gltf without a background

Three.js(我正在使用)上有 2 个示例场景,正在教授如何导入 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" 行可以看到我的对象而不是背景,但应该没有必要加载背景纹理。当我 commenting/deleting 更多东西时,我的对象没有纹理。

如何才能看到 helmet/boombox(示例场景中的示例对象 "gltf loader")并摆脱背景? 我知道这与 "envmap"..

有关

but it should be unnecessary to load the textures for the background.

立方体纹理也用于 glTF 模型的环境贴图。所以如果你真的要删除它,你必须删除webgl_loader_gltf中的以下代码部分。

gltf.scene.traverse( function ( child ) {
    if ( child.isMesh ) {
        child.material.envMap = envMap;
    }
} );

但是,这样做时头盔会或多或少变暗,因为环境贴图是场景中唯一的(间接)光源。然后您可能想要添加环境光和平行光或点光。

three.js R109