2012-02-03 4 views
0

나는 libgdx로 메쉬를 만들었고 메쉬를 약간 채우려고합니다.안드로이드에서 libgdx를 사용하는 큐브 메쉬

create() { 
     if (bigMesh == null) { 
      bigMesh = new Mesh(true, 8, 8, 
        new VertexAttribute(Usage.Position, 3, "a_position"), 
        new VertexAttribute(Usage.ColorPacked, 4, "a_color")); 

      bigMesh.setVertices(new float[] { 
        0, -0.5f, -4, Color.toFloatBits(255, 0, 0, 255), 
        1, -0.5f, -4, Color.toFloatBits(255, 0, 0, 255), 
        1, 0.5f, -4, Color.toFloatBits(255, 0, 0, 255), 
        0, 0.5f, -4, Color.toFloatBits(255, 0, 0, 255), 

        1, 0.5f, -3, Color.toFloatBits(0, 255, 0, 255), 
        1, -0.5f, -3, Color.toFloatBits(0, 255, 0, 255), 
        0, -0.5f, -3, Color.toFloatBits(0, 255, 0, 255), 
        0, 0.5f,-3, Color.toFloatBits(0, 255, 0, 255) 
        }); 
      bigMesh.setIndices(new short[] { 0, 1, 2, 3,4,5,6,7}); 
     } 
} 

render(){ 
     Gdx.gl.glClearColor(0,0,0,1); 
     Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 
     bigMesh.render(GL10.GL_TRIANGLE_STRIP); 
} 

사용하는 공감 음계는 어느 것입니까? 나는 PerspectiveCamera를 사용하고있다.

+1

참고로 꼭지점과 인덱스는 입방체를 만들지 않습니다. –

답변

0

http://code.google.com/p/libgdx-users/wiki/MeshColor을 참조하십시오. 전체 모델의 기본 색상 또는 정점 색상을 사용할 수 있습니다.

예에서 정점 별 색상 정보를 얻었으므로 정점을 변경해야하는 색상을 변경하고 메시에서 setVertices을 다시 호출하십시오.

+0

문제를 해결했습니다. 이제 큐브 메쉬가 있지만 이미지 텍스처를 추가하고 싶습니다. 질감이 올바르게로드되어 있지만 윗면에 입방체에 넣는 방법이 없습니다. 텍스처는 단지 이미지 일뿐입니다. 나는 지금 사용하여 렌더링 : \t \t 렌더링 (GL10.GL_TRIANGLES); 다른 질문이 있습니다. 3D 플랫폼에서 작동 할 수있는 셰이더가 있습니까? 감사합니다. – user1187691

+0

새로운 질문을하십시오. (아직 질문이 없는지 검색 한 후에) 물론 문의하십시오. –

0

큐브에서 이미지를 그리려면 화면에서 메쉬를 그리기 전에 render 메서드에 다음 두 줄의 코드를 추가해야합니다.

Gdx.graphics.getGL10().glEnable(GL10.GL_TEXTURE_2D); 
texture.bind(); 
+0

큐브의 각면마다 다른 텍스처를 그릴 수 있습니까? – Dhaval