Ich habe die letzten Tage damit zugebracht shadows.c zum laufen zu bekommen und hatte dabei mit mehreren Problemen zu kämpfen:

  • Es gibt mehrere modelle und map entities mit modellen und keine blöcke. Fast überall sind eigene shader drauf, auch gibt es wasser mit planaren reflektionen. Problem war, dass offenbar mehr oder weniger random irgendein shader oder so, je nachdem was grad sichtbar war für mat_stencil benutzt wurde, weshalb mal das ganze bild schwarz war, mal alles korrekt war und noch ein paar andere varianten. Die Lösung für mich war jetzt mat_stencil einen eigenen shader zuzuweisen der einfach nur die schatten rausgibt.
  • Auf der Suche nach der Lösung ist mir aufgefallen, dass bei render_stencil im Manual mehrfach der Begriff des Stencil Buffers genutzt wird, aber in falschem Kontext, oder zumindest irgendwie nicht schlüssig, wie zum Beispiel "Ist diesem Pointer eine Bitmap zugewiesen, wird der Inhalt des Stencil-Buffers nach dem Rendern in diese Bitmap kopiert und nicht über den Bildschirm gezeichnet". Ich habe eher den Eindruck, dass der Stencil Buffer so wie er gedacht ist, als Maske verwendet wird um dann einen Fullscreenquad maskiert in diese Textur zu rendern. Das hat mich erst etwas verwirrt und sollte meiner Meinung nach angepasst werden.
  • Liegt es an meinem eigenen Shader für mat_stencil oder werden die Schatten nicht vom Nebel beeinflusst? Ich habe den Nebel jetzt bei mir einfach mit in die vp_pssm.fx gepackt.
  • Ich habe einiges ausprobiert um die Schatten einigermaßen hübsch einzustellen, wirklich gelungen ist es mir allerdings nicht. Schön wäre eine Option die Schatten auf einen Teil von clip_far zu begrenzen, bei meinen Versuchen dies umzusetzen hat sich einiges sehr komisch verhalten. Überhaupt habe ich den Eindruck, dass die Matrizen noch irgendwie fehlerhaft sind, da ich eigentlich bei meinen Einstellungen eine deutlich bessere Qualität erwartet habe.
  • Wichtig wäre vor allem aber das Flackern an den Rändern zu minimieren, da gibt es die Möglichkeit, die Depthmapviews in einem Raster der Texelgröße zu halten.
  • Es wäre toll eine plug and play funktionalität zu haben um die Schatten in eigenen shadern zu nutzen ohne ein extra view und eine postprocessing stage zu benötigen.
  • Im Manual sollte erwähnt werden, dass man nach dem wechseln der Auflösung einen Frame warten muss um die Schatten neu zu aktivieren, ansonsten wird es bei mir extrem langsam.


Es gibt sicher noch mehr, aber mehr fällt mir grad noch nicht ein laugh.