Ich schreibe eine kleine isometrische 2D-Engine in C ++ und versuche, Echtzeit-Schattenwurf zu implementieren. Ich bin einem einfachen Ansatz gefolgt, der auf dieser Seite beschrieben wird, und hier ist das Ergebnis (das Licht befindet sich an derselben Position wie der gelbe Würfel):
Das Ergebnis ist sehr schön, aber es fehlen Schatten an den Wänden und auf den Würfeln. Hier ist ein Beispiel, wie es aussehen sollte (ich habe erwartete Schatten in Grün gezeichnet):
Alle gezeichneten Würfel bestehen einfach aus 3 2D-Quadern an einer XY-Position und mit einer Z-Tiefe (z = x + y). Ich benutze OpenGL mit einer orthographischen Matrix (glOrtho). Schatten werden mit dem Schablonenpuffer gezeichnet.
Ich bin auf der Suche nach Ressourcen oder Lösungen, die mir helfen, diese Implementierung des Schattenwurfs abzuschließen.
Danke vielmals!