Ray-Tracing wird sich dann durchsetzen, wenn man damit endlich gute Grafik machen kann, ohne dafür einen Supercomputer zu brauchen.
Was aber erst der Fall sein wird, wenn wir Spiele im Schnitt maximal 3 bzw. (bei mehrfacher Reflektion) eher 1-2 Pixeln pro Polygon (d.h. eigentlich sollte man direkt Voxel nehmen) haben (Berechnung pro Pixel statt pro Fläche bzw. deren Eckpunkte). Wenn man bedenkt, wie viele Objekte in der realen Welt einfach annähernd ebene Flächen aufweisen, denke ich nicht, dass sich innerhalb dieses Jahrzehnts irgend ein Entwickler diese Detailarbeit aufbürdet.
Jetzt gibt es Kantenglättung schon so lange, doch irgendwie sieht es immer unscharf oder/und verwaschen aus. Wird wohl nochmal 15Jahre dauern bis es mich überzeugen wird.
Kantenglättung basiert nun einmal auf den Prinzip, Kontraste an Kanten zu verringern. Das sieht zwangsläufig unscharf aus, da hilft auch noch soviel Entwicklung nicht.
Raytracing hat einige Vorteile, die mit konventioneller Rasterisierung unmöglich zu machen wären. Das betrifft nicht nur Spiegelungen oder Brechungen, sondern auch andere Sachen.
-Realitätsnahe Spiegelungen und Brechungen... gut, das ist ja klar.
-Absolute Skalierbarkeit. Bei einer steigenden Zahl von Recheneinheiten werden die zu schießenden Strahlen einfach auf mehr Recheneinheiten verteilt. Für Schatten oder Spiegelungen sind keine neuen Renderpasses (z.B. Cube- oder Shadowmapping) mehr nötig und die zusätzlichen Strahlen werden einfach verteilt und abgearbeitet.
Das "z.B." ist leider überflüssig. Außer bei Reflexionen und Beleuchtung (d.h. im wesentlich den vorrangehenden Punkt) hat Raytraycing hier keinen Vorteil gegenüber einem Rasterizer. Der kann die Pixelberechnung schließlich genauso parallelisieren. Was Probleme bereitet, sind Geometrie und Post-Processing und da ändert ein Raytraycer nichts.
-Einfachere Materialeinstellungen. Niemand wird sich mehr über komisches Wasser ärgern. Man schaut auf Wikipedia einfach kurz den Reflexionsindex von Wasser nach, das Programm errechnet daraus den Fresnel-Effekt und tada - wir haben fotorealistisches Wasser. (Dann muss nur noch der Wellengang stimmen ;D)
Den Brechungsindex von Wasser hat iirc zum ersten Mal FarCry richtig berechnen können (standardmäßig aktiv seit Crysis) - was für einen realistischeren Eindruck fehlt, ist eben die Oberflächenauslenkung. Und genau da hilft Raytraycing wiederum nicht.
-Je detaillierter die Meshes sind, desto geringer wird der zusätzliche Rechenaufwand von Raytracing.
Nur bleiben >95% der Spiele schon heute weit hinter den realisierbaren Meshdichten zurück und wie oben erwähnt: Erst bei extremen Detailgraden erfordert Raytraycing absolut weniger Rechenaufwand.
-Effizienterer Einsatz von Tessellation: beim Einsatz von Tessellation unter Raytracing ist es möglich, das Feature erst einzusetzen, wenn der Strahl auftrifft. Verborgene Gegenstände fließen so nicht in die Berechnung ein.

Wie berechnet man das Auftreffen eines Strahls auf ein Objektteil, dessen Geometrie erst nach Auftreffen des Strahls berechnet werden soll

Die Geometrie, egal ob durch Tesselierung oder auf normalem Wege erzeugt, muss vor der Abtastatung der Szene feststehen. Das gilt für Raytraycer genauso, wie für Rasterer.
-Das selbe gilt einfach für verdeckte Teile der Szene.
Eingeschränkt. Zwar beinhaltet ein Raytraycer automatisch auch eine Umgebungsverdeckung im Renderprozess, heutige Grafikkarten haben die Tiefentests aber afaik längst vor das Geometriesetup verlegt, um sich neben dem Rendering auch die Transformation unsichtbarer Bereiche zu sparen. Diese Technik sollte ein Raytraycer auch nutzen, die automatische Erkennung verdeckter Objekte kann dann höchstens noch bei Alphatests einen Nutzen entfalten. (Bei der extrem hohen Polygonzahl, die nötig ist, ehe ein Raytraycer weniger Aufwand hat, als ein Rasterizer, dürften die aber ohnehin nicht mehr zum Einsatz kommen)
-Mit den richtigen Rendermethoden ist Raytracing absolut Framestabil. Es ist möglich, die Strahlen zufällig zu verschießen und nach einer bestimmten Zahl einfach aufzuhören.
Ich würde es nicht als ein Vorteil bezeichnen, dass ein Raytraycer immer die maximale Rechenlast verursacht, selbst wenn nur einfachste Objekte darzustellen sind
-Kaustiken und indirekte Beleuchtung sind interaktiv möglich, und das sogar ohne große Verluste, setzt man auf die richtige Technik.
Indirekte Beleuchtung erfordert afaik ein ganzes Bündel von Sekundärstrahlen für jeden einzelnen Primärstrahl (halt physikalisch korrekte Streuung). Der Aufwand wäre extrem.
So, das ist mal alles, was mir auf Anhieb einfällt
Kann mir nicht helfen, aber irgendwie kann ich nur einen Punkt davon akzeptieren.
Wenn die Spiegelungen nach den korrekten Formeln ablaufen sind die Spiegelungen doch nicht übertrieben sondern eher realistisch.
"übertreiben" bezeichnet typischerweise das Ausmaß, nicht die Gestalt. Die Spiegelungen mögen geometrisch 100% okay sein, aber das ändert nichts daran, dass der Lack erst gar nicht so stark spiegeln sollte.
Und wie effizeint wäre es die Spiegelungen mit der derzeitigen Technik darzustellen?
Sonderlich effizient nicht. Aber zumindest in den Szenen mit normaler Spielansicht (d.h. keine extremen Nahaufnahmen) nehmen die Spiegelungen ohnehin einen so geringen Sichtbereich ein, dass man selbst grobe Vereinfachungen nicht sehen würde, so dass sich eine optisch identische Szene mit einem modernen Renderer vermutlich problemlos auf einer Einsteigerkarte berechnen lassen würde.
(wäre imho eine tolle Reaktion von AMD: Eine Nachstellung der 4-Knights-Corner-Raytrayce-Demo-Szene von Intel in einem Rasterizer. Auf einem Llano

)
Es gibt aber keine Methode, mit der Schatten, Reflexionen, Lichtbrechungen etc. originalgetreu (also wie in der Realität) dargestellt werden. Raytracing macht genau das! Das hat erst mal nichts mit Effizienz zu tun, sondern damit, dass es die EINZIGE Möglichkeit ist, das 100% korrekt darzustellen. Du kannst mit Rastarisierung so nah ran kommen wie du willst, aber es wird nie perfekt sein.
Lichtbrechungen (und keine Fläche reflektiert 100%, alle streuen auch ein bißchen) und im Grund auch Reflektionen auf nicht 100% planaren Oberflächen (und nichts ist 100% planar) kannst du auch mit einem Raytraycer nur dann wirklich "perfekt" darstellen, wenn du eine unendliche Zahl an Sekundarstrahlen verschießt (die wiederum jeder unendlich viele Tertitärstrahlen generieren - eine Kette die sich unendlich fortsetzt). Und das ist praktisch ebenfalls nicht möglich. Raytraycer haben nur einen gewissen Bereich, in dem sie sehr viele Brechungen/Reflexionen ziemlich realistisch mit einem vergleichsweise kleinen Aufwand berechnen. Aber man muss halt erstmal eine Szene haben, in der so viele Brechungen/Reflektionen so realistisch berechnet werden müssen.
Aha, du hälst Fotorealismus, also für nutz- und sinnlos
Imho ist es auf alle Fälle ein Punkt ganz weit hinten auf der Liste. Ich habe seit dem Jahrtausendwechsel genau drei Spiele gespielt (Max Payne 1&2, Far Cry), bei denen der Versuch, sich Fotorealismus anzunähern, einen spürbaren Anteil am Spielgefühl hatte. Alle anderen wirklich guten Spielen nahmen sich entweder künstlerische Freiheiten bei der Darstellung der eben-nicht-ganz-realen Welt (Bloodlines, HL²), wechselten komplett in unrealistische Umgebungen oder hatten sogar eine mehr oder minder rückständige Engine, aber eben mehr als genug Spielspaß, damit das egal war. (OTTD schlägt Crysis jeden Tag)
Warum begreifen denn die Leute hier nicht, dass es lediglich eine Techdemo ist, in der eine "neue" Technik gezeigt wird. Dass das ganze in ner alten Engine läuft, ist doch erst mal zweitrangig. Hätten sie die Cryengine genommen, statt der id-Tech und zusätzlich noch Raytracing eingebaut, so dass das Wasser wirklich echt aussieht, würde hier wohl jeder sagen "geil, das muss ich haben".
Korrigiere mich, aber afaik gibt es in dieser Demo keine "alte Engine". Man kann schlecht den kompletten Renderingprozess austauschen und noch eine "alte Engine" übrig haben. Was alt ist, ist das Level.