Quake 3 mit Raytracing-Technik in Echtzeit? Die Zukunft der Computergraphik?

  • Ersteller Ersteller Green Mamba
  • Erstellt am Erstellt am
G

Green Mamba

Gast
Bei einem Projekt der Studenten der Uni Saarland ist es gelungen den bekannten Ego-Shooter Quake 3 in einer eigens dafür entwickelten Raytracing-Engine lauffähig zu machen.
Beim Raytracing wird der physikalische Lichtverlauf im Raum berechnet. Dabei werden Stellvertretende vom Auge aus durch jeden Pixel geschossen, und auf den Oberflächen gebrochen oder reflektiert. Diese Berechnung funktioniert natürlich auch andersherum, es werden dann Lichtstrahlen von den Lichtquellen losgeschossen, und somit der Raum ausgeleuchtet.
Interaktion zwischen Lichtquellen und Gegenständen, sowie transparente Materie wie auch Lichtbrechung in transparenten Medien, sowie weiche Schatten bringt diese Technik also von Haus aus mit.
Es ist nebenbei bemerkt die gängige Technik die bei professionellen Renderern, welche auch in der Film- und Kinotechnik Verwenung finden, zum Einsatz kommt.
Dieses Verfahren ist sehr rechenintensiv, und unterscheidet sich grundlegend von der normalen Renderingtechnik die momentan bei aktueller Grafikhardware zum Einsatz kommt.
Der Vorteil ist, dass Lichtreflexionen, sowie Lichttransmissionen (bspw. durch Glass hindurch, also Lichtbrechung) ohne algorithmischen Mehraufwand korrekt berechnet werden können.
Der Nachteil ist, dass extreme Rechenleistung dafür notwendig wird, so ist für ein Quake 3 - Spiel mit einer Auflösung von 512x512 Pixeln und 20 Frames pro Sekunde eine Rechenleistung einer virtuellen 36 GHz-CPU nötig.
Die Ergebnisse sind allerding beeindruckend, auf der Entwicklerseite gibts weitere Screenshots, sowie ein Video.

Man kann also hoffen, dass sich die Rechenleistung nach dem Moor´schen Law soweit in den nächsten Jahren erhöhen wird, dass solche Techniken endlich zum Standard bei den Rendering-Techniken durchringen wird.
 

Anhänge

  • glass.JPG
    glass.JPG
    48,5 KB · Aufrufe: 595
  • quad.JPG
    quad.JPG
    39,5 KB · Aufrufe: 672
Zuletzt bearbeitet:
Re: Quake 3 mit Raytracing-Technik in Echtzeit? 36 (!) Ghz Intel CPU vorrausgesetzt.

der link funzt bei mir leider nicht :(
 
Re: Quake 3 mit Raytracing-Technik in Echtzeit? 36 (!) Ghz Intel CPU vorrausgesetzt.

Ja, bei mir auch zuerst nicht, die scheinen teils Probleme mit dem Server zu haben, versuchs einfach in ein paar Minuten nochmal! :)
 
Re: Quake 3 mit Raytracing-Technik in Echtzeit? 36 (!) Ghz Intel CPU vorrausgesetzt.

Leider sind alle Mirrors hoffnungslos überlastet...

Außerdem muss man beachten, daß die das alles in Software implementiert haben. Wenn man das in Hardware implementieren würde, bräuchte man nur so viel Rechenleistung (obwohl Reflektion+Brechung geraytraced der Rechenzeitkiller schlechthin ist) :)
 
Re: Quake 3 mit Raytracing-Technik in Echtzeit? 36 (!) Ghz Intel CPU vorrausgesetzt.

Davon hab ich in der Gamestar gelesen.
Gamestar hat das Spiel auf einem Rechenverbund aus 48Athlon MPs und 12GByte RAM gespielt.
Laut GM hätten bereits die aktuellen GraKa Chips genügend Power, wenn sie daraufhin optimiert wären.
Desweiterern sagen sie, dass spätestens 2009 wir mit dieser Technik genießen können. Womöglich auch früher.
 
Re: Quake 3 mit Raytracing-Technik in Echtzeit? 36 (!) Ghz Intel CPU vorrausgesetzt.

Noch ein paar Bilder. :)
Genau, das ist der Punkt, die aktuelle Hardware ist auf Matrizenoperationen optimiert, und besitzt sogenannte Rendering-Pipelines. Es müsste also komplett neue Hardware entworfen werden.
Aber früher oder später wird es darauf hinauslaufen.
 

Anhänge

  • blackandwhite.JPG
    blackandwhite.JPG
    15 KB · Aufrufe: 458
  • fight.JPG
    fight.JPG
    24,6 KB · Aufrufe: 501
  • mutlipleReflectiveSpheres.JPG
    mutlipleReflectiveSpheres.JPG
    24,8 KB · Aufrufe: 458
  • softcoloredshadow.JPG
    softcoloredshadow.JPG
    25,2 KB · Aufrufe: 487
Re: Quake 3 mit Raytracing-Technik in Echtzeit? 36 (!) Ghz Intel CPU vorrausgesetzt.

Auf der Gamestar-DVD gibt es bewegte Bilder dazu. Sie beleuchten die Grafiktrends der nächsten paar Jahre. Sieht schon recht beeindruckend aus.
 
Re: Quake 3 mit Raytracing-Technik in Echtzeit? 36 (!) Ghz Intel CPU vorrausgesetzt.

jo den video hab ich auch gesehen, stimmt das eigentlich das die 40 computer zusammenhängen haben müssen, damit sie das entwickel bzw. mal kurz laufen haben lassen können.

mfg ADE
 
Re: Quake 3 mit Raytracing-Technik in Echtzeit? 36 (!) Ghz Intel CPU vorrausgesetzt.

Das stimmt allerdings - Man lese sich nur mal GMs ersten Post dazu durch, virtuelle 36GHz - das soll erstmal jemand aus dem Hut zaubern. Derzeit ist es einfach noch utopisch, was da für ein Rechenaufwand reingesteckt werden muss, aber in ein paar Jahren...

Ich finde die Effekte super. Natürlich sollte man nur auf die Ausleuchtung und Schatten achten, denn alles andere wirkt eher bekannt. Aber allein das ist schon wahnsinn.
 
Re: Quake 3 mit Raytracing-Technik in Echtzeit? 36 (!) Ghz Intel CPU vorrausgesetzt.

Also mich haben die Effekte schwer beeindruckt. Allerdings ist es bis jetzt leider nicht in Spielen umsetzbar ( wegen der hohen anforderung )
Ich denk ma das wird in ungefähr 10 Jahren in jedem Spiel zu sehen sein.
 
Re: Quake 3 mit Raytracing-Technik in Echtzeit? 36 (!) Ghz Intel CPU vorrausgesetzt.

Hehe, komme gerade von der Uni, habe dort nochmal einen Vortrag über Raytracing mit Photonmaps gehört.
Der hohe Rechenaufwand kommt daher, weil jeder Seh- oder Lichtstrahl an einer Oberfläche evtl. mehrfach gebrochen wird. Zum einen gibts einen Schattenstrahl der zu jeder Lichtquelle geht, um festzustellen ob der Punkt im Licht oder im Schatten liegt.
Dann gibt es einen Reflexionsstrahl, um festzustellen welches Objekt in diesem Punkt gespiegelt wird, und noch einen Transmisssionsstrahl, mit dem festgestellt wird, was durch Lichtbrechung erreicht wird, der geht also in das Objekt hinein (z.b. Glaß).
Die letzten beiden treffen wiederum auf andere Objekte, und können erneut gebrochen werden.
Der Vorgang muss also rekursiv fortgesetzt werden. Man bekommt dabei eine Ahnung was das für einen Aufwand bedeutet. Je nach Szenenkomplexität kann es passieren dass auf normaler Hardware für ein Bild eine Stunde oder mehr gerechnet werden muss.
Was man sich aber auch mal vor Augen führen muss, ist das was an Perfomrance übrig bleibt, wenn man aktuelle Spiele im Softwarmodus auf der universellen CPU berechnen lässt. Das gleicht auch einer Diashow. ;)
Ich versuche gerade die Website zu errreichen, ich meine die hätte dafür einen Cluster aus ca. 50 1800+-CPU´s benutzt, um damit 15~25 fps zu erreichen. Bin mir aber unsicher, vielleicht lädt die Seite ja auch irgendwann nochmal. :D

/edit
Ich habe nochmal nachgesehen, es waren 20 x AMD 1800+ Rechner im Cluster. Dabei steht auch folgendes:
The solution for fast raytracing is a real hardware capable of raytracing. Saarland University is working on a prototype. It is clocked with 90 MHz and has the raytrace power similiar to a virtual P4-12 GHz. The prototype uses only one pipeline, parallelization can be done. Also more GPUs can be used on one card.
 
Zuletzt bearbeitet:
Eine 90 MHz Graka mit nur einer Pipeline? Herr Gott, was machen nVidia und Ati eigentlich den Ganzen Tag, ich will Raytracing! :)
 
Re: Quake 3 mit Raytracing-Technik in Echtzeit? 36 (!) Ghz Intel CPU vorrausgesetzt.

daemon777 schrieb:
Also mich haben die Effekte schwer beeindruckt. Allerdings ist es bis jetzt leider nicht in Spielen umsetzbar ( wegen der hohen anforderung )
Ich denk ma das wird in ungefähr 10 Jahren in jedem Spiel zu sehen sein.

10 Jahre? Nein, so lange dauer das nicht mehr. Schau mal was vor 10 Jahren so gespielt wurde: ;)

doom2.gif


oder hier

Diamond comes out with their Monster 3D II in an 8 MB version this week (around March 12, 1998) and a 12 MB version will follow later on

Das sind gerade mal 6 Jahre.

Ich für meinen Teil glaube das es keine 5 Jahre, wenn nicht eher 3-4 dauert. :)
 
Doch. Texturen auch wenn sie Raytracing effekte nutzen. Im Prinzip ist alles betroffen wenn es ums Licht geht. ;)
 
Die komplette Szenenbeleuchtung ist dabei betroffen. Alle Lichteffekte die man sieht, bis auf die Muster der Texturen natürlich, diese beeinflussen sich aber unter Umständen gegenseitig, das ist ein Fakt der mit Herkömmlichen Rendermethoden aus Echtzeittechniken nicht möglich ist, oder eben nur über Tricks und Fakes. Bei Raytracing handelt es sich im Gegensatz zu Renderpipeline um einen physikalisch fundierten Ansatz, da die ganze Lichtverteilung im Raum berechnet wird.

Also man klebt einen Textur auf ein Objekt, hängt eine Lampe daneben, und dann wird gerechnet wie sich das Licht auf den Oberflächen bricht, oder auch in sie eindringt.
Es ist an sich keine neue Technik, die aber eben bis jetzt immer zu viel Rechenleistung benötigte, um Echtzeitanimationen darzustellen.
 
Tja Leute, ihr wisst ja was das heißt: Wir bekommen unsere guten alten Zusatzgrafikkarten wieder :p. X800XT im parallelbetrieb mit Raytracingkarte... wäre ja wunderbar :D und die AIW Version hat standartmässig ne Raytracingkarte dabei...
 
@ Mamba
Du erklärst das gut! So langsam raff ich es :D
Aber braucht man dann nicht zur Berechnung der übrigen, üblichen Texturen noch die herkömmliche Rendertechnik? Oder sind das einfach nur Textureinheiten, die da dran rumrechnen? Denn so ein Bild besteht doch nicht nur aus Licht, oder?

@ Nossi
Hm... irgendwie... fände ich das als Übergangslösung witzig. Obwohl dann alles exorbitant teuer würde. So einfach, wie zu 3DFx-Zeiten wird es wohl nie mehr.
 
Und ob das Bild nur aus Licht besteht, denn wenn du das Licht ausmachst ist es ja dunkel! Das soll jetzt kein Witz sein, aber es ist wirklich so, alles was du beim Raytracing siehst ist berechnetes Licht.
Hab grad nicht viel Zeit, werde morgen noch ein bisschen mehr erklären. :)
 
Zurück
Oben