A beleza de renderizar quadros de jogos: Uma breve visão geral das ferramentas + Vídeo interessante

A curiosidade da mente e o desejo de saber como tudo funciona por dentro distingue o técnico da massa de usuários. Neste pequeno post, gostaria de compartilhar com a comunidade curiosa pequenos vídeos e uma pequena receita para o uso de software de criação de perfil para aplicativos 3D.



Isenção de responsabilidade
3D , , . . 3D . . ( ) — . .
, . .
- , «» «»

Assista ao vídeo e, em seguida, leia-
o.Portanto, se quisermos avaliar como a preparação do quadro do jogo ocorre. Que geometria, texturas, quantas chamadas para desenhar, onde ocorre o rebaixamento do desempenho? Você pode usar software especializado para depurar esses processos.

Vou listar os principais:

  1. Renderderoc
  2. Nvidia nsight
  3. GPUperfStudio

RenderDoc é um depurador gráfico da Crytek.



(Na captura de tela, o busto de Lara Croft da última parte: Rise of the Tomb Rider)

Suporte DirectX 11/12, Vulkan, OpenGL 3.2+



Este é um projeto de código aberto . Apoiado regularmente por novos commit.

Link para o repositório e documentação

A interface é bastante flexível e intuitivamente simples. Em 5 minutos, não é difícil para uma alma curiosa descobrir como iniciar um jogo ou aplicativo e percorrer todo o processo de renderização. Aplicativos de terceiros para iniciar não são necessários.

Especifique o caminho para executar, parâmetros adicionais e executar. Em seguida, no aplicativo, no momento certo, pressione F12 ou PrintScrn, o RenderDoc salva um quadro que pode ser salvo e retorna a ele mesmo sem iniciar o jogo ou compartilhá-lo com um parceiro.

Por exemplo, você pode exportar geometria e texturas.



Nvidia Nsight é uma ferramenta de depuração da NVIDIA.


Uma ferramenta de depurador excelente e muito poderosa. Esta não é a única ferramenta no arsenal da Nvidia. Existem ferramentas para aplicativos móveis, Linux, dispositivos Mac, etc. Em toda a sua diversidade, eu não entendi. O Nsight deve ser usado junto com o Visual Studio, mas, para começar rapidamente, você pode tentar sem o Microsoft IDE instalado.

Registramos gratuitamente no Nvidia Developer Program e baixamos calmamente as ferramentas necessárias. O site da Nvidia possui documentação e vídeos explicativos sobre o uso das ferramentas.

Para começar, basta arrastar o atalho do aplicativo para o atalho Nvidia Nsight. E, se tudo estiver correto, você verá HUD'y e gráficos do Nsight.

A moldura é simplificada: pressione CTRL + Z e pressione a barra de espaço ou o botão com o ícone de lupa. O processo é interrompido e a janela Nsight Replay é aberta, na parte inferior da qual há uma linha do tempo com um controle deslizante. O Nsight tem dicas e a interface é bastante simples. Também é possível salvar a renderização inteira do quadro em um arquivo, mas para abri-lo, você ainda precisa instalar o Visual Studio.



Para aprofundar o processo, todas as manipulações devem ser feitas no VS. Inicie o aplicativo 3D a partir do VS ou inicie o quadro salvo (a função de salvar o acesso e sem o VS instalado)

Crie um projeto vazio:



encontre um botão no qual inserimos o caminho para o aplicativo e algumas configurações necessárias.



E depois disso começamos a depuração. O aplicativo é aberto. Se um carregador for usado, talvez seja necessário selecionar o processo desejado na janela.



O processo é o mesmo que eu descrevi acima. Mas agora o VS abre recursos adicionais de depuração, que não estão disponíveis ao depurar sem o VS. Geometria e texturas e shaders. Você pode analisar processos de diferentes ângulos.



O Nsight também possui um recurso útil: você pode executar o aplicativo com o servidor em uma máquina dedicada e conectar-se a ele pelo VS. Portanto, todos não precisam implantar o mesmo ambiente com o aplicativo, o que simplifica a vida do desenvolvedor ou da equipe de desenvolvimento.

Para trabalhar com quadros salvos, basta abrir o projeto salvo para sua versão do Visual Studio, compilar a compilação do release e habilitar a depuração do Nsight. Além disso, como descrito acima.

A propósito. Não entendi se é possível olhar para o Nsight toda a geometria da corrida, como é feito no RenderDoc? É muito conveniente ao exibir uma chamada de desenho específica com grades de chamadas anteriores.

Além disso, não pude verificar a operação do software na placa de vídeo da AMD por falta dela. Mas parece que a Nvidia não possui requisitos rígidos nesse assunto.

GPU PerfStudio - desenvolvimento da Advanced Micro Devices (AMD)


Uma ferramenta maravilhosa e poderosa. Ele também tem a capacidade de depurar remotamente.

Link para download e documentação.



É fácil de usar. Existem 2 versões do servidor (64 e 32 bits) para iniciar, basta arrastar o aplicativo necessário para o servidor. O que ele próprio perguntará quando você tentar executá-lo.



Em seguida, basta ativar o cliente. Nós nos conectamos ao servidor, pausamos no momento certo e agora podemos fazer tudo o que fizemos antes no RenderDoc ou Nvidia Nsight.

Amplo suporte para várias APIs e dispositivos. Apesar de sua origem, ele suporta minha placa de vídeo Nvidia. Portanto, não há conspirações e paus no volante ...

UPD Os comentários sugeriram outra ferramenta de código aberto.
apitrace
Multiplataforma e suportando várias APIs. Ainda não o senti, mas, segundo Lieff, é uma ferramenta útil e simples.



Qual ferramenta é a melhor delas, não sei dizer. Cada um possui alguns de seus próprios mini recursos, tabelas, gráficos, que podem conter informações muito necessárias em uma tarefa específica. Do lado do usuário, uma pessoa curiosa, eu de alguma forma "aconteceu" com o RenderDoc. Mas às vezes nem todos os processos podem ser iniciados nele.

E, a propósito, sobre como iniciar processos. Tudo é muito fácil e simples quando você tem o aplicativo A e a ferramenta B. Em seguida, a ferramenta B inicia o aplicativo A e todos ficam felizes. Mas se houver intermediários nesse esquema: lançadores, software anti-fraude e outros invólucros, você precisará dançar um pouco.

Considere um exemplo de lançamento de um jogo do Steam ou Origin e outros serviços.

Nesse caso, você precisa seguir um determinado procedimento em qualquer kit de ferramentas:

  1. Desative todos os tipos de recursos de sobreposições no jogo no Steam, Origin, Uplay, etc.
  2. Antes de iniciar, esses aplicativos devem ser desativados.
  3. Você não precisa executar o arquivo do jogo, mas um invólucro (Steam, Origin, Uplay, etc.)
  4. Depois disso, você pode iniciar o jogo diretamente do "wrapper" em execução
  5. Muitas vezes, são necessárias opções adicionais de inicialização. Por exemplo, para o Watch Dogs 2, o parâmetro -eac_launcher é usado para desativar o anti-cheat. Aqui você precisa ler o leia-me, configurações para obter dicas. Além disso, opções adicionais ajudam a acelerar o processo de inicialização do aplicativo. Exemplo do Steam: -applaunch 99999 (ID do aplicativo)
  6. Sempre verifique a versão da API no aplicativo. Talvez o DX12 esteja ativado nas configurações, mas não é suportado por você, etc. Faça predefinições, feche o jogo e só então comece a depurar.
  7. Alguns aplicativos não são estáveis ​​em sistemas multigráficos (por exemplo: vídeo incorporado + placa discreta). Desative desnecessário no gerenciador de dispositivos. Além disso, nesse caso, é melhor estrear a foto do quadro, e não o jogo de corrida. Porque reinício do tormento em caso de colapso.



Os vídeos prometidos para um lanche. Gravo vídeos com lapso de tempo do processo de renderização de um quadro de um jogo. Acho muito divertido, informativo e bonito. Nem todos os eventos são exibidos no vídeo, como nesse caso, seria um tremor demais.
Pubg

Campo de batalha 1


GTA V


Ascensão do cavaleiro do túmulo


Witcher 3


Cães de guarda 2


Fallout 4


Sobre desenhar chamadas


E isso é tudo. Espero que este material impressione, conte, ajude ou de alguma outra maneira positiva a afetar o leitor. Envie edições, dicas, agradecimentos e pontapés para o PM ou comentários.

E, finalmente, gostaria de divulgar um pouco o meu canal do Youtube: www.youtube.com/KakoytoAitishnik
Isso, é claro, é uma péssima ideia para os gictimes, mas todos esses gizmos sociais: assinaturas, curtidas e comentários aumentam a motivação para o lançamento de novos e melhores conteúdos.

Source: https://habr.com/ru/post/pt400963/


All Articles