Gibt es Alternativen Rendering oder Raytracing auf Rasterung?
-
13-09-2019 - |
Frage
Rasterung (Dreiecke) und Raytracing sind die einzigen Methoden, die ich je begegnet bin gekommen, eine 3D-Szene zu machen. Gibt es andere? Auch ich würde gerne irgendein andere wissen, wirklich „da draußen“ Wege zu tun 3D, wie nicht Polygone verwendet wird.
Lösung
Aagh! Diese Antworten sind sehr uninformiert!
Natürlich hilft es nicht, dass die Frage ungenau ist.
OK „Rendering“ ist ein wirklich breites Thema. Ein Problem innerhalb Rendering Kamera Sichtbarkeit oder „versteckte Oberfläche Algorithmen“ - herauszufinden, was Objekte in jedem Pixel zu sehen sind. Es gibt verschiedene Kategorisierungen Sichtbarkeitsalgorithmen. Das ist wahrscheinlich , was das Plakat fragt nach (vorausgesetzt, dass sie dachten, es als eine Dichotomie zwischen „Rasterisierung“ und „Ray Tracing“).
Ein Klassiker (obwohl jetzt etwas veraltet) Kategorisierung Referenz Sutherland et al „A Charakterisierung von zehn versteckten Oberfläche Algorithms“, ACM Computer-Surveys 1974 Es ist sehr veraltet, aber es ist immer noch hervorragend für einen Rahmen für die darüber nachzudenken, wie man kategorisieren solche Algorithmen.
Eine Klasse von verborgenen Oberflächenalgorithmen beinhaltet „Ray-Casting“, die von der Kamera durch jedes Pixel mit Objekten den Schnittpunkt der Linie ist, die Berechnung (die verschiedenen Darstellungen aufweisen, einschließlich Dreiecke, algebraischen Oberflächen, NURBS, etc.).
Andere Klassen von verborgenen Oberflächenalgorithmen umfassen „Z-Puffer“, „Scanline-Techniken“, „Prioritätsliste Algorithmen“, und so weiter. Sie waren ziemlich verflixt kreativ mit Algorithmen zurück in den Tagen, als es gab nicht viele Rechenzyklen und nicht genug Speicher, der einen Z-Puffer zu speichern.
In diesen Tagen sind sowohl Rechen- und Speicher billig, und so drei Techniken haben ziemlich viel gewonnen aus: (1) Zerteilen alles in Dreiecke und mit einem Z-Puffer; (2) Raycasting; (3) Reyes artige Algorithmen, die eine erweiterte z-Puffer verwendet, der Transparenz und dergleichen zu handhaben. Moderne Grafikkarten tun # 1; High-End-Software-Rendering in der Regel tut # 2 oder # 3 oder eine Kombination. Obwohl verschiedenen Raytracing-Hardware vorgeschlagen worden, und manchmal gebaut, aber nie gefangen, und auch sind nun moderne GPUs programmierbare genug, um tatsächlich Strahlenspur, wenn auch bei einem schweren Geschwindigkeit Nachteile ihrer hartcodierte Rasterung Techniken. Andere exotische Algorithmen meist auf der Strecke über die Jahre gesunken. (Obwohl verschiedene Sortier- / splatting Algorithmen können für Volumen-Rendering oder andere spezielle Zwecke verwendet werden.)
„Rastern“ wirklich nur bedeutet „herauszufinden, wie viele Pixel ein Objekt liegt auf.“ Konvention schreibt vor, dass es Raytracing ausschließt, aber das ist wackelig. Ich nehme an, Sie könnten, dass die Rasterung Antworten rechtfertigen „die Pixel bedeuten diese Form überlappt“, während Ray-Tracing-Antworten „das Objekt hinter diesem Pixel ist“, wenn Sie den Unterschied sehen.
Nun, versteckte Oberflächenentfernung ist nicht das einzige Problem im Bereich des zu lösenden „rendering.“ Zu wissen, welche Aufgabe in jedem Pixel sichtbar ist, ist nur ein Anfang; Sie müssen auch wissen, welche Farbe es ist, was bedeutet, einige Verfahren zur Berechnung, die, wie sich Licht ausbreitet um die Szene. Es gibt eine ganze Reihe von Techniken, gebrochen in der Regel nach unten in dem Umgang mit Schatten, Reflexionen und „Global Illumination“ (das, was zwischen den Objekten springt, im Gegensatz zu direkt von Lichtern kommen).
„Ray Tracing“ ist die Ray-Casting-Technik anwenden, um auch die Sichtbarkeit für Schatten zu bestimmen, Reflexionen, globale Beleuchtung, etc. Es ist möglich ray zu verwenden für alles Tracing, oder für Schatten Tracing verschiedene Rastern Methoden zur Kamera Sichtbarkeit und Strahl zu verwenden, , Reflexionen und GI. „Photon Mapping“ und „Pfad Tracing“ sind Techniken für bestimmte Arten von Lichtausbreitung Berechnung (Raytracing verwendet wird, so ist es einfach falsch zu sagen, sie sind irgendwie im Grunde eine andere Rendering-Technik). Darüber hinaus gibt es globale Beleuchtungstechniken, die Raytracing, wie „Radiosity“ keine Methoden verwenden (die zur Lösung globaler Lichtausbreitung eine Finite-Elemente-Methode ist, aber in den meisten Teilen des Feldes haben in Ungnade gefallen in letzter Zeit). Aber der Einsatz von Radiosity oder Photon Mapping für Lichtausbreitung STILL erfordert, dass Sie ein endgültiges Bild irgendwie zu machen, in der Regelmit einer der Standardtechniken (Raycasting, z Puffer / Rasterung, etc.).
Nutzer, die bestimmte Formdarstellungen (NURBS, Volumen, Dreiecke) sind auch ein wenig verwirrt erwähnen. Dies ist ein orthogonales Problem Raytraceergebnis vs Rasterung. Zum Beispiel können Sie Raytraceergebnis nurbs direkt, oder Sie können die NURBS in Dreiecke in Würfel schneiden und sie verfolgen. Sie können direkt Dreiecke in einen Z-Puffer rastern, aber Sie können auch direkt rasterize hoher Ordnung parametrischer Oberflächen in Scanlinie um (vgl Lane / Carpenter / etc CACM 1980).
Andere Tipps
Es gibt eine Technik, Photon Mapping genannt dass Raytracing eigentlich recht ähnlich ist, aber bietet verschiedene Vorteile in komplexen Szenen. In der Tat ist es die einzige Methode (zumindest von denen ich weiß), das wirklich realistisch bietet Rendering (das heißt alle Gesetze der Optik befolgt werden), wenn es richtig gemacht. Es ist eine Technik, die sparsam wie weit verwendet wird, wie ich weiß, da es Leistung ist enorm schlechter als auch Raytracing (vorausgesetzt, dass es effektiv das Gegenteil tut und simuliert die durch Photonen, die von den Lichtquellen der Kamera aufgenommen wurden Pfade) - doch das ist es Einziger Nachteil. Es ist sicherlich ein interessanter Algorithmus, obwohl Sie sich nicht in Gebrauch widescale bis weit nach ray gehen, um zu sehen Tracing (wenn überhaupt).
Der Rendering Artikel auf Wikipedia umfasst verschiedene Techniken .
Intro Absatz:
Viele Rendering-Algorithmen haben recherchiert und Software verwendet für Rendering verwenden kann, eine Reihe von verschiedene Techniken, um eine endgültige zu erhalten Bild.
jeden Lichtstrahl in einer Szene Tracing ist unpraktisch und würde ein enorm viel Zeit. auch Tracing ein Teil groß genug, um eine zu erzeugen, Bild nimmt eine ungeregelte Menge Zeit, wenn die Probenahme nicht ist intelligent beschränkt.
Daher vier lose Familien mehr effiziente Lichttransport Modellierungstechniken entstanden: Rasterung , einschließlich der Scanlinie Rendering, geometrisch Projekte Objekte in der Szene zu einem Bild Flugzeug, ohne erweiterte optische Auswirkungen; Strahlwerfprozessoren hält die Szene wie aus einem bestimmten beobachtet Point-of-view, die Rechen beobachtete Bild basiert nur auf Geometrie und sehr grundlegende optische Gesetze Reflexionsintensität und vielleicht Monte-Carlo-Techniken zu reduzieren, Artefakte; Radiosity verwendet endliche Element Mathematik zu simulieren diffuse Ausbreitung von Licht aus Oberflächen; und Raytracing ist ähnlich zu Ray-Casting, beschäftigt aber mehr erweiterte optische Simulation und in der Regel verwendet Monte Carlo-Techniken erhalten realistischere Ergebnisse zu einem Geschwindigkeit, die oft Ordnungen Größenordnung langsamer.
Die fortschrittliche Software kombiniert zwei oder mehr der Techniken zu erhalten, gut genug, um Ergebnisse zu vernünftigen Kosten.
Ein weiterer Unterschied zwischen Bild Um Algorithmen, die iterieren Pixel der Bildebene und das Objekt Um Algorithmen, die iterieren Objekte in der Szene. Im allgemeinen Objekt Auftrag ist effizienter, da es in der Regel weniger Objekte in einer Szene als Pixel.
Aus diesen Beschreibungen, nur Radiosity in Konzept zu mir anders scheint.