Je travaille sur un moteur de rendu d'avant en arrière pour un moteur 2D utilisant une projection orthographique. Je veux utiliser le tampon de profondeur pour éviter le surmenage. J'ai un tampon de profondeur de 16 bits, une caméra à Z = 100 en regardant Z = 0, zNear est 1 et zFar est 1000. Chaque sprite rendu définit ses coordonnées Z à des valeurs de plus en plus éloignées, permettant au test de profondeur d'ignorer le rendu tout ce qui est en dessous.
Cependant, je sais que la façon dont les positions Z se retrouvent avec des valeurs de tampon Z n'est pas linéaire. Je veux utiliser la pleine résolution du tampon de profondeur 16 bits, c'est-à-dire autoriser 65536 valeurs uniques. Donc, pour chaque image-objet rendue, je veux incrémenter la position Z à la position suivante pour la corréler à la prochaine valeur de tampon de profondeur unique.
En d'autres termes, je veux transformer un index d'incrémentation (0, 1, 2, 3 ...) du sprite en cours de dessin vers la position Z appropriée pour que chaque sprite ait une valeur de tampon de profondeur unique. Je ne suis pas sûr des mathématiques derrière cela. Quel est le calcul pour ce faire?
Remarque Je travaille dans WebGL (essentiellement OpenGL ES 2), et j'ai besoin de prendre en charge une large gamme de matériel, donc bien que des extensions comme gl_FragDepth puissent faciliter cela, je ne peux pas l'utiliser pour des raisons de compatibilité.