Clipping im Kontext der Computergrafik ist ein Verfahren, um selektiv Renderingoperationen innerhalb eines definierten Bereichs von Interesse zu aktivieren oder zu deaktivieren. Mathematisch lässt sich das Clipping mit der Terminologie der konstruktiven Geometrie beschreiben. Ein Rendering-Algorithmus zeichnet nur Pixel im Schnittpunkt zwischen dem Clip-Bereich und dem Szenenmodell. Linien und Flächen außerhalb des Sichtvolumens (frustum) werden entfernt.
Clip-Bereiche werden häufig angegeben, um die Renderleistung zu verbessern. Ein gut ausgewählter Clip ermöglicht es dem Renderer, Zeit und Energie zu sparen, indem dieser Berechnungen zu Pixeln überspringt, die der Benutzer nicht sehen kann. Pixel, die gezeichnet werden sollen, befinden sich innerhalb der Clipart. Pixel, die nicht gezeichnet werden, befinden sich außerhalb des Clip-Bereichs. Informaler ausgedrückt, werden Pixel, die nicht gezeichnet werden sollen, als „clipped“ bezeichnet.
Clipping in 2D Grafiken.
In zweidimensionalen Grafiken kann ein Clipartbereich definiert werden, so dass Pixel nur innerhalb der Grenzen eines Fensters oder Frames gezeichnet werden. Clip-Bereiche können auch zur selektiven Steuerung des Pixel-Renderings für ästhetische oder künstlerische Zwecke verwendet werden. In vielen Implementierungen ist der endgültige Clip-Bereich der Verbund (oder Schnittpunkt) aus einer oder mehreren anwendungsdefinierten Formen sowie alle Hardwarebeschränkungen des Systems.
In einer Beispielanwendung ist ein Bildbearbeitungsprogramm zu empfehlen. Eine Benutzeranwendung kann das Bild in ein Ansichtsfenster rendern. Während der Benutzer zoomt und scrollt, um einen kleineren Teil des Bildes zu sehen, kann die Anwendung eine Clip-Grenze setzen, so dass Pixel außerhalb des Ansichtsfensters nicht gerendert werden. Darüber hinaus können GUI-Widgets, Overlays und andere Fenster oder Rahmen einige Pixel vom Originalbild verdecken. In diesem Sinne ist der Clip-Bereich das Zusammenwirken des anwendungsdefinierten „Benutzerclips“ und des „Geräteclips“, der durch die Soft- und Hardwareimplementierung des Systems erzwungen wird. Die Anwendungssoftware kann diese Clip-Informationen nutzen, um Rechenzeit, Energie und Speicherplatz zu sparen und Arbeiten im Zusammenhang mit Pixeln zu vermeiden, die nicht sichtbar sind.
Clipping in 3D Grafiken.
In dreidimensionalen Grafiken kann die Terminologie des Clippings verwendet werden, um viele verwandte Merkmale zu beschreiben. Typsicherweise bezieht sich „Clipping“ auf Operationen in der Ebene, die mit rechteckigen Formen arbeiten, und „Culling“ auf allgemeinere Methoden zur selektiven Verarbeitung von Szenenmodellelementen. Diese Terminologie ist nicht starr, und die genaue Verwendung variiert von Quelle zu Quelle.
Szenenmodellelemente beinhalten geometrische Primitive: Punkte oder Nodes, Liniensegmente oder Kanten, Polygone oder Flächen und abstarktere Modellobjekte wie Kurven, Splines, Flächen und sogar Text. In komplizierten Szenenmodellen können einzelne Elemente selektiv deaktiviert (abgeschnitten) werden, z.B. aus Gründen der Sichtbarkeit innerhalb des Viewports (Backface Culling), der Orientierung (Rückseitenalveation), der Verdunkelung durch andere Szenen oder Modellelemente (Occlusion Culling, Depth- oder Z-Clipping). Es gibt ausgefeilte Algorithmen, um ein solches Clipping effizient tz erkennen und durchzuführen. Viele optimierte Clipping-Methoden basieren auf einer spezifischen Hardwarebeschleunigungslogik, die von einer Grafikprozessoreinheit (GPU) bereitgestellt wird.
Das Konzept des Clipping kann mit Methoden der abstrakten algebraischen Geometrie auf eine höhere Dimensionalität erweitert werden.
Near Clipping.
Neben der Projektion von Eckpunkten und dem 2D-Clipping ist ein Near-Clipping erforderlich, um 3D-Primitive korrekt zu rastern. Dies liegt daran, dass Eckpunkte möglicherweise hinter dem Auge projiziert wurden. Das Near Clipping stellt sicher, dass alle verwendeten Nodes gültige 2D-Koordinaten haben. Zusammen mit dem Far-Clipping hilft es auch, ein Überlaufen der Depth-Buffer-Werte zu verhindern. Einige frühe Textur-Mapping-Geräte (mit Forward Texture Mapping) in Videospielen litten unter Komplikationen in Zusammenhang mit Near Clipping und UV-Koordinaten.
Occlusion Clipping (Z- oder Depth Clipping).
In der 3D-Computergrafik bezieht sich „Z“ oft auf die Tiefenachse im Koordinatensystem, sie auf den Ansichtsfenster-Ursprung zentriert ist: „Z“ wird austauschbar mit „Tiefe“ verwendet und entspricht konzeptionell dem Abstand „in den virtuellen Bildschirm“. In diesem Koordinatensystem beziehen sich „X“ und „Y“ daher auf ein herkömmliches kartesisches Koordinatensystem, das auf dem Bildschirm oder Ansichtsfenster des Benutzers angeordnet ist. Dieses Ansichtsfenster wird durch die Geometrie des Sichtfeldes definiert und parametrisiert das Sichtfeld.
Z-Clipping oder Depth Clipping bezieht sich auf Techniken, die bestimmte Szenenobjekte selektiv basierend auf ihrer Tiefe in Bezug auf den Bildschirm rendern. Die meisten Grafik-Toolkits erlauben es dem Programmierer, eine „near“ and „far“ Cliptiefe anzugeben, und nur Teile von Objekten zwischen diesen beiden Ebenen werden angezeigt. Ein kreativer Anwendungsprogrammierer kann mit dieser Methode Visualisierungen des Innenraums eines 3D-Objekts in der Szene darstellen. Zum Beispiel könnte eine medizinische Bildgebungsanwendung diese Technik nutzen, um die Organe in einem menschlichen Körper darzustellen. Zum Beispiel könnte eine medizinische Bildgebungsanwendung diese Technik nutzen, um die Organe in einem menschlichen Körper darzustellen. Ein Videospielprogrammierer kann Clipping-Informationen verwenden, um die Spiellogik zu beschleunigen. Zum Beispiel kann eine hohe Wand oder ein Gebäude, das andere Game Units verschließt, GPU-Zeit sparen, die sonst für die Transformation und Texturierung von Elementen in den hinteren Bereichen der Szene aufgewendet würde und ein eng integriertes Softwareprogramm kann diese Informationen verwenden, um CPU-Zeit zu sparen, indem es die Spiellogik für Objekte optimiert, die nicht vom Spieler gesehen werden.
Die Bedeutung von Clipping in Videospielen.
Eine gute Clipping-Strategie ist wichtig bei der Entwicklung von Videospielen, um die Bildrate und -qualität des Spiels zu maximieren. Trotz GPU-Chips, die jedes Jahr schneller sind, ist es nach wie vor rechenintensiv, Polygone zu transformieren, zu texturieren und zu schattieren, insbesondere mit den heute üblichen Mehrfachtexturen und Shadings. Daher müssen Spieleentwickler innerhalb eines bestimmten Budgets von Polygonen leben, die für jedes Videospiel gezeichnet werden können.
Um die visuelle Qualität des Spiels zu maximierren, ziehen es die Entwickler vor, ästhetische Entscheidungen zu treffen, anstatt die Hardwarebeschränkung auf das Polygonbudget zu beschränken. Optimierungen, die die Performance verbessern oder die Vorteile der Beschleunigung der Grafikpipeline nutzen, verbessern somit das Spielerlebnis.
Die Clipping-Optimierung kann das Rendern der aktuellen Szene beschleunigen und die Nutzung von Renderzeit und Speicherplatz im Rahmen der Möglichkeiten der Hardware einsparen. Programmierer entwickeln oft clevere Heuristiken, um den Clipper zu beschleunigen, da es manchmal rechnerisch unzumutbar ist, mit Hilfe von Line Casting oder Raytracing zu bestimmen, welche Polygone sich nicht im Sichtfeld der Kamera befinden. Räumlich bewusste Datenstrukturen wie Octrees, R*-Trees und Bounding Volume Hierarchien können verwendet werden, um Szenen in gerenderte und nicht gerenderte Bereiche zu unterteilen (so kann der Renderer gegebenenfalls ganze Tree-Nodes ablehnen oder akzeptieren).
Occlusion-Optimierungen, die auf der Geometrie des Blickwinkels basieren, können Artefakte hervorrufen, wenn die Szene reflektierende Oberflächen enthält. Eine gängige Technik, das Reflection-Mapping, kann optional vorhandene Occlusion-Schätzungen aus der Sicht des Main Frustum View verwenden oder wenn es die Leistung erlaubt, kann eine neue Occlusion Map aus einer separaten Kameraposition berechnet werden.
Aus historischen Gründen verwendeten einige Videospiele Collision Detection Optimierungen mit identischer Logik und Hardwarebeschleunigung wie der Occlusiontest. Infolgedessen haben Nichtfachleute den Begriff „Clip“ (und sein Anonym „No Clipping“) fälschlicherweise verwendet, um sich auf das Collision Detection zu beziehen.
Wir hoffen, dass wir Ihnen einen ersten kleinen Überblick über das Clipping im Kontext der Computergrafik geben konnten. Wenn Sie noch Fragen oder Anregungen haben sollten, hinterlassen Sie unten einen Kommentar.
Vielen Dank für Ihren Besuch.