- Forum-Beiträge: 14
11.07.2017, 00:09:12 via Website
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 !