0
我在我着色器中使用索引嘗試訪問的DataTexture紋理像素中具有值。索引[0, 1, 2, 3, 4, 5, 6... 62, 63]
是連續的,而數據紋理具有的高度和寬度8.(uTextureDimension
)一些研究我寫這個函數採取特定索引值之後,並引用相應的紋素:使用着色器中的索引引用數據紋理中的紋理像素
vec2 customUV = vec2(mod(aIndex, uTextureDimension)/uTextureDimension, floor(aIndex/uTextureDimension)/uTextureDimension);
vec4 texelValues = texture2D(tDataTexture, customUV).xyzw;
我還嘗試使用該版本從中心點引用texel。還沒有骰子:
vec2 perMotifUV = vec2(mod(aIndex, uTextureDimension) * ((1.0/uTextureDimension)/2.0), floor(aIndex/uTextureDimension) * ((1.0/uTextureDimension)/2.0));
vec4 texelValues = texture2D(tDataTexture, customUV).xyzw;
這個工作從昨天下午開始,在這裏和那裏編輯它,並四處尋找其他的解決方案後,我仍然沒有得到預期的結果。我應該說在使用Three.js時,着色器被設置爲高精度浮動 - 這是問題的一部分嗎?任何人都可以在這裏推動我的軌道?謝謝!
作爲後續,應DataTextures這種方法工作高度和寬度不同。我假設你會有兩個紋理尺寸和兩個相應的紋理尺寸。 – gromiczek