Der Unterschied
zwischen Schattenmap- und Raytraceschatten, liegt vorallem in ihrer
Generierung:
Bei Schattenmaps
errechnet Max für das jeweilige Licht ein (ich nenn es einfach
mal so) "Lichtmap". Stellt euch vor Ihr rendert aus der "Lichtsperspektive"
(man kann diese Ansicht auch tatsächlich in den Max-Viewports anwählen)
ein Bild. D.h. eure Lichtquelle wird zur Kamera. So kann Max feststellen
wie stark die Objekte, und von welcher Seite sie angleuchtet werden.
Anhand dieses Maps kann Max also feststellen wo Objekte Licht abbekommen,
und wo nicht. Dieses Map wird sozusagen auf die Szene projeziert, und
so werden Bereiche, die hinter den beleuchteten Objekten liegen, ins
Dunkel gezogen.
Wenn ihr also mal tatsächlich ein Bild aus der Lichtperspektive
rendert, werdet ihr nie Schatten sehen (ist ja auch logisch, da ihr
sozuagen in Richtung der Lichtstrahlen schaut). Ist verdammt kompliziert
auszudrücken, vor allem wenn man selbst nur eine ungefähre
Ahnung von der Funktionsweise der Schattenmaps hat ;-)
Tatsache ist das
ein richtiges Map erstellt wird (z.B. 512x512 Pixel), das die Licht-Schatteninfo
in sich trägt. Das da bei großen Szenen schonmal der eine
oder andere Fehler auftreten kann (zackige Schatten, Moiré-Effekte...)
ist klar.
Außerdem
können Schattenmaps keine transparenten Objekte erfassen (das liegt
eben daran das es nur S-W Maps sind, Hell und Dunkel). Ein Glas wird
also immer einen schwarzen Schatten werfen (es sei denn man schließt
es vom Schattenwurf komplett aus).
Raytraceschatten
sind um einiges exakter. Bei ihnen senden die Lichtquelle tatsächlich
Strahlen aus, die, sobald sie auf ein Objekt oder Polygon treffen, absterben.
Der Bereich dahinter bleibt im dunkeln. Raytraceschatten tasten also
tatsächlich die Geometrie ab (und zwar jedes kleinste Detail),
werden somit exakt berechnet. Daraus resultiert der Nachteil, das Raytraceschatten
immer harte Schatten sind (und keinen weichen Rand wie Shadowmaps haben).
Außerdem
erkennen Raytraceschatten transparente Objekte. Je nach Opazität
des Objekts wird ein ankommender Lichtstrahl mehr oder weniger abgeschwächt.
Der Bereich dahinter nur teilweise erleuchtet.