Pergunta

Devo sempre usar esse método ao renderizar? Isso diminui muito em placas de gráficos ruins?

Se o resultado final não terá muitos rostos abatidos, devo usar esse método então?

Foi útil?

Solução

Se todos os seus modelos forem definidos corretamente (convexo, com enrolamento consistente de vértices), o abate nunca prejudicará o desempenho e quase sempre ajudará no desempenho.

Imagine que você está renderizando um cubo, com o abate desativado. Os rostos na parte de trás (lado distante) do cubo são renderizados de frente para você, e quaisquer que sejam os atributos do material da face traseira que você escolheu ser aplicado. Em seguida, os rostos na frente do cubo são renderizados: como os rostos traseiros que acabaram de ser renderizados são o interior do cubo, eles são 100% ocluídos pelas faces dianteiras.

Se o cubo foi orientado de maneira diferente, as faces dianteiras poderão ser rasterizadas primeiro, mas as faces traseiras ainda serão processadas e depois os fragmentos rejeitados pelo tampão Z.

Resultado líquido: Você rasterizou 2x tantos fragmentos quanto necessário. Isso fica muito importante com um grande número de polígonos ou shaders de pixel complexos. O abate de rosto permite que você evite completamente os rostos que você sabe que não aparecerão.

Se você possui um modelo de caractere com ~ 100.000 polígonos, face metades de abate a quantidade de trabalho que o hardware do Pixel deve fazer todos os quadros. Essa é uma grande economia se você tiver grandes shaders de superfície.

Se você está trabalhando com modelos pequenos e sem shaders, o abate realmente não importa atualmente. Mas é uma boa prática habilitar de qualquer maneira.

Outras dicas

A ativação do abate de face (geralmente a face traseira) tem um impacto significativo no desempenho da renderização.

Agora, a pergunta a ser respondida é então "por que o abate não está ativado por padrão ou por que não é sempre usado?" Existem vários fatores que determinam se a facilitação de abate é viável ou não. Um é o modelo que está sendo renderizado e como é visto.

Para cada polígono do modelo, se apenas uma face dianteira ou traseira for visível (quando o modelo for visto de todos os ângulos possíveis), podemos abate a outra face.

Para Ex: "Cube", não importa se você está olhando de dentro ou fora dele, quando girado, poderá ver apenas um lado de cada 6 polígonos que compensam o cubo.

Outro ex: "Velas de um modelo de navio", como no meu jogo de guerra do mar (3D), as velas de um modelo de navio são uma superfície construída com vários polígonos planos. Quando um barco se move na água, pode -se ver os dois lados da vela. Nesse caso, o abate de qualquer um dos rostos não é desejável.

Portanto, o abate pode ser ativado para todos os modelos na cena que seguem a semântica dos cubos e o incapacitante para todos os outros modelos.

O abate de face do PS deve ser usado sempre que possível.

Depende das coisas que você está renderizando. Em geral, o abate é desejável. A única razão pela qual posso imaginar não usá -lo é renderizar modelos que possuemfaces visíveis. Outro cenário em que o abate pode não ser procurado pode ser modelos mal modelados, onde os vértices são definidos na ordem errada.

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