我想在自定义材质THREE.ShaderMaterial
中使用png图像(16x16)作为alpha贴图纹理。这是图像:
这是我预加载的Texture对象的设置:
alphaMap.magFilter = THREE.NearestFilter
alphaMap.wrapT = THREE.RepeatWrapping
alphaMap.repeat.y = 10
alphaMap.needsUpdate = true
在ShaderMaterial的属性中,我添加了:
transparent: true
然后添加了defines
:
USE_ALPHAMAP: true,
ALPHATEST: 0.5
最后是uniform
:
alphaMap: { type: 't', value: alphaMap }
我没有得到任何错误,但网格不可见。如果我将其设置为diffuseColor.rgb
,则网格全部为黑色。缺少什么或错了什么?
答案 0 :(得分:0)
此问题的解决方案(未记录)是:
uniforms['alphaMap'].value.needsUpdate = true
这样做不起作用:
alphaMap.needsUpdate = true
它应该在这里添加:How to update things(纹理的needsUpdate
标志的实际需要,但是不清楚如何处理ShaderMaterial和制服)。