Java 如何判断纹理在OpenGL/libgdx中的绘制位置?
在OpenGL中,我们如何知道哪个纹理与哪个网格相关?在本例中,我们告诉网格我们使用纹理坐标,但如果有多个纹理,我们不会说是哪个纹理,也不会告诉纹理绘制的位置。它是如何工作的?我知道UV的概念,但不知道纹理的绘制位置:Java 如何判断纹理在OpenGL/libgdx中的绘制位置?,java,opengl,textures,libgdx,render,Java,Opengl,Textures,Libgdx,Render,在OpenGL中,我们如何知道哪个纹理与哪个网格相关?在本例中,我们告诉网格我们使用纹理坐标,但如果有多个纹理,我们不会说是哪个纹理,也不会告诉纹理绘制的位置。它是如何工作的?我知道UV的概念,但不知道纹理的绘制位置: mesh = new Mesh(true, 4, 6, new VertexAttribute(VertexAttributes.Usage.Position, 3,"attr_Position"), new VertexAttribute(Usage.Tex
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,UV是为了纹理本身,而不是世界上的什么地方?关于activeTexture,你能告诉我2个网格和第二个纹理会是什么样子吗?在世界的哪个地方,你指定使用对象的x,y,z坐标,当然。。。如果要执行多重纹理,基本上只需绑定多个纹理,并使用GlactiveTextureRegl_TEXTURE0;然后是GlactivateTexturegl_TEXTURE1;等等然后在着色器中有各种方法来区分要使用的纹理和使用时间@Vallentin所以如果你想切换网格的纹理,你有两个纹理变量。。。如何判断GL_TEXTURE0是第一个纹理而GL_TEXTURE1是第二个纹理?如果您只想切换模型/网格的纹理,那么只需绑定另一个纹理。。。玻璃纤维;用于着色器,我无法真正看到着色器,也无法实际将活动id绑定到着色器。