2017-10-21 19 views
0

カスタム素材THREE.ShaderMaterialのアルファマップテクスチャとして使用するpng画像(16x16)があります。これはイメージです。Three.jsのShaderMaterialでアルファマップテクスチャを使用するには?

Alpha Map

これは私のプリロードTextureオブジェクトの設定です:私は追加ShaderMaterialのプロパティで

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

transparent: true 

はその後definesを追加しました:

USE_ALPHAMAP: true, 
ALPHATEST: 0.5 

そして最後にuniform

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

私はすべてのエラーを得ることはありませんが、メッシュは表示されません。 diffuseColor.rgbと設定すると、メッシュはすべて黒です。欠けているか間違っていますか?この問題(文書化されていない)へ

答えて

0

ソリューションでした:

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

が動作しませんこれを行う:

alphaMap.needsUpdate = true 

これはおそらく、ここで追加する必要があります:How to update thingsneedsUpdateフラグの必要性についてテクスチャは実際にそこにありますが、ShaderMaterialとユニフォームを扱う方法は明確ではありません)。

関連する問題