Der Shadercode ist dabei tatsächlich garkein Problem, problematisch ist es, Aliasing loszuwerden. Dafür gibt es verschiedene Techniken, die fast alle irgendwelche transformationen der Lichtviewprojectionsmatrix sind. Diese wird außerhalb der Shader berechnet, allerdings werden dazu einige Mathekenntnisse benötigt, die einem in der Schule zumindest nicht beigebracht werden. Geschwindigkeit kostet das dadurch, dass mindestens ein zusätzlicher View pro Lichtquelle gerendert werden muss.
Ich zum Beispiel habe heute mal wieder beschlossen mich an der hier vorgestellten Technik zu versuchen:
http://www.cg.tuwien.ac.at/~scherzer/lssm/index.htmlAnsonsten kannst du dir auch dies einmal angucken:
http://www.coniserver.net/ubb7/ubbthreads.php?ubb=showflat&Number=178202