Объект, загруженный с помощью ObjLoader, не получает тени в three.js - PullRequest
0 голосов
/ 01 июня 2018

Модель отбрасывает тени на наземной плоскости, но она НЕ получает тени от другой маленькой плоскости впереди (которая отбрасывает тени на наземной плоскости), не говоря уже о себе.Любые идеи ???

   var light = new THREE.DirectionalLight( 0xffefee, 1.2 );
   light.position.set( 0, 40, 100 );
   light.shadow.camera.left = -100; 
   light.shadow.camera.right = 100;
   light.shadow.camera.top = 100;
   light.shadow.camera.bottom = -100;
   light.shadow.camera.far = 1000;
   light.shadow.camera.near = 1;

   light.shadow.mapSize.width = 512;  
   light.shadow.mapSize.height = 512;

   light.castShadow = true;
   light.shadowDarkness = 0.5;

   renderer.shadowMap.enabled = true;
   renderer.shadowMap.type = THREE.PCFSoftShadowMap; 


    var femModel = null;  

    mtlLoader.setMaterialOptions({ side:THREE.DoubleSide });
    mtlLoader.load( 'female02.mtl', function( materials ) {     
    materials.preload();
    var objLoader = new THREE.OBJLoader();
    objLoader.setMaterials( materials );
    objLoader.setPath( 'female02/' );
    objLoader.load( 'female02.obj', function ( object ) {

        femModel = object; 

        femModel.position.set( 0, -80, 0 );
        sceneRTTA.add( femModel );
    }, onProgress, onError );

});

Функция установки вызывается после полной загрузки:

function setupmodel(){
    femModel.traverse( function ( child ) {
        if ( child instanceof THREE.Mesh ) {
            child.castShadow = true;
            child.receiveShadow = true; 
        }   
    } );    
}

three.js 0.91.0

...