有没有一种方法可以将使用Android OpenGL ES 1.1绘制的对象组合在一起?

有没有一种方法可以将使用Android OpenGL ES 1.1绘制的对象组合在一起?,android,opengl-es,Android,Opengl Es,**我创建了一个类来画一条线。↓↓ public class LINETEST{ float[] vertices = null; private short[] indices = null; public FloatBuffer verticesBuffer; private ShortBuffer indexBuffer; private int LINE_NUMBER = 0; public LINETEST() { } public void draw(GL10 gl) {

**我创建了一个类来画一条线。↓↓

public class LINETEST{
float[] vertices = null;
private short[] indices = null;

public FloatBuffer verticesBuffer;
private ShortBuffer indexBuffer; 
private int LINE_NUMBER = 0;

public LINETEST() {

}

public void draw(GL10 gl) {

    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
    gl.glVertexPointer(3, GL10.GL_FLOAT, 0, verticesBuffer);
    gl.glLineWidth(2);
    gl.glColor4f(0f, 0f, 0f, 0f);

    gl.glDrawElements(GL10.GL_LINE_STRIP, indices.length, 
              GL10.GL_UNSIGNED_SHORT, indexBuffer); 

    gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}

public void setBuffer() {

            ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4);
            vbb.order(ByteOrder.nativeOrder());
            verticesBuffer = vbb.asFloatBuffer();
            verticesBuffer.put(vertices);
            verticesBuffer.position(0);

            ByteBuffer ibb = ByteBuffer.allocateDirect(indices.length * 2);
            ibb.order(ByteOrder.nativeOrder());
            indexBuffer = ibb.asShortBuffer();
            indexBuffer.put(indices);
            indexBuffer.position(0);            
}

public void setVertices(float[] verticesAl, short[] indicesAl, int number){

    this.vertices = verticesAl;
    this.indices = indicesAl;       
    this.LINE_NUMBER = number;

}

public int getLineNumber(){
    return this.LINE_NUMBER;
    }
}
**使用该类声明的数组对象的位置的值以不同的方式给出。↓↓

linetest=newlinetest[2000]

**每次画线时,我都会创建一个新对象。↓↓↓

public void setVertices(float[] vertice, short[] indice, int lineNumber){
    this.vertices = vertice;
    this.indices = indice;
    this.number = lineNumber;

 linetest[number] = new LINETEST();
 linetest[number].setVertices(vertices, indices, lineNumber);       
 linetest[number].setBuffer();  

}
@Override
public void onDrawFrame(GL10 gl) {
         if(vertices != null){
             if(linetest[number] != null){
                for(int i = 0; i<number; i++){
                    linetest[i].draw(gl);

                }
                 linetest[number].draw(gl);
             }

         }
}
**最后,我将绘制一个由渲染类的OnDrawFrame生成的对象。↓↓↓

public void setVertices(float[] vertice, short[] indice, int lineNumber){
    this.vertices = vertice;
    this.indices = indice;
    this.number = lineNumber;

 linetest[number] = new LINETEST();
 linetest[number].setVertices(vertices, indices, lineNumber);       
 linetest[number].setBuffer();  

}
@Override
public void onDrawFrame(GL10 gl) {
         if(vertices != null){
             if(linetest[number] != null){
                for(int i = 0; i<number; i++){
                    linetest[i].draw(gl);

                }
                 linetest[number].draw(gl);
             }

         }
}
@覆盖
公共框架(GL10 gl){
如果(顶点!=null){
if(linetest[number]!=null){

对于(int i=0;i如果我误解了这个问题,请原谅,但我相信您正在尝试绘制一个面(或多边形)而不是直线。如果顶点和索引缓冲区设置正确,则您可能只需要将基本体的类型从GL_LINE_STRIP更改为类似GL_TRIANGLE_STRIP的类型。您需要确保为您选择的基本体类型正确指定缓冲区,并且可能需要担心面剔除。从这里开始,您需要应用材质或纹理或两者来填充多边形。

当我试图翻译他们的翻译时,句子是笨拙的翻译。谷歌翻译我没有很好的英语。如果你,请原谅,我会用我的母语写一个句子,我想让你看看你的翻译。母语是韩语。저는 OpenGLES에서 선을 하나 그리고 그 선들을 연결해서 하나의 도형처럼 인식하여 내부를 채우고 싶습니다.