Renderização usando o Azure

Renderização é o processo de pegar em modelos 3D e convertê-los em imagens 2D. Os ficheiros de cenas 3D são criados em aplicações como Autodesk 3ds Max, Autodesk Maya e Blender. Aplicações de renderização como Autodesk Maya, Autodesk Arnold, Chaos Group V-Ray e Blender Cycles produzem imagens 2D. Por vezes, são criadas imagens individuais a partir dos ficheiros de cena. No entanto, é comum modelar e renderizar várias imagens, e depois combiná-las numa animação.

A carga de trabalho de renderização é fortemente utilizada para efeitos especiais (VFX) na indústria dos Media e do Entretenimento. A renderização é também utilizada em muitas outras indústrias, como publicidade, retalho, petróleo e gás, e indústria transformadora.

O processo de renderização é computacionalmente intensivo; Podem existir muitos frames/imagens para produzir e cada imagem pode demorar muitas horas a ser renderizada. O rendering é, portanto, uma carga de trabalho perfeita para processamento em lote que pode usar o Azure para executar muitos renders em paralelo e utilizar uma vasta gama de hardware, incluindo GPUs.

Porque usar o Azure para renderização?

Por várias razões, a renderização é uma carga de trabalho perfeitamente adequada para o Azure:

  • Os trabalhos de renderização podem ser divididos em várias partes que podem ser executadas em paralelo usando múltiplas VMs:
    • As animações consistem em muitos frames e cada frame pode ser renderizado em paralelo. Quanto mais VMs disponíveis para processar cada frame, mais rápido todos os frames e a animação podem ser produzidos.
    • Alguns softwares de renderização permitem que frames individuais sejam divididos em várias partes, como tiles ou slices. Cada peça pode ser renderizada separadamente e depois combinada na imagem final quando todas as peças estiverem concluídas. Quanto mais VMs disponíveis, mais rápido um frame pode ser renderizado.
  • Os projetos de renderização podem exigir uma escala enorme:
    • Os frames individuais podem ser complexos e requerem muitas horas para serem renderizados, mesmo em hardware de alta gama; As animações podem consistir em centenas de milhares de frames. É necessária uma enorme quantidade de computação para renderizar animações de alta qualidade num tempo razoável. Em alguns casos, são usados mais de 100.000 núcleos para renderizar milhares de frames em paralelo.
  • Os projetos de renderização são baseados em projetos e requerem quantidades variadas de computação:
    • Aloque capacidade de computação e armazenamento quando necessário, aumente ou diminua conforme a carga durante um projeto e remova-a quando o projeto estiver concluído.
    • Pague pela capacidade quando atribuída, mas não pague quando não houver carga, como entre projetos.
    • Dar resposta a picos devido a alterações inesperadas; aumenta a escala se houver alterações inesperadas numa fase tardia de um projeto e essas alterações tiverem de ser tratadas num prazo apertado.
  • Escolha entre uma vasta seleção de hardware conforme a aplicação, carga de trabalho e período temporal:
    • Existe uma grande variedade de hardware disponível no Azure que pode ser alocada e gerida com o Batch.
    • Dependendo do projeto, o requisito pode ser o melhor preço/desempenho ou o melhor desempenho global. Diferentes cenas e/ou aplicações de renderização podem ter requisitos de memória distintos. Algumas aplicações de renderização podem usar GPUs para obter o melhor desempenho ou certas funcionalidades.
  • VMs de baixa prioridade ou Azure Spot reduzem custos:
    • VMs de baixa prioridade e Spot estão disponíveis com um grande desconto em comparação com VMs padrão e são adequadas para alguns tipos de tarefas.

Ambiente de renderização local existente

O caso mais comum é existir uma fazenda de renderização local gerida por uma aplicação de gestão de renderização, como PipelineFX Qube, Royal Render, Thinkbox Deadline ou uma aplicação personalizada. O requisito é estender a capacidade de render farm on-premises usando VMs do Azure.

A infraestrutura e os serviços do Azure são usados para criar um ambiente híbrido onde o Azure é utilizado para complementar a capacidade on-premises. Por exemplo:

  • Use uma Rede Virtual para colocar os recursos do Azure na mesma rede da fazenda de renderização local.
  • Use Avere vFXT for Azure ou Azure HPC Cache para armazenar ficheiros fonte em cache no Azure para reduzir o uso de largura de banda e a latência, maximizando o desempenho.
  • Garantir que o servidor de licenças existente está na rede virtual e comprar mais licenças conforme necessário para acomodar a capacidade extra baseada no Azure.

Não existe uma fazenda de renderização existente

As estações de trabalho cliente podem estar a fazer renderização, mas a carga de renderização está a aumentar e está a demorar demasiado tempo a usar apenas a capacidade da estação de trabalho.

Existem duas opções principais disponíveis:

  • Implemente um gestor de renderização local, como o Royal Render, e configure um ambiente híbrido para usar o Azure quando for necessária maior capacidade ou desempenho. Um gestor de renderização é especialmente adaptado para cargas de trabalho de renderização e inclui plug-ins para as aplicações clientes populares, permitindo a submissão fácil dos trabalhos de renderização.

  • Uma solução personalizada que utiliza o Azure Batch para alocar e gerir a capacidade de computação e fornecer o agendamento de tarefas para executar os trabalhos de renderização.

Próximos passos

Saiba mais sobre as capacidades de renderização do Azure Batch.