Seite 1 von 1

Probleme bei MVP Berechnung

Verfasst: 18.12.2013, 09:56
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.

Re: Probleme bei MVP Berechnung

Verfasst: 18.12.2013, 16:40
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)

Re: Probleme bei MVP Berechnung

Verfasst: 18.12.2013, 21:03
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 ...