텍스처를 바둑판 식으로 조각하는 조각 쉐이더를 만들었습니다. 코드에서 볼 수 있듯이 실제로 텍스처 배열입니다. 그러나 각 타일 주위에 매우 흉측 한 1 픽셀 테두리가 있습니다. 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'이라면 좌표는 '<0.0 , 1.0>'대신에 '<1/256, 255/256>'이되어야합니다. – Spektre