3 Punkte von GN⁺ 2023-11-24 | 1 Kommentare | Auf WhatsApp teilen

Einführung in AMDs Tools, Bibliotheken und Effekte

  • Die GPUOpen-Website von AMD ist der beste Ort, um mehr über GPU-bezogene Tools, Bibliotheken und Effekte zu lernen.
  • Sie bietet Materialien und Leitfäden, die so gestaltet sind, dass sie auch für Softwareingenieure auf Einstiegsniveau leicht verständlich sind.
  • Sie unterstützt Nutzer dabei, mit AMDs Technologien optimierte Grafik und hohe Leistung zu erreichen.

Meinung von GN⁺

  • Das Wichtigste an diesem Artikel ist, dass AMDs GPUOpen Grafikentwicklern nützliche Ressourcen bietet.
  • Es gibt viele Materialien, die auch Einsteiger leicht nutzen können, was für Menschen mit Interesse an Grafikprogrammierung spannend sein dürfte.

1 Kommentare

 
GN⁺ 2023-11-24
Hacker-News-Kommentare
  • Wenn ein Junior-Softwareingenieur in die Computergrafik einsteigen möchte, ist es wichtig, zuerst darüber nachzudenken, was man bauen will, statt sich zunächst über die Werkzeuge den Kopf zu zerbrechen. Man sollte den ersten Schritt mit Fokus auf das Endergebnis machen. Viele Tools abstrahieren verschiedene Stufen des Grafikprogrammierens, sodass die Gefahr besteht, von Anfang an zu viel Zeit mit Low-Level-Code zu verbringen. Außerdem werden in bestimmten Branchen oft Tools wie Unity, TouchDesigner, three.js oder After Effects verwendet, während C++ kaum zum Einsatz kommt. Ein tiefes Verständnis ist wichtig, aber vieles lernt man effizienter beim Einstieg in die reale Praxis.
  • Zu dem, was man als Grafikprogrammierer wissen sollte, gehört mehr als nur Programmierung und APIs. Dazu zählen Rotations-, View- und Projektionsmatrizen, Vektormathematik, Shader-Programmierung, prozedurale Grundformen, Bildkomposition, Forward- und Deferred-Rendering, Sampling-Techniken, Schatten- und Beleuchtungsverfahren, Methoden zum Extrahieren von Daten aus 3D-Apps, der Umgang mit Profilern und Debuggern, das Lesen von Siggraph-Papern, räumliche Unterteilung und Volumenhierarchien, der Bau eines einfachen Raytracers, Verständnis für Grundformen sowie Erfahrung mit Partikeln und Simulationen.
  • Empfohlen wird der Kurs „Graphics From Scratch“ von Pikuma. Er beginnt damit, mit SDL eine set_pixel-Funktion zu schreiben; anschließend werden sämtliche Matrixoperationen, Vertex-Transformationen und die Triangle-Rasterisierung direkt selbst implementiert. Dabei lernt man, wie die Farbe jedes Pixels berechnet wird.
  • Es gibt viele Wege, Grafikprogrammierer zu werden, nicht nur den Einstieg über DX/VK/OGL. Man muss auch gar kein C++ verwenden. 3Blue1Brown erstellt zum Beispiel beeindruckende 3D-Grafiken in Python. Wenn man eine Game Engine schreiben will, lernt man DirectX oder Vulkan; wenn man Browser-Anwendungen bauen will, lernt man WebGL. Diese APIs sind schwergewichtig und bringen einem über Grafik selbst womöglich nicht so viel bei. Wenn man grafische Konzepte lernen will, sollte man in irgendeiner Sprache einen eigenen Rasterizer und Raytracer schreiben. Es gibt viele leicht zugängliche und spaßige Grafikbibliotheken und Coding-Umgebungen für Einsteiger, etwa Processing, PlotDevice.io, NodeBox, DrawBot und ShaderToy.
  • Über das Schreiben von Shadern in Shadertoy kann man Grafikprogrammierung lernen. Viele Grafikprogrammierer haben dort angefangen. Es wurden mehr als zehn Tutorials zu SDF, Ray Marching, Noise-Funktionen usw. erstellt.
  • Es werden Materialien geteilt, die in der Grafikprogrammierungsbranche tatsächlich verwendet werden. Das Feld Grafik ist inzwischen so groß, dass es keine Lernmethode gibt, die für alle passt. Wenn man Grafik lernen möchte, sollte man sich einen Mentor suchen.
  • In der Computergrafik gibt es Hunderte von Spezialisierungen, und die betreffende Website konzentriert sich nur auf einen kleinen Ausschnitt: programmierbare Grafik-SDKs.
  • Jemand ist zwar Spieleentwickler, aber kein Grafikprogrammierer. Er nutzt moderne Grafik-APIs und GLSL-Shader, lässt aber ein 13-jähriges Kind, das von Scratch oder Python zu C++ wechseln möchte, einfachen Code mit einer OpenGL-1.2-DLL schreiben, die er seit 1999 besitzt. Das macht viel mehr Spaß als die komplexe Einrichtung moderner APIs. Das Kind interessiert sich für Computational Geometry wie Voronoi-Diagramme, daher ist die Grafik-API nur ein Mittel zum Zweck. C++ und altes OpenGL sind zudem viel schneller als Scratch. Mit einer einfachen API gleichzeitig C++ und OpenGL zu lernen, ist eine ziemlich ambitionierte Herausforderung. Die Einfachheit hält das Lernen beherrschbar, und es läuft gut. Es wurde geholfen, eine coole Marching-Squares-Demo zu bauen und ein IMgui-Menü hinzuzufügen, mit dem sich Parameter zur Laufzeit anpassen lassen.
  • Es wird eine persönliche Reise geschildert. Vor zwei Jahren wurde mithilfe verschiedener Tutorials und YouTube-Videos eine erste 3D-Engine gebaut. Sie ist sehr einfach, aber gerade das gefällt. Aktuell wird mit dieser Engine an einem City-Builder-Spiel gearbeitet. Es macht großen Spaß zu lernen, wie man mit Matrizen und Kreuzprodukten Dinge manipuliert.
  • Es wird ein einfaches Beispiel für Grafikcode in der Programmiersprache BASIC gezeigt.