2012-04-07 5 views
4

iOS 5.0 프레임 워크에서 GLKit에 관한 간단한 질문이 있습니다.iOS 5.0 GLKit GLKTextureLoader- glBindTexture는 어디에서 발생합니까?

GLKTextureLoader를 사용하는 경우 텍스처가 현재 활성 텍스처 단위로로드 되는가? 예제를 살펴 봤는데 변수 x의 GLKTextureInfo가 GL_TEXTURE0에 바인드되어 있다고 말할 필요가없는 곳이면 어디에도 표시되지 않습니다.

사람들이 glActiveTexture를 GLKTextureLoader와 함께 사용하는 예제를 보았지만 텍스처가 자동으로 활성 텍스처 유닛에 잠긴 것처럼 보입니다. 일단로드하면 텍스처 좌표를 전달해야합니다.

미리 감사드립니다.

+0

혹시이 질문에 대한 답변을 찾았습니까? – cheeesus

답변

3

GLKTextureLoader가 GLKTextureInfo 개체를로드 한 후에는 직접 질감을 바인딩 할 준비가되었습니다. 따라서 GLKLTextureLoader가 로딩을 끝내면로드 된 텍스처는 어떤 텍스처 유닛 에나 바인딩되지 않습니다. 당신이 그릴 준비가되면, 당신은 전화 :가 GLKit 클래스 내부에서 어떤 일이 일어나는지 보여주는 훌륭한 일을 같이

glActiveTexture(GL_TEXTURE0); // to specify texture unit 0 
glBindTexture(textureInfo.target, textureInfo.name); 

은 내가보기 엔,이 책 Learning OpenGL ES for iOS: A Hands-On Guide to Modern 3D Graphics Programming을 reccommend 것입니다. 또한 GLKTextureLoader를 사용하는이 데모 코드를 참조 할 수도 있습니다. https://github.com/joekim/MobileMeetup/tree/master/GLKitDemo

2

예, 어떤 자동 작업이 진행됩니다. 두 번째 텍스처를로드 한 후 그 텍스처는 GL_TEXTURE0에 바인딩되지만 GL_TEXTURE1에 바인딩하려는 경우 :

glActiveTexture(GL_TEXTURE1); 
glBindTexture(someTexture.target, someTexture.name); 
glUniform1i(u_someSampler, 1); // u_someSampler retrieved from prev call to glGetUniformLocation 
관련 문제