Schatten mit JOGL

Matthias K.

Mitglied
Hallo zusammen!
Ich lerne gerade den Umgang mit JOGL und JBullet.
Jedoch weiss ich nicht, wie ich mit JOGL Schatten erzeugen kann.
Das Problem ist, dass ich diese Schatten für alle Formen und beliebig viele
Lichtquellen darstellen lassen möchte.

Ich hoffe hierbei kann mir jemand weiterhelfen.

Gruß,
Matthias
 
Schau mal in dem Thema unter diesem. 😀
Wenn du es hinbekommst, kannst du versuchen den Stencil-Buffer zu verwenden. Allerdings muss man dafür das Schatten-Volumen berechnen, was mathematisch nicht ganz einfach ist. Dafür bekommst du damit wahrscheinlich die besten/schönsten Ergebnisse.
Schatten mithilfe des Stencil-Buffers
 
Moin,

allgemein sollte man den Aufwand für Schatten nicht unterschätzen. Um Schatten darstellen zu können, wird globales Wissen über die gesamte Szene benötigt. Dieses existiert aber auf der Grafikkarte so erstmal nicht. Unter OpenGL werden deshalb "Tricks" benötigt, um den Eindruck eines Schattens zu ermöglichen. Im Wesentlichen gibt es dabei shadow maps und shadow volumes. Von beiden Verfahren gibt es mindestens 100derte verschiedene Ausprägungen. Alle haben Vor- und Nachteile, alle treffen Grundannahmen über die Szene, um überhaupt anwendbar zu sein und alle verändern die bisherige "Render-Schleife" (multi pass).

Eine addShadow() oder glEnable(GL_SHADOW) kann es deshalb so nicht geben. Einen Algorithmus für "alle Formen" und "beliebig viele Lichtquellen" dürfte sich auch nur innerhalb gewisser Rahmenbedingungen realisieren lassen (wenn überhaupt). Und mit der fixed function pipeline ist man davon noch weiter entfernt als einem lieb sein kann.

Gruß,
Fancy
 
Danke für die schnellen Antworten! 😀

Ich hab mir schon gedacht, dass das ganze nicht einfach wird.

Naja, ich werd jetzt erst mal die Tutorials durcharbeiten und gucken, wie
weit ich komme :rtfm:

---------------------------------------------------------------------------------------------------------------------
--> Noch ne Frage nebenbei, kennt sich einer mit JBullet ohne JME, jpct etc. aus?
Ich hab zwar schon fast meine Ziele in diesem Gebiet erreicht, aber ein Informationsaustausch
wäre in Anbetracht der nicht existenten Tutorials nützlich 😀
---------------------------------------------------------------------------------------------------------------------

Gruß,
Matthias
 

Neue Themen


Zurück
Oben