【问题标题】:Three.js LatheGeometry won't cast shadowsThree.js LatheGeometry 不会投射阴影
【发布时间】:2016-05-03 13:18:34
【问题描述】:

车床几何体不会投射阴影,但球体和立方体会。这是为什么 ?

Image

我的渲染器:

var webGLRenderer = new THREE.WebGLRenderer();
    webGLRenderer.setClearColor(0xAAAAAA, 1.0);
    webGLRenderer.setSize(window.innerWidth, window.innerHeight);
    webGLRenderer.shadowMapEnabled = true;

车床:

 var latheGeometry = new THREE.LatheGeometry(array, Math.ceil(segments), 0, 2 * Math.PI);

        //var meshMaterial = new THREE.MeshBasicMaterial({color:0x00ff00, transparent:true, opacity:0.6});
var meshMaterial = new THREE.MeshLambertMaterial({color: 0xFFFFFF});
meshMaterial.side = THREE.DoubleSide;
var wireFrameMat = new THREE.MeshBasicMaterial();
wireFrameMat.wireframe = false;

latheMesh = THREE.SceneUtils.createMultiMaterialObject(latheGeometry,[meshMaterial, wireFrameMat]);
latheMesh.rotation.x = Math.PI * -0.5;
        latheMesh.position.z = 0;
    latheMesh.castShadow = true;
        scene.add(latheMesh);

我的灯光:

var pointColor = "#ffffff";
    directionalLight = new THREE.DirectionalLight(pointColor);
    directionalLight.position.set(-50,50,50);
    directionalLight.castShadow = true;
    directionalLight.receiveShadow = false;
    directionalLight.shadowCameraVisible = true;

    directionalLight.intensity = 1;
    directionalLight.shadowCameraNear = 50;
    directionalLight.shadowCameraFar = 200;
    directionalLight.shadowCameraLeft = -50;
    directionalLight.shadowCameraRight = 40;
    directionalLight.shadowCameraTop = 50;
    directionalLight.shadowCameraBottom = -50;


    directionalLight.distance = 0;
    directionalLight.shadowMapHeight = 1024;
    directionalLight.shadowMapWidth = 1024;

    //scene.add( new THREE.DirectionalLightHelper(directionalLight, 0.5) );
    scene.add(directionalLight);

如您所见,只有球体可以投射阴影,而 latheGeometry 不能。

【问题讨论】:

    标签: three.js geometry shadow


    【解决方案1】:

    THREE.SceneUtils.createMultiMaterialObject() 为每个材质创建一个带有子 Mesh 的 THREE.Group。

    您需要为组指定castShadow 属性,而不是为要投射阴影的子网格指定。

    three.js r.76

    【讨论】:

      猜你喜欢
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      • 2013-08-03
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多