我有一个 png 图像 (16x16),我想将其用作自定义 Material THREE.ShaderMaterial
中的 Alpha 贴图纹理。这是图像:
这是我预加载的纹理对象的设置:
alphaMap.magFilter = THREE.NearestFilter
alphaMap.wrapT = THREE.RepeatWrapping
alphaMap.repeat.y = 10
alphaMap.needsUpdate = true
在 ShaderMaterial 的属性中我添加了:
transparent: true
然后添加定义
:
USE_ALPHAMAP: true,
ALPHATEST: 0.5
最后是制服
:
alphaMap: { type: 't', value: alphaMap }
我没有收到任何错误,但网格不可见。如果我将其设置为 diffuseColor.rgb
则网格全是黑色的。缺少什么或有什么问题?
最佳答案
此问题的解决方案(未记录)是:
uniforms['alphaMap'].value.needsUpdate = true
这样做是行不通的:
alphaMap.needsUpdate = true
可能应该添加在这里:How to update things (纹理的 needsUpdate
标志的需求实际上是存在的,但不清楚如何处理 ShaderMaterial 和制服)。
关于javascript - 如何在 Three.js 中将 alpha 贴图纹理与 ShaderMaterial 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46859276/