Probleme bei MVP Berechnung

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
snoob741
Beiträge: 76
Registriert: 03.04.2012, 22:36

Probleme bei MVP Berechnung

Beitrag von snoob741 »

Hallo,

aktuell versuche ich für meinen GLSL Schader die ModelViewProjektionsmatrix über die CPU vorzubrechnen. Bisher berechne ich diese im Shader
wie folgt:

Code: Alles auswählen

    uniform mat4 worldMatrix;
    uniform mat4 viewMatrix;
    uniform mat4 projectionMatrix;
   uniform mat4 MVPMatrix;

    vec4 worldSpaceVertex = worldMatrix * vec4(vertex.xy, 0, 1);
    vec4 viewSpaceVertex = viewMatrix * worldSpaceVertex;   
    gl_Position = projectionMatrix * viewSpaceVertex;

   // dies klappt nicht
   //gl_Position = MVPMatrix * vec4(vertex, 1.0); 
Berechne ich diese jedoch vor, basierend auf den gleichen Matrizen, die hier als Uniform übergeben werden, dann wird das Resultat verschoben gerendert,
d.h. auf der Z-Achse nach hinten versetzt. Die MVP berechne ich vor der Übergabe wie folgt:

Code: Alles auswählen

    brMatrix4 vp = m_viewMatrix * m_projMatrix;
    brMath::brMatrix4 mvp = vp*m_worldMatrix;
Habe ich hier irgendwo einen gedanklichen Fehler? Werde daraus grad irgendwie nicht schlau.
anonym
Beiträge: 79
Registriert: 15.07.2009, 07:35
Kontaktdaten:

Re: Probleme bei MVP Berechnung

Beitrag von anonym »

Code: Alles auswählen

gl_Position = projectionMatrix * viewSpaceVertex
            = projectionMatrix * viewMatrix * worldSpaceVertex
            = projectionMatrix * viewMatrix * worldMatrix * vec4(vertex.xy, 0, 1)

           != viewMatrix * projectionMatrix * worldMatrix * vec4(vertex.xy, 0, 1)
            = MVPMatrix * vec4(vertex.xy, 0, 1)
snoob741
Beiträge: 76
Registriert: 03.04.2012, 22:36

Re: Probleme bei MVP Berechnung

Beitrag von snoob741 »

Danke für den Schlag auf den Hinterkopf. Durch das ganze hin und her probiere ist mir nicht mal aufgefallen, dass ich die
Matrizen verdreht habe ...
Antworten