Game developing?

2 Antworten

Der Code wird von einem Programm in das übersetzt, was ein Prozessor und die Grafikkarte nativ ausführen können (oder etwas nah dran). Das hakt sich dann in die Treibersoftware, welche von den Herstellern bereitgestellt wird und die tatsächliche Kommunikation mit der GPU übernimmt, sowie oft vorgefertigte Software-Bibliotheken, welche grundlegende Dinge wie Physik, das Management von Objekten, etc. machen. Letzteres wird oft auch als Gesamtpaket durch Game-Engines wie Unity, Unreal, Godot, etc. angeboten.

Hier eine Illustration unter Linux; für Windows, etc. ist es sehr ähnlich nur heißen die Komponenten anders oder sind leicht anders angeordnet: https://commons.wikimedia.org/wiki/File:Linux_kernel_and_OpenGL_video_games.svg

Bild zum Beitrag

Je nachdem, wie diese Bibliotheken arbeiten und welche genau verwendet werden, ist es dann unterschiedlich, mit diesen das genaue Aussehen zu bestimmen. Manche machen es vollautomatisch, bei anderen musst du die komplette Pipeline, also jeden einzelnen Effekt selbst aufbauen. So oder so entsteht am Ende das, was vom Computer ausgeführt wird.

Es gibt einerseits die Möglichkeit, auf der CPU (oder per GPGPU / nur teilen der GPU Pipeline) jeden Pixel manuell zu berechnen, was oft in Filmen oder der Wissenschaft gemacht wird, aber deutlich langsamer ist. Das ist dann pure Mathematik:

Spiele nutzen oft die spezielle Hardware von GPUs, welche dazu da ist, übliche solcher Prozesse sehr schnell auszuführen. Dafür gibt es Schnittstellen und Spezifikationen, welche den Entwicklern diese Funktionen über die Firmware bereit stellen:

Zunächst wird dabei die Geometrie und sonstige Daten, welche von der CPU verwaltet wird, auf die GPU geladen und von der Welt in die Kamera projiziert (viel lineare Algebra), dann läuft für jeden Pixel das sogenannte "Fragment-Shaderprogramm". Hier wird mit speziellen Algorithmen Licht, Schatten, Textur, etc. berechnet und schließlich ein Farbwert bestimmt.

So etwas fotorealistisch zu machen, hat sehr viel damit zu tun, Prozesse, die in der echten Welt aufkommen, mit Modellen einzufangen und nachzuempfinden; in diesem Bereich gibt es viele Forschungsarbeiten.

Am Ende, nachdem das Bild, ob realistisch oder einfach gerendert wurde, laufen dann noch Effekte, wie z. B. für die Cartoon-Grafik. Diese nutzen zusätzliche Informationen wie die Tiefe und Normale, die beim Rendern mit berechnet werden, um spezielle Bereiche zu identifizieren und dann mit den Farben zu spielen oder Umrandungen zu zeichnen. Hier ist der Kreativität keine Grenzen gesetzt.

https://youtu.be/mnxs6CR6Zrk

Woher ich das weiß:eigene Erfahrung – Langjähriger Poweruser & praktische Programmiererfahrung
 - (App, Code, Programmiersprache)

Code und grafik werden seperat gefertigt , es gibt sogenannte compiler die die im code angegebenen aktionen dann ausfuehrbar machen

Woher ich das weiß:eigene Erfahrung