THREE.InstancedBufferGeometry和shadow

时间:2015-12-10 14:57:14

标签: three.js geometry-instancing

我正在玩实例并且非常棒 现在我试图让每个实例投下阴影但没有运气。我做了Lambert材料的克隆,为位置,比例等添加了实例处理并且正在工作,但是这只投射了一个阴影:来自位置(0,0,0)的原始几何的阴影(即使没有实例是在那个位置) 有人可以指出我在哪里寻找使它工作或这是实例或材料的限制?
感谢。

1 个答案:

答案 0 :(得分:1)

我使用此帖子中的信息修复此问题:http://blog.edankwan.com/post/three-js-advanced-tips-shadow

编辑:

我制作了THREE.ShaderLib.depthRGBA.vertexShader的副本,并添加了我在实际绘制实例的材质中使用的所有属性(平移,缩放,旋转)和代码(使用THREE.ShaderChunk)。 THREE.ShaderLib.depthRGBA.fragmentShader保持不变。

然后我用上一步创建的新VS和FS创建了一个新的THREE.ShaderMaterial:

mesh.customDepthMaterial = new THREE.ShaderMaterial({
        vertexShader: <my DepthRGBA vertex shader here>,
        fragmentShader: THREE.ShaderLib.depthRGBA.fragmentShader,
        ....
    });