2012-06-17 3 views
28

iPad 용 iOS 앱에서 NPT (Non Power of Two) 텍스처를 사용하고 싶습니다. 내 GL_VERSION 쿼리는 "OpenGL ES 2.0 APPLE"을 반환합니다. 스펙에 따르면, NPT 텍스처를 지원해야하지만, 간단한 테스트를 통해 텍스쳐가 나타나기 전에 텍스처 크기를 2^N로 조정해야한다는 것을 알 수 있습니다.iOS의 비 텍스처 2 개

Apple은 전체 ES 2.0 사양을 지원하지 않습니까? 지원되지 않는 문서는 어디에서 찾을 수 있습니까?

저는 Xcode 4.3.2와 iOS 5.1을 사용하고 있습니다.

편집 :

배아 줄기 2.0.25 사양 (섹션 3.8.2)를 자세히 보면, NPOT가 ​​작동하기 위해 충족해야 할 몇 가지 조건이 있다는 것을 알 수있다. 본질적으로 아래 설정을 사용하면 NPOT 텍스처를로드 할 수 있습니다.

// use linear filetring 
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); 
// clamp to edge 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 

이 질문을 닫거나 내 질문에 답변 해 주시겠습니까?

+3

질문을 닫을 필요없이 답변을 작성하고 수락하면됩니다. 어느 날 누군가에게 도움이 될 수 있습니다. – Tim

+0

나는 몇일 전에 같은 질문과 대답을 기억한다. 이것은 자주 제기되는 주제입니다. – Luca

답변

24

제 편집에서 언급했듯이 해결책을 찾았습니다. ES 2.0의 NPOT에서는 선형 필터링을 사용하고 가장자리를 클램프해야합니다. 또한 밉맵도 없습니다.

+0

또한 'GL_APPLE_texture_2D_limited_npot' 확장 프로그램이 지원되는지 확인하십시오. –

+1

그것은 ios7에서 나를 위해 min/mag 필터로 GL_NEAREST와 함께 작동합니다. GL_CLAMP_TO_EDGE가 문제였습니다. – Martin

+0

@Martin iOS에서 비 텍스처의 두 텍스처를 그리는 방법에 대한 스 니펫을 공유해 주시겠습니까? 나는 그것을하려하지만, 나는 오직 하얀 이미지만을 보여줄 수있다 : https://gist.github.com/anonymous/53307d146d3d1a750554 – amb