Jeux

Shaders 101 — Introduction à la programmation graphique

Shaders 101 — Introduction à la programmation graphique

Les shaders sont de petits programmes exécutés sur la carte graphique (GPU) pour chaque pixel ou sommet d'un objet.

Vertex Shader vs Fragment Shader

  1. Vertex Shader : Exécuté pour chaque sommet (vertex). Il détermine la position finale du sommet dans l'espace.
  2. Fragment (ou Pixel) Shader : Exécuté pour chaque pixel. Il détermine la couleur finale du pixel.

Exemple en GLSL (OpenGL Shading Language)

Vertex Shader simple

#version 330 core
layout (location = 0) in vec3 aPos; // Position du sommet en entrée

uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;

void main()
{
    // Calcule la position finale du sommet
    gl_Position = projection * view * model * vec4(aPos, 1.0);
}

Fragment Shader simple

#version 330 core
out vec4 FragColor; // Couleur du pixel en sortie

uniform vec4 ourColor;

void main()
{
    FragColor = ourColor;
}

Effet de "glitch" en Fragment Shader

// Dans Godot (Shader Language)
shader_type canvas_item;

uniform float amount = 0.05;
uniform float speed = 5.0;

void fragment() {
    float time_factor = TIME * speed;
    float x_offset = (fract(sin(UV.y * 10.0 + time_factor) * 43758.5453) - 0.5) * amount;
    
    vec2 uv_glitch = UV;
    uv_glitch.x += x_offset;
    
    COLOR = texture(TEXTURE, uv_glitch);
}

Ce shader déplace horizontalement les pixels de manière aléatoire pour créer un effet de glitch.

// Commentaires (0)

Connectez-vous pour laisser un commentaire.

Aucun commentaire pour le moment.