Otimização dos Efeitos de Partícula na 2.4.0
|
Apesar da plataforma de multinúcleos ter tido um efeito enorme no desempenho, ainda temos muitas coisas para otimizar. Nosso programador de otimização, Vincent, vem tentando otimizar o sistema de partículas usando as instruções de vetores de propósitos especiais disponíveis em CPUs modernas.
A imagem abaixo mostra alguns dos resultados com o nosso rastreador de quadros em uma cena com muitas partículas. ![]() Essa é uma cena que possui 70 esqueletos de fogo atirando projéteis contra o jogador. É uma cena que funciona muito bem como teste, pois ela estressa o sistema de partículas usando muitas partículas, mas não consome muito da taxa de preenchimento da GPU, que é uma área que não queremos testar aqui. Como pode ver, sem a Plataforma de Multinúcleos isso resultou em um aumento de velocidade de 1.9X e com a plataforma de multinúcleos vemos um aumento de velocidade de 1.5X. Ambas otimizações juntas dão um aumento significativo de 4.5X nessa cena comparado com o 2.3.0. Para conseguirmos isso, usamos instruções AVX de propósitos especiais que foram introduzidas nas CPUs em meados de 2011. Instruções AVX lhe permitem aplicar o mesmo conjunto de operações matemáticas em um conjunto maior de dados ao mesmo tempo. Por exemplo, ao invés de calcular a velocidade de uma partícula, podemos calcular quatro partículas de uma vez com o mesmo número de instruções de CPU. O próprio subsistema de partículas sozinho é por volta de 4X mais rápido que usar essas instruções. Para CPUs que não possuem suporte ao AVX, também temos uma implementação de SSE2 que é por volta de 2X mais rápido que antes, o que ainda terá um resultado final significativo na sua taxa de quadros. Gostaria de enfatizar que isso é uma otimização de CPU e não fará efeito na taxa de quadros se a sua placa de vídeo for o gargalo. Última edição por Felipe_GGG#0000 em 28 de ago. de 2016 17:30:05 Último bump em 28 de ago. de 2016 17:15:30
|
|









