Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何判断纹理在OpenGL/libgdx中的绘制位置?_Java_Opengl_Textures_Libgdx_Render - Fatal编程技术网

Java 如何判断纹理在OpenGL/libgdx中的绘制位置?

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

在OpenGL中,我们如何知道哪个纹理与哪个网格相关?在本例中,我们告诉网格我们使用纹理坐标,但如果有多个纹理,我们不会说是哪个纹理,也不会告诉纹理绘制的位置。它是如何工作的?我知道UV的概念,但不知道纹理的绘制位置:

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绑定到着色器。