내 게임에는 큐브로 만들어진 Minecraft와 같은 지형이 있습니다. 복셀 데이터에서 정점 버퍼를 생성하고 다른 블록의 모양에 텍스처 아틀라스를 사용합니다.
문제는 먼 큐브의 텍스처가 텍스처 아틀라스의 인접한 타일과 보간된다는 것입니다. 큐브 사이에 잘못된 색상이 표시됩니다 (그래픽 결함을 보려면 아래의 스크린 샷을 전체 크기로 봐야 할 수 있음).
지금은 이러한 보간 설정을 사용하지만 모든 조합을 시도했지만 GL_NEAREST
밉 매핑 없이도 더 나은 결과를 제공하지는 않습니다.
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
타일의 약간 작은 영역을 선택하기 위해 텍스처 좌표에 오프셋을 추가하려고했지만 원치 않는 효과는 카메라까지의 거리에 따라 다르므로 문제를 완전히 해결할 수는 없습니다. 먼 거리에서 줄무늬가 발생합니다.
이 텍스처 출혈을 어떻게 해결할 수 있습니까? 텍스처 아틀라스를 사용하는 것이 널리 사용되는 기술이므로 일반적인 접근 방식이있을 수 있습니다. 안타깝게도 주석에 설명 된 몇 가지 이유로 다른 텍스처 또는 텍스처 배열로 변경할 수 없습니다.
GL_LINEAR
을 보간 하여 비슷한 결과 GL_NEAREST
를 얻 거나 가장 가까운 픽셀 을 선택하여 블록 사이에 줄무늬가 생깁니다. 마지막으로 언급 된 옵션은 픽셀 결함을 줄이지 만 제거하지는 않습니다.