SSAO vs. HBAO vs. HDAO - Qual's a verdadeira diferença?

A opção confundiu-me onde eu tinha a escolha entre SSAO, HBAO e HDAO em Far Cry 3.

Ao clicar no google não'não me deu realmente nenhuma resposta nem habilitou cada opção e comparou os resultados. Aparentemente eu'sou cego ou algo assim.

Em primeiro lugar, qual'é a MELHOR qualidade? Segundo, qual'é a verdadeira diferença entre estas opções?

Solução

A H*AO oferece melhor qualidade, mas com um maior sucesso no desempenho.

A SSAO é menos precisa, mas melhora a qualidade da imagem com uma penalização de desempenho muito menor.

Se você'vai usar H*AO, pelo que entendo você deve selecionar HDAO se você tem um cartão ATI ou HBAO se você tem um cartão nVIDIA.

HBAO e HDAO são essencialmente a mesma coisa, mas implementações específicas de fornecedores diferentes.

Aqui estão alguns screenshots do BF3 que podem ajudar: http://www.reddit.com/r/gaming/comments/kwjtw/my_battlefield_3_screenshot_comparison_ssao_vs/

Eu recomendo usar o link que eles fornecem aqui: http://www.flickr.com/photos/bmorlok/6197863052/in/set-72157627662461565/lightbox/ e usar as teclas do cursor para virar rapidamente para frente e para trás entre as 3 capturas de tela.

Você deve ser capaz de identificar rapidamente onde a sombra está ocorrendo entre nenhuma, SSAO, e HBAO.

Olha para as áreas onde os objectos se cruzam. Por exemplo, onde o chão se encontra com a parede, onde um pilar se encontra com o teto, os arbustos, os pedaços de detritos no chão.

Tomei a liberdade de tirar uma das fotos e destacar as áreas que você deveria estar olhando enquanto virava para frente e para trás.

Você'irá notar que os tons SSAO nessas mesmas áreas, mas ele'é MUITO menos pronunciado.

Comentários (3)

Em primeiro lugar, a oclusão do espaço da tela não é um efeito físico, então não há nenhum argumento realista. A teoria do efeito basicamente afirma que

qualquer superfície que não esteja coberta (opcionalmente dentro de uma certa distância) é iluminada

Mesmo que rastreado'é apenas uma forma rápida e suja de trazer à tona pequenos detalhes sobre os modelos.

Em segundo lugar, todas as técnicas em questão são apenas iterações do SSAO; todas elas funcionam como um pós-processo, depois de a cena ter sido apresentada. Isto significa que os shaders têm de fazer algo mágico para produzir qualquer coisa precisa a partir de pouca informação que reste após a rasterização.

SSAO

Esta é a técnica mais antiga. Ela assume que qualquer pixel dentro de um determinado espaço de tela raio é um possível oclusivo. Isto é aproximadamente aproximado calculando a diferença do buffer Z (profundidade) borrado e original e o resultado do escurecimento se a versão borrada tiver um valor maior.

A armadilha desta abordagem é que tanto escurece falsamente como falha em detectar certas características. Você'terá que dar uma boa olhada neste pilar mas você'notará que enquanto o teto está falsamente sombreado nos lados, ele não é afetado na junção.

Este artigo tem mais alguns exemplos gráficos.

HBAO

Este algoritmo tenta resolver os problemas da SSAO. Fá-lo utilizando mais informação, nomeadamente o mapa normal. Em vez de procurar oclusores em torno de um pixel no espaço do ecrã, tenta restaurar pequenos pedaços da cena e fazer uma aproximação mais informada do brilho que deveria estar lá.

Você pode notar que o teto muito claramente fica virado para baixo, também, o pilar é mais escuro no topo.

Um artigo da NVIDIA tem mais alguns detalhes sobre isso.

Conclusão

O HBAO é um algoritmo mais recente, produz aproximações muito mais próximas de... uma aproximação.


As imagens são trechos de estas capturas de tela.

Comentários (3)

HBAO também implica o uso de técnicas de plano de imagem ocular para simular as diferenças no tamanho da íris ao olhar de certos níveis de luz para outros níveis de luz.

A HDAO não faz isto.

Comentários (1)