Raytracing versus objektbasiertes Rendern?

19

Intro-Grafikkurse haben normalerweise ein Projekt, bei dem Sie aufgefordert werden, einen Ray-Tracer zu erstellen, um eine Szene zu rendern. Viele Grafikschüler, die in die Grundschule eintreten, geben an, dass sie sich mit Ray Tracing befassen möchten. Und doch scheint es, dass Raytracing in Veranstaltungsorten wie SIGGRAPH usw. ein totes Feld ist.

Ist Ray Tracing wirklich der beste Weg, um eine Szene mit jeder gewünschten Beleuchtung usw. genau wiederzugeben, und ist es nur die langsame (nicht interaktive) Leistung von Ray Tracern, die sie uninteressant macht, oder gibt es noch etwas anderes?

Suresh
quelle
Vielleicht ist Raytracing eine abgeschlossene Sache.
Dave Clarke
Ich denke , die Frage Titel Bedürfnisse bearbeiten, Raytracing ist ein Pixel-basierten Renderer, vielleicht sollte es als ‚Raytracing vs Object-based Rendering‘ umformuliert werden oder ‚Raytracing vs Rasterung‘
aaecheve
Ich werde den Titel ändern.
Suresh
@ DaveClarke: Nicht sicher, was das bedeutet?
Suresh
Keine Nachforschungen mehr - ich sollte Slang meiden.
Dave Clarke

Antworten:

11

Raytracing ist ein sehr netter und intuitiver Algorithmus und eine physikalisch realistischere Methode zur Beschreibung der Beleuchtung einer Szene als die Rasterung.

  • Raytracing ist langsam, insbesondere wenn Sie die realistischeren Effekte implementieren möchten, die es von der Rasterung unterscheiden (z. B. Brechung, Reflexion, Bewegungsunschärfe, weiche Schatten), da dadurch viel mehr Strahlen pro Pixel erzeugt werden.
  • Die meisten Menschen können den Unterschied zwischen echten und gefälschten Effekten nicht erkennen, was meiner Meinung nach der entscheidende Punkt ist. Das Ziel eines praktischen Rendering-Algorithmus ist es, eine fotorealistische Darstellung einer Szene auf die effizienteste Art und Weise zu erstellen. Obwohl Rasterisierung viele Hacks verwendet, gelingt dies derzeit sehr gut.
  • Es gibt viele andere praktische Einschränkungen von Raytracing im Vergleich zu einem Raster-Renderer: schlechtes Anti-Aliasing und Verschiebungs-Mapping, begrenzte Instanzen usw.

Selbst in nicht interaktiven Anwendungen, wie z. B. Filmen, wird Raytracing aufgrund seiner Einschränkungen nur sehr selten verwendet. Pixar hat Raytracing nur für Autos und nur für bestimmte Reflektionseffekte (Raytracing für den Film 'Cars' ) verwendet.

Hier ist ein hervorragender Artikel, der den aktuellen Status von Raytracing und seine Vor- und Nachteile ausführlicher beschreibt: Status von Raytracing (in Spielen) .

aaecheve
quelle
8

Grundlegende Raytracing hat ein großes Problem im Zusammenhang mit Umgebungslicht. Die meisten Beleuchtungsmodelle behandeln das Umgebungslicht als konstanten Faktor, der den Äther durchdringt. Während Ray Tracing für die Berechnung von Reflexionen hervorragend geeignet ist, leidet es unter numerischer Instabilität und komplizierten Tests von Oberflächenschnittpunkten. Raytracing funktioniert bei hardwarebeschleunigtem Rendering möglicherweise nicht gut, da die Rekursion eine wichtige Rolle bei der Ermittlung der Beleuchtung für ein bestimmtes Pixel spielt. Grundlegende Raytracing ist rechenintensiv.

Radiosity behandelt Umgebungslicht besser, indem es alle Objekte in der Umgebung als Lichtquellen behandelt und ein Beleuchtungsmodell erzeugt, das in gewisser Weise realistischer ist als Raytracing. Bei einer Radiosity-Lösung gibt es eine feste Anzahl von Polygonen in einer Szene, und die Berechnung ist für die Hardwarebeschleunigung zugänglich.

Letztendlich ist Ray Trancing nicht die beste Art, eine Szene zu rendern, aber es ist ein Bestandteil einer guten Rendering-Strategie. Die hohen Kosten für die Berechnung und die schlechte Umgebungsbeleuchtung wirken der Strahlenverfolgung erheblich entgegen. Als Forschungsthema ist die Arbeit noch nicht abgeschlossen , scheint sich aber auf die Hardwarebeschleunigung zu konzentrieren.

John Percival Hackworth
quelle
Beachten Sie, dass eine der häufigsten Methoden zur Durchführung von Radiosity (insbesondere zur Behandlung von spekularen Aspekten von Radiosity und allgemeinen Radiance-Funktionen) Raytracing umfasst! In der Tat sind Raytracing und Radiosity beide Annäherungen an die Rendering-Gleichung.
Steven Stadnicki
Das stimmt. Ein grundlegender Radiosity-Ansatz (wie ist das für ein Oxymoron?) Erfordert so etwas wie Raytracing für Spekularität und Reflexion.
John Percival Hackworth
4

Ich würde nicht sagen, dass Ray-Tracing / Path-Tracing tot ist ... wenn überhaupt, ist das Interesse der Bevölkerung auf diesem Gebiet aufgrund der inhärenten Parallelität der vielen zugehörigen Algorithmen in diesem Bereich in Verbindung mit der Geschwindigkeit von ziemlich wieder gestiegen GPU-basierte Systeme, mit denen Millionen von Strahlen pro Sekunde berechnet werden können. Hinzu kommt die Flexibilität in der Rendering-Pipeline, die allgemeinere Sprachen wie CUDA und OpenCL ermöglichen, sodass Entwickler die parallele Funktionalität der GPU nutzen können, ohne die OpenGL-Grafik-Pipeline explizit wie die anfänglichen GPGPU-Techniken verwenden zu müssen. Einige bemerkenswerte Beispiele für die Fortsetzung der Pfadverfolgungsforschung sind:

  • Die Forschung von Daniel Pohl und anderen in der Intel Advanced Render Gruppe
  • Nvidias Optix-Engine
  • SIGGRAPH umfasste im vergangenen Jahr einige Kurse zur Monte-Carlo-Bildsynthese sowie Diskussionen über die neuesten Techniken zur Abschätzung der Photonendichte.

Schließlich beschäftigen Sie sich intensiv mit Optimierungstechniken für das globale Beleuchtungsproblem, einschließlich punktbasierter globaler Beleuchtung, Photon Mapping und verwandter Optimierungen, fortschrittlicher Modellierung des Erscheinungsbilds (einschließlich datengesteuerter Methoden), Zwischenspeichern der Bestrahlungsstärke usw. usw.

Jason
quelle