마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

OpenGL ES Texture에 관련한 질문입니다.

0 추천

안드로이드 개발중 OPenGL ES 의 Texture에서 막혀 이렇게 질문을 올리게 됬습니다.

실제 다른 OS에서는 구현이 되는데 안드로이드에서 구현시 텍스쳐가 깨지는 일이 발생했습니다.

opengles 1.1로 구현하였습니다.

 

구현부

     gl.glFrontFace(GL10.GL_CCW);
     gl.glBindTexture(GL10.GL_TEXTURE_2D, m_textures[0]);
    gl.glActiveTexture(GL10.GL_TEXTURE0);
     gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
     verticesBuffer.position(0);
     gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
     
        gl.glEnableClientState(GL10.GL_NORMAL_ARRAY);
 
        verticesBuffer.position(12);
        gl.glNormalPointer(GL10.GL_FLOAT, 0, normalBuffer);
        
        verticesBuffer.position(24);
        gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer);
        gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
 
        gl.glDrawArrays(GL10.GL_TRIANGLES, 0, test/8);
 
        gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);  // Disable texture-coords-array (NEW)
        gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
        gl.glDisable(GL10.GL_CULL_FACE);
 
텍스쳐  부분
 
      gl.glGenTextures(1, m_textures, 0);
 
     gl.glBindTexture(GL10.GL_TEXTURE_2D, m_textures[0]);   // Bind to texture ID
     gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
     gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
 
     InputStream istream = mContext.getResources().openRawResource(R.drawable.texture0);
     Bitmap bitmap;
     try {
        bitmap = BitmapFactory.decodeStream(istream);
     } finally {
        try {
           istream.close();
        } catch(IOException e) { }
     }
 
     GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
     bitmap.recycle();

제발 뭐라도 좋으니 답변 부탁드립니다. 

익명사용자 님이 2013년 6월 26일 질문
2013년 7월 11일 수정

1개의 답변

0 추천
텍스처의 경우 2의 배수의 사이즈를 가져야하는 것으로 알고 있습니다.

texture와 관련해서 pow 하는 것을 검색해 보시는건 어떠세요?
익명사용자 님이 2013년 6월 27일 답변
답변 감사합니다. 일단 테스트된 이미지 사이즈는 32x32,256x256,1024x1024 입니다.  3가지 전부 같은 현상이 발생합니다.
...