War Thunder background
Ray Tracing no War Thunder!

Com a atualização Firebirds o War Thunder suporta Ray Tracing (RT) é capaz de gerar efeitos visuais baseados em RT como sombras, oclusão de ambiente e reflexões. No blog de hoje vamos expor de forma um pouco mais detalhada esta tecnologia!

Como funciona?

Para RT ser usado, precisamos de construir e manter a chamada “Bounding Volume Hierarchy” (BVH). BVH é uma representação triangulada de todo o mundo onde todos os efeitos de RT podem funcionar. Muitos jogos fazem cortes a este nível e na fidelidade. Como por exemplo, usam modelos menos detalhados removendo tudo a uma distância relativamente curta. No entanto, isso tem um preço. Com essa abordagem é impossível gerar sombras exatas.

Com o War Thunder decidimos ir mais além para que possamos ter uma gama de efeitos mais vasta no longo prazo. No War Thunder quase todo o campo de batalha é acessível a efeitos RT com a mesma fidelidade que é renderizada no jogo, por isso todos os efeitos podem ser fisicamente corretos e exatos.

image

Fazer isto tem um preço porque o processo de elaboração dos BVH usam tantos threads de CPU quanto possível, por isso recomendamos um CPU moderno.

Agora que temos BVH pronto, podemos começar a traçar raios e gerar alguns efeitos. Temos três efeitos principais disponíveis no lançamento.

Screenshot do lado direito sem novos efeitos RT

Screenshot do lado esquerdo com novos efeitos RT

Ray Traced Shadow Map (RTSM)

Isto vai substituir o mapeamento de sombras com base em texturas pelo traçamento de raios de todos os pontos da tela para a superfície do sol. Como está usando toda a superfície do sol e não apenas o ponto central dele, as sombras ganham uma penumbra fisicamente correta, dependendo da distância do objeto projetor de sombra, como seria de esperar.

O resultado é sombras fisicamente corretas e perfeitas pixel a pixel.

Em GPU de alto rendimento podemos tentar sombras de luz dinâmica. Isso permite sombras duras perfeitas pixel a pixel de todas as luzes dinâmicas como explosões, flash de disparos e outros efeitos. Isto é muito exigente e destinado a GPU de alto rendimento.

Ray Traced Ambient Occlusion (RTAO)

Ambient occlusion é uma técnica usada para simular características de objetos bloqueando a luz ambiente como o próprio céu - uma espécie de sombra do ambiente. É por essa razão que é mais escuro debaixo da cama.

Tradicionalmente fazemos isso com técnicas como SSAO ou GTAO. RTAO é uma versão Ray Trace e pode corrigir erros típico destas técnicas, como quando se projeta sombras de ambiente fora da tela. Estas técnicas não conseguem lidar com isso, mas RTAO consegue. O mesmo acontece quando se projeta sombras de ambiente quando são ocluídas por outros objetos. Normalmente, nestes casos podemos ver sombras onde não devem estar e vice versa. RTAO corrige todos estes problemas.

Ray Traced Reflection (RTR)

Esta é a técnica mais complexa de todas. RTSM e RTAO são só sobre sombras, mas com RTR estamos visualizando o próprio BVH. Num espelho basicamente vemos o que está no BVH e estamos trabalhando arduamente para que corresponda o mais próximo possível da imagem renderizada.

Novamente, até mesmo antes da RTR tinhamos reflexões. Antes eram usadas reflexões Probe e screen space, mas tal como SSAO, têm as suas limitações. E muito similares ao lidar com objetos fora da tela e ecludidos no espaço da tela e ainda nos problemas de posicionamento com as chamadas probe. RTR tem toda uma tela para traçar, por isso consegue naturalmente refletir objetos a partir de qualquer posição.

Há ainda outra complicação para RTR, nomeadamente a rugosidade das superfícies. Uma superfície rugosa como cimento/concreto tem reflexões que são muito suaves e desfocadas, enquanto superfícies lisas como o vidro ou água parada tem reflexões que parecem um espelho. Além disso, há de tudo entre os dois casos. Simular isso é um dos tópicos mais acesos no campo da tecnologia gráfica.

A nossa abordagem é a renderização de reflexões ditas ruidosas baseadas na superfície, e usando os chamados denoiser para alcançar reflexões fisicamente exatas.

O efeito é por vezes óbvio, ocmo no caso do espelho.

Other times, it’s less obvious but makes the rendered image just more correct, making it look natural. If you look at these shots, take a look at the vehicle and its surroundings. On the non RT one, it’s basically glowing in the shadow, as the building which should block the sky from the reflection on it is not on screen, so screen space techniques can’t know the sky should be blocked. On the RT version, this blue tint is gone, as BVH has the building, regardless of it being on screen or not, and blocks the sky correctly.

Novamente RTR está corrigindo os problemas que o espaço da tela tradicional e dos problemas baseados na reflexão.

Uma sub-característica do RTR é a reflexão nas superfícies em vidro translúcido. Com estas uperfícies de vidro é possível ver a reflexão exata no mundo em vez da sombra usda anteriormente. Os resultados são reflexos exatos.

E finalmente outra sub-funcionalidade é reflexão na água.

As reflexões na água usam reflexões planas no jogo, o que é uma forma muito exata de ter reflexões e depois são baseadas na distorção das ondas. Com água RTR, os raios de reflexão são disparados corretamente com base nos vetores normais das ondas.

A diferença umas vezes maior, outras vezes menor.

Desempenho do RT

Ray Tracing é pesado, mas há muitas opções para a o tornar mais acessível.

Primeiro, todas as três opções podem ser ativadas e desativadas de forma independente, o que significa que podem usar só os efeitos com o qual mais se interessam e se tiverem placas gráficas capazes.

Depois o nível de qualdiade. Em termos gerais, RTSM com luz dinâmica é destinado às GPU de gama mais alta. Normalmente não é muito mais custoso que as sombras do sol, mas no meio da ação com muito fogo e explosões torna-se muito exigente.

Quanto a RTAO, menor qualdiade usa menor resolução interna para os cálculos. No entanto, é a mesma resolução que as técnicas de espaçamento na tela, mas sem erros. Médio dá uma resolução maior e Alto dá uma redução de ruído melhor. Isto só é visível em certas circunstâncias, mas vamos dar-vos um maior controlo.

Quanto a RTR, Baixo é um bom equilíbrio. Não tem sombras RT nas reflexões, melhorando consideravelmente a velocidade. Médio tem sombras RT nas reflezões, mas tanto Baixo como Médio usa a chamda renderização checkerboard para duplicar o desempenho tracando metade do número de raios. Alto desativa essa renderização, mas a redução de ruído faz um trabalho muito bom escondendo o padrão checkerboard, pelo que a diferença é pequena. Novamente, a decisão é vossa.

RTR também tem um controlo para renderizar a toda e a metade da resolução, tanto para a água como para outras superfícies. A diferença reside principalmente no espelhamento, e parece bom em resolução Média mesmo se não tiverem uma placa gráfica potente.

Finalmente as reflexões translúcidas de vidro RTR também podem ter reflexões RT no interior das reflexões em configurações Altas, mas não em Médias. Isto tem um impacto ligeiro no desempenho pois estas superfícies não são muito comuns no jogo.

Para configurações otimizadas onde obtêm um bom equilibrio de desempenho/qualidade de imagem, recomendamos usar RT em Médio. Ir mais além melhora a qualdiade dos efeitos, mas com um custo maior de desempenho. Mas se tiverem a última GPU do mercado, força! :)

Quando usarem efeitos RT recomendamos usar um método de aumento de escala anti-aliasing, com uma pré-definição que se adequa à placa gráfica como DLSS, FSR, XeSS ou TSR. Com estes aumentos de escala podem conseguir um bom desempenho e qualidade de imagem. Pré-configurações equilibradas são normalmente um bom meio termo para Ray Tracing, mas em GPU mais antigas não há qualquer problema avançarem para uma pré-configuração de desempenho se quiserem desfrutar dos benefícios do RT.

Estamos empenhados em não apenas adicionar mais funcionalidades RT no futuro, mas também de melhorar o desemepenho das já existentes, por isso continuem atentos.

No lançamento os efeitos RT são suportados por placas gráficas Nvidia. Fazer isso funcionar em placas gráficas AMD e Intel é uma prioridade para nós. Está funcionando com as nossas builds internas, mas não está pronto para ser lançado. Nós temos de melhorar alguns problemas específicas destas placas gráficas. Em breve estará pronto juntamente com consolas da geração corrente.

Ler mais:
Uma Linha de Aeronaves Tailandesas para o Japão!
  • 6 dezembro 2024
VBCI: Titã Tático!
  • 5 dezembro 2024
Flight of the Vulture: IAR-93B
  • 27 novembro 2024
Firebirds: Borrão de Movimento no War Thunder
  • 15 novembro 2024