Descubra o V-Ray Profiler e aprenda como ele pode ajudar a otimizar a performance de renderização e se tornar uma ferramenta essencial em seus projetos.
O V-Ray Profiler é uma ferramenta poderosa que fornece aos artistas de todos os níveis os meios para identificar áreas para otimizar a performance de renderização. Com o lançamento da primeira atualização do V-Ray 6 para Maya e Cinema 4D, esse renderizador se tornou ainda mais poderoso com as novas funções que fornecem ainda mais ideias. Vamos explorar a jornada de desenvolvimento do V-Ray Profiler, como funciona, e como ele pode ser uma ferramenta indispensável para projetos de qualquer tamanho.
O que é o V-Ray Profiler?
O V-Ray Profiler ajuda os usuários a determinar quanto tempo leva para renderizar componentes diferentes em sua cena. Ele pode ser usado para diagnosticar e comparar a performance de diferentes materiais, malhas com subdivisão e deslocamento, configurações de renderização, e fluxos de trabalho e abordagens diferentes.
Os relatórios do Profiler são divididos em duas sessões — Sistema e Renderização. A parte do sistema do relatório foca em diferentes tarefas pré e pós-renderizadas. A parte de renderização detalha o tempo gasto na amostra de shaders e volume durante a renderização. Os segmentos dividem-se em tipos mais detalhados de contribuições de cada shader ou volume, como por exemplo GI, iluminação direta, reflexos, refrações, etc.
Tudo começou com um raio de esperança e um traço de luz
Algo que nos orgulha na Chaos é a relação com os usuários. A Chaos sempre tenta ficar atenta às mensagens nos fóruns e e-mails, e não é incomum marcar reuniões para discutir desafios que os clientes encaram enquanto trabalham em seus projetos.
Um tópico recorrente é a otimização de cenas para performance. Normalmente, nós trabalhamos com os clientes para investigar casos específicos, executá-los por meio de ferramentas de criação de perfil de códigos, e fazer recomendações de mudanças de sombreamento das árvores, geometria, configurações de renderização, ou qualquer coisa que seja relevante.
Infelizmente, o processo pode ocasionalmente consumir muito tempo, e a pergunta mais óbvia acontece logo em seguida: Deveríamos incentivar nossos usuários a diagnosticar esses problemas por conta própria? Nós já tínhamos algumas ferramentas como o rastreador de memória e um registro detalhado, mas obviamente existia a necessidade de algo mais.
Como solução, criamos o V-ray Profiler. Esses relatórios registram as medidas, que podem ser lidas offline em formato de texto ou exibidas em ferramentas de rastreamento online, como o Tracer do Google Chrome, com o propósito de informar quanto tempo foi gasto em cada material e em seus componentes de sombreamento (GI, reflexo, refração, etc).
[]
Ele fez sua estreia no V-Ray 6 para Maya, mas nós sabíamos que havia espaço para desenvolvê-lo ainda mais. O próximo lançamento do V-Ray 6 para Maya, Hotfix 1 adicionou a habilidade de registrar métricas para ainda mais ray bounces. Isso permitiu que os usuários criassem perfis de configurações mais complicadas, por exemplo, imagens onde a câmera está atrás de uma janela, ou olhando para um espelho.
Os relatórios de sombreamento são esclarecedores, mas existem outros aspectos importantes na renderização de uma cena. Há diversos fatores que podem contribuir para a lentidão — geometria pesada e desnecessária, deslocamento muito detalhado, compilação de cachê mais lenta por conta das configurações, etc. Para ajudar com isso, a atualização 1 do V-Ray 6 adicionou o modo Sistema no Profiler – ele te fornece informações sobre o tempo gasto na compilação de geometria por objeto, construção do cachê por iluminação, exportação, inicialização de plugin, e muito mais. Com essa adição, o V-Ray Profiler se tornou uma ferramenta insubstituível para nós internamente e esperamos que para muitos dos outros clientes também.
O V-Ray Profiler chegou para o Houdini junto do lançamento oficial de sua versão 6, e então depois para Cinema 4D com a atualização 1 do V-Ray 6, mas nós planejamos adicioná-lo em mais alguns de nossos programas para que todos os usuários possam se beneficiar dele. Não se preocupe se sua plataforma favorita ainda não estiver na lista, pois o profiler também está disponível para o V-Ray App SDK e para a versão autônoma, onde você pode ativá-lo em qualquer cena .vrscene com alguns argumentos na linha de comando.
Modo Sistema: Detalhamento pré e pós renderização
Esse modo relata o tempo gasto em processos que ocorrem antes e depois da renderização. Ele também inclui uma seção dedicada ao tempo real gasto durante a renderização, mas não oferece detalhes mais aprofundados nesse modo. Você pode encontrar detalhes sobre o tempo gasto em sombreamento na seção de detalhamento de renderização.
Os eventos principais são listados em ordem cronológica, e os relatórios se assemelham a uma linha do tempo. Os processos podem incluir, entre outros, a compilação de geometria, criação de keyframes, criação de cachê de iluminação, inicialização de plugins, entre outros.
Por um tempo, o V-Ray monitorou internamente muitos desses processos, pois pode usá-los para calcular coisas como estimativas de tempo de renderização e porque praticamente não há custo de desempenho.
O modo Sistema do Profiler se expande nessas práticas já existentes fornecendo análises mais detalhadas — por exemplo, não apenas o tempo gasto compilando toda a geometria, mas uma análise para cada ativo e, pelo mesmo princípio, a inicialização de cada plugin, cada luz, e assim por diante.
Se você tiver dúvidas que os primeiros pixels estão levando um tempo suspeito para chegar ao VFB, então esse é o modo que você deveria prestar atenção. Está disponível no próprio modo de Sistema, mas também está incluso no modo Total, juntamente da análise de Renderização.
Modo renderização: detalhamento do processo de sombreamento
O relatório de renderização fornece uma análise detalhada de quais eventos aconteceram durante o processo de sombreamento de materiais e volumes. Então, dividimos o cálculo de contribuição de um material em seus componentes — iluminação direta, iluminação global, reflexo, refração e tempo gasto para cada textura, entre outros.
O Profile mostrará somente os componentes que o V-Ray calculou — ex., se um material não possui refração ativada, ele não terá um componente de refração (pois teria levado cerca de 0 segundos, e não há uma maneira de representar isso visualmente).
Rastreio até o final
Uma das coisas chave para se ter em mente ao usar o V-Ray Profiler é a profundidade máxima. Embora pareça interessante ver análises em sua profundidade total, é algo para usar com cautela, pois pode impactar o desempenho. Para entender o porquê isso acontece, precisaríamos ser mais específicos sobre como ele grava a duração de todos os eventos.
Vamos dizer que nossa câmera de renderização enxerga um objeto (iremos chamar de objeto 1) com VRayMtl1 que reflete outro objeto reflexivo (objeto 2) com VRayMtl2. Nosso primeiro raio de câmera atinge o objeto 1 e cria outro raio na direção do objeto 2. Nesse ponto, escreveremos que o VRayMtl2 contribui para o componente reflexivo do VRayMtl1 e também começa a rastrear o segundo raio que reflete do VRayMtl2. Ambas as medições de tempo irão continuar até que o raio termine seu trajeto. Isso irá ocorrer muitas vezes para todos os diferentes componentes de cada material. Quanto maior o valor de Profundidade Máxima, mais medidas o Profiler fará, e maior será o impacto de desempenho. Para a maioria dos testes sem muitos reflexos e refrações, nós recomendamos manter os padrões e usar o modo Total com uma Profundidade Máxima de 1.
Por outro lado, o modo de Sistema informa os dados básicos que coletamos durante o processo de renderização, então ativá-lo não dará nenhuma desvantagem na performance.
O guia para relatórios do profiler para otimização de renderização
Certo, então nós sabemos o que é o V-Ray Profiler. Sabemos como ele funciona, mas como podemos interpretá-lo? Vamos começar com o relatório de renderização e cobrir alguns conceitos básicos de sombreamento. Em termos simples, ao renderizar uma imagem, a câmera virtual lança raios através de um plano de imagem para objetos virtuais com suas propriedades de sombreamento específicas.
Quando raios atingem um objeto, baseado em suas propriedades, tipos diferentes de raios secundários são criados. Os raios de sombra são rastreados até as fontes de luz para determinar iluminação direta e sombras — isso é visível no componente de luz direta. Se o material tiver propriedades reflexivas, raios de reflexo são lançados, o que é visível no componente de reflexo. Dessa mesma forma, temos raios de refração responsáveis pelos componentes de refração; raios de dispersão subsuperficial estão nos componentes indiretos, e assim em diante.
[]
O resultado final utilizará um resumo das medidas de tempo gravadas por componente, juntamente com o tempo relativo para cada material fornecido. Representaremos isso como uma porcentagem do tempo total gasto no sombreamento. Você pode notar que todas as porcentagens de material somam 100 no relatório, mas, em contrapartida, os componentes não. A razão é que nós não traçamos todos os eventos que ocorrem durante o sombreamento, já que o usuário tem praticamente nenhum controle sobre eles.
Nos relatórios, você pode pesquisar por alguns dos materiais que levam a maior quantidade de tempo e observar qual de seus componentes causa isso. Baseado nisso, você pode ajustar atributos diferentes dos materiais e comparar abordagens para oque funciona melhor. Por exemplo, você pode comparar materiais com diferentes configurações SSS ou muita aspereza em seu reflexo e um resultado semelhante e mais brilhante.
O modo Sistema coleta informação de processos pré e pós renderização. Os eventos listados dependeriam do que está presente em sua cena e suas configurações de renderização, mas há alguns que irão aparecer em quase todos os casos, como renderização e inicialização de licenças, exportação, tradução de posts em python, criação de keyframes, início da sequência, início de quadro, configurações, luzes, desenho V-Ray, configurações do ambiente, elementos de renderização, geometria e materiais, links de luzes, inicialização de plugin, compilação de geometria, criação de servidor de raios, criação de cachê de luz.
Tempos de renderização excepcionalmente altos em qualquer um desses componentes seria uma razão para checar novamente se a configuração da cena pode ser otimizada. Um exemplo disso seria a compilação de geometria e sua decomposição adicional por nó de malha. Com base nas configurações de subdivisão e deslocamento nelas, você pode procurar por malhas que podem ser otimizadas ainda mais.
Esse tutorial em vídeo sobre como usar o V-Ray Profiler é um bom exemplo de análise de relatório e aplicação de mudanças relevantes.
Benefícios de usar o V-Ray Profiler
Infelizmente, a pós produção não consegue consertar tudo, e o tempo de renderização é uma dessas coisas. Com apenas um render no “modo Total”, você pode identificar pontos críticos de renderização como materiais e geometria lentos. O modo de sistema pode te ajudar praticamente sem custo de desempenho a otimizar qualquer aspecto em sua cena que você suspeite estar fora do sombreamento. Concentre-se em aspectos específicos de sua cena e use uma abordagem científica para comparar diferentes configurações.
Conclusão
Concluindo, o V-Ray Profiler serve como uma ferramenta de muito valor para usuários que buscam otimizar seu processo de renderização. Ele faz uma análise detalhada, fornecendo informações sobre o tempo gasto em vários componentes dentro da cena. Isso auxilia no diagnóstico e na comparação de fatores de desempenho, incluindo materiais, geometria, subdivisão, deslocamento, configurações de renderização e fluxos de trabalho diferentes.
Com seus dois modos – Sistema e Total, os usuários obtêm ideias valiosas sobre o processo de renderização, tornando-o indispensável e valioso para artistas.
Leia mais!