【发布时间】:2017-05-03 21:20:03
【问题描述】:
是否可以在three.js 中创建一个非常柔和/非常微妙的阴影? 喜欢这张照片吗?
到目前为止,我所做的一切都是这样的:
我的灯:
hemisphereLight = new THREE.HemisphereLight(0xaaaaaa,0x000000, 0.9);
ambientLight = new THREE.AmbientLight(0xdc8874, 0.5);
shadowLight = new THREE.DirectionalLight(0xffffff, 1);
shadowLight.position.set(5, 20, -5);
shadowLight.castShadow = true;
shadowLight.shadowCameraVisible = true;
shadowLight.shadowDarkness = 0.5;
shadowLight.shadow.camera.left = -500;
shadowLight.shadow.camera.right = 500;
shadowLight.shadow.camera.top = 500;
shadowLight.shadow.camera.bottom = -500;
shadowLight.shadow.camera.near = 1;
shadowLight.shadow.camera.far = 1000;
shadowLight.shadowCameraVisible = true;
shadowLight.shadow.mapSize.width = 4096; // default is 512
shadowLight.shadow.mapSize.height = 4096; // default is 512
并渲染:
renderer.shadowMapEnabled = true;
renderer.shadowMapSoft = true;
renderer.shadowMapType = THREE.PCFSoftShadowMap;
谢谢你
【问题讨论】:
-
不是这样,你必须使用像素着色器来完成它。
-
如果您的灯光是静态的,您可以烘焙阴影。见threejs.org/examples/webgl_materials_lightmap.html。
标签: javascript three.js shadow