• [^] # Re: Difference ZBuffer / Polygon Sorting

    Posté par . En réponse au journal moteur graphique 2D. Évalué à 7.

    Sa question portait sur l'utilisation du z-buffer en rendu 3d software, pas en rendu 3d hardware. Le z-buffer est très utilisé en rendu hardware parce qu'il est peu coûteux (câblé en hard), mais ce n'est pas le cas en rendu 3d software.

    En rendu 3d software, la technique à utiliser dépend du type de données à afficher. Dans le cas des FPS par exemple, le moteur de Quake 1 en mode software reposait sur la technique du BSP (Binary Space Partition) et des portals, car la technique du z-buffer était beaucoup trop lourde. Elle génère en effet de nombreux accès en lecture et écriture dans la mémoire vidéo ce qui était extrêmement lent sur les cartes de l''époque. Le z-buffer n'était utilisé que pour des cas particuliers comme les billboards et les sprites.

    L'avantage du BSP est qu'il minimise les recouvrements de poygones et au besoin les divise, il n'y a pratiquement pas d'overdraw donc pas d'accès superflus en écriture sur la carte graphique. Cette technique n'est maintenant quasiment plus utilisée car le z-buffer hard est très rapide et l'utilisation du BSP est assez gourmande en cycles CPU. Les BSP sont néanmoins toujours utilisés dans la détection de collision.

    La technique des portals est une technique de plus haut niveau qui permettait de découper une scène en plusieurs zones et de ne retenir que celles susceptibles d'être visibles en fonction de la position de la caméra et des informations de connectivité entre zones. Cette technique n'est utilisée que dans les jeux "indoor" et elle l'est d'ailleurs de moins en moins. A l'heure actuelle, on utilise d'autre technique comme les octrees (pour les environnements extérieurs), le hierarchical occlusion culling, etc.