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);
}
其中紋理繪製= = UV座標......使用哪種紋理=='glActiveTexture()' – Vallentin
@Vallentin謝謝Vallentin,UV是紋理本身,而不是世界上的哪個地方?關於activeTexture,你能告訴我如何使用2個網格和第二個紋理? – Paul
在這個世界上,你指定使用對象x,y,z座標,當然......如果你想執行「多紋理」,基本上只需綁定多個紋理,並使用'glActiveTexture(GL_TEXTURE0);'然後是'glActiveTexture(GL_TEXTURE1);'等等......然後在着色器中有各種方法來區分使用哪種紋理以及何時使用! – Vallentin