所以我试图对我制作的一些pixelart产生景深效果。
为此,我需要一个带有深度信息的纹理。所以我使用MeshDepthMaterial在一个平面上渲染我的纹理,但我得到的只是一个灰色矩形,它完全忽略了纹理中的alpha数据(只有1或0,中间没有任何东西)。
当然我正在使用
depthMaterial.transparent = true;
depthMaterial.alphaTest = 0.5;
depthMaterial.needsUpdate = true; //just to be sure
为了您的兴趣,这是我的pixelart及其呈现方式:http://imgur.com/a/TLQOe
答案 0 :(得分:2)
MeshDepthMaterial
根本不会读取表面纹理。
相反,您需要覆盖'depth'
ShaderChunk的值以包含UV和您的alpha-test-able纹理,或者添加额外的ShaderMaterial
来自己完成工作。根据应用程序的总体需求,一种方法比另一种方法更好。如果没有非纹理对象需要投射阴影,前者将是最简单的维护。如果没有,您需要做更多的工作来管理哪些rendertargets获得什么和如何。