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”有关。.
但是不必加载背景纹理。
立方体纹理也用于glTF模型的环境图。因此,如果您确实要删除它,则必须删除webgl_loader_gltf中的以下代码部分。
gltf.scene.traverse( function ( child ) {
if ( child.isMesh ) {
child.material.envMap = envMap;
}
} );
但是,这样做时头盔会变黑或变暗,因为环境图是场景中唯一(间接)的光源。然后,您可能想要添加环境光和定向光或点光源。
three.js R109