Three.js导入无背景的gltf

问题描述 投票:2回答:1

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();

我现在想获取一个空的背景(或仅是地面或水面),而不加载该背景。

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

如何查看头盔/动臂箱(示例场景“ gltf loader”中的示例对象)并摆脱背景?我知道这与“ envmap”有关。.

javascript three.js loader gltf
1个回答
1
投票

但是不必加载背景纹理。

立方体纹理也用于glTF模型的环境图。因此,如果您确实要删除它,则必须删除webgl_loader_gltf中的以下代码部分。

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

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

three.js R109

© www.soinside.com 2019 - 2024. All rights reserved.