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