2017-10-21 2 views
0

Ich habe ein PNG-Bild (16 x 16), das ich als eine Alpha-Map-Textur in einem benutzerdefinierten Material THREE.ShaderMaterial verwenden möchte. Dies ist das Bild:Wie benutzt man Alpha Map Texturen mit ShaderMaterial in Three.js?

Alpha Map

Dies ist die Setup für meine vorbelasteten Texture Objekt:

alphaMap.magFilter = THREE.NearestFilter 
alphaMap.wrapT = THREE.RepeatWrapping 
alphaMap.repeat.y = 10 
alphaMap.needsUpdate = true 

In den Eigenschaften des ShaderMaterial I hinzugefügt:

transparent: true 

hinzugefügt Dann defines :

USE_ALPHAMAP: true, 
ALPHATEST: 0.5 

Und schließlich die uniform:

alphaMap: { type: 't', value: alphaMap } 

ich keine Fehler bekommen, aber das Netz ist nicht sichtbar. Wenn ich es als diffuseColor.rgb setze, ist das Netz ganz schwarz. Was fehlt oder ist falsch?

Antwort

0

Lösung für dieses Problem (nicht dokumentiert) war:

uniforms['alphaMap'].value.needsUpdate = true 

Dadurch wird nicht funktionieren:

alphaMap.needsUpdate = true 

Es sollte wohl hier hinzugefügt werden: How to update things (die Notwendigkeit von needsUpdate Flagge für Texturen sind tatsächlich da, aber es ist nicht klar, wie man mit ShaderMaterial und Uniformen umgeht).

Verwandte Themen