OpenGL ES 2 mit Matrizen

  • Antworten:3
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 14

11.07.2017, 00:09:12 via Website

Hallo zusammen.

Ich habe angefangen ein Game mit OpenGL ES 2 zu programmieren.

Ich habe gerade einen Versuch gestartet,

In 2D hat das einwandfrei funktioniert.
Aber nun versuche ich das ganze in die 3. Dimension zu bringen und scheitere hier vermutlich an den Matrizen.

Hier der Quellcode um den es geht.

Vertex-Shader:

attribute vec4 a_Position;

uniform mat4 u_Position;

void main()
{
gl_Position=u_Position*a_Position;
}

Fragment-Shader:

precision mediump float;

uniform vec4 u_Color;

void main()
{
gl_FragColor=u_Color;
}

und meine Draw-Methode:

public void Draw()
{
    vertexBuffer.position(0);
    float[] ProjectionsMatrix,ModelviewMatrix,mVPMatrix;

    ProjectionsMatrix=new float[16];
    ModelviewMatrix=new float[16];
    mVPMatrix=new float[16];

    final float ratio = (float) width / height;
    final float left = -ratio;
    final float right = ratio;
    final float bottom = -1.0f;
    final float top = 1.0f;
    final float near = 1.0f;
    final float far = 10.0f;

    frustumM(ProjectionsMatrix, 0, left, right, bottom, top, near, far);
    setIdentityM(ModelviewMatrix,0);

    multiplyMM(mVPMatrix,0,ModelviewMatrix,0,ProjectionsMatrix,0);

    u_ColorLocation=glGetUniformLocation(Shader,"u_Color");
    a_PositionLocation=glGetAttribLocation(Shader,"a_Position");
    u_PositionLocation=glGetAttribLocation(Shader,"u_Position");

    glUseProgram(Shader);

    glVertexAttribPointer(a_PositionLocation,POSITION_COMPONENT_COUNT,GL_FLOAT,false,0,vertexBuffer);
    glEnableVertexAttribArray(a_PositionLocation);
    glUniformMatrix4fv(u_PositionLocation,1,false,mVPMatrix,0);

    glUniform4f(u_ColorLocation,1f,1f,1f,1f);
    glDrawArrays(GL_TRIANGLES,0,6);
}

Ich kriege hier nichts angezeigt.
Die Shader werden ohne Fehler kompiliert.

Vieleicht kann mir jemand weiterhelfen ?

Danke !

Antworten
  • Forum-Beiträge: 14

11.07.2017, 08:14:34 via Website

Hallo.

Hier habe ich auch noch die Vertices.

private float[] Plane={
        // Triangle 1
        -.25f, -.25f, 1.5f,
         .25f,  .25f, 1.5f,
        -.25f,  .25f, 1.5f,
        // Triangle 2
        -.25f, -.25f, 1.5f,
         .25f, -.25f, 1.5f,
         .25f,  .25f, 1.5f
};

Danke !

Antworten
  • Forum-Beiträge: 14

11.07.2017, 08:57:22 via Website

Ausserdem konnte ich noch einen Error-Code :1282 für DrawArray ermotteln.

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.166

11.07.2017, 09:15:14 via App

Hallo Forest!

Bitte nicht pushen, gib doch der Community ein wenig Zeit!

Wenn sich jemand findet, der eine Antwort zu deiner Frage weiß, dann wird er/sie es bestimmt hier posten, also hab noch ein wenig Geduld... :?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten

Empfohlene Artikel