Wie rendert ein Computer ein Objekt auf dem Bildschirm?

18

Werden alle Computergrafiken mit Polygonen gerendert? Ich meine, einige Computergeometrien werden mathematisch in Form von Gleichungen dargestellt (z. B. CAD-Software).

Muss der Computer diese Geometrien zuerst tessellieren, bevor er die Visualisierung ordnungsgemäß auf dem Bildschirm darstellen kann, oder gibt es andere Methoden, um das Bild auf den Bildschirm zu bringen, ohne ein Objekt tessellieren zu müssen?

Bearbeiten: Ich denke, genauer auf die GPU konzentriert. Wie dosiert die GPU das? Welche Art von Eingaben ist erforderlich, dh mit welchen Modellformaten arbeitet die GPU? Kann es eine perfekte mathematische Darstellung direkt verwenden oder das Modell selbst tessellieren, bevor es tatsächlich gerendert wird, um die GPU zu screenen oder zu dosieren, ist zunächst ein tesselliertes Modell erforderlich.

Unter Tessellation verstehe ich auch die Art und Weise, wie ein Computer eine mathematische Darstellung eines Objekts in eine Oberflächenannäherung von Polygonen (fast immer Dreiecke) zerlegt. Je mehr Polygone verwendet werden, desto näher ist die Oberfläche am eigentlichen Objekt.

Gefälscht
quelle
4
Was für eine interessante Frage!
r0ca

Antworten:

2

Dies ist die Nachverfolgung Ihres Kommentars zu @ niks Antwort:

Die überwiegende Mehrheit der CAD-Systeme verwendet Polygone (Wellendreiecke), um ihre Modelle zu rendern.

Sie speichern die Modelle auf verschiedene Weise, beispielsweise basierend auf CSG- Modellen (Constructive Solid Geometry) oder B-rep- Modellen (Boundary Representation). Wenn diese angezeigt werden, werden sie facettiert und die Dreiecke zum Zeichnen an die GPU gesendet .

Jedes System hat seine eigene Lösung, um das Modell in Dreiecke zu unterteilen.

ChrisF
quelle
7

Ich bin mir nicht sicher, inwieweit Sie diese Frage neugierig stellen.
Im Allgemeinen verweise ich Sie jedoch auf die Wikipedia- Seite für Computergrafiken .

Dort gibt es auch einen Link zur Kritischen Geschichte der Computergrafik und Animation .
Sie können von der Inhaltsseite zu dem gewünschten Abschnitt springen.


Update: Ich frage mich, ob Ihre Frage auf Konzepten basiert, die mit dieser UnlimitedDetail- Site zusammenhängen.

Die meisten heutigen 3D-Grafiken basieren auf dem sogenannten Polygonsystem. Es ist ein System, das Dinge aus kleinen flachen Formen zusammensetzt, die als Polygone bezeichnet werden.

...

Die drei derzeit in der 3D-Grafik verwendeten Systeme sind Raytracing, Polygone und Punktwolken / Voxel. Sie haben alle Stärken und Schwächen. Polygone laufen schnell, haben aber eine schlechte Geometrie, Ray-Trace und Voxel haben eine perfekte Geometrie, laufen aber sehr langsam.

etc...

nik
quelle
+1 für die Erwähnung einer kritischen Geschichte der Computergrafik und Animation. viel zu lesen, aber sehr interessant ;-)
Diskilla
Meine Neugier geht normalerweise sehr tief, bis hin zur Mathematik hinter der Idee (obwohl ich keine so detaillierte Antwort erwarte, möchte ich nur allgemein wissen, was eine GPU verwendet). Was meine Frage betrifft, so bezieht sie sich speziell auf CAD-Software und darauf, wie sie zwischen ihren mathematischen Modellen und dem, was Sie auf dem Bildschirm sehen, konvertieren (über GPU-Rendering). Warum? Ich bin nur Neugierig.
Gefälschter
2

Wenn Sie wirklich tief in die Mechanik der GPU und der Rendering-Techniken eintauchen möchten, finden Sie das folgende Buch jetzt online:

GPU Gems 3, Addison-Wesley Professional (12. August 2007)

GPU Gems 3 wird von Hubert Nguyen, Manager für Developer Education bei NVIDIA, herausgegeben. Hubert ist ein Grafiker, der im NVIDIA Demo-Team gearbeitet hat, bevor er zu seiner aktuellen Position wechselte. Seine Arbeiten sind auf den Cover von GPU Gems (Addison-Wesley, 2004) und GPU Gems 2 zu sehen.

GPU Gems 3 ist eine Sammlung von GPU-Programmierbeispielen auf dem neuesten Stand der Technik. Es geht darum, die datenparallele Verarbeitung zum Laufen zu bringen. Die ersten vier Abschnitte konzentrieren sich auf grafikspezifische Anwendungen von GPUs in den Bereichen Geometrie, Beleuchtung und Schatten, Rendering und Bildeffekte. Die Themen im fünften und sechsten Abschnitt erweitern den Anwendungsbereich durch konkrete Beispiele für nicht-grafische Anwendungen, die jetzt mit datenparalleler GPU-Technologie behandelt werden können. Diese Anwendungen sind vielfältig und reichen von der Starrkörpersimulation bis zur Strömungssimulation, von der Virensignaturanpassung bis zur Ver- und Entschlüsselung und von der Zufallszahlengenerierung bis zur Berechnung des Gaußschen.

Frühere Ausgaben sind ebenfalls online und nach wie vor lesenswert:

GPU Gems: Programmiertechniken, Tipps und Tricks für Echtzeitgrafiken, herausgegeben von Randima Fernando, März 2004

GPU Gems 2: Techniken für Grafik und rechenintensive Programmierung, herausgegeben von Matt Pharr, März 2005

Programmierung von Vertex-, Geometrie- und Pixel-Shadern, 2. Auflage, von Wolfgang Engel, Jack Hoxley, Ralf Kornmann, Niko Suni und Jason Zink, Dezember 2008

Der letzte ist ein ungleichmäßiger Entwurf eines Buches, der jedoch an manchen Stellen äußerst wertvoll ist. Das Beleuchtungskapitel von Jack Hoxley enthält detaillierte Erklärungen zu verschiedenen Beleuchtungsmodellen sowie funktionierenden Shader-Code.

Harrymc
quelle
1

Wenn Sie immer etwas rendern, verwenden Sie Polygone. Es wird sogar von Künstlern benutzt. Polygon bedeutet ebene Figur. Um etwas Dreidimensionales zu erzeugen, nimmt man immer mehrere Polygone und setzt sie zusammen. Je mehr ebene Figuren Sie verwenden, desto mehr Details können Sie zu Ihrer dreidimensionalen Figur hinzufügen. Gleichungen werden verwendet, um Dinge wie zum Beispiel die Ausstrahlung des Objekts zu berechnen.

Um diesen Vorgang vollständig zu verstehen, sollten Sie den bereits erwähnten Wikipedia-Artikel Nik lesen .

edit .: Ich bin mir nicht mehr sicher, was ich unter "tesselate an object" verstehe. Wenn möglich, können Sie dies näher erläutern?

Diskilla
quelle
Was ich mit Tessellation meine, ist, dass ein festes Objekt in eine Reihe flacher Polygone (fast immer Dreiecke) zerlegt wird, die sich der Oberfläche eines Objekts annähern. Je größer die Anzahl der Dreiecke ist, desto näher ist die Darstellung an der tatsächlichen Oberfläche des Objekts.
Gefälschter
1

Im Laufe der Computergeschichte haben verschiedene GPUs die Dinge auf unterschiedliche Weise implementiert, unter Berücksichtigung der Auflösung, Genauigkeit, Aktualisierungsrate und Funktionen von Monitoren sowie der Implementierung neuer und interessanterer APIs im Laufe der Zeit.

Beispielsweise bieten einige GPUs vollständige 3D-Darstellungsoberflächen für die Welt, während andere weniger leistungsfähig sind.

ASICs (und darüber hinaus) sind das Herzstück dessen, wie GPUs heute ihre Magie entfalten. Die Fähigkeit, solche Komplexitäten wie das Ausführen von virtuellen Maschinen in einer Subroutine in Silizium zu verbergen, macht den ganzen Zauber möglich. Über die Tesselation hinaus gibt es Surface Mapping, Shadowing und vieles mehr, die alle in der GPU-Logik behandelt werden.

Hoffe das hilft!
-pbr

pbr
quelle