PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spiegeleffekt - Frage


dBC*
2004-04-26, 11:24:01
hiho :)

Ihr alle kennt doch Unreal 1 oder neuere Spiele, bei denen man eine Textur als Spiegel, der wie ein echter funktioniert, darstellen kann. Jetzt gibt es ja diesen Effekt, dass wenn man 2 Spiegel gegenüberstellt, sich diese ins unendliche gegenseitig spiegeln - wisst ihr was ich mein? Nun Frage ich mich wie das wohl in einem Computerspiel aussieht - da müsste es doch rein theoretisch den gleichen Effekt geben - oder etwa nicht?

Hoffe ihr könnt mir helfen :)

gruß dBC*

Korak
2004-04-26, 12:35:37
In U1 ist das iirc kein richtiger Spiegel. Das Spiegelbild wird falschrum dargestellt.

DigiArts C-G-I
2004-04-26, 12:59:37
bei keiner limitierter reflektion-Tiefe würde jenes auch unendlich lange rechnoorn......also da gibs keinen Spielspaß bei negativer (-100) framerate gg ob die uEngine aber jenes könnte kann ich need beantworten?.

liquid
2004-04-26, 13:05:37
Wie Korak schon angemerkt hat, die Spiegel in U1 reflektieren nicht richtig sie drehen die Geometrie einfach um und rendern sie "unterhalb" der Spiegelfläche nocheinmal mit passendem Blending.

Zwei Spiegel gegenüber aufgestellt würde wohl nicht zu diesem Unendlichspiegeleffekt führen. Und wenn dann würde das Rendern recht lange dauern...

cya
liquid

DigiArts C-G-I
2004-04-26, 13:20:41
mhm .....frage wie werden den die spiegel in heutigen games gemacht. immer noch wie in unreal zeiten? sie drehen die Geometrie einfach um und rendern sie "unterhalb" der Spiegelfläche nocheinmal mit passendem Blending.
oder gibs da noch was?

RLZ
2004-04-26, 14:47:34
Original geschrieben von DigiArts C-G-I
mhm .....frage wie werden den die spiegel in heutigen games gemacht. immer noch wie in unreal zeiten?
oder gibs da noch was?

Jedes Spiegeln wird in heutigen Spielen durch Rendern aus einer anderen Perspektive gemacht. Bei grossen Flächen, wie zB das Wasser in Farcry, wird das ganze aus ein paar Kameraperspektiven gerendert und einfach aneinander gesetzt. Wenn man genau hinschaut sieht man auch die Linien, wo eine neue Perspektive anfängt.
Richtige Spiegelungen sind afaik noch Raytracern vorbehalten. Und da gibt man ja halt normal eine maximale Rekursionstiefe an.

Coda
2004-04-26, 15:30:42
Normalerweiße? Man muss. Sonst könnte es sein das man für immer an einem Frame rendert

Und nein, die Spiegelung in Far Cry wird nicht zusammengesetzt, das ist das gedrehte Kamerabild + Pixelshader (deshalb auch doppelt so hoher Polycount)

Die Spiegel funktionieren in UT 2004 auch noch wie in Unreal 1, dazu muss man aber UseStencil=true setzen in der ut2004.ini. Sich selber sehen kann man aber nicht (das ist aber ein "Bug", kein technisches Problem)

Max Payne rendert es per Cubemap afaik.

Corrail
2004-04-26, 15:38:39
Es gibt eine Möglichkeit, diese "Unendlichkeit" annähernd darzustellen:

Wie RLZ schon angemerkt hat werden, werden Reflektionen meinst durch Rendering aus einer anderen Perspektive realisiert. Nun kann man das so lösen:
Wenn sich zwei Spiegel gegenüber stehen wird der Inhalt des Spiegels gerendert, indem man die Umgebungssituation vom vorigen (nicht vom aktuellen) Frame verwendet. Wenn man das jetzt ein paar Frames rendert ergibt sich dieser "Blick in die Unendlichkeit". Dies lässt sich aber sehr wohl in Echtzeit realisieren. Problem dabei ist nur, wenn sich etwas vor dem Spiegel ändert, ändert sich der Inhalt des Spiegels nicht sofort sondern ist ein wenig verzögert.

RLZ
2004-04-26, 15:40:10
Original geschrieben von Coda
Und nein, die Spiegelung in Far Cry wird nicht zusammengesetzt, das ist das gedrehte Kamerabild + Pixelshader (deshalb auch doppelt so hoher Polycount)


Doch sind sie.
Es gab hier im Forum ein paar Bilder auf denen man das gut gesehen hat...
Die Reflektionen stammen nicht alle aus der selben "Unterwasser"-Perspektive. Am Polycount ändert das aber ja nicht viel, wenn man das logisch angeht.

Gast
2004-04-26, 18:26:13
Original geschrieben von liquid
Wie Korak schon angemerkt hat, die Spiegel in U1 reflektieren nicht richtig sie drehen die Geometrie einfach um und rendern sie "unterhalb" der Spiegelfläche nocheinmal mit passendem Blending.

Und damit ists wieder richtig gespiegelt. :)

[SIZE=1
Zwei Spiegel gegenüber aufgestellt würde wohl nicht zu diesem Unendlichspiegeleffekt führen. Und wenn dann würde das Rendern recht lange dauern...

cya
liquid [/SIZE]

Tun sie aber. Bei Unreal1 hat der PC bis zur 5. oder 6. spiegelung gerechnet, dann haben sie die Textur undurchsichtig gemacht. Und ja, je nach Polycount wurde das Ganze dann auch recht langsam :)

liquid
2004-04-26, 23:32:55
Das möchte ich gerne mal sehen.

cya
liquid

Mr. Lolman
2004-04-27, 00:00:21
http://img32.photobucket.com/albums/v95/franz/Shot0031.jpg

Mr. Lolman
2004-04-27, 00:28:14
Das war übriges ein Würfel bei dem jede Seite spiegelt...

Hier noch ein Bsp:

liquid
2004-04-27, 11:26:23
Lustig, wobei das obere Bild mich nicht gerade an einen Spiegelraum denken lässt. Sieht irgendwie nicht sonderlich realistisch aus.
Aber dafür das untere Bild. Weißt du zufällig auch wie viele Spiegelungen maximal berechnet werden (der Gast war sich da ja nicht so sicher)? Und wie wird das auf die Spiegel verteilt? Also X Spiegelungen für jeden Spiel, für alle zusammen, für alle Spiegel die sich gegenseitig sehen können.

Denn im oberen Bild sieht das nicht gerade aus als ob die Rekursionstiefe sehr tief ist.

cya
liquid

Mr. Lolman
2004-04-27, 18:39:54
Original geschrieben von liquid
Lustig, wobei das obere Bild mich nicht gerade an einen Spiegelraum denken lässt. Sieht irgendwie nicht sonderlich realistisch aus.


Stimmt, dafür kann man ungefähr abzählen wieviele Spiegelungen wirklich berechnet werden*. In dem sich vollständig spiegelnden Würfel stehend, hab ich nahezu senkrecht in die Luft gekuckt, und dann den Screenshot gemacht.


Aber dafür das untere Bild. Weißt du zufällig auch wie viele Spiegelungen maximal berechnet werden (der Gast war sich da ja nicht so sicher)? Und wie wird das auf die Spiegel verteilt? Also X Spiegelungen für jeden Spiel, für alle zusammen, für alle Spiegel die sich gegenseitig sehen können.

Denn im oberen Bild sieht das nicht gerade aus als ob die Rekursionstiefe sehr tief ist.

cya
liquid

*Scheinbar bei 2 sich gegenüberliegenden Spiegeln 2 Spiegelungen / Stück. Also 4 maximal...

Ich könnte mir vorstellen, dass die Engine einfach überprüft ob sich 2 spiegelnde Flächen gegenüber stehen, und dann die Rekursionstiefe einem Fixwert (imo 4) anpasst. Auf andere Spiegel hat das keine Auswirkungen. Generell waern Spiegel bei der UT99 Engine noch leicht problematisch.
Denn beim unteren Bild, sieht man dass die Wand unterteilt ist, und an manchen Positionen ist der Spiegel im Spiegelbild ab der Höhe wo der untere Raum den oberen schneidet, abgeschnitten.

Matti
2004-06-07, 16:50:25
Hab sowas mal selbst programmiert, allerdings mit Ray-Tracing. Die Demo kann auf www.grafikwelt.tk runtergeladen werden.

pollux
2004-06-18, 14:28:37
irgendwie fällt mir zu spiegeleffekten duke nukem 3d bzw die build engine ein.. wie wurde das damals gelöst? ich kann mich nur noch erinnern, dass hinter der spiegeltextur ein raum sein musste...

Gast
2004-06-29, 19:31:59
Also Q3 erzeugt dann den Voideffekt.

Achja, warum fragen? Ausprobieren :D