我創建了一個貼圖着色器,用於平鋪紋理(它實際上是一個紋理數組,正如代碼中所示)。但是,每個圖塊周圍都有一個非常醜的像素邊框。我知道這可能是由函數的不連續性引起的,導致mipmapping時發生奇怪的事情,但我禁用了mipmapping(儘管我使用了抗鋸齒)。這裏是我的代碼:當Mipmapping被禁用時,如何擺脫平鋪邊框
vec2 tiledCoords = fract(pass_textureCoords * 256.0)/4.0; // pass_textureCoords are the texture coordinates
out_Color = texture(testArray, vec3(tiledCoords.x, tiledCoords.y, 0)); // testArray is the sampler2DArray
我想我得給一點寬容的舍入誤差,但我似乎無法弄清楚哪裏放那。 我怎樣才能擺脫這些醜陋的邊界?提前致謝!
什麼是紋理參數設置爲?關於包裝模式和過濾器。 – pleluron
@pleluron無包裝模式或過濾器。我使用'glTexSubImage3D'定期加載紋理(因爲它是一個數組),並且在渲染前簡單地綁定紋理。 –
你也使用'GL_CLAMP_TO_EDGE'嗎?如果沒有(如你的評論所示),那麼紋理座標'0.0'和'1.0'在你的紋理之外,並且你碰到了黑色的邊框。你需要移動一個紋理,所以如果你的紋理是'256x256',那麼座標應該在間隔'<1/256,255/256>'而不是'<0.0 , 1.0>' – Spektre