Beiträge von source_of_truth

    Erst einmal danke ich schon einmal für deine Hilfe. :thumb: Geschafft ist es aber noch nicht, denn ich habe nur ein Objekt, dass ist das Verrückte. Sprich, die Model-Matrix ist gleich.

    Die cam.applyModelViewMatrix() Methode verschiebt nur mein Objekt, bzw erzeugt eine neue ModelViewMatrix für die Szene, abhängig von den Cameraeinstellungen.

    Code
    glLoadIdentity();
            glRotatef(pitch, 1, 0, 0);
            glRotatef(yaw, 0, 1, 0);
            glRotatef(roll, 0, 0, 1);
            glTranslatef(-x, -y, -z);

    Diese werden wie oben zu sehen in der renderShadow() überschrieben, die Kamera wird angepasst, die ShadowMap gerendert


    Entweder du lädst diese für jedes Objekt hoch oder du verwendest gl_ModelViewMatrix und berücksichtigst die inverse View-Matrix in der gl_TextureMatrix[1] um den View-Anteil aufzuheben.

    Aber die gl_TextureMatrix[1] wird bei mir doch durch: bias * shadow_projection * shadow_modelview berechnet, damit werden die Vertices doch direkt entsprechend transformiert.

    Standart ist doch diese Gleichung: projection * view * model * vertex = projection * modelview * vertex
    Schatten mit der inversen Matrix funktioniert so: shadow_projection * shadow_modelview * modelview^⁻1 * modelview * vertex
    und das ist doch gleich: shadow_projection * shadow_modelview * vertex
    was mein Code (plus den bias) doch berechnet, oder bin ich wirklich zu blöde :) ?

    Code
    glLoadMatrix(b);
    glMultMatrix(p);
    glMultMatrix(m);
    //matrix is now stored in gl_TextureMatrix[1]
    Code
    shadowCoordinate = gl_TextureMatrix[1] * gl_Vertex;