문제

iPhone을위한 간단한 2D 게임을 만들고 있습니다. Crashlanding을 기반으로합니다. 따라서 기본적으로 배경 질감과 몇 가지 직사각형 텍스처가 움직입니다.

나는이 기괴한 작은 그래픽 문제가 있습니다. 작은 2D 항목 중 일부 (직사각형 만 가정 할 수 있음)는 주위를 돌아 다니면서이 작은 깜박이는 검은 색 막대가 그 위에 있습니다 (배경 질감은 거의 완전히 흰색이므로 작은 막대가 눈에 띄게됩니다).

내가 사용하는 텍스처는 작은 (~ 1kb) PNG입니다.

다른 사람이 이것에 들어가는가? 이것이 일반적인 OpenGL 문제입니까?

BTW 이것은 시뮬레이터와 실제 장치 모두에서 발생합니다.

도움이 되었습니까?

해결책

당신은 당신의 질감에 그 작은 검은 색 막대와 같은 것이 있습니까?

내가 뭔가 잘못했을 때 비슷한 문제가 발생했습니다. 다음은 작은 체크리스트입니다.

  • 텍스처를 mipmaped했는지 아닌지, 어떤 매개 변수가 있는지 확인 했습니까?
  • gltexparameters. (wrap_s, wrap_t, mag_filter, min_filter ...)
  • 질감의 치수. (텍스처가 허용되지 않는 경우, 텍스처를로드하는 방법에 따라 그래픽 결함이 발생할 수 있습니다)
  • 당신은 당신의 사각형 위에 그 번쩍이는 막대를 그리고 있습니까?
  • 텍스처에 검은 색 막대를 일으키는 것이 있는지 여부.
  • 애니메이션 프레임의 정렬.
  • 블렌딩 및 알파 블렌딩.

목록의 무언가가 당신에게 모호하다면, 그들에 대해 읽는 것이 좋습니다.

나는 또한 좋은 추측을합니다. 나는 당신이 당신의 질감을 어떤 방향 으로든 포장하지 않고 애니메이션 프레임이 약간 잘못 정렬되어 응용 프로그램이 그리는 쿼드에서 약간 잘못된 텍스처 좌표/높이를 가지고 있다고 생각합니다.

내 조언이 이해되기를 바랍니다. 나는 일반적인 OpenGL에 대한 경험이 있습니다. 그래픽 파이프 라인이 더욱 작고 깨끗하고 우아하게 만들기 위해 OpenGl ES가 가지지 않습니다.

다른 팁

이것은 2D 게임이기 때문에이 작은 직사각형 스프라이트가 동일한 텍스처 시트에 포함되어 있습니까? 또 다른 가능한 범인은 텍스처 필터링 일 수 있습니다.

텍스처 좌표를 조작하여 텍스처의 하위 영역을 그리기 위해 스프라이트를 1 : 1 비율로 끌어 올릴지 확인할 수 있습니다. 선형 텍스처 필터링이 활성화되어있는 경우 (가장 가까운 대조) OpenGL은 스프라이트를 1 : 1 이상으로 확장하려고하면 인접한 스프라이트에서 일부 픽셀을 잡을 수 있습니다.

이 경우 스프라이트 사이의 텍스처 시트에 1 픽셀 버퍼를 배치 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top