Schatten: Erkundung visueller Bereiche mit Shader: Eine Reise in die Computer Vision
Von Fouad Sabry
()
Über dieses E-Book
Was ist Schatten?
In der Computergrafik ist ein Schatten ein Computerprogramm, das beim Rendern einer 3D-Szene die entsprechenden Licht-, Dunkelheits- und Farbwerte berechnet – ein Vorgang, der als Shading bezeichnet wird. Schatten haben sich weiterentwickelt, um eine Vielzahl von Spezialfunktionen bei Computergrafik-Spezialeffekten und Videonachbearbeitung sowie bei der allgemeinen Datenverarbeitung auf Grafikverarbeitungseinheiten auszuführen.
Wie Sie davon profitieren
(I) Erkenntnisse und Validierungen zu den folgenden Themen:
Kapitel 1: Schatten
Kapitel 2: Öffnen Sie die Grafikbibliothek
Kapitel 3: Direkte 3 Dimensionen
Kapitel 4: Hochwertiger Schatten Sprache
Kapitel 5: Offene Grafikbibliothek in eingebetteten Systemen
Kapitel 6: Grafikpipeline
Kapitel 7: Schattierungssprache
Kapitel 8: Software Rendering
Kapitel 9: Öffnen Sie die Schattierungssprache der Grafikbibliothek
Kapitel 10: Computergrafikbeleuchtung
(II) Beantwortung der öffentlichen Top-Fragen zum Thema Schatten.
(III) Beispiele aus der Praxis für den Einsatz von Schatten in vielen Bereichen.
Für wen dieses Buch ist
Profis, Studenten und Doktoranden, Enthusiasten, Hobbyisten und diejenigen, die über grundlegende Kenntnisse oder Informationen für jede Art von Schatten hinausgehen möchten.
Mehr von Fouad Sabry lesen
Ähnlich wie Schatten
Titel in dieser Serie (100)
Gemeinsame Fotoexpertengruppe: Erschließen Sie das Potenzial visueller Daten mit dem JPEG-Standard Bewertung: 0 von 5 Sternen0 BewertungenUnterwasser-Computervision: Erkundung der Tiefen der Computer Vision unter den Wellen Bewertung: 0 von 5 Sternen0 BewertungenFarberscheinungsmodell: Wahrnehmung und Darstellung in Computer Vision verstehen Bewertung: 0 von 5 Sternen0 BewertungenComputer Vision: Erkundung der Tiefen des Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenHough-Transformation: Enthüllung der Magie der Hough-Transformation in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenHadamard-Transformation: Enthüllung der Leistungsfähigkeit der Hadamard-Transformation in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenBildhistogramm: Visuelle Einblicke enthüllen und die Tiefen von Bildhistogrammen in der Computer Vision erkunden Bewertung: 0 von 5 Sternen0 BewertungenBildkompression: Effiziente Techniken zur visuellen Datenoptimierung Bewertung: 0 von 5 Sternen0 BewertungenTonzuordnung: Tone Mapping: Erhellende Perspektiven in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenAnisotrope Diffusion: Verbesserung der Bildanalyse durch anisotrope Diffusion Bewertung: 0 von 5 Sternen0 BewertungenLärmminderung: Verbesserung der Klarheit, fortschrittliche Techniken zur Rauschunterdrückung in der Bildverarbeitung Bewertung: 0 von 5 Sternen0 BewertungenAdaptiver Filter: Verbesserung der Computer Vision durch adaptive Filterung Bewertung: 0 von 5 Sternen0 BewertungenRadon-Transformation: Aufdecken verborgener Muster in visuellen Daten Bewertung: 0 von 5 Sternen0 BewertungenOrientiertes Gradienten-Histogramm: Enthüllung des visuellen Bereichs: Erkundung des Histogramms mit orientierten Farbverläufen in der Bildverarbeitung Bewertung: 0 von 5 Sternen0 BewertungenHomographie: Homographie: Transformationen in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenComputer-Stereo-Vision: Erforschung der Tiefenwahrnehmung in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenKantenerkennung: Grenzen in der Computer Vision erkunden Bewertung: 0 von 5 Sternen0 BewertungenFarbanpassungsfunktion: Spektrale Empfindlichkeit in Computer Vision verstehen Bewertung: 0 von 5 Sternen0 BewertungenHistogrammausgleich: Verbesserung des Bildkontrasts für eine verbesserte visuelle Wahrnehmung Bewertung: 0 von 5 Sternen0 BewertungenHarris Eckendetektor: Enthüllung der Magie der Bildmerkmalserkennung Bewertung: 0 von 5 Sternen0 BewertungenAktive Kontur: Weiterentwicklung der Computer Vision mit aktiven Konturtechniken Bewertung: 0 von 5 Sternen0 BewertungenRetinex: Enthüllen Sie die Geheimnisse des computergestützten Sehens mit Retinex Bewertung: 0 von 5 Sternen0 BewertungenFarbmanagementsystem: Optimierung der visuellen Wahrnehmung in digitalen Umgebungen Bewertung: 0 von 5 Sternen0 BewertungenInpainting: Überbrückung von Lücken in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenAffine Transformation: Visuelle Perspektiven freischalten: Erforschung der affinen Transformation in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenGamma-Korrektur: Verbesserung der visuellen Klarheit in der Computer Vision: Die Gammakorrekturtechnik Bewertung: 0 von 5 Sternen0 BewertungenModell des menschlichen visuellen Systems: Wahrnehmung und Verarbeitung verstehen Bewertung: 0 von 5 Sternen0 BewertungenFarbmodell: Das Spektrum des Computer Vision verstehen: Farbmodelle erkunden Bewertung: 0 von 5 Sternen0 BewertungenLevel-Set-Methode: Weiterentwicklung der Computer Vision, Erforschung der Level-Set-Methode Bewertung: 0 von 5 Sternen0 BewertungenFilterbank: Einblicke in die Filterbanktechniken von Computer Vision Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Vektorgrafik-Editor: Ermöglichen Sie die visuelle Erstellung mit fortschrittlichen Algorithmen Bewertung: 0 von 5 Sternen0 BewertungenRastergrafik-Editor: Visuelle Realitäten transformieren: Rastergrafik-Editoren in Computer Vision beherrschen Bewertung: 0 von 5 Sternen0 BewertungenVolumen Rendern: Erforschung des Visuellen Realismus in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenBildkompression: Effiziente Techniken zur visuellen Datenoptimierung Bewertung: 0 von 5 Sternen0 BewertungenFarbprofil: Erforschung der visuellen Wahrnehmung und Analyse in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenTextur Zuordnung: Erforschung der Dimensionalität im Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenDistanznebel: Erkundung der visuellen Grenze: Einblicke in den Distanznebel der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenFarbmanagementsystem: Optimierung der visuellen Wahrnehmung in digitalen Umgebungen Bewertung: 0 von 5 Sternen0 BewertungenRastergrafiken: Die Grundlagen der Rastergrafik in der Computer Vision verstehen Bewertung: 0 von 5 Sternen0 BewertungenRaytracing-Grafiken: Erforschung des fotorealistischen Renderings in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenScan Linien Rendern: Erforschung des visuellen Realismus durch Scan Linien Rendern Techniken Bewertung: 0 von 5 Sternen0 BewertungenVektorgrafiken: Beherrschung von Vektorgrafiken in Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenBewegungsschätzung: Fortschritte und Anwendungen in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenDigitale Rastergrafik: Enthüllung der Leistungsfähigkeit digitaler Rastergrafiken in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenRendern von Computergrafiken: Erforschung des visuellen Realismus: Einblicke in die Computergrafik Bewertung: 0 von 5 Sternen0 BewertungenGlobale Beleuchtung: Vision voranbringen, Einblicke in die globale Beleuchtung Bewertung: 0 von 5 Sternen0 BewertungenPyramiden Bildverarbeitung: Erkundung der Tiefen der visuellen Analyse Bewertung: 0 von 5 Sternen0 BewertungenBump-Mapping: Bump Mapping: Erforschung der Tiefe der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenKantenglättung: Verbesserung der visuellen Klarheit in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenBestimmung verdeckter Oberflächen: Enthüllung der Geheimnisse des Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenBildsegmentierung: Erkenntnisse durch Pixelpräzision erschließen Bewertung: 0 von 5 Sternen0 BewertungenVertex-Computergrafik: Erkundung der Schnittstelle zwischen Vertex Computer Graphics und Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenRendering mit hohem Dynamikbereich: Erschließung des visuellen Spektrums: Fortgeschrittene Techniken in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenTonzuordnung: Tone Mapping: Erhellende Perspektiven in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenModell des menschlichen visuellen Systems: Wahrnehmung und Verarbeitung verstehen Bewertung: 0 von 5 Sternen0 BewertungenFarbzuordnung: Erforschung der visuellen Wahrnehmung und Analyse in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenComputergrafik: Erkundung der Schnittstelle zwischen Computergrafik und Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenHöhenkarte: Erforschung der Geländedarstellung durch Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenComputer-Vision-Grafikschnitte: Erforschung von Graphschnitten in der Computer Vision Bewertung: 0 von 5 Sternen0 Bewertungen
Künstliche Intelligenz (KI) & Semantik für Sie
Meistern von ChatGPT: Entriegeln Sie die Kraft der KI für verbesserte Kommunikation und Beziehungen: German Bewertung: 0 von 5 Sternen0 BewertungenChatGPT – Für Einsteiger: Schreibprofi mit KI, Zeit und Geld sparen ohne peinliche Fehler Bewertung: 0 von 5 Sternen0 BewertungenAufstieg der Roboter: Wie unsere Arbeitswelt gerade auf den Kopf gestellt wird - und wie wir darauf reagieren müssen Bewertung: 0 von 5 Sternen0 BewertungenMenschlicher Geist und Künstliche Intelligenz: Die Entwicklung des Humanen inmitten einer digitalen Welt Bewertung: 0 von 5 Sternen0 BewertungenEinstieg ins Machine Learning: Grundlagen, Prinzipien, erste Schritte Bewertung: 0 von 5 Sternen0 BewertungenChatGPT: Begegnung mit einer neuen Welt: Lernen Sie Künstliche Intelligenz mit der Gratisversion ChatGPT 3.5 Bewertung: 0 von 5 Sternen0 BewertungenDie Zukunft der Arbeit: Digitalisierung, Automatisierung, KI Bewertung: 0 von 5 Sternen0 BewertungenKI-Innovationen: Wie die Technologie die Grenzen verschiebt Künstliche Intelligenz verstehen und nutzen: Ein AI-Buch Bewertung: 0 von 5 Sternen0 BewertungenChatbotische Landingpages: Wie du deine Konkurrenz in den digitalen Staub schicken Bewertung: 0 von 5 Sternen0 BewertungenDie KI Bibel, mit künstlicher Intelligenz Geld verdienen: Echte Fallbeispiele und Anleitungen zum Umsetzen Bewertung: 1 von 5 Sternen1/5Künstliche Intelligenz: Die vierte industrielle Revolution Bewertung: 0 von 5 Sternen0 BewertungenChatGPT: Epische Reise des Erfolgs - 'Steigern Sie Ihren Reichtum': Mit Screenshots aus dem echten Leben - Erreichen Sie finanzielle Höhen Bewertung: 0 von 5 Sternen0 BewertungenRoboter im Alltag: Maschinen (beinahe) wie Menschen Bewertung: 0 von 5 Sternen0 BewertungenDigitalotopia: Sind wir bereit für die (R)Evolution der Wirklichkeit? Bewertung: 0 von 5 Sternen0 BewertungenKünstliche Intelligenz in Sozialen Medien Bewertung: 0 von 5 Sternen0 BewertungenChatbotische Medien-Gestaltung leicht gemacht: Von der Idee zum viralen Hit Bewertung: 0 von 5 Sternen0 BewertungenWissen statt Glauben!: Das Weltbild des neuen Humanismus Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Schatten
0 Bewertungen0 Rezensionen
Buchvorschau
Schatten - Fouad Sabry
Kapitel 1: Shader
Shader sind Computerprogramme, die in Computergrafiken verwendet werden und bestimmen, wie Hell, Dunkel und Farbe in einer 3D-Umgebung gerendert werden sollen. Shader haben sich weiterentwickelt und dienen einer Vielzahl von Zwecken, von allgemeinem Computing auf Grafikprozessoren bis hin zu speziellen Aufgaben in der Computergrafik und Videonachbearbeitung.
Herkömmliche Shader sind für die flexible Berechnung von Rendering-Effekten auf Grafikhardware verantwortlich. Obwohl dies nicht unbedingt erforderlich ist, werden die meisten Shader für die Ausführung auf einer GPU (Graphics Processing Unit) geschrieben. Die traditionelle Pipeline mit fester Funktion für das GPU-Rendering, die nur Standardgeometrietransformationen und Pixelschattierung ermöglichte, wurde weitgehend durch das flexiblere und leistungsfähigere Shader-Programmiermodell ersetzt. Ein Shader ist ein Computerprogramm, das ein erzeugtes Bild modifiziert, indem es seine Position und Farbe (Farbton, Sättigung, Helligkeit und Kontrast) mithilfe der im Shader definierten Techniken ändert und externe Variablen oder Texturen einführt.
In der Postproduktion, CGI und Videospielen werden Shader verwendet, um eine Vielzahl von visuellen Effekten zu erstellen. Shader werden für eine Vielzahl von Effekten verwendet, die über einfache Beleuchtungsmodelle hinausgehen, einschließlich, aber nicht beschränkt auf: Ändern des Farbtons, der Sättigung, der Helligkeit (HSL/HSV) oder des Kontrasts eines Bildes; Erzeugung von Unschärfe, Lichtblüte, volumetrischer Beleuchtung, Normal-Mapping (für Tiefeneffekte), Bokeh, Cel-Shading, Posterisierung, Bump-Mapping, Verzerrung, Chroma-Keying (für sogenannte Bluescreen/Greenscreen
-Effekte), Kantenerkennung und Bewegungsunschärfe; und psychedelische Effekte wie die gesehenen.
Pixar hat diese Bedeutung des Wortes Shader
mit Version 3.0 der RenderMan Interface Specification populär gemacht, die erstmals im Mai 1988 veröffentlicht wurde. Mit der Veröffentlichung von Direct3D 10 und OpenGL 3.2 waren Geometrie-Shader verfügbar. Nach einiger Zeit konvergierte die Grafikhardware zu einem Standard-Shader-Modell.
Die Eigenschaften eines Scheitelpunkts oder eines Pixels können mit Shadern beschrieben werden, bei denen es sich um kleine Programme handelt. Die Eigenschaften eines Scheitelpunkts werden durch Vertex-Shader beschrieben (z. B. Position, Texturkoordinaten, Farben usw.), während die Eigenschaften eines Pixels durch Pixel-Shader (z. B. Farbe, Z-Tiefe und Alpha-Wert) beschrieben werden. Jeder Scheitelpunkt in einem Primitiv (möglicherweise nach Tessellation) löst einen Vertex-Shader-Aufruf aus, sodass ein Vertex-Shader nur sich selbst sieht. Dann werden die Pixel, aus denen jeder Scheitelpunkt besteht, in eine Oberfläche (einen Speicherblock) gezeichnet und an das Display weitergegeben.
Shader ersetzen die Fixed Function Pipeline (FFP) der Grafikhardware, die so genannt wird, weil sie Aufgaben wie Beleuchtung und Texturzuordnung mit vorgegebener Natur übernimmt. Shader bieten eine flexiblere, programmgesteuerte Alternative zu dieser Art der unflexiblen Codierung.
Dies ist die grundlegende Grafikpipeline:
Sowohl Geometriedaten als auch Anweisungen (kompilierte Shading-Sprachprogramme) werden von der CPU an die GPU auf der Grafikkarte gesendet.
Der Vertex-Shader ist der Ort, an dem die Geometrietransformationen stattfinden.
Wenn ein Geometrie-Shader in die GPU geladen wird und aktiv ist, werden einige Änderungen an der Geometrie der Szene vorgenommen.
Szenengeometrien können partitioniert werden, wenn ein Tessellations-Shader in der GPU vorhanden und aktiviert ist.
Triangulation wird bei der Berechnung von Geometrie (unterteilt in Dreiecke) verwendet.
Dreiecke werden in Fragmentquads unterteilt (ein Fragmentquad ist ein 2- × 2-Fragment-Primitiv).
Der Fragment-Shader wirkt sich auf verschiedene Weise auf die Fragment-Quads aus.
Fragmente, die den Tiefentest bestehen, werden auf den Bildschirm gezeichnet und möglicherweise mit anderen Frames im Framepuffer zusammengeführt.
Diese Verfahren werden von der grafischen Pipeline verwendet, um dreidimensionale (oder zweidimensionale) Daten in darstellbare zweidimensionale Informationen zu vereinfachen. Einfach ausgedrückt handelt es sich dabei um eine massive Pixelmatrix, die manchmal auch als Framebuffer
bezeichnet wird.
Pixel-Shader, Vertex-Shader und Geometrie-Shader sind am weitesten verbreitet, es gibt jedoch noch mehr. Im Gegensatz zu früheren Grafikkarten, die dedizierte Verarbeitungseinheiten für jeden Shadertyp hatten, verfügen moderne Karten über einheitliche Shader, die jeden Shader ausführen können. Dadurch können Grafikkarten ihre Ressourcen besser nutzen.
Im Bereich der Computergrafik sind digitale Bilder (auch als Texturen bekannt) das Ziel der Manipulation von 2D-Shadern. Pixeleigenschaften werden durch sie verändert. Es ist möglich, dass 2D-Shader beim Rendern von 3D-Geometrie helfen. Pixel-Shader sind die einzige existierende Art von 2D-Shadern.
Fragment-Shader oder Pixel-Shader sind für die Berechnung der Farbe und anderer Attribute jedes Fragments
der Rendering-Arbeit verantwortlich, die nicht mehr als ein einzelnes Ausgabepixel betreffen. Die einfachsten Pixel-Shader haben eine einzige Eingabe und geben den Farbwert eines einzelnen Pixels auf dem Bildschirm aus, während kompliziertere Shader zahlreiche Ein- und Ausgaben verarbeiten können. Es gibt eine Vielzahl von Pixel-Shadern, von denen einige einfach eine konstante Farbe ausgeben, andere, die einen Beleuchtungswert anwenden, und wieder andere, die Bump-Mapping, Schatten, Glanzlichter, Transluzenz und andere Effekte ausführen. Bei der Z-Pufferung können sie die Tiefe des Fragments ändern, und beim Rendern an mehrere Ziele können sie mehr als eine Farbe ausgeben. Einige komplizierte Effekte in 3D-Grafiken können nicht nur mit einem Pixel-Shader erzielt werden, da er mit einem einzelnen Fragment arbeitet und keinen Kontext für die Geometrie der Szene (d. h. Scheitelpunktdaten) hat. Pixel-Shader hingegen kennen die gerenderte Bildschirmkoordinate und können eine Stichprobe des Bildschirms und benachbarter Pixel entnehmen, wenn der komplette Bildschirm dem Shader als Textur zur Verfügung gestellt wird. Diese Methode kann es Cartoon-/Cel-Shadern ermöglichen, eine breite Palette von Nachbearbeitungseffekten zu nutzen, von Unschärfe bis hin zu Kantenerkennung und -verbesserung. Während Vertex-Shader nur mit einer 3D-Szene verwendet werden können, können Pixel-Shader an jedem Punkt in der Pipeline auf beliebige 2D-Bilder (z. B. Sprites oder Texturen) angewendet werden. Beispielsweise kann nur ein Pixel-Shader als Postprozessor oder Filter für einen gerasterten Videostream verwendet werden.
3D-Shader ändern das Erscheinungsbild von Gittern und Modellen im 3D-Raum, indem sie ihre Farben und Texturen manipulieren. Vertex-Shader sind die früheste Form von 3D-Shadern und ändern jeden Scheitelpunkt unabhängig. Zu den jüngsten Iterationen von Geometrie-Shadern gehört ein In-Shader-Vertex-Generator. Tessellations-Shader sind die aktuellste Art von 3D-Shadern. Sie führen Massenoperationen an Gruppen von Scheitelpunkten gleichzeitig durch, um den Realismus zu erhöhen, z. B. indem sie ein Modell dynamisch in kleinere Gruppen von Dreiecken oder anderen Grundkörpern unterteilen, um Dinge wie Kurven und Unebenheiten zu verbessern, oder indem sie andere Attribute ändern.
Vertex-Shader sind die häufigste Art von 3D-Shadern und werden einmal für jeden an die GPU übergebenen Scheitelpunkt ausgeführt. Ziel ist es, die 3D-Position jedes Scheitelpunkts im virtuellen Raum auf die entsprechende 2D-Koordinate auf dem Display abzubilden (sowie einen Tiefenwert für den Z-Puffer). Ein Vertex-Shader kann zwar die Attribute vorhandener Scheitelpunkte wie Farb- und Texturkoordinaten ändern, aber keine neuen generieren. Die Ausgabe des Vertex-Shaders wird an die nächste Ebene der Pipeline übertragen, bei der es sich je nach Setup um einen Geometrie-Shader oder den Rasterizer handeln kann. Die Verwendung von Vertex-Shadern ermöglicht eine feinkörnige Manipulation der Positionen, Rotationen, Translationen, Beleuchtung und Farbe von 3D-Modellen.
Direct3D 10 und OpenGL 3.2 enthielten Geometrie-Shader, die zuvor in OpenGL 2.0+ über Erweiterungen verfügbar waren.
Nach Abschluss der Vertex-Shader wird der Geometrie-Shader-Code ausgeführt. Sie wollen ein vollständiges Primitiv, vielleicht mit Informationen über seine Nachbarn, als Input. Bei der Verarbeitung von Dreiecken erhält