3 points par GN⁺ 2023-11-24 | 1 commentaires | Partager sur WhatsApp

Introduction aux outils, bibliothèques et effets d’AMD

  • Le site GPUOpen d’AMD est l’endroit idéal pour découvrir les outils, bibliothèques et effets liés aux GPU.
  • Il propose des ressources et des guides conçus pour être facilement compris, même par des ingénieurs logiciels débutants.
  • Il aide les utilisateurs à exploiter les technologies d’AMD afin d’obtenir des graphismes et des performances optimisés.

L’avis de GN⁺

  • Le point le plus important de cet article est que GPUOpen d’AMD fournit des ressources utiles aux développeurs graphiques.
  • Comme il existe de nombreuses ressources faciles d’accès et d’utilisation, même pour les développeurs débutants, cela intéressera probablement les personnes qui s’intéressent à la programmation graphique.

1 commentaires

 
GN⁺ 2023-11-24
Avis sur Hacker News
  • Lorsqu’un ingénieur logiciel débutant veut entrer dans le domaine de l’infographie, il est plus important de réfléchir à ce qu’il veut créer que de se demander d’abord quels outils utiliser. Il faut faire ses premiers pas en se concentrant sur le résultat final. De nombreux outils abstraient différentes étapes de la programmation graphique, avec le risque de passer trop de temps sur du code bas niveau dès le départ. De plus, dans certains secteurs, on utilise souvent des outils comme Unity, TouchDesigner, three.js ou After Effects, et presque jamais le C++. Une compréhension approfondie est importante, mais il est souvent plus efficace d’apprendre en entrant réellement dans l’industrie.
  • Ce qu’un programmeur graphique doit connaître va au-delà de la programmation et des API. Cela inclut les matrices de rotation, de vue et de projection, les mathématiques vectorielles, la programmation de shaders, les primitives procédurales, la composition d’images, le rendu forward et deferred, les techniques d’échantillonnage, les ombres et l’éclairage, l’extraction de données depuis des applications 3D, l’utilisation de profileurs et de débogueurs, la lecture d’articles du Siggraph, les techniques de partitionnement spatial et de hiérarchie de volumes, la construction d’un raytracer simple, la compréhension des formes primitives, ainsi qu’une expérience des particules et des simulations.
  • Le cours « Graphics From Scratch » de Pikuma est recommandé. Il commence par l’écriture d’une fonction set_pixel avec SDL, puis consiste à coder soi-même toutes les opérations matricielles, les transformations de sommets et la rastérisation de triangles. On y apprend comment calculer la couleur de chaque pixel.
  • Il existe de nombreuses façons de devenir programmeur graphique en dehors d’un départ avec DX/VK/OGL. Il n’est pas nécessaire d’utiliser C++ du tout. Par exemple, 3Blue1Brown crée des graphismes 3D remarquables en Python. Si l’on veut écrire un moteur de jeu, on apprend DirectX ou Vulkan ; si l’on veut créer une application pour navigateur, on apprend WebGL. Ces API sont lourdes et n’enseignent pas forcément grand-chose sur le graphisme lui-même. Si l’on veut apprendre les concepts graphiques, on écrit son propre rasterizer et son propre ray tracer dans n’importe quel langage. Il existe de nombreuses bibliothèques graphiques et environnements de code accessibles et amusants pour les débutants, comme Processing, PlotDevice.io, NodeBox, DrawBot ou ShaderToy.
  • On peut apprendre la programmation graphique en écrivant des shaders sur Shadertoy. Beaucoup de programmeurs graphiques ont commencé ainsi. Plus de 10 tutoriels ont été créés sur les SDF, le ray marching, les fonctions de bruit, etc.
  • Des ressources réellement utilisées dans l’industrie de la programmation graphique sont partagées. Le domaine du graphisme est devenu trop vaste pour qu’il existe une méthode d’apprentissage adaptée à tout le monde. Si l’on veut apprendre le graphisme, il est préférable de trouver un mentor.
  • L’infographie compte des centaines de spécialisations, et ce site web ne se concentre que sur une petite partie : les SDKs de programmation graphique.
  • La personne est développeur de jeux, mais pas programmeur graphique. Elle utilise des API graphiques modernes et des shaders GLSL, mais lorsqu’un enfant de 13 ans veut passer de Scratch ou Python à C++, elle lui fait écrire du code simple avec une DLL OpenGL 1.2 qu’elle possède depuis 1999. C’est bien plus amusant que la configuration complexe des API modernes. L’enfant s’intéresse à la géométrie computationnelle, comme les diagrammes de Voronoï, et l’API graphique n’est qu’un moyen. Les performances de C++ et de l’ancien OpenGL sont bien supérieures à celles de Scratch. Apprendre C++ et OpenGL en même temps avec une API simple est un défi assez ambitieux. Cette simplicité permet de garder l’apprentissage gérable, et cela se passe bien. Elle l’aide à créer une chouette démo de marching squares et à y ajouter un menu IMgui permettant d’ajuster les paramètres à l’exécution.
  • Une personne partage son parcours personnel. Il y a deux ans, elle a créé son premier moteur 3D en suivant plusieurs tutoriels et vidéos YouTube. C’est très simple, mais elle aime les choses simples. Elle travaille actuellement à créer un city-builder avec ce moteur. Apprendre à manipuler des objets avec des matrices et des produits vectoriels est très amusant.
  • Un exemple simple de code graphique écrit en langage BASIC est fourni.