2013-01-15 4 views
2

현재 iOS 앱을 제작하기 위해 Open GL ES를 배우고 있습니다. 내 모델에 아무런 효과없이 텍스처를 추가하려고합니다. 나는 열린 글씨 텍스쳐 렌더

link

에서 샘플 프로젝트를 다운로드하고 검사하고있다. 내가 가지고있는 질문은 :

image with working texture

당신은 텍스처와 그에게 기본 큐브를 볼 수 있습니다 : 나는 변경되지 않은 프로젝트를 실행할 때 나는 다음과 같은 얻을. .png 파일을 다른 이미지로 변경하기로 결정했습니다. 내 .PNG 파일이 큐브에 렌더링되지 않는 이유는 잘 모릅니다

image not rendering texture

: 내가 한 때하지만 난과 만났다?

을 heres 내 질감 : my texture

원래 : original

그냥 임 오류를 받고없고, 내가 코드에 변화를하지 않은 확인합니다.

답변

1

이 특수한 튜토리얼에서는 정사각형, 2의 거듭 제곱의 텍스처로 문제를 해결할 수 있습니다. 게시 한 사람이 135x134이므로 128X128 또는 256x256으로 변환해야합니다.

는 관련 토론이 게시물을 참조 : iphone opengl es 2.0 non power of two

+1

방금 ​​128x128 텍스처를 128x129로 변환했다. 프로젝트를 실행할 때 사라졌다. 따라서 다른 것보다 먼저 2의 거듭 제곱으로 텍스처를 시험해보십시오. –

+0

-1 iOS의 텍스처는 2의 힘을 필요로하지 않습니다! 매일 NPOT 텍스처를 사용합니다! –

+0

사실입니다. 그러나이 예 * 튜토리얼과 예기치 않은 결과가 명백한 이유는 분명합니다. NPOT 텍스처는 OpenGL ES의 고급 주제입니다. 걷기 전에 크롤링하는 법과 그 모든 것을 배우십시오. –

0

이미지 파일을 어떻게 변경 했습니까? 폴더에있는 파일을 바꾸거나 프로젝트에 파일을 포함 시켰습니까? 이 경우 XCode로 드래그하여 프로젝트에 파일을 포함시키고 tile_floor.png으로 이름을 변경하거나 initWithFrame 메서드의 (텍스처) 이미지 파일 이름을 텍스처 파일에 맞게 변경하십시오.

이 방법으로 문제가 해결되지 않으면 두 이미지 파일의 색상 형식 또는 비트 - 픽셀 정보가 다를 수 있습니다.

+0

이미지를 프로젝트에 추가 한 다음 제안 된대로 이미지 이름을 바꿨습니다 (이름을 바꿨습니다). 픽셀 당 비트 수를 어떻게 확인합니까? 둘 다 정보에 따라 RGB입니다. – geminiCoder

+0

사용중인 이미지가 여기에 복사 한 이미지라면 문제가되지 않습니다. 둘 다 24 bpp입니다. (확인하려면 김프를 사용하여 열었지만 마우스 오른쪽 버튼을 클릭하면 얻은 정보가 동일해야 함). 이미지의 이름을 변경 한 후에 프로젝트를 실행해도 작동하지 않습니까? –

+0

Nope는 여전히 같은 것을 얻는다 ??? – geminiCoder

3

당신이 밉맵을 사용할 수 없습니다 당신은 당신이 올바른 필터링 설정해야 비 파워 - 중 - 두 개의 텍스처를 사용하는 경우.

필터링 :

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 

클램프 :

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 

그러나 거리가 멀리에있는 경우 텍스처 품질이 나쁜 것 3D는-객체에이, 단점이 함께 제공됩니다. 따라서이 경우에는 2의 거듭 제곱으로 머무르고 밉맵을 사용하십시오.