OpenGL glDepthRange et plan de coupure lointain : Configuration mapping profondeur correcte
Mapping plage profondeur
La commande glDepthRange(near, far) définit le mapping des coordonnées périphériques normalisées (NDC) z ∈ [-1, 1] vers valeurs profondeur espace fenêtre.
Usage standard
glDepthRange(0.0, 1.0); // Défaut : near=0, far=1
glZMax 999 n'est pas fonction OpenGL standard. Cela peut faire référence à :
- Définition distance plan de coupure lointain dans matrice projection (ex:
glFrustum,gluPerspective,glm::perspective), oùfar = 999unités. - Convention nommage wrapper moteur custom.
Plan lointain matrice projection
Dans gluPerspective(fov, aspect, near, far), far définit distance maximale vue. Objets au-delà de far sont coupés.
fartrop grand (ex: 999999) → z-fighting (perte précision profondeur) due distribution profondeur non-linéaire (précision concentrée prèsnear).- Bonne pratique : Définir
nearaussi grand que possible,faraussi petit que possible pour scène.
Précision tampon profondeur
Tampon profondeur 24-bit : précision ≈ near * far / (far - near) à distance. Reverse-z (profondeur floating-point, glClipControl(GL_LOWER_LEFT, GL_ZERO_TO_ONE) + glDepthFunc(GL_GREATER)) améliore dramatiquement précision pour grandes plages.
