テクスチャにはすべてのシェーダーで「value」というフィールド名があることに気づきましたが、このフィールドは使用されていないようです。
例 :
tDiffuse: { type: "t", value: 0, texture: null },
このフィールドの目的は何ですか?
ありがとう
使用されています。
テクスチャを保存する必要があるスロットを定義します。スロットは、シェーダー プログラムがサンプラーを介してテクスチャにアクセスできる場所です。シェーダーで 1 つのテクスチャしか使用しないため、これは実際にはほとんど 0 です。ただし、シェーダーで複数のテクスチャにアクセスする必要がある場合は、必要なスロットの数に値を変更する必要があります。
あなたがここに見ることができるように:
https://github.com/gero3/three.js/blob/master/src/renderers/WebGLShaders.js#L1392-1397
map は最初のテクスチャです。(スロット 0) envMap は 2 番目のテクスチャです。(スロット 1) lightMap は 3 番目のテクスチャです。(スロット 2)
shaderprogram で使用するテクスチャごとに、新しいスロットを選択する必要があります。