1. 首先确定是否是gltf格式出现原因:
    使用glft viewer 确定gltf 能否展示 https://gltf-viewer.donmccurdy.com/
  2. 查看exposure是否为大于0的数,在webGLRender 中设置
  3. 查看emissive和emssiveMap:
    如果使用环境光看到黑色(或者其他纯色),将emssive设置为material.color,如果有纹理,将纹理赋值给emssiMap。
    var loader = new THREE.GLTFLoader();
      loader.load( 'xxx.gltf', function ( gltf ) {
     // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      //需要添加的部分
                gltf.scene.traverse( function ( child ) {
                	if ( child.isMesh ) {
                        child.material.emissive =  child.material.color;
    					child.material.emissiveMap = child.material.map ;
                	}
                } );
    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++    
                scene.add( gltf.scene );
    
            }, undefined, function ( e ) {
    
                console.error( e );
    
            } );

     

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐