PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spiegelung auf Autokarosserie


Huhamamba
2005-12-08, 13:38:59
Hab als Techniklaie eine Frage bezüglich der Spiegelung auf gekrümmten Flächen, besonders auf Autos.
Wie werden diese auf dem Wagen eigentlich erstellt bzw. was ist die beste Lösung aus Preis/Leistung dafür? Von Forza Motorsport für die Xbox weiß ich, dass eine Umgebungtextur der Strecke auf die Wagentextur gespeichert wird, diese jedoch aus Performancegründen nur mit 15 fps abgespielt wird, weshalb die Spiegelungen so seltsam rumzucken. Bei PGR3 für die Xbox360 wirkt das ganze schon wesentlich akkurater und glaubwürdiger, es spiegeln sich jedoch auch dort keine anderen Autos im Lack der eigenen Karre, dafür aber sogar die Leuchtreklamen und ohne dass alles wie sonst üblich pixelig wirkt. Werden dort diese Spiegelungen per Shader erzeugt und aus Performancegründen die "Auto auf Auto"-Reflexion deaktiviert, oder wird auch dort nur mit Umgebungstexturen auf den Lack gearbeitet, weshalb sich bewegende Objekte wie die konkurrierenden Fahrzeuge gar nicht in Echtzeit gespiegelt werden können?

Ich meine, immerhin funktioniert doch in Far Cry die Spiegelung auf der Wasseroberfläche auch erst ab DX8-GPUs und schaut ihm DX9-Mode nochmals ein Stückchen besser aus, also wird da mit Shadern gearbeitet (weshalb auch bewegliche Objekte mitberechnet werden). Doch wie verhält es sich nun mit Rennspielen? Wenn dort jedoch nur die Methode mit den Environmental-Maps funktioniert, dürfte man in Spielen wie GTA eingentlich auch niemals solche Spiegelungen - zumindest in befriedigender Qualität *g* - zu Gesicht bekommen können, da so eine große Spielwelt einfach nicht auf einmal als "Spiegelungstextur" für die Karosserie im Speicher der Konsole passt (da mit immer neueren Konsolengenerationen auch die Texturen der "echten" Umgebung immer hochauflösender werden...), hm?!

Und was schätzt ihr, wann endlich die Spiegelungen auf dem Lack (bevorzugt per Shader, falls diese Methode überhaupt möglich ist?) absolut realitätsgetreu sind und jedes Detail flüssig gespiegelt werden kann (wenn man jetzt Radiosity und Realtime-Raytracing außen vor lässt, oder wird letzteres dazu benötigt?!)? Könnte dies vielleicht bereits schon bei PGR4 und GT5 auf den NextGen-Konsolen der Fall sein? :D


Fragen über Fragen...^^

Neomi
2005-12-08, 15:08:49
Man nimmt eine Cubemap und rendert vom Mittelpunkt des Autos aus alle sechs Seiten. Mit dem Reflektionsvektor (den man aus Normale und Vektor zur Kamera berechnet) macht man dann im Pixelshader einen Lookup in diese Cubemap.

Was sich alles im Lack spiegelt, hängt davon ab, was alles in die Cubemap gerendert wird. Da das alles aber vom Mittelpunkt des Autos aus gerendert wird (und nicht von den unendlich vielen Punkten der Oberfläche aus), ist die Reflektion leicht verzerrt.

Ob bewegliche Objekte in der Spiegelung vorhanden sind oder nicht, hat nichts mit den Shadern zu tun. Es ist nur eine (in dem Fall berechnete) Textur, wie sie zustande kommt ist dem weiterverarbeitendem Shader egal. Es ist auch völlig egal, wie groß die Spielwelt ist. Die Reflektion wird von einem Punkt aus berechnet, genau wie ein Bild für den Monitor von einer Kameraposition aus berechnet wird.

Simon
2005-12-08, 15:16:40
...Cubemap...
Dafür braucht man nichtmal Shader ;)

Coda
2005-12-08, 15:33:37
Heutige GPUs rechnen alles mit Shadern *scnr*

Simon
2005-12-08, 15:40:54
Heutige GPUs rechnen alles mit Shadern *scnr*
Ja heutige. Aber selbst meine alte Geforce (1) Karte konnte das und mein alter integrierter Chipsatz hier im Thinkpad kann das(der kann aber auch gar keine Shader, nichtmal ARB_texture_env_dot3). Und die haben kein Shader Support ;)

IceLord
2005-12-08, 20:52:08
Und was schätzt ihr, wann endlich die Spiegelungen auf dem Lack (bevorzugt per Shader, falls diese Methode überhaupt möglich ist?) absolut realitätsgetreu sind und jedes Detail flüssig gespiegelt werden kann (wenn man jetzt Radiosity und Realtime-Raytracing außen vor lässt, oder wird letzteres dazu benötigt?!)?
Ja, um echte Spiegelungen zu machen wird Raytracing benötigt.

NBN
2005-12-10, 14:28:24
Heutige GPUs rechnen alles mit Shadern *scnr*

Nicht die GPU, sondern die Engine

Blabla
2005-12-10, 14:30:50
Sind die Autos in PGR3 eigentlich so gut gespiegelt wie dieser lamborari im Ati-Demo, kam mir nicht so vor

Coda
2005-12-10, 18:31:09
Nicht die GPU, sondern die EngineNein die GPU. Es gibt keine Fixed-Function Einheiten mehr. Egal ob man einen Shader in der API verwendet oder nicht es wird immer mit Shadern auf der HW ausgeführt.

Gast
2005-12-10, 19:24:59
und wenn die graka keine shader hat? kann man mit alter dx version shaderzwang umgehen?

Coda
2005-12-10, 20:23:03
Bei alten Karten ist das natürlich nicht der Fall, deshalb sprach ich ja auch von "heutige GPUs".

Um genau zu sein betrifft das bei ATi alles neuer als R300 und bei nVIDIA alles neuer als NV40.

Gast
2005-12-12, 13:23:44
Und welches game hat jetzt die besten spiegelungen, vergleichbar mit dem gelbpinken ati-boliden?

Banshee18
2005-12-12, 18:04:06
Bei alten Karten ist das natürlich nicht der Fall, deshalb sprach ich ja auch von "heutige GPUs".

Um genau zu sein betrifft das bei ATi alles neuer als R300 und bei nVIDIA alles neuer als NV40.
Inklusive R300 bzw. NV40 meinst du doch, oder?