Pythonstuff GLSL in English Pythonstuff GLSL auf Deutsch Pythonstuff GLSL Pythonstuff
PythonStuff Home
 

Shadow Maps mit Frame Buffer Objects (FBOs) in Pyglet

Warnung - Baustelle !

Die Demo zeigt die Verwendung von FBO mit Pyglet.

Im Moment ist das eine grobe Adaption des original C-Codes von http://www.fabiensanglard.net/shadowmapping/index.php

Alle Lobeshymnen sollten an Fabien Sanglard gehen, der das Tutorial und die Originalimplementierung gemacht hat.

Ich habe nur ein wenig mit dem Moire-Artefakt herumgespielt. Ich glaube, dass der einfachste Weg die Artefakte loszuwerden darin besteht, den Winkel zwischen Licht und der Flächennormalen zu betrachten und bei Streiflicht die Shadowmap überhaupt nicht zu befragen, sondern entweder

  • “hier ist Schatten” zu sagen und es dabei belassen oder
  • (viel bessere) detaillierte Oberflächenschatten mit Parallax Mapping zu erzeugen (nicht implementiert!).

Das Programm kann allerdings zusätzlich die Kamera bewegen:

  • Q = Quit
  • Leertaste ändert die Drehgeschwindigkeit der Lichtquelle: schnell ⇒ langsam ⇒ stop ⇒ schnell
  • A,S,D,F bewegt die Kamera
  • R Reset der Kamera

FBO Shadow Map Source Code(shadowmap.py)

Shadowmap.py Screenshot


English version, Start
Impressum & Disclaimer