2012-05-28 5 views
1

OpenGL ES를 사용하여 안드로이드 용 2D 게임을 개발하고 있습니다. 시장에 나와있는 거의 모든 기기에서 실행되기를 바랍니다. 제가 직면 한 문제는 내가 사용하는 텍스처를 매핑 할 때입니다. 지도에 표시하려는 이미지가 대상 객체와 크기가 다른 경우 이미지 품질이 낮아지고 (이미지 크기가 객체보다 클 경우에도) 픽셀 화됩니다. 나는 매우 선명한 이미지를 원합니다. 그리고 그것들을받을 수있는 유일한 방법은 같은 크기의 텍스처와 물체를 사용할 때입니다. 그러나이 경우 필자는 충분한 화면 해상도를 지원하기 위해 크기가 다른 동일한 이미지를 나타내는 4,5 텍스처가 필요합니다. 이 날 많은 이미지를 생성하는 데 아무 문제가 없지만,왜 OpenGL-ES 크기가 조정 된 이미지가 픽셀 화 된 것입니까?

glClear(GL10.GL_COLOR_BUFFER_BIT); 
glEnable(GL10.GL_TEXTURE_2D); 
glEnable(GL10.GL_BLEND); 
glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA); 
//drawing happens here 
glDisable(GL10.GL_BLEND); 

게임의 크기가 더 큰 얻을 것이다 : 나는 PNG 이미지와 다음 GL 방법을 사용하고 있습니다. 내가 잘못했거나 OpenGL에서 Photoshop과 같은 이미지의 크기를 조정할 수 없습니까?

답변

4

GL_NEAREST 또는 GL_LINEAR 같은 대체 샘플링 옵션을 실험 해 보셨습니까? (glTexParameteri 참조).

나는 이것이 OpenGL의 잘못이라고 생각하지 않지만 원래 해상도 (또는 그 배수)가 아닌 텍스처를 표시하면 이미지의 정확성이 항상 떨어질 수 있습니다 비 - 픽셀 경계에서 재 샘플링). GL_LINEAR은 약간 흐려지는 희생으로 픽셀 화 된 모양을 완화 할 수 있습니다. 이는 눈에 띄지 않을 수도 있고 그렇지 않을 수도 있습니다.

+0

감사합니다 남자, GL_NEAREST를 사용하고 있었는데, 지금은 GL_LINEAR로 바꿨고 모든 것이 완벽합니다. – mjekov

관련 문제