CD Projekt RED explica a renderização inteligente de The Witcher 3

3 min de leitura
Imagem de: CD Projekt RED explica a renderização inteligente de The Witcher 3

(Fonte da imagem: Reprodução/DualShockers)

A desenvolvedora CD Project RED aproveitou a última edição da feira GDC (Game Developers Conference) para mostrar um pouco mais do seu vindouro The Witcher 3: Wild Hunt — título que deve fechar a epopeia de Geralt de Rivia em busca de sua amada Yennefer. Além de mostrar imagens do seu renovado mundo de jogo pestilento, a softhouse também organizou uma apresentação da tecnologia Advanced Occlusion.

Com o título de “Tratando a Visibilidade e a Transmissão em The Witcher 3: Wild Hunt”, o painel mostrou como os desenvolvedores da CD Projekt tem feito uso da engine Umbra 3 com o objetivo de minimizar ao máximo a utilização de memória na hora de criar as extensas paisagens do game.

Só até onde a vista alcança

Conforme explicou o engenheiro de software da CD Projeckt RED, Przemyslaw Czatrowski, o que o recurso Advanced Occlusion faz é renderizar apenas os objetos enquadrados pela câmera em dado momento — seria a perspectiva do personagem, portanto.

(Fonte da imagem: Reprodução/DualShockers)

Trata-se, portanto, de uma tecnologia de oclusão, embora a softhouse tenha lançado mão de critérios próprios na hora de selecionar objetos do cenário. De qualquer forma, o resultado é uma economia substancial do poder de fogo da placa de vídeo.

Confira o passo a passo do sistema de oclusão da Umbra Software:

  • O mundo de jogo é dividido em quadros tiles), sendo que, para cada um deles, é formado um conjunto de dados, incluindo os dados de oclusão. A engine determina quais conjuntos precisam ser mostrados de acordo com a posição e a direção da câmera;
  • Caso um novo conjunto de dados determinados difira do conjunto antigo, um processo de computação assíncrono começa, criando um novo conjunto, que é então enviado ao renderizador para ocupar o lugar dos gráficos previamente renderizados. (Ocorre quando, digamos, a direção da câmera é alterada, focando em uma nova porção do mundo de jogo); e
  • Conjuntos de dados que não estejam mais em uso são removidos, liberando espaço na memória.

    Advanced Occlusion em Skellige

    A imagem abaixo ilustra bem o processo de oclusão da Umbra Software na região de Skellige. A área em verde representa a parte do cenário no momento.

    (Fonte da imagem: Reprodução/DualShockers)

    Conforme a câmera se desloca para frente, a área coberta pela perspectiva também muda, determinando o espaço que precisa ser renderizado e liberando o espaço anterior (conforme explicado acima). É isso que faz, portanto, com que novos objetos entrem em cena sem sobrecarregar a memória.

    Exemplo de oclusão em Novigrad

    A cena abaixo, localizada na cidade de Novigrad, compara uma screenshot específica dentro do jogo com os dados que são efetivamente renderizados pela engine Umbra. A câmera e a área coberta pela perspectiva do personagem podem ser vistas em amarelo.

    Conforme explicou Przemyslaw Czatrowski, essa cena possui um total de 43 conjuntos de dados — dispostos em porções específicas do cenário, que é dividido em quadros. Adicionalmente, também são gerados 15 MB de dados para formar cada conjunto em tempo real.

    (Fonte da imagem: Reprodução/DualShockers)

    Embora existam mais de 62 mil malhas formadas por conjuntos de pixels (formando texturas e demais elementos gráficos), apenas 500 são visíveis e renderizados no momento da cena — apenas 0,76% do total, portanto. Czatrowski acrescenta também que todo o processo de substituição de elementos renderizados não toma mais do que 1,8 microssegundo para exibir o resultado acima — considerando-se também partículas e demais detalhes (sangue, fogo etc.)

    Economia de memória

    Embora Skellige, por exemplo, possua 64 quilômetros quadrados de extensão — com algo entre 45 mil e 50 mil malhas formadas por “pedaços” de cenário (como ilustra a imagem abaixo) —, a CD Project garante que apenas entre 1% e 5% desses dados devem ser carregados em cada cena.

    (Fonte da imagem: Reprodução/DualShockers)

    Em termos de espaço em HD, não obstante o fato de a Umbra ocupar, por exemplo, 300 MB de espaço com dados para Skellige e 250 MB para Novigrad, o primeiro deve representar uma utilização efetiva de memória RAM de apenas 40 MB (máximo de 80 MB) e o segundo de 45 MB (também com valor máximo de 80 MB).

    Ademais, a desenvolvedora afirmou ainda que pretende utilizar a mesma tecnologia para reduzir as sombras carregadas em cena — conseguindo isso, explica Czatrowski, por meio de cálculos que mostrem quais objetos projetam sombras visíveis para o jogador em determinado momento.

    Via BJ

    Você sabia que o TecMundo está no Facebook, Instagram, Telegram, TikTok, Twitter e no Whatsapp? Siga-nos por lá.