내가 만드는 마인 크래프트와 같은 게임에서 큐브에 흰색 가장자리가 나타납니다.
어두운 질감에서는 훨씬 더 눈에 is니다. 텍스처는 다음과 같이 설정됩니다 :
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
어떤 도움?
내가 만드는 마인 크래프트와 같은 게임에서 큐브에 흰색 가장자리가 나타납니다.
어두운 질감에서는 훨씬 더 눈에 is니다. 텍스처는 다음과 같이 설정됩니다 :
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
어떤 도움?
답변:
정확히 어떤 문제인지에 따라이 유형의 문제에는 두 가지 가능한 원인이 있습니다. 두 가지를 모두 나열하겠습니다.
가장자리 픽셀은 모두 흰색, 검은 색 및 갈색의 텍스처에 적합한 세 가지 색상 중 하나이기 때문에이 경우 문제처럼 보입니다.
단일 텍스처 (텍스처 아틀라스)에서 서로 바로 옆에 여러 개의 타일 이미지를 사용하는 경우 필자가 생각하는 것처럼 불가피합니다. GPU가 텍스처의 보간과 삼각형의 가장자리를 따라 보간을 완벽하게 일치시키지 않고 인접한 텍스처의 비트가 거의 없기 때문에 발생합니다.
할 수있는 일이 많이 있습니다.
CLAMP[_TO_EDGE]
하는 것이지만, 텍스처 아틀라스를 인식하는 방식으로 – 타일 가장자리의 대부분이 텍스처의 가장자리에 있지 않기 때문에 귀하의 효과는 효과가 없습니다.) 이것은 내 자신의 항목에 사용하는 솔루션입니다 장르에서 큐브 . 텍스처 메모리를 더 많이 사용한다는 점을 제외하고는 특별한 단점이 없습니다.이 경우에는 이것이 문제라고 생각하지 않습니다. 격차를 통해 보이는 녹지가 없기 때문에 완전성을 위해 포함하고 있습니다.
이것은 인접한 타일의 모임 모서리 정점에 대해 정확히 동일한 좌표를 제공하지 않을 때 발생할 수 있으며 일반적으로 부동 소수점 오류로 인해 발생합니다. 예를 들어, 크기 0.6의 타일이 경우에 타일의 오른쪽 가장자리를 계산 x=100
에 (100*0.6) + 0.6
, 그리고에서 타일의 왼쪽 가장자리 x=101
와 함께 (100*0.6)
, 당신은 똑같은 대답을받지 않습니다, 그 차이는 거의 점들로 볼 수 있습니다 격차.
해결책은 산술의 일관성을 유지하는 것입니다. 이를 수행하는 몇 가지 방법은 다음과 같습니다.
index*size + size
합니다 (index+1)*size
.