O VRS permite que o Gears Tactics obtenha ganhos significativos de desempenho - até 18,9%! - em uma ampla gama de equipamentos sem perda perceptível da qualidade da imagem.
Um dos principais objetivos ao desenvolver o Gears Tacticsera atingir um público maior de PCs diminuindo os requisitos mínimos do sistema. Para isso, foi necessário encontrar novas soluções para melhorar o desempenho, o que não exigiria redução significativa na qualidade gráfica. Uma dessas soluções foi o VRS.
Neste artigo, examinaremos mais de perto o processo de ajuste do VRS para alcançar o equilíbrio ideal entre qualidade e desempenho. Em particular, em qual renderização passa para usá-lo e com quais parâmetros.
Como o objetivo principal era incluir a maior variedade de equipamentos na implementação, falaremos apenas do primeiro nível de suporte ao VRS (Nível 1), que permite definir a taxa de sombreamento para cada objeto. Para mais informações sobre o VRS, você pode ler esta postagem .
No caso do Gears Tactics, o VRS não se aplica a níveis mais altos do que o primeiro, portanto, foi necessário determinar em quais passes de renderização ele poderia ser usado (observe que o Gears Tacticscriado no Unreal Engine 4), além de formular critérios para quando a taxa de sombreamento deve ser reduzida - o tamanho da área de pixels na qual a renderização única é aplicada. Quanto mais alto (o mais alto é 1 × 1), maior a precisão da renderização e, consequentemente, maior a carga na GPU.
Como se vê, o VRS pode ser benéfico em qualquer estágio da renderização, incluindo algumas renderizações em tela cheia.
Avaliação de pipeline de renderização
A princípio, parecia que o passe de renderização base e o translucency deveriam representar o maior potencial de otimização em comparação aos outros. Portanto, o VRS foi ativado para todas as chamadas de draw no passe base e no translucency, mas o último tinha artefatos muito graves.
Isso significa que a próxima etapa foi avaliar quais passes são os mais promissores para obter o benefício máximo do VRS e, em seguida, testar a taxa de sombreamento nesses passes e excluir aqueles que deixaram artefatos. Assim, verificou-se que passes usando informações precisas de pixels são uma das principais causas desses artefatos.
Para descobrir quais passes foram os mais eficazes, foi necessário ativar o VRS em todos eles e depois reduzi-los no PIX àqueles que tiveram melhor desempenho do que outros.
Aqui estão eles:
- Composição após a iluminação: iluminação para materiais de dispersão subterrânea.
- Filtrar volumes translúcidos: suaviza malhas translúcidas no volume para evitar problemas de mistura.
- Atenuação da luz: a atenuação da luz são os limites externos ao calcular a deterioração de uma determinada iluminação. Esse passe é repetido para luzes sombreadas, levando em consideração a queda calculada, para renderizar projeções de sombra.
- (Light composition tasks (PreLighting)): .
- (Light Shaft Bloom): (), .
- (Screen Space Reflections): .
- - (SSR Temporal AA): .
- (Direct Deferred Lighting): .
Em seguida, foi necessário avaliar a gravidade dos artefatos recebidos nessas passagens devido ao VRS. O processo acabou consumindo bastante tempo, pois o Gears Tactics possui vários biomas com diferentes tipos de condições climáticas. Você poderia obter bons resultados na cidade durante o dia, mas os artefatos sairiam no ambiente arenoso, na folhagem ou à noite na chuva.
As seguintes passagens mostraram melhorias de desempenho com o VRS ativado, mas tinham muitos artefatos para valer a pena usar:
- Iluminação translúcida (translucidez);
- Iluminação diferida;
- Composição após a iluminação.
Exemplo mostrando uma imagem antes e depois da composição após a iluminação com um tamanho aproximado de pixel de 4x4
Após eliminar essas passagens, o trabalho começou a ajustar a taxa de sombreamento com base em outros fatores. Antes de tudo, objetos dinâmicos e objetos com uma máscara de transparência foram excluídos.
Objetos dinâmicos projetam uma sombra totalmente dinâmica. Por esse motivo, com o VRS, eles frequentemente perdem detalhes importantes e se tornam mais visíveis em toda a cena, bem como durante o movimento. A aplicação do VRS a uma máscara de transparência também resultou em uma grande perda de detalhes. E como os objetos com deslocamento de profundidade de pixel também foram exibidos incorretamente, eles também foram excluídos.
O VRS foi usado em um conjunto de objetos mascarados, resultando em uma perda inaceitável de detalhes
Técnicas dinâmicas
Por isso, reunimos um bom conjunto de passes de renderização nos quais você pode aplicar o VRS. No entanto, o uso generalizado da menor taxa de sombreamento (4 × 4 ou 2 × 2, dependendo do suporte de hardware) nessas passagens levará a uma perda significativa de qualidade. Portanto, o próximo passo foi estudar métodos dinâmicos que pudessem alterar a taxa de sombreamento, dependendo de um passe específico. Como resultado, três deles foram formados. Cada um deles foi usado em passes importantes antes de desenhar a malha.
Esses métodos são: dimensionamento de objetos, mascaramento de profundidade de campo e mascaramento de nevoeiro de guerra.
Determinando o tamanho de um objeto
Nesse método, o VRS é aplicado ativamente em qualquer grade extremamente pequena em comparação com o espaço de jogo. Ele se baseia em uma verificação rápida da condição, se o valor do tamanho de um polígono individual na malha está abaixo de um limite especificado. Nesse caso, a taxa de sombreamento é dimensionada proporcionalmente a esse tamanho.
Máscara de profundidade de campo
Para a maioria das GPUs, a profundidade de campo no Gears Tactics é desativada por padrão, mas ativada durante as cenas. Este método determina quanto a malha é borrada após a aplicação da profundidade de campo no pós-processamento. E, como nesse estágio os detalhes são deliberadamente eliminados, uma pequena taxa de sombreamento pode ser definida em todos os passes de teclas anteriores.
As malhas destacadas em vermelho têm o tamanho de pixel mais grosseiro devido à profundidade de campo
Disfarce da névoa da guerra
Gears Tactics usa Fog of War para esconder partes do campo de batalha. Também pode ser usado para mascarar a taxa de sombreamento reduzida. Essa técnica determina até que ponto uma malha de polígono específica fica oculta pelo "nevoeiro da guerra" e, com base nisso, reduz a taxa de sombreamento proporcionalmente.
A intensidade do VRS cresce proporcionalmente ao nevoeiro da intensidade da guerra
Relação qualidade / desempenho
Aconteceu que, usando a combinação dos métodos descritos acima, você pode obter mais de 30% de ganho de desempenho devido a uma redução significativa na taxa de sombreamento. É verdade que a perda de qualidade será mais perceptível do que gostaríamos. Portanto, o próximo passo foi ajustar manualmente a taxa de sombreamento para cada passagem por vários biomas e avaliar o ganho de desempenho e a qualidade da imagem após cada alteração.
Como resultado, o VRS recebeu dois níveis. A configuração "Ativado" tem o menor impacto na qualidade da imagem, desde que você desative o VRS para algumas passagens de renderização e limite a queda da taxa de sombreamento. Ao mesmo tempo, a configuração "Desempenho" resultará em pequenos comprometimentos na qualidade da imagem, favorecendo o aumento do desempenho usando taxas de sombreamento mais baixas.
Há outra vantagem do uso da taxa de sombreamento, que requer energia adicional. Os tamanhos de pixel maiores que 2 requerem suporte adicional à taxa de sombreamento de hardware; portanto, qualquer passagem usando uma taxa de sombreamento 2x4, 4x2 ou 4x4 é limitada ao nível "Desempenho".
Resultado dos testes
Testes realizados com Intel Gen 11 e Intel Xe e NVIDIA Turing. Todas as ferramentas suportadas têm ganhos de desempenho semelhantes.
Equipamento em teste
Sistema operacional: Windows 10 Pro de 64 bits (10.0, Build 18362) (18362.19h1_release.190318-1202)
Processador: CPU Intel® Core (TM) i9-9900X a 3,50 GHz (20 CPUs), ~ 3,5 GHz
Memória: 98304 MB
Placa de vídeo RAM : NVIDIA GeForce RTX 2080 SUPER
Todos os testes foram realizados nas configurações de jogos Ultra com resolução 4K
Todas as técnicas nas configurações "VRS On" Todas as técnicas foram ativadas
na "VRS Performance"
Extensão VRS
Benefícios adicionais podem ser obtidos estendendo os aplicativos VRS descritos aqui.
Outras técnicas de mascaramento
Técnicas de mascaramento adicionais podem melhorar o desempenho do VRS ou reduzir artefatos. Esses métodos podem variar dependendo dos casos em que as áreas ficam sombreadas ou borradas durante a reprodução:
- Desfoque de movimento : As câmeras que usam cenas em movimento rápido podem facilmente usar o VRS na maioria das malhas com o desfoque de movimento ativado.
- Partículas: malhas poligonais escondidas atrás de uma espessa camada de partículas podem ser usadas para mascarar o VRS de alta intensidade.
VRS dinâmico
Assim como no dimensionamento dinâmico da resolução, uma possível melhoria é dimensionar o VRS com base na taxa de quadros para minimizar o tempo necessário para usá-lo. Este é um sistema de rastreamento separado que pode exigir ajuste em diferentes frequências para evitar a amplificação de artefatos.
DRS (Dynamic Resolution Scaling)
O Gears Tactics usa o VRS e o DRS para otimização, mas esses recursos podem não ter uma compatibilidade muito boa. Isso ocorre porque quando o DRS altera a escala de resolução, os artefatos do VRS também são alterados. Isso leva ao fato de que o jogador aprende sobre os artefatos do VRS e a resolução muda de uma só vez, ou ambos passam despercebidos. Uma maneira de usar as duas funções ao mesmo tempo seria monitorar a taxa de alteração DRS e desativar o uso do VRS até que ele se estabilize.
Em vez de uma conclusão
O uso hábil do VRS de nível 1 pode obter ganhos significativos de desempenho em uma ampla gama de equipamentos com impacto mínimo na qualidade da imagem.