网格边缘的奇怪阴影对角线

时间:2017-06-22 00:57:30

标签: javascript three.js maya

首先,这里是我所描述的一个例子"奇怪的阴影对角线"。

Example of shadowy lines

这是在Maya中构建的表的顶部,导出为.obj。它加载如下:

let mtlLoader = new THREE.MTLLoader();

mtlLoader.setPath( './assets/' );
mtlLoader.load( 'table.mtl', ( materials ) => {

    materials.preload();

    let objLoader = new THREE.OBJLoader();
    objLoader.setMaterials( materials );
    objLoader.setPath( './assets/' );
    objLoader.load( 'table.obj', ( object ) => {
        if ( child instanceof THREE.Mesh ) {
            let _color = child.material.color;
            if ( _color.r === 0 && _color.g === 0 && _color.b === 0 ) {
                child.material.color.r = 0.65;
                child.material.color.g = 0.65;
                child.material.color.b = 0.65;
            }
            child.castShadow = true;
            child.receiveShadow = true;
            child.material.shading = THREE.FlatShading;
        }

        scene.add( object );
        animate();
    }
}

此场景中只有一个灯光,这是产生它的代码。

SpotLight_1 = new THREE.SpotLight( 0xffffff, 1 );
SpotLight_1.position.set( 60, 90, 60 );
SpotLight_1.castShadow = true;
SpotLight_1.shadow.mapSize.width = 2048;
SpotLight_1.shadow.mapSize.height = 2048;
scene.add( this.three.SpotLight_1 );

这部分可能会让那些对我有更多3D网格和三个j经验的人明白这个问题...如果我设置SpotLight_1.shadow.mapSize.width = 128设置mapSize.height等于128好吧,线条跨越桌子的整个内表面。这是一张照片。

Example of lines spanning inner mesh

内部网格材质类型为phong,如果相关则边界为lambert。

我认为它与光线撞击反射表面的角度有关。 Y轴上的光为@ 60,表的总高度为30.5。当相机旋转使得桌子位于灯光和相机之间时,效果会很明显。

非常感谢任何见解。如果需要任何其他信息,我将很乐意提供。

0 个答案:

没有答案