1. Quais problemas o algoritmo do Z-buffer resolve?

Passo 1

O enunciado pede para identificarmos quais problemas o algoritmo de Z-buffer resolve. O tema é remoção de superfícies ocultas em renderização raster de cenas 3D e vamos usar conceitos de teste de profundidade por pixel.

Passo 2

Em renderização 3D cada polígono projetado pode ficar “à frente” ou “atrás” de outro num mesmo pixel. Sem um método de remoção de superfícies ocultas, polígonos distantes podem sobrescrever polígonos mais próximos, gerando artefatos visuais. Precisamos de uma forma automática de decidir, para cada pixel, qual fragmento (trecho de polígono) fica visível.

Passo 3

O Z-buffer introduz um buffer adicional, o depth buffer, que armazena para cada pixel a profundidade mínima já desenhada. Ao processar cada fragmento com profundidade z, comparamos z com o valor guardado no Z-buffer naquele pixel:
\text{se } z < Z_{\text{atual}} \text{, atualiza-se cor e } Z_{\text{atual}} \leftarrow z;
caso contrário o fragmento é descartado. Assim, apenas o fragmento mais próximo da câmera permanece.

Passo 4

A partir desse mecanismo o Z-buffer resolve:
  • Remoção de superfícies ocultas (hidden surface removal) de forma automática por pixel.
  • Eliminação da necessidade de ordenar polígonos antes de rasterizar (evita problemas do algoritmo do pintor).
  • Tratamento correto de polígonos que se interseccionam ou apresentam ciclos de sobreposição.
  • Suporte a cenas dinâmicas e geometria em tempo real, sem reordenação global de objetos.

Resposta

\bullet Remoção de superfícies ocultas por pixel.
\bullet Desnecessidade de ordenação prévia de polígonos (evita artefatos do algoritmo do pintor).
\bullet Correta exibição de polígonos interseccionados e ciclos de sobreposição.
\bullet Suporte a cenas dinâmicas sem reprocessar toda a ordem de desenho.

Exercícios relacionados