Le programmeur graphique, aussi appelé programmeur rendu ou rendering programmer, tient la partie du moteur qui dessine l'image : passes de rendu, éclairage, ombres, post-traitement et code qui parle au GPU. Il travaille avec les technical artists et les artistes, qui attendent des matériaux et des effets réglables sans perte d'images par seconde. Pour préparer vos questions d'entretien de programmeur graphique, partez du budget d'une frame : 16,6 ms à 60 images par seconde, 33,3 ms à 30.
Les CV recouvrent deux profils. Certains ont écrit des shaders dans Unity ou Unreal sans jamais toucher à l'API graphique. D'autres viennent d'un moteur maison sur console et connaissent les barrières de ressources, la mémoire GPU et des outils comme PIX, RenderDoc, Nsight ou Razor. Les deux peuvent convenir, selon que le poste porte sur les effets visuels ou sur le moteur de rendu lui-même.
Faites travailler la personne sur une capture de frame réelle ou sur un bug visuel décrit précisément : ombres qui scintillent, image noire après une nouvelle passe, passe qui dépasse son budget de 4 ms. Les mathématiques 3D se vérifient mieux sur un cas concret qu'avec une formule récitée. Le PDF regroupe 30 questions, un cas de 20 minutes et une grille sur six axes.
Les API, langages et outils du rendu temps réel
C++ et mathématiques 3D
Le langage du moteur et de la plupart des outils de rendu. On attend un C++ attentif à la mémoire et au cache, et des mathématiques 3D sûres : vecteurs, matrices, quaternions, espaces de coordonnées, projection. Beaucoup de bugs de rendu viennent d'un vecteur exprimé dans le mauvais espace.
DirectX 12
L'API graphique de Microsoft sur PC Windows et Xbox. Elle laisse au programme la gestion de la mémoire, des barrières entre les usages d'une ressource et de la synchronisation entre CPU et GPU. DirectX 12 Ultimate ajoute le ray tracing (DXR), les mesh shaders et le variable rate shading.
Vulkan
L'API multiplateforme du Khronos Group, sur Windows, Linux, Android et Nintendo Switch. Même logique que DirectX 12 : command buffers, descriptor sets, barrières et pipelines précompilés. Quelqu'un qui maîtrise l'une des deux apprend l'autre bien plus vite qu'un débutant.
Metal et API des consoles
Metal sert sur macOS et iOS. Les consoles ont leurs propres API, réservées aux studios sous accord avec le constructeur, comme AGC sur PlayStation 5 ou NVN sur Switch. Les offres les citent sans détail, puisque leur documentation n'est pas publique.
Shaders : HLSL, GLSL et Slang
Les programmes exécutés par le GPU, pour les sommets, les pixels ou le calcul (compute). HLSL domine dans le jeu vidéo, GLSL reste courant sous Vulkan et OpenGL. Slang, compatible avec HLSL et désormais hébergé par le Khronos Group, compile vers DirectX 12, Vulkan, Metal et CUDA.
Matériaux PBR, éclairage et ombres
Le rendu physique (PBR) décrit les matériaux par une couleur de base, une rugosité et un caractère métallique, en conservant l'énergie de la lumière. Autour, il y a les cascades d'ombres, l'occlusion ambiante, l'illumination globale et le post-traitement (anti-aliasing temporel, HDR, tonemapping). Demandez ce que la personne a écrit elle-même et ce qu'elle a seulement réglé.
Rendu dans Unreal Engine et Unity
Dans Unreal Engine 5, le rendu passe par le Render Dependency Graph (RDG), avec Nanite pour la géométrie et Lumen pour l'illumination globale. Dans Unity, URP et HDRP se personnalisent par des passes écrites en C# ; dans URP, elles s'écrivent sur l'API Render Graph depuis Unity 6. Un moteur maison demande les mêmes notions, sans la documentation.
Capture et profilage GPU
RenderDoc, PIX, Nsight Graphics, Radeon GPU Profiler, et Razor sur PlayStation. Ces outils capturent une frame et montrent chaque appel de dessin, chaque texture et le temps GPU de chaque passe. Un programmeur graphique confirmé s'en sert tous les jours ; demandez-lui de décrire sa dernière capture.
Le poste porte plusieurs noms : programmeur graphique, programmeur rendu, rendering programmer, graphics programmer, ingénieur rendu temps réel, ou programmeur 3D dans les studios québécois. Dans une grande équipe de rendu, chacun se spécialise sur l'éclairage, les ombres, les effets, l'interface ou le portage sur une console. Dans une petite équipe, une seule personne tient tout le rendu et une partie du technical art. Les mêmes compétences servent hors du jeu, partout où une image 3D se calcule en temps réel. Un programmeur moteur ou un technical artist très technique peut évoluer vers le poste si les bases d'API graphique et de mathématiques sont là.
Les compétences de rendu qui comptent au recrutement
- Pipeline de rendu et architecture GPU
- API bas niveau : DirectX 12, Vulkan, Metal
- Shaders HLSL et GLSL
- Éclairage, matériaux PBR et ombres
- Profilage et optimisation GPU
- Mathématiques 3D et C++ de rendu
Cinq questions pour un programmeur rendu, de la frame au shader
Chaque question vient avec ce qu'une bonne réponse contient et le signal qui doit vous alerter. Pas besoin d'être technique pour les poser : écoutez si le candidat raconte du vécu.
Question 1 · confirmé
Le jeu doit tenir 60 images par seconde et la frame GPU prend 21 ms dans une zone. Comment trouvez-vous ce qui coûte ?
Une bonne réponseIl confirme d'abord que la limite vient du GPU, en séparant le temps CPU et le temps GPU, puis capture la frame dans PIX, RenderDoc, Nsight ou Razor. Il lit le temps par passe, repère la plus chère et cherche pourquoi : trop de pixels traités (overdraw, transparences, résolution), trop de sommets, bande passante mémoire, shader trop long ou occupation faible des unités de calcul. Il teste une hypothèse à la fois, par exemple en baissant la résolution pour voir si le coût suit.
Signal d'alerteBaisser la qualité de tout au hasard, ou optimiser un shader sans savoir si la frame est limitée par le CPU ou par le GPU.
Question 2 · senior
Sous DirectX 12 ou Vulkan, une texture écrite par une passe de calcul s'affiche avec des blocs corrompus dans la passe suivante, mais pas sur toutes les cartes. Que soupçonnez-vous ?
Une bonne réponseUne barrière manquante ou mal placée. La ressource passe d'un usage en écriture (UAV, storage image) à un usage en lecture sans que le GPU ait attendu la fin de l'écriture ni rendu les données visibles. Le résultat dépend du matériel et du pilote, d'où un bug qui n'apparaît pas partout. Il active la couche de validation (debug layer de DirectX 12, validation layers de Vulkan avec la vérification de synchronisation), relit les états de la ressource et place la barrière avec les bons stades et les bons accès.
Signal d'alerteAccuser le pilote d'emblée, ou ajouter une attente complète du GPU après chaque passe pour faire disparaître le symptôme.
Question 3 · confirmé
Les ombres d'une lumière directionnelle scintillent quand la caméra bouge et forment des escaliers au loin. Qu'est-ce que vous réglez ?
Une bonne réponseDes cascades d'ombres (cascaded shadow maps) découpées selon la distance, avec une projection stabilisée : la matrice de chaque cascade est calée sur la taille d'un texel de la shadow map, pour que le déplacement de la caméra ne fasse pas glisser les texels. Il parle du biais de profondeur, constant et selon la pente, contre l'acné d'ombre, du filtrage PCF et du compromis entre résolution et nombre de cascades.
Signal d'alerteAugmenter la résolution de la shadow map jusqu'à ce que le défaut se voie moins, sans savoir d'où vient le scintillement.
Question 4 · confirmé
Un matériau a beaucoup de variantes, et le jeu saccade la première fois qu'un effet apparaît à l'écran. D'où vient la saccade et que proposez-vous ?
Une bonne réponseDe la compilation des shaders ou de la création du pipeline state au premier affichage. Chaque combinaison de mots-clés ou de paramètres statiques crée une permutation à compiler. Il propose de réduire les permutations (branche dynamique quand son coût est faible, variantes regroupées), de précompiler les pipelines pendant le chargement ou à l'installation (cache de PSO, collecte des PSO rencontrés pendant des sessions de test) et de compter les permutations produites par le build.
Signal d'alerte« C'est le chargement des textures », sans vérifier, ou aucune idée de ce qu'est une permutation de shader.
Question 5 · junior à confirmé
Dans un shader d'éclairage, vous lisez une normale dans une normal map. Que faut-il faire avant de calculer la lumière ?
Une bonne réponseDécompresser la valeur lue (passer de 0..1 à -1..1, reconstruire la composante z si la texture n'en stocke que deux), puis la passer de l'espace tangent à l'espace de l'éclairage avec la base tangente, bitangente et normale du sommet, interpolée puis renormalisée. Il vérifie que la lumière et la direction de vue sont dans le même espace, et sait que cette texture se lit sans conversion sRGB.
Signal d'alerteUtiliser la couleur lue comme une normale en espace monde, ou oublier de renormaliser après l'interpolation.
Recevez la fiche d'entretien complète en PDF
La fiche pour mener l'entretien de bout en bout, prête à imprimer ou à partager avec le manager.
- 30 questions sur 6 axes, avec la bonne réponse, le signal d'alerte et la relance
- Le niveau visé pour chaque question
- Une mise en situation de 20 minutes et ce qu'on attend du candidat
- La grille d'évaluation de 1 à 4, axe par axe
Recruter un programmeur graphique : les réponses aux questions courantes
Programmeur graphique ou technical artist : qui fait quoi ?
Le technical artist fait le lien entre l'art et la technique : matériaux, shaders d'effets, outils pour les artistes, règles de budget sur les assets. Le programmeur graphique écrit le moteur de rendu lui-même, en C++ et dans l'API graphique : passes, mémoire GPU, synchronisation, optimisation de la frame. Les deux écrivent des shaders. Pour un poste moteur, vérifiez l'API bas niveau et le C++ ; pour un poste tourné vers les effets, le travail dans l'éditeur de matériaux pèse davantage.
DirectX 12 et Vulkan : les deux sont-ils nécessaires ?
Rarement. Les deux API reposent sur les mêmes idées : listes de commandes, barrières, descripteurs, pipelines précompilés, gestion explicite de la mémoire. Une personne qui a livré un rendu sous l'une apprend l'autre sans repartir de zéro. Le critère utile est d'avoir déjà travaillé à ce niveau. Un profil qui n'a connu que DirectX 11 ou OpenGL devra apprendre la synchronisation explicite, ce qui prend plus de temps.
Quel test technique proposer à un programmeur graphique ?
Un exercice en direct sur une capture de frame fonctionne bien : la personne ouvre la capture dans RenderDoc ou PIX, explique les passes et désigne ce qu'elle optimiserait en premier. Un petit shader à écrire ou à corriger, par exemple un éclairage avec normal map, vérifie les mathématiques. Évitez le moteur complet à rendre en une semaine. Un projet personnel, une démo ou un article technique publié donnent une bonne base de discussion.
Un développeur Unity ou Unreal peut-il devenir programmeur graphique ?
Oui, s'il a déjà écrit des shaders à la main et compris ce qui se passe sous l'éditeur de matériaux. Le passage demande d'apprendre une API bas niveau, la gestion de la mémoire GPU et la lecture d'une capture de frame. Demandez-lui de décrire une passe de rendu qu'il a ajoutée ou modifiée dans le moteur, avec son coût mesuré. Un profil qui n'a fait que régler des paramètres de matériaux part de beaucoup plus loin.
Pour structurer vos autres entretiens, consultez aussi nos pages sur les questions d'entretien de recrutement, la méthode de l'entretien structuré et la grille d'évaluation d'entretien.





