Nebel in OpenGL
-
Hallo!

Bin grade dabei eine Landschaft zu programmieren und möchte zur Begrenzung zunehmenden Nebel an allen Seiten einfügen. Mit Hilfe der Konstanten GL_FOG_START und GL_FOG_END lässt sich jedoch nur der z-Wert an dem der Nebel beginnt bzw. endet festlegen. Da ich aber den Nebel an allen Seiten haben möchte, müsste ich ja auch Werte für die x-Achse festlegen können. Ist das in OpenGL auch irgendwie möglich?

Danke schonmal im Voraus für Antworten!
Zocker950
-
Du verwechselst da ein bisschen was
. Der z-Wert hat in diesem Fall nix mit der z-Achse des aktuellen Koordinatensystems zu tun, sondern mit dem z-Wert, der nach Transformation und Projektion im z-Buffer landet, also die "Tiefe eines Pixels im Bildschirm". Der Standard-Nebel ist ziemlich eingeschränkt, alles was gemacht wird, ist die Farbe eines Pixels abhängig vom Abstand zum Betrachter mit der Farbe des Nebels zu verrechnen; räumlich abgegrenzte Nebelfelder, wie du das vorhast, wirst du damit nicht erreichen können. Evtl. kannst du das aber mit Extensions erreichen (hab mal was über voluminösen Nebel gelesen, ob das das ist was du möchtest, weiß ich nicht...), ansonsten hilft wohl nur der Umweg über Pixelshader.
Notfalls kannst du auch die Nebelparameter abhängig von Standpunkt und Blickrichtung des Betrachters ändern, um diese Nebelfelder zu simulieren, wirklich schöne Ergebnisse wirst du aber damit wohl nicht erreichen...Grüße
Martin
-
Oh, dann hab ich da wohl was falsch verstanden mit dem z-Wert.

Danke für die Hilfe. Werde mir das mit dem Nebel wohl nochmal genauer durchlesen müssen, bevor ich mit solchen schwierigen Dingen anfange.
Grüße
Zocker950