2014-01-10 61 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座標,當然......如果你想執行「多紋理」,基本上只需綁定多個紋理,並使用'glActiveTexture(GL_TEXTURE0);'然後是'glActiveTexture(GL_TEXTURE1);'等等......然後在着色器中有各種方法來區分使用哪種紋理以及何時使用! – Vallentin

回答