[Artigo traduzido] EDGE: A brief History of 3D – Parte 5 (final)

Saudações aos americanos e americanas do sul.

Era para eu ter postado ontem, sexta-feira, mas tive problemas acessar o blog e acabei atrasando.Mas de qualquer forma o texto está aí prontinho para ser lido. Finalmente chegamos a última parte do artigo da EDGE.Vamos a tradução das últimas técnicas responsáveis pela evolução dos gráficos tridimensionais nos games. Confiram tudo na continuação do link. Até o próximo post.

Imposters and Geometry Sequencing

Com os jogos tentando cada vez mais mostrar uma escala maior de ação, como grandes batalhas e cenas urbanas agitadas, a necessidade de renderizar grandes quantidades de objetos similares se tornou sempre mais significativo. Duas técnicas diferentes podem conseguir isso enquanto evitam algum aumento da carga de processamento. Geometry instancing usa um único modelo cuidadosamente optimizado que pode ser manipulado puramente pela GPU, solicitando-o e mudando apenas alguns parâmetros, como sua localização, para repeti-lo em cena. Restringindo o processo na GPU, há menos necessidade de gastar memória e utilizar poder da CPU. O procedimento brilhantemente nomeado de “impostores” renderiza uma série de modelos às texturas, que são mostradas como sprites escalonadas no mundo do jogo. Em razão das sprites terem sido criadas com o exato mesmo parâmetro, como a iluminação, eles tendem a se encaixar naturalmente na cena. Foi assim que a Rare fez para criar as seqüências de batalhas contra os Trolls em Kameo, lançado em 2005.

Superfícies paramétricas

O problema com a representação de mundos 3D com malhas poligonais é o detalhamento versus a distância. Se uma única malha poligonal estática é usada para cada objeto, o cálculo usado para renderizar seu detalhamento quando visto de longe, pode ser um desperdício, e não ter detalhe suficiente se visto de perto. Isso pode ser eliminado armazenando múltiplas malhas e trocando entre elas (veja em “nível de detalhe”), mas em algumas instâncias seria melhor construir as malhas ainda em movimento, adicionando ou subtraindo polígonos conforme a distância muda. Superfícies paramétricas podem ser usadas para isso, representando as superfícies como o lado inferior curvado de um arco conforme uma formula matemática, da qual o sistema de renderização gera as malhas em movimento. Tais curvas podem ser representadas por uma “spline” e extensão específica. Quake III usou essa técnica de modo a gerar formas orgânicas complexas que apareciam em alguns dos mapas.

Nível de detalhamento

Assim como mundos tridimensionais permitem aos jogadores maior liberdade para se movimentar e explorar, as mudanças do nível de detalhamento se tornam cruciais para manter o alto detalhismo. Os jogadores esperam ver ramificações individuais frondosas quando pertos de uma árvore, mas é desperdício usar esse modelo quando a árvore está distante. Existem muitos caminhos para simplificar a geometria distante selecionando o detalhamento, tal qual com os imposters, tesselation e superfícies paramétricas, ou trocando para malhas menos detalhadas – todas as partes do sistema de um nível de detalhamento. Um exemplo fantástico disso é o sistema de renderização da floresta de Far Cry, lançado em 2004, em que as árvores em detalhe alto eram trocadas por modelos com menor detalhamento e eventualmente sprites, enquanto a vegetação terrestre ia sumindo e eventualmente era desligada a média distância, enquanto a Crytek fazia uso do fato de que a vegetação em selvas densas obscurece muito das terras cobertas mais ao fundo. Empregando Nível de Detalhamento dessa forma foi a única maneira em que a Crytek podia concretizar sua visão no equipamento disponível, sendo um dos elementos-chave dos sistemas gráficos modernos.

Post Processing

Alguns dos efeitos gráficos mais espantosos criados pelos videogames nos últimos anos como o bloom, profundidade de campo e blur, dependem do post processing. Eles são possíveis através da capacidade das GPUs modernas de converter o frame buffer em uma textura a qualquer instante durante a renderização de um quadro. Isso pode ser usado como uma entrada em outros trechos da renderização, convertendo o frame buffer em textura múltiplas vezes. Profundidade de campo (Depth of field) foi criada renderizando como um “normal” e capturando tanto a cor quanto o z-buffer para uma textura. A textura colorizada é então embaçada é sobreposta sobre a original, o frame buffer nítido usando os valores de profundidade do z-buffer define onde deve ser nítido e onde deve ser embaçado. Muitos jogos da geração atual fazem muito uso do post processing, mas Prince Of Persia: The Sands Of Time se destaca como um dos primeiros a se basear nessas técnicas para criar identidades visuais incrivelmente distintas.

High Dynamic Range Rendering

Outro problema fundamental com a iluminação dos jogos é o que se refere à intensidade da luz. O olho humano tem uma percepção de contraste de aproximadamente 1, 000,000: 1, mas as melhores TVs de plasma oferecem relação de contraste por volta de 10,000: 1. Por outro lado, na melhor das hipóteses, o brilho de uma TV é de 1000 lux, comparado a um dia claro, que chega aos 20.000 lux. Além do mais, os computadores renderizam imagens usando apenas 256 níveis de intensidade para cada vermelho, verde e azul – dificilmente extenso o suficiente para simular os modos como à luz do sol flui através dos vitrais de uma igreja. O HDR se esforça em corrigir isso, renderizando a cena com muito mais níveis de luz do que os 256 que a TV pode mostrar. Então, “mapas de tons” diminuem os valores até os 256 níveis como um passo do post processing. O mapeamento de tons simula a íris contraindo e expandindo para mudar a exposição da imagem, para que as áreas escuras pareçam mais escuras e as iluminadas relativamente mais brilhantes que a imagem original. Hoje é um elemento padrão da maioria dos games, mas seus benefícios foram melhor mostrados no tech demo de Half Life 2: Lost Coast.

Enfim chegamos ao ponto derradeiro de nossa série de traduções. Desculpem a demora e esperam que tenham gostado. Até a próxima postagem. Abraços.

André V.C Franco/AvcF – Loading Time.

4 thoughts on “[Artigo traduzido] EDGE: A brief History of 3D – Parte 5 (final)

  1. Ótima matéria, curti todas as partes.. uma coisa que eu gostaria muito se possível é de alguma matéria sobre a evolução das placas de vídeo, antigamente chamadas de aceleradoras 3D.

Deixe um comentário

O seu endereço de e-mail não será publicado.