Moin an alle,
ich wollte gerne mit DirectX9 und der Fixed Function Pipeline (ich bin noch Anfänger!) ein dynamisches Cube Mapping programmieren und diese Cubemap dann als Environmentmap für mein Wasser (eine Ebene) in Kombination mit einer animierten Bumpmap nehmen. Das klappt auch wunderbar und sieht recht gut aus, ABER wenn ich eines meiner "Boote" (Objekte) aufs Wasser lasse, dann erscheint die "Spiegelung" des Objekts nicht korrekt am Objekt selbst, sondern irgendwo am Horizont meines Wassers.
Kann mir einer grundsätzlich sagen, wie die Renderaufrufe geschehen müssen, zu welchem Zeitpunkt mit welchen ViewMatrizen usw.? Muss denn die Camera beim Rendern in die Cubemap wirklich immer am Punkt 0,0,0 sein... was ist, wenn mein Objekt da auch gerade ist?
Ich danke euch schonmal im Voraus für eure Hilfe!
PS: Ich bin von einem SDK Beispiel ausgegangen, wobei das Flugzeug um eine Kugel fliegt.
Dynamisches Cube Mapping mit FFP
Re: Dynamisches Cube Mapping mit FFP
Neinsnipert hat geschrieben:Muss denn die Camera beim Rendern in die Cubemap wirklich immer am Punkt 0,0,0 sein...
Du brauchst zum korrekten rendern die Position der echten Kamera gespiegelt an der Reflektionsebene.
Weil die Cubemap eine Punktspiegelung darstellt. => Dann ist die Spiegelung deines Bootes auch nicht mehr am Horizont.
- TGGC
- Establishment
- Beiträge: 569
- Registriert: 15.05.2009, 18:14
- Benutzertext: Ich _bin_ es.
- Alter Benutzername: TGGC
- Echter Name: Ich _bin_ es.
- Wohnort: Mainz
- Kontaktdaten:
Re: Dynamisches Cube Mapping mit FFP
Eine Cubemap stellt nur eine Annaehrung bei Reflektionen dar. Der maximale Fehler duerfte proportional zum Verhaeltnis von maximalen Abstand eines Objektes, das spielgelt zum Mittelpunkt der Cubemap zu minimalen Abstand eines gespiegelten Objektes zum Mittelpunkt der Cubemap. Darum hat man in einer Cubemap meist nur entfernte Objekte, das haelt den Fehler klein. Wasserspiegelungen sollten man lieber machen, indem man die Welt ein zweites mal rendert, dabei aber um eine Matrize transformiert, welche eine Spiegelung an der Wasserebene repraesentiert. Dabei wird dann eine Clipping Plane so gesetzt, das nur die Objekte unter der Wasserflaeche dargestellt werden. f'`8k
[ ] Autocogito
Gruß, TGGC (Was Gamestar sagt...)
[ ] Autocogito
Gruß, TGGC (Was Gamestar sagt...)