(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
Fontes
Categorias