Gibt es irgendwelche rendering alternativen zu rasterisation oder raytracing?
Rasterisation (Dreiecke) und ray-tracing sind die einzigen Methoden, die ich habe jemals begegnet zu Rendern einer 3D-Szene. Gibt es irgendwelche anderen? Auch ich würde gerne wissen, dass andere wirklich "da draußen" ways of doing 3D, wie nicht mit Polygonen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aagh! Diese Antworten sind sehr uninformiert!
Natürlich, es hilft nicht, dass die Frage ungenau ist.
OK, "rendering" ist ein wirklich breites Thema. Ein Problem innerhalb der rendering Kamera, Sichtbarkeit und "hidden surface algorithmen" -- herauszufinden, welche Objekte zu sehen sind, die in jedem pixel. Es gibt verschiedene Kategorisierungen von Sichtbarkeits-algorithmen. Das ist wahrscheinlich, was auf dem Plakat Stand zu Fragen (da Sie dachten, es als eine Dichotomie zwischen "Rasterung" und "ray-tracing").
Klassisches (wenn auch jetzt etwas veraltet) Kategorisierung Referenz Sutherland et al "A Characterization of Ten Hidden Surface Algorithms", ACM Computer Surveys 1974. Es ist sehr veraltet, aber es ist immer noch hervorragend für einen Rahmen für das nachdenken darüber, wie Sie zu kategorisieren sind solche algorithmen.
Einer Klasse von hidden-surface-algorithmen beinhaltet "ray casting", die computing ist der Schnittpunkt der Linie von der Kamera durch jedes pixel mit Objekten (das können verschiedene Darstellungen, einschließlich Dreiecke, algebraische Flächen, NURBS, etc.).
Anderen Klassen von hidden-surface-algorithmen sind "z-buffer", "scanline-Techniken", "list-priority-algorithmen", und so weiter. Sie waren verdammt kreativ mit algorithmen zurück in den Tagen, wenn es gar nicht so viele Zyklen berechnen und nicht genug Speicher für z-buffer.
Dieser Tage, sowohl für Rechenleistung und Speicher sind Billig, und so drei Techniken haben ziemlich viel gewonnen: (1) würfeln alles in Dreiecke und mit Hilfe eines z-buffer; (2) ray-casting; (3) Reyes-algorithmen, die verwendet eine erweiterte z-buffer zu behandeln, Transparenz und dergleichen. Moderne Grafikkarten #1; high-end-software-rendering in der Regel nicht, #2 oder #3 oder eine Kombination. Obwohl verschiedene ray-tracing-hardware vorgeschlagen wurde, und manchmal gebaut, aber nie gefangen auf, und auch der moderne GPUs sind jetzt programmierbar genug, um tatsächlich "ray trace", wenn Sie an einer schweren speed-Nachteil gegenüber den fest kodierten Rasterung Techniken. Andere exotische algorithmen haben meist blieben auf der Strecke im Laufe der Jahre. (Obwohl verschiedene Sortier - /splatting-Algorithmus kann verwendet werden, für Volumen-rendering oder andere spezielle Zwecke.)
"Rastern" wirklich bedeutet nur, "um herauszufinden, welche Pixel zu einem Objekt liegt." Konvention vorschreibt, schließt ray-tracing, das ist aber wackelig. Ich nehme an, man könnte begründen, dass die Rasterung Antworten ", die Pixel, die nicht diese Form überlappen" in der Erwägung, dass das ray-tracing-Antworten "das Objekt ist hinter diesem pixel", wenn Sie den Unterschied sehen.
Nun dann, hidden surface removal ist nicht das einzige problem, das gelöst werden in dem Feld "übergabe." Wissen was Objekt ist sichtbar in jedem pixel ist nur ein Anfang; Sie müssen auch wissen, welche Farbe es ist, was bedeutet, dass einige Methoden des computing, wie sich das Licht ausbreitet, um die Szene herum. Es gibt eine ganze Reihe von Techniken, die in der Regel unterteilt in Umgang mit Schatten, Spiegelungen und "global illumination" (dass die Sprünge zwischen den Objekten, im Gegensatz zu, die direkt von den Lampen).
"Ray-tracing" bedeutet die Anwendung der ray-casting Technik, um auch festzustellen, Sichtbarkeit für Schatten, Reflexionen, global illumination, etc. Es ist möglich, ray-tracing für alles, oder verwenden Sie verschiedene Rasterung Methoden für die Kamera Sicht-und raytracing-Schatten, Reflexionen und GI. "Photon mapping" - und "path tracing" werden Techniken zur Berechnung bestimmter Arten von Licht-Ausbreitung (mit der ray-tracing, also ist es einfach falsch zu sagen, Sie sind irgendwie grundsätzlich eine andere rendering-Technik). Es gibt auch global illumination Techniken, die nicht mit ray-tracing, wie "radiosity" - Methoden (was ist eine finite-Elemente-Ansatz zur Lösung der globalen Licht-Ausbreitung, aber in den meisten teilen des Feldes haben, die gefallenen aus der Gunst in letzter Zeit). Aber mit radiosity oder photon-mapping für die Lichtausbreitung immer NOCH erforderlich, um eine endgültige Bild irgendwie, in der Regel mit einem der standard-Verfahren (ray-casting, z-Puffer/Rasterung, etc.).
Menschen, die erwähnen, spezifische Form-Repräsentationen (NURBS, Volumen, Dreiecke) sind auch ein wenig verwirrt. Dies ist ein orthogonales problem zu raytracing vs. Rasterisierung. Zum Beispiel können Sie mit ray-tracing nurbs direkt, oder Sie können die Würfel die nurbs in Dreiecke und verfolgen Sie diese. Sie können direkt Rastern von Dreiecken in einen z-buffer, aber Sie können auch direkt Rastern hoch, um parametrische Oberflächen in scanline-order (c.f. Lane/Zimmermann/etc CACM 1980).
Es gibt eine Technik, genannt photon mapping, dass ist eigentlich ganz ähnlich wie ray-tracing, bietet aber verschiedene Vorteile bei komplexen Szenen. In der Tat, es ist die einzige Methode, mit der (zumindest von denen die ich kenne), die eine wirklich realistische (D. H. alle den Gesetzen der Optik gehorcht) Rendern, wenn man es richtig macht. Es ist eine Technik, die sparsam eingesetzt, soweit ich weiß, da es die Leistung ist enorm schlechter als auch ray-tracing (gegeben, dass es effektiv das Gegenteil ist der Fall und simuliert die Wege die Photonen von den lichtquellen an der Kamera), aber das ist es nur von Nachteil. Es ist sicherlich ein interessanter Algorithmus, wenn du nicht gehst, um es zu sehen, in großflächiger Einsatz bis weit nach dem ray-tracing (wenn überhaupt).
Den Rendering-Artikel in der Wikipedia umfasst verschiedene Techniken.
Intro-Absatz:
Aus diesen Beschreibungen, nur radiosity scheint anders Konzept von mir.