我的目标是将3D对象合成到全景图上。我已经装好了物体,并用正确的角度将它们排列整齐。我需要的是一种将在Maya和Max之类的软件中看到的useBackground着色器实现为three.js的方法。

更清楚地说,我想将阴影投射到我创建的代理地面上。地面应该是不可见的,但是投射在其上的阴影应该是可见的。如果您可以帮助我或指导我朝正确的方向发展。我是否需要创建自定义着色器,还是已经有一种方法只能渲染投射在对象上的阴影?

最佳答案

three.js蒙皮示例使用了这样的阴影。确保对象的castShadow属性设置为true,并且灯光在正确的位置。 http://threejs.org/examples/webgl_animation_skinning_morph.html

// GROUND

var groundMaterial = new THREE.MeshPhongMaterial( { emissive: 0xbbbbbb } );
var planeGeometry = new THREE.PlaneGeometry( 16000, 16000 );

var ground = new THREE.Mesh( planeGeometry, groundMaterial );
ground.position.set( 0, FLOOR, 0 );
ground.rotation.x = -Math.PI/2;
scene.add( ground );

ground.receiveShadow = true;

08-25 23:32