Pergunta

Qual é a diferença entre usar o abate de face back e um buffer de profundidade no OpenGL?

Foi útil?

Solução

O abate de backface é quando o OpenGL determina quais faces estão voltadas para longe do espectador e, portanto, não são vistas. Pense em um cubo. Não importa como você gire o cubo, 3 faces sempre serão invisíveis. Descubra quais são as pessoas, remova -os da lista de polígonos a serem desenhados e você acabou de reduzir pela metade a sua lista de desenhos.

O buffer de profundidade é bastante simples. Para cada pixel de cada polígono desenhado, compare seu valor z com o buffer z. Se for menor que o valor no buffer z Defina o valor do buffer z como o novo valor do buffer z. Caso contrário, descarte o pixel. O buffer de profundidade fornece resultados muito bons, mas pode ser bastante lento, pois cada pixel requer uma pesquisa de valor.

Na realidade, não há nada semelhante entre esses dois métodos e eles geralmente são usados. Dado um cubo, você pode primeiro cortar metade dos polígonos usando abate e depois desenhá -los usando o buffer z.

O abate pode reduzir os polígonos renderizados, mas não é um algoritmo de classificação. É isso que é o buffer de Z.

Outras dicas

Um dado triângulo tem dois lados, a face da frente e a face traseira. O lado que você está olhando é determinado pela ordem em que os pontos aparecem na lista de vértices (também chamada de enrolamento). Normalmente, as listas de triângulos têm enrolamento alternado, para que você possa reutilizar os dois pontos anteriores, mas o rosto de um determinado triângulo na faixa não se alterna. O abate de rosto traseiro é a etapa de otimização em que nos triângulos na cena, que são orientados para longe da vista, são removidos da lista de triângulos para desenhar.

Um buffer de profundidade (Z-buffer) é usado para se apegar à coisa mais próxima (a profundidade é relativa à vista) que já foi renderizada. Se a coisa que surgir na lista de empate está por trás de algo que eu já desenhei (ou seja, tem uma profundidade que a coloca mais longe), posso pular desenhá -lo, pois está obstruído. Se a coisa nova a desenhar estiver mais próxima, eu o desenho e atualizo o buffer de profundidade com o novo valor mais próximo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top