1
我注意到紋理在所有着色器中都有一個字段名稱「value」,但似乎從未使用過這些字段。使用Three.js着色器中的字段「值」
例子:
tDiffuse: { type: "t", value: 0, texture: null },
什麼是這個領域的目的是什麼?
謝謝
我注意到紋理在所有着色器中都有一個字段名稱「value」,但似乎從未使用過這些字段。使用Three.js着色器中的字段「值」
例子:
tDiffuse: { type: "t", value: 0, texture: null },
什麼是這個領域的目的是什麼?
謝謝
它被使用。
它定義了紋理需要存儲在哪個槽中。插槽是一個shaderprogram可以訪問紋理槽採樣器的地方。這確實大部分是0,因爲我們在着色器中只使用1個紋理。但是如果我們想要在着色器中訪問多個紋理,那麼需要將值更改爲nessecary的插槽數量。
就像你可以在這裏看到:
https://github.com/gero3/three.js/blob/master/src/renderers/WebGLShaders.js#L1392-1397
地圖是第一個紋理。 (插槽0) envMap是第二個紋理。 (插槽1) lightMap是第三個紋理。 (插槽2)
對於在着色器程序中使用的每個紋理,必須選擇一個新插槽。