질감 아트 레이어를 사용하여 OpenGL에서 텍스처링하는 데 문제가 있습니다. 2 차원 게임을 만드는 중이며 POT 비트 맵을 오브젝트에 텍스처링하는 방법을 알고 있지만 성능상의 이유로 텍스처 맵을 사용하도록 코드를 변환하는 튜토리얼을 찾을 수없는 것 같습니다. 여기에 현재 작업 객체 생성 및 텍스처 구현을위한 코드가 있습니다.android에서 텍스처 아트라스 및 OpenGL 1.1을 사용한 샘플 텍스처링
public void createTexture(Bitmap bmp, GL10 gls, int texturename)
{
this.gl = (GL11) gls;
this.TextureName = texturename;
bombBmp = bmp;
VertexBuffer = null;
TextureBuffer = null;
IndexBuffer = null;
ByteBuffer byteBuffer = ByteBuffer.allocateDirect(12 * 4);
byteBuffer.order(ByteOrder.nativeOrder());
VertexBuffer = byteBuffer.asFloatBuffer();
VertexBuffer.put(new float[] { 0, 0, 0.0f, 0, -h, 0.0f, w, 0, 0.0f, w, -h, 0.0f });
VertexBuffer.position(0);
byteBuffer = ByteBuffer.allocateDirect(8 * 4);
byteBuffer.order(ByteOrder.nativeOrder());
TextureBuffer = byteBuffer.asFloatBuffer();
TextureBuffer.put(new float[] { 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f });
TextureBuffer.position(0);
byteBuffer = ByteBuffer.allocateDirect(6 * 2);
byteBuffer.order(ByteOrder.nativeOrder());
IndexBuffer = byteBuffer.asShortBuffer();
IndexBuffer.put(new short[] { 0, 1, 2, 1, 3, 2 });
IndexBuffer.position(0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, this.TextureName);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bombBmp, 0);
bombBmp.recycle();
bombBmp = null;
}
내 댓글에 응답 텍스처 비트 맵을
텍스처 애스 타일에 관해 특별히 이해하지 못합니까? 텍스처 좌표가 어떻게 작동하는지 알고 있습니까? 나는 누군가가 당신을 위해 당신의 코드를 다시 작성할 것이라고 생각하지 않는다. 당신이 이해할 수없는 어떤 특정한 개념이 있다면 도움을 얻을 수있을 것이다. – Tim
텍스쳐 아틀라스에서 서브 이미지를 바인딩하는 법을 모르겠다. 이미지를 전체적으로 바인딩하는 법만 알고있다. texImage2d를 먼저 사용하고 texSubImage를 사용해야 하나? 또는 texSubImage를 즉시 사용해야합니까? 감사합니다 – Keiichi
어떻게 해결 했습니까? – hadez30