Wasser-Effekt wie in Tomb Raider 2
Übersicht

KompensatorBetreff: Wasser-Effekt wie in Tomb Raider 2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In Tomb Raider 2 aus dem Jahre 1997 gibt es einen Effekt den ich gerne nachbauen würde. Ich habe nur keine rechte Idee, wie die das damals gemacht haben. Mit Blitz sollte das heute ja kein Problem mehr sein (?). Ich hoffe damit (nicht lachen) moderne Shader- und Water-Refraction-Effekte, Hitzeflirren usw. hinfaken zu können. Ich weiß, daß das nichts mit echter Refraction und Shadern zu tun hat. Der Tomb Raider - Effekt würde mir für den Anfang zum experimentieren völlig reichen.
Hier der Effekt zum anschauen: http://www.youtube.com/watch?v=ZHxmLgl-Jzw Ab Minute 3:00 kann man das Wasser einigermaßen erkennen (das Video ist nicht von mir). Es sieht so aus als würden die Texturen, aber auch die Geometrie unterhalb der Wasseroberfläche sinusmäßig verschoben werden. Aber so viele Vertices hat die Geometrie glaube ich nicht. Auch denke ich, das dies für die damalige Zeit vielleicht zu rechenaufwendig gewesen wäre, zumal wenn man unter die Wasseroberfläche taucht und nach oben schaut, die gesamte Umgebung jenseits der Wasseroberfläche von dem Effekt betroffen ist. Dann sollte das Mesh am besten noch geschlossen sein, keine doppelten Vertices, alle richtig durchnummeriert... klingt mir irgendwie aufwendig. Der Effekt ist alt und ich habe ihn bestimmt schon öfter gesehen. Hat jemand eine Idee wie man sowas hinbekommt? Alles jenseits eines Meshes (Wasseroberfläche) verziehen. Codeschnipsel sind gerne erwünscht. Weiß jemand einen englischen Suchbegriff für "Hitzeflirren"? Dies ist mein erster Forumsbeitrag. Wenn ich zuviel schreibe, das Thema falsch einstelle oder sonst was falsch mache, seid gnädig. |
||
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich glaube die verwenden einfach nur eine animierte Textur mit Alphachannel (Halbtransparenz).
Für den Suchbegriff - Du meinst wohl heat haze. //EDIT: Halbtransparenz gab es zu TR2 Zeiten ja noch gar nicht... Aber es wäre sicher ein Mittel der Wahl in BB. Ich glaube die haben einfach nur eine animierte Masked Texture genommen, fragt sich nur wie die die Fakebeleuchtung für Objeke unter Wasser gemacht haben, ich tippe hier auch auf eine animierte Textur, die müsste dann aber wirklich einen Alphachannel haben. |
||
Starfare: Worklog, Website (download) |
- Zuletzt bearbeitet von ZaP am Fr, Jun 03, 2011 11:17, insgesamt einmal bearbeitet
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und was genau ist das Problem die Vertexpunkte zu bewegen ?
Du speicherst einfach die Indizes der Vertexpunkte der Wasseroberfläche in einem Array ab. Dann gehst du in der Schleife alle nacheinander durch und verschiebst diese nach z.B. einer Sinus Kurve. Mein gerade Programmierter Wellengenerator ![]() mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey für damals schaut das Wasser echt ned schlecht aus.
Ich glaube hier ging es eher um die Verzerrungen der Welt, die Wassergeometrie wird nicht geändert. Generell braucht man die Vertizes auch ned zu speichern oder irgend was bzgl. Geschlossenheit oder doppelter Vertizes beachten wenn diese an gleicher Position auch auf die gleiche Weise verschoben werden. Für den Unterwasserteil kann man ja einfach einen eigenen Mesh verwenden, wobei die Vertices abhängig von deren Y-Position verschoben werden. Auf der 0-Position(also der Übergang Wasser/Land) darf es natürlich keine Verschiebung geben. Oberirdisch würde das für die für die Level-Geometrie ebenso funktionieren. Objekte oder Gegner könnte man zwar theoretisch auch verzerren, das wäre aber tatsächlich aufwendiger. Ich denke mal die werden in TR auch nicht verzerrt werden. Ob nun auch Lara im Wasser verzerrt wird kann ich in dem Video nicht erkennen...) |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
Kompensator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich melde mich erst jetzt zurück, da ich über das was ihr geschrieben habt, erstmal nachdenken mußte. Ich bin nicht so schnell wie andere hier, die mal kurz in einer Nacht einen Raytracer runterhacken.
Ich hab' mir Tomb Raider nochmal angeschaut: Man mag es kaum glauben, die verschieben einfach nur die Punkte. Danke an BIG BUG. Zitat: abhängig von deren Y-Position Ha! Da muß man drauf kommen. Dann fliegen einem die Meshes tatsächlich nicht auseinander.
Die Wasseroberfläche ist eine Masked-Texture mit 4 Frames oder so. Hier könnte man auch nur einen Frame nehmen und die UV-Koordinaten verändern (hab' zuerst gedacht die machen das so). Das Unterwasser Fake-Lightning ist eine einfache Hell/Dunkel-Textur multiplied, die verschoben wird (danke übrigends ZaP für dein "haze"). Alle Vertices in ein Array zu speichern ist vermutlich dann sinnvoll, wenn die Über- bzw. Unterwasserwelt nicht klar getrennt in ein Mesh gepackt werden kann/will. Das ist dann wahrscheinlich viel schneller als jedesmal alle Meshes, und dann mit GetSurface, CountVertices, alle Vertices durchzugehen und zu prüfen wo die denn jetzt liegen, über oder unter der Wasseroberfläche. Da das Tomb Raider - Level grid-mäßig aufgebaut ist, haben die wohl kein Problem ihr Wasservolumen abzugrenzen. Danke an euch für's mitraten und eure schnellen Antworten. Von mir aus: erledigt. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group