1

このオブジェクトに影を落とそうとしています。しかし、エッジに奇妙な影があります。オブジェクトが「それ自体」の別のコンポーネントに影を落としていると思います

ここに画像の説明を入力

それを取り除く方法はありますか?

これがフィドルです:http://jsfiddle.net/paulocoelho/qMqH7/3/

ここに必須のコードがありますが、フィドルを確認してください..

var container, stats;
var camera, scene, renderer;
var cube, plane;
var windowHalfX = window.innerWidth / 2;
var windowHalfY = window.innerHeight / 2;

init();

function init() {
    container = document.createElement( 'div' );
    document.body.appendChild( container );

    camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, .1, 10000 );
    camera.position.x=50;
    camera.position.y=50;
    camera.position.z=50;
    camera.lookAt(new THREE.Vector3(0,0,0));
    scene = new THREE.Scene();

    renderer = new THREE.WebGLRenderer();
    renderer.setSize( window.innerWidth, window.innerHeight );
    renderer.shadowMapEnabled = true;
    renderer.shadowMapSoft = true;
    container.appendChild( renderer.domElement );

    //var ambientLight = new THREE.AmbientLight(0x000000);
    //scene.add(ambientLight);

    light = new THREE.SpotLight();
    light.position.set(337,400,313);
    light.castShadow = true;
    light.shadowMapWidth = 3000;
    light.shadowMapHeight = 3000;
    // light.shadowCameraVisible = true;
    scene.add(light);

    var geometry = new THREE.PlaneGeometry( 200, 200, 30, 30 );
    geometry.applyMatrix( new THREE.Matrix4().makeRotationX( - Math.PI / 2 ) );
    geometry.applyMatrix( new THREE.Matrix4().setPosition( new THREE.Vector3(0,0,0) ) );
    var material = new THREE.MeshLambertMaterial( { color: 0xEEEEEE } );
    plane = new THREE.Mesh( geometry, material );
    plane.receiveShadow = true;
    scene.add( plane );

    var loader = new THREE.OBJMTLLoader();
    loader.addEventListener("load", function (event) {
        cube = event.content;
        for(k in cube.children){
            cube.children[k].castShadow = true;
            cube.children[k].receiveShadow = true;
        }
        scene.add(cube);
        animate();
    }); 
    loader.load ("https://dl.dropboxusercontent.com/u/4334059/VM.obj", "https://dl.dropboxusercontent.com/u/4334059/VM.mtl");
}

function animate() {
    requestAnimationFrame( animate );
    render();
}

function render() {
    cube.rotation.y += 0.01;
    renderer.render( scene, camera );
}
4

1 に答える 1