Hallo Freund, schön das du wieder da bist. Es ist schon wieder eine ganze Woche her, in der so viel passiert ist. Heutzutage passiert wirklich viel in so einer kurzer Zeit, dass man sich entscheiden muss, was man wissen möchte und was nicht, sonst überlädt der ganze Informationsfluss unser Gehirn, wie eine „Buffer Overflow Attacke“ den Puffer eines Speichers. Man denkt danach alles zu wissen, aber danach merkt man, dass man sich nichts gemerkt hat.

Heute wird es bei uns ums Sehen gehen oder den sehenden großen Bruder von unserem guten alten Freund, Prozessor.

Heute ist es bei uns schon ganz schön warm, also ändern wir mal unseren Ablauf (ich persönliche liebe Abläufe, deswegen sage ich das nur ungern, aber hilft ja alles nichts).

Also hol dir was kühles zum Trinken oder ein Eis, setz dich hin und dann legen wir los.


Was ist diese GPU eigentlich?

Der Prozessor der Grafikkarte oder auch (Graphics Processing Unit / Grafikverarbeitungseinheit) ist ein ganz besonderer Prozessor und hat eine ganz eigene Aufgabe. Er berechnet unsere Bilder, Videos und 3D-Grafiken. Unsere GPU arbeiten mit ganz vielen kleinen Kernen / Cores, gleichzeitig an visuellen Aufgaben.

Die Grafikkarte, auf der unsere GPU verbaut ist, hat noch ein paar mehr Komponenten, als nur die GPU, dazu schau dir bitte kurz die Tabelle an.


Wie unterscheiden sich GPU und CPU?

Die beiden klingen sehr ähnlich, aber haben komplett unterschiedliche Funktionen.

CPU

Die CPU ist für Logik und die Steuerung zuständig. Sie hat oft wenig Kerne im Bereich von 4 – 16, aber es gibt natürlich Prozessoren mit mehr Kerne wie z.B.: 128 Stück.
Sie hat auch viel „Cache“, also Zwischenspeicher für ihre Instruktionen/Anweisungen, aber wenige Threads (Hände zum Arbeiten).

GPU

Die GPU ist spezialisiert auf Bilder in allen Arten wie z.B. Videos und 3D-Grafiken. Sie besitzt viel mehr Kerne, als ein Prozessor. Es sind meistens über 1000+ Kerne die parallel ihre Arbeit durchführen, dazu hat Sie wenig Cache, aber sehr viele Threads.


Was ist auf einer Grafikkarte?

KomponenteErklärung
VRAM / VideospeicherHier werden Texturen, Modelle und Zwischendaten gespeichert.
SpannungswandlerHier bekommt unsere Grafikkarte Strom.
Lüfter und KühlkörperWer so viel rechnet, der wird warm und muss die Wärme auch los werden, also auch die Grafikkarte.
PCB oder unsere PlatineIst die Grundplatine, worauf sich alle Teile befinden.
Anschlüsse RückseiteAuf der Rückseite befinden sich Anschlüsse wie HDMI und Display Port, hier wird z.B. der Monitor angeschlossen.

Das war schon nicht wenig, aber mittlerweile dürfte dir das Ganze leichter fallen, weil die Begriffe sich immer wieder Wiederholen. Der Unterschied ist oft nur eine abgeänderte Funktion wie z.B.: VRAM-Videospeicher und RAM-Arbeitsspeicher. Alles was irgendwo berechnet, benötigt einen Speicher für zwischendurch, damit es alles richtig und schnell berechnen kann.

Du kannst dir gerne auf die Schulter klopfen, so langsam bekommst du ein kleines Verständnis für diese komplexen Dinge. Die Arbeit hast du geleistet, dass darfst du dir ruhig zugestehen. Falls du das nicht so gut kannst, dann klopfe ich dir gerne später auf die Schulter.


GPU, was ist da so drin?

Die GPU ist nur eine Komponente auf unserer Grafikkarte, aber die hat es in sich. Ein Name, aber mehrere Bestandteile. Ich habe dir hier kurz die einzelnen Sachen rausgeschrieben:

Shader-Kerne

Shader Kerne sind winzige Recheneinheiten für Farbe, Licht, Pixel und Bewegung. Sie führen Shader-Programme aus, aber darauf kommen wir später zurück. Also wenn du 10.000 Shader-Kerne hast, dann kannst du 10.000 Rechenschritte gleichzeitig ausführen und in unserem Kontext sind es Grafikberechnungen.

Rasterizer oder auch Rasterisierer

Der Rasterisierer oder Bild-Pixelisierer ist die Komponente, die 3D-Modelle oder Vektoren zu einem Pixel-Raster oder auch 2D-Bild macht, da unser Monitor ja nur ein zweidimensionales Bild besitzt.

Ein 3D-Modell besteht aus vielen kleinen Dreiecken, die aus vielen kleinen Punkten bestehen und diese Dreiecke nennt man auch Polygone. Man nimmt Dreiecke, weil Sie gut zu berechnen sind und dementsprechend ist es effizient für unsere GPU.

Der Rasterisierer sieht das 3D-Modell aus der Sicht einer Kamera in dem Fall z.B. unsere Spielkamera. Diese Projektion besteht aus 3D-Koordinaten (x, y, z) und diese werden auf (x, y) projiziert, dadurch sieht das Bild kleiner aus.

Danach nimmt er sich die 2D-Konturen / Linien von den Dreiecken und bestimmt, welches der Pixel innerhalb eines Dreiecks liegen und welche Farben, Helligkeit und Textur Sie später von dem Shader bekommen.

Jetzt wird mit Z-Buffering ( Z-Achsen-Puffer oder Tiefenpuffer ) / Depth Test ( Tiefen Test ) dem „Z-Wert“ oder auch Tiefenwert entschieden, was davon sichtbar ist. Also er beschreibt den Abstand von etwas zu der Kamera, wie die Sicht eines Zuschauers auf ein Bühnenbild. Der Vordergrund hat zum Beispiel den Z-Wert 1, also ist er ganz vorne, während der Baumstamm mit Z-Wert 4, erst hinter anderem zu sehen ist und deswegen auch teilweise verdeckt wird. Diese Funktion wird für Sachen wie Schatten, Tiefenschärfe, Kollisionen und vieles mehr genutzt.

Das waren eine Menge Info bis hier, aber du machst das wirklich gut! Am besten machen wir mal kurz eine Pause in der wir uns bewegen und mal was trinken, danach geht es weiter.

Frame Buffer oder auch Bildspeicher

Hier wird das fertig gerenderte Bild gespeichert, bevor es zu unserem Monitor gesendet wird.

In echt malen wir ja auch erst ein Bild und hängen es dann in den Rahmen, so auch hier. Der Frame Buffer ist unser Zwischenspeicher für das Bild.


Was ist eigentlich dieses “ Shadern “ ?

Es gibt immer so viele tolle eingedeutschte Fachbegriffe, die jeder ausspricht, jeder kennt, aber niemand wirklich weiß, was das eigentlich heißt. In meinen Augen ist das eingedeutschte Verb „shadern“ eines davon.

Was ist ein Shader?

Ein Shader ist ein kleines Programm, was auf unserer GPU läuft. Es sagt der Grafikkarte, wie ein Pixel aussehen soll und das besteht aus mehreren Werten wie z.B. Farbe, Helligkeit und Transparenz. Dazu sagt er wie ein Objekt beleuchtet wird mit Schatten und Reflexionen. Außerdem erklärt er ihr noch, wie Animationen und Effekte funktionieren, also ist er quasi unser „Gestalter“. Er bestimmt, wie alles aussieht.

Für alle diese Sachen ist aber nicht nur ein Shader verantwortlich, sondern es gibt verschiedene Typen. Ich erkläre dir kurz, welche Typen es gibt.

Vertex-Shader

Ein Vertex Shader wird für die Änderung von Punktpositionen genutzt z.B. Animationen oder Bewegeung.

Fragment- oder auch Pixelshader

Ein Pixelshader bestimmt die Farbe von jedem Pixel z.B. Licht, Textur oder Schatten.

Geometrie-Shader

Ein Geometrie Shader ist ein kleiner Bauarbeiter und kann Geometrie erzeugen, verändern oder entfernen. Er kann Objekte zerteilen wenn Sie z.B. explodieren, Fell generieren mit vielen kleinen Flächen oder Schattengeometrie berechnen.

Berechnungshader

Er ist für allgemeine Berechnungen, K.I oder auch Physikberechnungen zuständig.

Also wenn wir das einmal zusammen fassen, dann sind Shader quasi kleine visuelle Gehirne von unserer GPU. Sie sagen wie alles aussehen soll und das abhängig von Licht, Perspektive, Materialien und vielen anderen Parametern. Der Name an sich kommt von “ to shade “ oder auch “ schattieren „, weil es früher hauptsächlich auch nur um Licht und Schattenberechnungen ging, aber heutzutage ist es viel mehr.


Rendern

Bestimmt hast du schon mal das Verb “ rendern “ gehört oder? Viele sprechen darüber, benutzen Programme die es durchführen oder haben es schon mal gelesen. Es ist essenziell für unsere digitale Welt und deswegen erkläre ich es dir hier kurz.

Was ist rendern überhaupt?

Rendern heißt einfach, etwas sichtbar zu machen. Also aus vorgegebenen Daten ein Bild oder Szene auf deinem Monitor zu erzeugen. Wenn du zum Beispiel 3D-Modell von einem Haus hast, dann besteht dieses Modell aus verschiedenen Dingen:

  • Linien – unsere Geometrie
  • Oberfläche – unsere Texturen
  • Lichtquellen
  • Kameraperspektive

Das ist die Render-Grundlage für unsere GPU, Sie berechnet welche Flächen aus unserer Perspektive sichtbar sind, wie das Licht auf unser Haus fällt, welche Farbe jeder einzelne Pixel haben soll, wo die Schatten, Spiegelungen und Effekte dargestellt werden. Dann hast du am Ende ein 2D-Bild, was auf deinem Monitor zu sehen ist.

Rendern kannst du dir wie eine Kombination aus ( Rechnen + Zeichnen ) vorstellen. Es kombiniert die Shader mit anderen Dingen im Ablauf. Ich mache dir das ganze an unserem Haus-Beispiel mal genauer.

  1. Das 3D-Modell von unserem Haus wird in kleinen Polygonen dargestellt ( Wände, Dach, Fenster ) – Vertex Shader
  2. Jetzt werden die Texturen angewendet, das Dach bekommt Ziegel, die Wände Putz und unsere Fenster ihre Reflexionen. Also alle Oberflächen werden „bemalt“. In diesem Schritt gibt es noch keine wirklichen Farben, hier wird UV-Mapping angewendet, welches sagt, wo die Textur auf der Oberfläche liegen und Materialzuweisung, also wie Rau ist die Wand, glänzt der Putz und andere Eigenschaften, aber unabhängig von der Farbe und die Textur selbst ist dann ein Muster der Ziegel, welches auf die Oberfläche geklebt wird. – Fragment Shader
  3. In diesem Schritt werden Licht und Schatten berechnet. Von wo scheint die Sonne, wo fällt das Licht hin und wo entsteht Schatten. – Fragment Shader + das Lichtsystem
  4. Hier wird das 3D-Modell in die passende Kameraperspektive übertragen, um zu sagen, wo ist Vorne und Hinten. – Rasterisierer + Vertex Shader
  5. Jetzt wird jeder einzelne Bildpunkt eingefärbt, also unsere Ziegel werden rot, während unsere Wände weiß dargestellt werden. – Fragment Shader
  6. Endlich ist alles berechnet, das Bild liegt jetzt in unserem Bildzwischenspeicher oder auch Frame Buffer und wird auf dem Monitor angzeigt. – GPU + Monitor

Ich hoffe die Veranschaulichung konnte dir das Ganze etwas näher bringen, weil das ist absolut kein leichtes Thema. Man könnte den Vertex-Shader als Architekten sehen, den Fragment-Shader als Maler und Beleuchter, während der Rasterisierer unser Kameramann und Projekt ist. Aber alle stehen Sie unter dem Bauleiter, der GPU. Texturen sagen immer, wie etwas aussieht, während der Shader sagt, wie etwas unter Licht aussieht.


Schlusswort

Jetzt ist eine Pause angebracht, aber wir sind auch am Ende angelangt. Das passt ja ganz gut. Gönn dir heute mal etwas schönes und belohne dich für deine Fleißarbeit.

Am Ende wollte ich mir dir auch noch etwas ansprechen und zwar der Zeitaufwand. Ich werde wahrscheinlich den Deep Dive auf einmal im Monat beschränken, da es ziemlich viel Zeit frisst und ich gerne perspektivisch eine gute Qualität haben und halten möchte.

Wäre das für dich okay? Wir müssen da noch vielleicht noch unseren Rhythmus finden, weil auch der Mittwochbeitrag fällt gerade aufgrund akuten Zeitmangels aus, was ich auch sehr schade finde, aber den Deep Dive wollte ich beibehalten.

Ich werde auch die Gestaltung überarbeiten, deswegen sind auch noch keine Bilder dabei, aber die kommen nachträglich. So wie auch meine ganze Farbpalette.

Also sehen wir uns am 01.06.2025 mit einem neuen Deep Dive wieder, ich bin schon gespannt, was es wird. Du auch?

Vielen Dank, das du mir deine Zeit mal wieder gewidmet hast und es war wie immer schön mit dir.
Bis dann, Freund.

2 Kommentare

  1. Hallo ZeroBird, Es ist so schön, wieder deine Zeilen zu lesen! Auch dieses Thema hat mir sehr gut gefallen. Der Teil, in dem du die CPU und GPU verglichen und erklärt hast, und das Haus-Beispiel waren ausgezeichnet. Sie haben mir wirklich geholfen, die Informationen zu verstehen. Während ich deine Lektionen lese, lerne ich immer mehr Begriffe, und wie du erwähnt hast, wiederholen sich viele Begriffe, daher war dieser Artikel viel einfacher zu lesen. Ich war richtig stolz auf mich. Ich bin dir immer so dankbar, weil ich das Gefühl habe, durch deine Texte ein gutes Verständnis für dieses Gebiet zu entwickeln.

    Ach! Und ich denke, die Methode, einmal im Monat tiefgehend zu lernen, ist wirklich gut. Es wird wahrscheinlich einfacher sein, sich zu konzentrieren, und es wird dir genug Zeit zum Schreiben geben. Ich werde auch genug Zeit haben, die Informationen aufzunehmen und zu wiederholen.

    Ich bin schon gespannt, welches interessante Thema dein nächster Text behandeln wird. Ich warte darauf! Mach’s gut bis dahin! 😊

    • Hallo MoiMoi :3
      Vielen Dank für deinen wundervollen Kommentar! So etwas motiviert mich jedes Mal wieder einen neuen Beitrag zu schreiben.
      Ich werde die nächsten Tage einen neuen Beitrag veröffentlichen und hoffe das dieser dir auch ein bisschen weiterhilft.

      Bis zum nächsten mal, Freund :).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert