Baixe o app para aproveitar ainda mais
Prévia do material em texto
Modelagem Para Jogos Digitais Aula 3: Técnicas para a criação de Cenários Apresentação Estudaremos o que deve ser levado em consideração para a criação de um cenário virtual completo. Falaremos sobre algumas ferramentas e otimizações em cenários nos games, abordando técnicas especí�cas para a criação de cenários virtuais. Objetivo Examinar os métodos para a criação de cenários virtuais; Analisar técnicas utilizadas para deixar o cenário mais completo e orgânico; Identi�car as principais técnicas de mercado, entendendo como os games otimizam seus cenários e como eles são produzidos. Criação de cenários Os games se valem de muitos “truques” para que o usuário tenha a percepção de certo tipo de detalhamento ou de efeito em seus cenários e personagens. Isso acontece pois há uma grande limitação dos hardwares de processarem uma grande quantidade de elementos em tempo real enquanto executam diversas outras ações simultaneamente. Saiba mais Os mapas de textura são carregados geralmente na memória da GPU (Placa de vídeo) e os demais processados e alocados na memória RAM e no processador; portanto, para execução de jogos em maior resolução, será sempre necessária uma maior quantidade de memória da GPU. Tivemos largos saltos em performance e memória das GPUs devido à entrada comum do 4K no mercado, resolução de 3840x2160 pixels, visto que temos cada vez mais games disponíveis para esta resolução, bem como sua popularização gradual. A realidade é que, quando produzimos um game, geralmente utilizamos texturas de altíssima qualidade; porém, por serem muitos objetos a serem alocados na memória, os softwares (engines) de games realizam uma compressão na textura para que ela diminua de tamanho. Comentário É muito comum vermos em games o que chamamos de “Atlas”, que é uma textura que serve para diversos objetos. Quando temos o Atlas e realizamos a compressão, muitos detalhes se perdem, pois cada objeto ocupa um pequeno espaço naquele mapa de textura, o que acontece de forma diferente do mapa “Tile”. O tile, ou mapa “seamless”, são texturas preparadas para serem repetidas; portanto, todas as suas bordas se conectam com as outras. Com o tile, mesmo em compressão, conseguimos expressar mais detalhes nos cenários; porém, se o utilizarmos numa escala muito pequena, há uma repetição de padrão extremamente visível que não acontece na realidade, o que pode acabar atrapalhando. “Stone Tile Map”. Fonte: Quixel. “Stone Tile Map”. Fonte: Quixel. “Atlas Texture Map”. Fonte: BlenderArtists. O uso de Atlas de texturas com muitos objetos geralmente ocorre mais em games mobile, pois, como a performance do hardware é reduzida, há necessidade de mais compressão das texturas, o que consequentemente gera um maior desa�o quando falamos de detalhamento e efeitos. Além dos casos de textura, temos também a contagem de polígonos dos objetos que, por sua vez, acaba tendo que ser pequena para que se possa atender a hardwares menos potentes. Estes são os maiores fatos pelos quais conseguimos gerar renderizações incrivelmente realistas e, em contrapartida, ainda não conseguimos fazer games com altíssima �delidade à realidade. Processar uma renderização altamente realista com diversos elementos e mapas, além de consumir gigas e gigas de memória RAM e utilizar o processador em quase toda sua capacidade durante o tempo de renderização, poderá levar horas para gerar um único frame (imagem). Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online Em um game, para uma melhor experiência, é ideal que sejam renderizados cerca de 60 frames por segundo, o que signi�ca que o computador deverá processar 60 imagens em apenas um segundo em tempo real, o que cria um abismo enorme entre os dois métodos, não só em qualidade, mas em técnicas. Devido a esta diferenciação, a indústria foi desenvolvendo técnicas e métodos para aperfeiçoar a parte de performance e transmissão de uma maior �delidade relacionada à qualidade de imagem. “High Poly x Low Poly”. Fonte: DeviantArt. Além das técnicas utilizadas com as texturas e polígonos citadas acima, outra técnica extremamente utilizada nos games para cenários é o LOD e o Occlusion Culling. LOD O LOD, ou “Level of Detail”, consiste em fazer diversas versões do mesmo modelo com quantidade de polígonos e qualidade de texturas reduzidas. Estas versões de modelos reduzidos são então adicionadas como propriedades através de um script ao “Game Object” (Objeto), de forma que a engine de game interprete quando cada um deverá ser utilizado. Estes parâmetros são con�guráveis, podemos informar a distância que a câmera deverá estar do objeto para cada passo em que o modelo será substituído por uma versão simpli�cada deste mesmo modelo. Exemplo Exempli�cando, ele interpretará que, quando a câmera alcançar uma distância X do objeto, ele alterará a versão do LOD de 0 para 1, sendo o 0 com maior quantidade de polígonos e melhor qualidade de textura, e o 1, uma versão reduzida da anterior, e assim sucessivamente de acordo com a quantidade de LODs de�nidos no objeto. Após chegar no último nível de LOD, o software altera o estado para Occluded, �cando somente uma forma extremamente simplista, sem praticamente nenhum detalhe e com baixíssima qualidade de texturas. Saiba mais A técnica de LOD é bastante utilizada na indústria de games e é mais fácil de perceber em jogos de cenário em mundo aberto, em que quanto mais ganhamos distância do objeto menos detalhes visualizamos, até que esse objeto se perca completamente e não �que mais visível para a câmera, apesar dele ainda estar lá. “3 level LOD Building”. Fonte: Desconhecida. Occlusion Culling Já para a técnica de Occlusion Culling são levados em consideração alguns outros aspectos. O Occlusion Culling consiste em otimizar a renderização; alguns modelos que não estão sendo vistos pela câmera acabam não sendo renderizados, visando um aumento de performance. Isso inclui modelos que estão escondidos por outros elementos do cenário ou que estão fora do raio de visão da câmera. The basics of occlusion culling Fonte: Medium. Para aumento da efetividade utilizando-se do Occlusion Culling, devemos re�etir antes sobre sua relevância. Tomemos como exemplo um jogo que se passa em uma arena: Como na maior parte do tempo pouquíssimos objetos estarão fora da câmera, o Occlusion Culling é desnecessário, pois não haverá praticamente nenhum ganho de performance em sua utilização. Contudo, em um mundo virtual aberto, complexo e com uma in�nidade de detalhes, seu benefício é extremamente signi�cativo. Scatter Clique no botão acima. Quando migramos para a área de construção e detalhamento de cenários em que iremos construir �orestas, vegetações, cidades ou qualquer outro que exija uma distribuição de diversos elementos, o “scatter” se torna uma ferramenta muito poderosa. O scatter consiste em uma ferramenta cujo objetivo é basicamente distribuir objetos através de um pincel de forma não uniforme, ou através de parâmetros especí�cos, criando uma variação aleatória entre seu tamanho e rotação, de maneira que se consiga de forma prática e rápida criar ambientes mais orgânicos. Quando observamos uma vegetação, por exemplo, notamos que as plantas não têm o mesmo tamanho, elas possuem variações de cor, de quantidade de galhos, entre outras. Isso é um grande desa�o para os artistas, pois seria impossível replicar o número de variações existentes na natureza. Desta forma, criam-se de dois a três modelos que repliquem algumas variações. Para randomizá-los ainda mais, poderemos nos valer do scatter e distribuí-los de forma rápida e não manual. Vale ressaltar que todos os parâmetros do scatter são con�guráveis, tornando-o uma ferramenta multifuncional, uma vez que poderemos utilizá-lo para criar vegetações, mas também detalhar cidades e popular ambientes, dentre outras funcionalidades. No mundo dos games, praticamente todos os assets (como pedras, vegetações, detalhes que �cam sobre as superfícies, como papéis no chão, dentre outros)são distribuídos através do scatter. Grande parte das engines de game também possuem uma ferramenta aliada para a criação de terrenos. Esta ferramenta se assemelha muito ao scatter em diversos aspectos. Através dela, conseguimos, de forma ágil, criar terrenos com irregularidades, variações, pintar partes diversas com outros materiais (como por exemplo criar uma estrada de terra em meio a um cenário de grama e assim dar mais vida e personalidade ao cenário) etc. Comentário Em jogos de mundo aberto, em que é necessária a criação de um cenário rico, estas duas ferramentas são poderosas aliadas para facilitar todo o processo de criação de forma orgânica. As game engines costumam dar a liberdade da importação de pincéis e mapas externos, aumentando ainda mais as possibilidades na hora de se trabalhar com estas ferramentas. Desta forma, podemos importar formatos de relevos especí�cos, de variar ainda mais as texturas e objetos, aumentando cada vez mais a complexidade visual, porém mantendo a praticidade. Vale lembrar que, ainda assim, devemos atentar para as limitações de cada plataforma. “Terrain Tools”. Fonte: Unity3D Asset Store. Quando entramos no mundo dos efeitos (como partículas, explosões, fumaças, dentre outros), utilizamos o que é nomeado no design como canal “Alpha”. Esse canal existe em diversos softwares e nada mais é do que uma máscara de recorte utilizada para o objeto. Na prática, quando falamos de uma imagem 2D, os softwares interpretam a cor preta como 100% transparente e a cor branca como 100% visível. Exemplo Quando trazemos este conceito para dentro do software 3D ou da Game Engine, ele não é aplicado de forma diferente. Exempli�cando, ao se criar uma folha, criamos um mapa de fundo branco e, em cima deste fundo branco, um mapa com a textura da folha. Porém, ao transmitirmos isto para o software, temos também que informar a ele, por meio do canal alpha, qual parte ele deve ignorar desta textura e qual ele deve considerar como visível, para que assim possamos criar o “recorte” deste objeto. “Alpha Map”. Fonte: Coeleveld. Apesar de utilizarmos neste caso o exemplo da folha, esta técnica tem uma in�nidade de aplicações, como também criar grades, rachaduras, sujeiras, entre outros detalhes mais minuciosos, servindo até para realizar efeitos mais complexos (como partículas, por exemplo). Comentário No caso de um emissor de partículas, quando falamos de fogo ou até mesmo fumaça, estamos falando nada mais nada menos do que de um emissor de “planos com alpha”. O emissor de partículas emite várias geometrias em formato de planos utilizando rotações e tamanhos diferentes com um material de textura com alpha. Esta é a forma mais leve e e�caz em termos de performance e qualidade de utilizar um emissor de partículas para reproduzir tal efeito, uma vez que, para realizar uma simulação de partículas, com a quantidade de partículas su�cientes para reproduzir uma fumaça mais realista, consumiria muito mais tempo e recursos, degradando assim a performance �nal. “Faking Smoke with Particles”. Fonte: CGMeetUp. Outro exemplo bem comum nos games da utilização do canal alpha é quando utilizamos este recurso para cabelos e barbas dos personagens. Apesar de ser uma técnica muito antiga, ainda é muito utilizada atualmente, visto que as simulações referentes ao cabelo são extremamente custosas em questões de consumo de recursos, e ainda há uma imensa limitação para se realizar em tempo real. As empresas de tecnologia que produzem as GPUs vêm criando artifícios e técnicas para melhorar os efeitos referentes aos cabelos, como foi o lançamento do “TressFX”, presente no jogo Tomb Raider, que dava mais volume e aprimorava a física do cabelo; porém, este ainda é um processo lento e gradual. Também é muito comum vermos a presença do canal alpha em tecidos com rasgos e bandeiras, uma vez que a opacidade poderá também ser de�nida de forma gradual. Dica Com o alpha, não necessariamente precisamos criar uma opacidade que seja 100% ou 0%; podemos ditar níveis de forma que o objeto �que semitransparente, conseguindo assim trabalhar até transições em degradê, do mais opaco para o total transparente. Esta técnica abre um leque de diversas possibilidades pois, através da texturização, conseguimos dar diversos detalhes que não precisam ser executados na modelagem, uma vez que seria extremamente difícil fazê-lo. Prefab e Collider Clique no botão acima. Como técnica de produção de cenários, deixando de lado um pouco a parte das técnicas de otimização de performance, temos também dois pontos importantíssimos que podemos elucidar: “Prefab” e “Collider”. Quando inserimos qualquer elemento dentro de uma engine de game, ele se torna o que chamamos de “Game Object”. A partir deste game object podemos de�nir diversas propriedades e mesclá-las com outros elementos de game object; a partir daí, criamos um grupo, que nomeamos de “Prefab”. O Prefab tem um papel importante: Uma vez carregado na cena, ele pode ser replicado sem custo adicional de recursos, pois a engine já carregou aquele conteúdo na memória RAM ou da GPU. Assim sendo, os demais objetos entram em formato de instância, replicando o Prefab original, mantendo assim um melhor aproveitamento. Dentro do Prefab, podemos não só colocar os game objects, mas também inserir scripts, outros elementos e também trabalhar os “Colliders”. Os Colliders nada mais são do que os objetos responsáveis pela colisão nos games; exempli�cando, quando um personagem anda sob uma superfície ou esbarra em uma casa, o que determina se este personagem é capaz de passar por este objeto ou não são os colliders. Eles desempenham um importantíssimo papel e o cuidado em sua criação deve ser extremamente rigoroso, visto que, uma vez que os colliders não estejam adequados ou não respeitem o objeto principal a que se referem, o personagem poderá atravessá-lo, gerando assim o que chamamos de “bug” no game. Este tipo de falha é muito comum em games com os cenários muito grandes, e já foi reportado por diversos jogadores em franquias famosas como Assassins Creed, em que o personagem “caía no in�nito”. Isso acontece pois, uma vez que o collider não esteja corretamente posicionado ou bem de�nido, o personagem acaba passando para uma área do cenário não construída, que não possui nenhum obstáculo nem resistência para o personagem colidir, o que faz ele �car caindo para sempre, como se literalmente estivesse sem chão. Portanto, é também trabalho do level designer, ou modelador, que está construindo o cenário dentro da game engine aplicar, pensar e planejar estes colliders, para que se possa replicar a resistência dos objetos. Uma vez criados, eles também podem ser adicionados junto dos prefabs; assim, quando replicamos o prefab com os elementos, o collider já vai inserido, de forma que não se precise �car replicando-o todas as vezes. “Fallout 4”. Fonte: CGMeetUp. Existem outras técnicas de animação que se utilizam dos colliders, como as técnicas de simuladores de física e Ragdoll. O Ragdoll é um tipo de animação processual física que veio para substituir as animações de morte e quedas, entre outras, que antes eram feitas de forma manual nos games. Como em Jurassic Park: Trespasser, que em 1998 apostou no uso do Ragdoll, e recebeu diversas críticas devido aos erros e bugs gerados pela utilização deste artifício na época. Contudo, as simulações de física e do próprio Ragdoll vieram sendo aprimoradas durante o tempo e hoje fazem parte da experiência de diversos jogos, como por exemplo, da franquia Grand Theft Auto, da Rockstar Games. Basicamente, a simulação da física é de�nida pela programação em que se informa quando ela inicia e quando ela termina. Tomemos como exemplo um jogo de tiro em que o personagem sofre impacto das balas. No momento em que o game entende que aquele personagem morreu, ele inicia a simulação de física do Ragdoll, que faz o personagem cair no chão de acordo com sua posição e com o impacto recebido, dando uma impressão extremamente realistase a simulação física estiver bem calibrada. O Ragdoll se utilizará dos colliders feitos tanto para o personagem quanto para o ambiente em que se encontra para simular sua física de contato, e isso os torna ainda mais importantes para uma produção de game bem sucedida. Segundos após a simulação terminar e o personagem já se encontrar numa posição mais ou menos estática, a simulação é desabilitada. Este é apenas um exemplo desta poderosa ferramenta; contudo, nos games, vemos esta técnica ser utilizada para dezenas de objetos, como no momento em que o personagem deixa uma arma cair no chão, ao se atirar em objetos que são “jogados longe” etc. Todas essas reações que o game processa utilizam a simulação de física da game engine, de forma que os objetos sempre reagirão de acordo com as ações, posição em que foram afetados e tudo que é executado, em tempo real, tornando a animação mais natural e verossímil. Saiba mais O mundo dos games possui muitos artifícios e técnicas complexas para simular efeitos, construir cenários, processar e transmitir para o jogador uma maior sensação de realismo, mantendo ainda assim o desempenho. O aprimoramento destas técnicas ao longo dos anos faz com que consigamos aumentar ainda mais seu nível de qualidade, mantendo também um excelente nível de performance. É evidente que, à medida que a tecnologia, as game engines e os hardwares vão evoluindo, este vai se tornando um caminho cada vez mais próximo do realismo. Podemos destacar o exemplo dos cinematics, que são pequenos �lmes feitos sobre o jogo para contar a história. Em um passado recente, as empresas investiam milhares de dólares para produção de um cinematic realista, que passasse a impressão de um �lme, para fazer a propaganda de um game. Hoje, a tecnologia já evoluiu tanto que é muito comum vermos estes cinematics produzidos já dentro das game engines, o que consequentemente consome menos recursos �nanceiros e abre um leque de possibilidades para a criatividade, uma vez que se pode utilizar todo o conteúdo já produzido para o game na criação destes curta metragens. É de suma importância que �quemos atentos à evolução das técnicas e tecnologias inerentes às game engines, pois todas são muito dinâmicas. Apesar de algumas serem utilizadas há anos, sempre algum aprimoramento �ca evidente quando vemos a evolução e o aumento da qualidade nos jogos atuais. Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online Atividade 1. Quando falamos sobre todas as técnicas utilizadas dentro da game engine, essas técnicas existem com o propósito de: a) Produzir jogos com melhor qualidade. b) Melhorar os efeitos reproduzidos e aprimorar o realismo. c) Agilizar a produção dos jogos. d) Exclusivamente limitar a utilização do hardware por parte do usuário. e) Reproduzir qualidade junto com performance. s 2. Em relação à utilização do tipo de textura seamless, podemos a�rmar que: a) Mesmo em compressão, poucos detalhes são perdidos, devido à sua resolução. b) Não é necessário comprimir a textura. c) É melhor em performance se comparada ao Atlas. d) Não há nenhuma desvantagem em relação ao Atlas. e) Consegue apresentar menos detalhes se comparada ao Atlas. 3. Sobre a quantidade de polígonos dos objetos, responda: a) Não limitante, independentemente da plataforma. b) Parcialmente limitante, sendo mais flexível de acordo com a plataforma. c) Idêntica, podendo ser utilizada em multiplataformas. d) Mais limitada em computadores do que em consoles. e) Extremamente limitante, tendo que se otimizar ao máximo. Notas Glare1 O Glare nada mais é do que os pequenos raios emitidos da fonte luminosa, geralmente num formato de uma estrela de seis pontas e gerado devido à falta de adaptação do nosso olho, ou da câmera, a certa fonte luminosa devido a sua intensidade. Referências MOREAU-MATHIS, J. God Rays? What’s that? Disponível em: https://medium.com/community-play-3d/god-rays-whats-that- 5a67f26aeac2. Acesso em 01 dez. 2020. UNITY. Light Probes. Disponível em: https://docs.unity3d.com/Manual/LightProbes.html. Acesso em 01 dez. 2020. UNITY. Projector. Disponível em: https://docs.unity3d.com/Manual/class-Projector.html. Acesso em 01 dez. 2020. Próxima aula Processos de modelagem de cenários; Técnicas de blocagem. Explore mais javascript:void(0); javascript:void(0); javascript:void(0); javascript:void(0); Leia o texto Academia da Unity para aprendizado sobre a game engine javascript:void(0);
Compartilhar