2014-01-10 2 views
0

OpenGL에서 어떤 텍스처가 어떤 메쉬와 관련되어 있는지 어떻게 알 수 있습니까? 이 예에서는 텍스처 좌표를 사용하는 메쉬에 대해 설명하지만, 둘 이상의 텍스처가있는 경우 텍스처를 말하지 않으며 그릴 곳을 텍스처에 지정하지 않습니다. 어떻게 작동합니까? (나는의 UV의 개념을 알고,하지만 난 질감이 그려집니다 ""의 개념을 모르는) :OpenGL/libgdx에서 텍스처가 그려지는 위치를 알려주는 방법은 무엇입니까?

mesh = new Mesh(true, 4, 6, 
    new VertexAttribute(VertexAttributes.Usage.Position, 3,"attr_Position"), 
    new VertexAttribute(Usage.TextureCoordinates, 2, "attr_texCoords")); 
texture = new Texture(Gdx.files.internal("data/img.png")); 
mesh.setVertices(new float[] { 
     -1024f, -1024f, 0, 0, 1, 
     1024f, -1024f, 0, 1, 1, 
     1024f, 1024f, 0, 1, 0, 
     -1024f, 1024f, 0, 0, 0 
}); 


@Override 
public void render() { 
    // Texturing ---------------------/
    gl.glActiveTexture(GL10.GL_TEXTURE0); 
    gl.glEnable(GL10.GL_TEXTURE_2D); 
    texture.bind(); 

    mesh.render(GL10.GL_TRIANGLES); 
} 
+0

질감이 그려 = = UV 좌표 ... 사용되는 텍스처 =='glActiveTexture()' – Vallentin

+0

@Vallentin 감사합니다. Vallentin, UV는 텍스처 자체를위한 것이지, 세계 어디가 아닙니까? activeTexture에 대해서, 2 메쉬와 두번째 텍스쳐가 어떻게 될지 말해 줄 수 있습니까? – Paul

+1

세계에서, 물론 x, y, z 좌표를 사용하여 객체를 지정할 수 있습니다 ... "Multi Texturing"을 수행하려면 기본적으로 여러 텍스처를 바인딩하고 'glActiveTexture (GL_TEXTURE0);'를 사용하십시오. 그리고 나서'glActiveTexture (GL_TEXTURE1);'등등 ... 그러면 Shader에서 사용할 텍스처와 때를 구별하는 다양한 방법이 있습니다! – Vallentin

답변

관련 문제