하지만, 제가 경험해 본 일 중에.... 8개 이상의 Texture를 할당할 경우...
// Texture 위치
mObjTexLoc = GLES20.glGetUniformLocation ( mProgramObject, "s_texture" );
// Object Texture 설정
GLES20.glActiveTexture ( GLES20.GL_TEXTURE0 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, mObjTexId0 );
GLES20.glActiveTexture ( GLES20.GL_TEXTURE1 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, mObjTexId1 );GLES20.glActiveTexture ( GLES20.GL_TEXTURE2 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, mObjTexId2 );GLES20.glActiveTexture ( GLES20.GL_TEXTURE3 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, mObjTexId3 );GLES20.glActiveTexture ( GLES20.GL_TEXTURE4 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, mObjTexId4 );....
GLES20.glActiveTexture ( GLES20.GL_TEXTURE8 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, mObjTexId8 );// Texture 이미지 셋팅
GLES20.glUniform1i ( mObjTexLoc, 0~8 );
다음과 같이 설정 할 수가 있다.
0번 부터 6번 까지는 아주 ~~ 잘되었다.
하지만.. 7번부터... 인덱스가 엉키는지.. 올바른 Texture 이미지가 나오지 않앗다.
그래서 생각해 본 것이!
6번까지는 무리없이 돌아가니~~~ 반복적으로 이용하자 이다.
Texture를 사용하는 자리에서 Texture를 액티브 시키고 바인딩 시키는 것이다.
Texture의 ID는 가지고 있으니깐.. ㅎㅎ
// Object Texture 설정
GLES20.glActiveTexture ( GLES20.GL_TEXTURE0 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, mObjTexId0 );
GLES20.glActiveTexture ( GLES20.GL_TEXTURE1 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, mObjTexId1 );....
// Object Texture 설정
GLES20.glActiveTexture ( GLES20.GL_TEXTURE0 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, mObjTexId7 );
GLES20.glActiveTexture ( GLES20.GL_TEXTURE1 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, mObjTexId8 );이렇게 하니 꼬이는 버그가 생긱지 않더군요. ㅎㅎ
이건 어디까지는 저의 경험~ ㅎㅎ
참고하세요~` ㅎ
'나의 플랫폼 > 안드로이드' 카테고리의 다른 글
[ Android ] java.util.concurrentmodificationexception (0) | 2012.01.11 |
---|---|
[ Android ] Receiver not registered (0) | 2011.12.19 |
[ Android ] Custom Listpreference 만들기. (0) | 2011.12.12 |
[ Android ] 전원 버튼 여부 확인 (0) | 2011.12.09 |
[ Android ] Keyguard 상태 확인 (0) | 2011.12.09 |