• [^] # Re: performances...

    Posté par . En réponse au journal cherche doc Z-buffer. Évalué à 2.

    Allez je me lance.

    Donc assez simplement, un zbuffer, c'est tout bete. Quand tu rasterizes tes triangles (ou tes ce-que-tu-veux d'ailleur), tu interpoles les valeurs x et y de tes vertices. de V1 vers V2, de V1 vers V3 (moitié du haut), et de V2 vers v3 et V1 vers V3 (moitié du bas). Ca, je suppose que tu as deja fais.
    Le zbuffer, c'est la meme chose, sachant que tu vas passer a ton rasterizer les valeurs Z des 3 vertices sus-nommés.

    Tu vas alors interpoler tes 3 valeurs de la meme maniere, et n'afficher le pixel QUE si la valeur est inferieure a celle deja ecrire dans ton buffer. Si tel est le cas, tu inscris dans ton buffer cette nouvelle valeur Z, et tu passes au pixel suivant.

    Avantage, tu as donc une precision de profondeur au pixel.
    Desavantages, deja tu peux avoir un probleme de precision suivant la profondeur du buffer (on utilise en general les valeurs de 1/Z, de facon a etre plus precis pres de la camera, et moins au fond). Ensuite, cela t'oblige a reserver de la memoire de la meme taille X*Y que ton buffer d'affichage, multiplié par la precision (2 pour 16bits, 4 pour 32, etc).
    Dernier probleme, les faces translucides poseront probleme si tu ne fait pas de cas particulier. (trier les faces translucides et les afficher APRES tout le reste, de facon a ne pas oublier d'afficher ce qui se trouve derriere).

    Voila, ce n'est surement pas tres clair, mais tu peux voir que c'est quand meme extremement simple pour qui a deja realisé un rasterizer.

    (oui et j'utilise plein de mots anglais)