Crysis 2 Tessellation

Uma grande atualização DirectX 11 que levanta algumas questões inquietantes

Por agora, se você acompanha o mundo dos games, você provavelmente conhece a história sórdida de suporte DirectX 11 em Crysis 2 . A Desenvolvedora Crytek, uma das favoritas do PC, decidiu expandir este titulo para consoles, o que causou o medo entre os jogadores de PC de que este jogo, ícone da potencia do PC, fosse capado para se ajustar ao hardware inferior do consoles. 

imagem

Crytek deu total certeza aos seus fãs que isto não aconteceria e, em uma estória contada inúmeras vezes nos últimos anos, começou a deixar a bola cair drasticamente. Após o lançamento, Crysis 2 suportava apenas DirectX 9, com ajustes de usuário muito limitada, como tantos outros jogos multiplataforma. O suporte DX 11 prometido estava longe de ser encontrado. Embora o visual do jogo não eram devia em nada aos últimos lançamentos, ele ficou muito longe do esperado e que seria um daqueles raros jogos capazes de tirar proveito do poder de processamento de um PC “estado-da-arte”. A contrário, o jogo tornou-se um outro triste exemplo de um port de console. 

Meses se passaram, e os rumores sobre uma possível atualização DirectX 11 nascia e desaparecia, sem qualquer palavra oficial da Crytek. Então, no final de junho, Crytek e EA lançaram uma maciça atualização para Crysis 2 em três partes: um patch para a versão 1.9 do jogo com 136MB, e um patch que adicionava suporte para DirectX 11 com 545MB e um Pack de texturas em alta resolução de 1,65GB.
Muito tempo se passou desde o lançamento em março, mas o tamanho e amplitude da atualização foi recebida como um esforço de boa-fé para cumprir a promessa para os jogadores de PC.

Com a atualização DX11 instalada, Crysis 2 torna-se um dos jogos mais visualmente impressionante e tecnicamente avançado no mundo. A lista de recursos inclui uma série de técnicas que representam a vanguarda em gráficos em tempo real, incluindo objetos tesselados via displacement mapping, tessellation e simulação dinâmica na água, parallax oclusion mapping (onde o mosaico não é o melhor ajuste), sombras com bordas de suavidade variável, uma variante de SSAO que leva a direção da luz em conta, e reflexos em tempo real.

O maior destaque desses recursos é, provavelmente, o Tessellation, o que parece ser a principal inovação do DX11 nas mentes de muitos. Tessellation permite que o GPU empregar seu grande poder computacional para transformar os modelos low-polygon utilizado na maioria dos jogos em representações com detalhes muito maiores, com um custo de desempenho relativamente mínimo. Bem utilizado, Tessellation promete melhorar a aparência de gráficos em tempo real, de certa forma agradável e impactante, eliminando finalmente os vértices nas cabeças em tantos personagens nos jogos e tornar objetos como árvores estruturas externas muito mais orgânica. 

imagem

Lost Planet 2 sem Tessellation
imagem

Lost Planet 2 com Tessellation

Um dos principais benefícios do Tessallation é a sua natureza dinâmica e programável: o desenvolvedor do jogo pode por mais polígonos apenas onde necessário, e ele pode escalar para trás o número de polígonos em lugares onde não seria percebido, digamos, no interior de objetos de superfícies planas comprometidas ou em objetos situados mais longe da câmera. Tais algoritmos dinâmicos podem manter a ilusão de complexidade sem sobrecarregar a capacidade de processamento geométrico da GPU.

Infelizmente, temos visto até agora poucos exemplos de Tessellation bem utilizado em um videogame. Isso é verdade em parte por causa do flagelo dos console (embora o Xbox 360 tem hardware tessellation limitada) e em parte porque os desenvolvedores de jogos devem criar versões de sua base de modelos 3D com maior detalhe, a fim de inseri-los em jogos – gerando mais custos.

Com a sua atualização DX11, Crysis 2 tinha potencial para ser um dos primeiros jogos a oferecer aumento verdadeiramente apreciável na qualidade da imagematravés de Tessellation. Um verão ocupado nos impediu de passar tanto tempo com a atualização DX11 como gostaríamos, mas nós vimos algumas coisas na review de Damien Triolet na Hardware.fr. Neste artigo queremos dar uma olhada em um dos aspectos: a distribuição de Tessellation em Crysis 2 's utilizando uma ferramenta de desenvolvimento da AMD chamado GPU PerfStudio. 

GPU PerfStudio é uma ferramenta disponível gratuitamente para placas gráficas Radeon, e seu depurador integrado pode analisar quadros individuais em um jogo para ver onde a GPU gasta mais poder. O trabalho necessário para a construção de cada quadro pode ser dividido por chamadas individuais a DirectX 11 3D API, e uma linha do tempo visual na parte inferior da tela mostra qual dessas chamadas gastam mais tempo para desenhar. PerfStudio permitirá dar uma olhada na utilização dos DX11 shaders em cada chamada, para ver exatamente como o desenvolvedor tem estruturado o seu código.

Quando analisamos o DirectX 11 em Crysis 2 no modo ultra, vimos que alguns picos óbvios estavam relacionados com a criação de objetos tesselados. Não apenas pudemos ver os shaders utilizados na primeira etapa de tessellation - prova que o mosaico estava em uso -, mas também fomos capazes de ver as malhas de polígonos produzidas. Percebemos algumas das mesmas coisas Damien apontou, juntamente com algumas novas, incluindo uma das verdadeiras maravilhas do mundo virtual deste jogo.

A maior laje de concreto virtual

Sim, estamos falando de uma barreira de concreto do tipo que você encontrará estradas revestimento em todo o país nesta época do ano. Também conhecida como uma barreira Jersey, estas simples, estruturas estão espalhadas generosamente por toda paisagem apocalíptica de New York em Crysis 2, proporcionando cobertura e fortalecer determinadas áreas. Você pode não saber, e você quase certamente não esperava, mas estes blocos de concreto são um dos alvos principais para o aprimoramento do DirectX 11.

imagem

DX9
imagem

DX11

Aqui estão imagens comparativas das versões DX9 e DX11 da barreira Jersey. Ao invés de redimensionar estes primeiros screensaves, cortamos-nas para exibir pixel-por-pixel.

Você pode ver que não há muita diferença visual entre elas. A maior mudança são as pequenas "abas" em cima das lajes. Na versão DX9, são lisas e apenas texturas. Em DX11, parecem ser estruturas reais salientes do topo da barreira. Eu acho que pode haver texturas de melhor qualidade em uso DX11. Seja qual for o caso, a melhora visual quando se muda de DX9 para DX11 é sutil na melhor das hipóteses.

No entanto, no modo DX11 "ultra", a manipulação desse objeto especial ocupa um pedaço muito bom de poder GPU durante a criação deste quadro. Por quê? Bem, veja porque:

imagem


Sim, esta laje é um dos objetos mais altamente tesselados na cena. Os polígonos mais próximos da câmera são compostos de apenas alguns pixels cada. Mais longe da câmera, a malha wireframe torna-se um bloco sólido de vermelho; lá, nós estamos olhando provavelmente mais de um polígono por pixel. Esses são alguns polígonos realmente muito pequenos.

Vamos mudar de angulo da mesma barreira, para que possamos obter uma aparência mais limpa de sua geometria.

imagem

imagem

Estas barreiras estão espalhadas pelas ruas. Vamos dar uma olhada em outra de uma parte diferente do jogo.

imagem

imagem


Sim, amigos, esse é um detalhe geométrico verdadeiramente inspirador, muito além do que se poderia esperar de um objeto que poderia facilmente ser construído a partir de algumas centenas de polígonos. Este modelo pode muito bem ser a representação mais complexa de uma barreira Jersey já utilizada em qualquer jogo, filme ou qualquer outro projeto 3D.

A pergunta é: Por quê?
Por que Crytek decidiu tesselar tanto este objeto que não tem nenhuma necessidade aparente nisto?
Sim, existem alguns cantos arredondados que requerem um pouco de detalhe em polígono, mas lembrar que a versão DX9 do mesmo objeto, sem qualquer tessellation parece ter os contornos exatamente iguais. A única diferença é aqueles pequenos "pegas" de metal ao longo da superfície. Entretanto, a superfície interior plana desta laje de concreto, o que poderia ser representado com apenas um punhado de grandes triângulos, em vez disso são subdivididos em milhares de polígonos pequenos.

Veneza em Gotham

Outra das características exclusivas de Crysis 2DX11 é, como já mencionado, é o tessellation na simulação dinâmica da água.

imagem


Olhando para o horizonte maritimo, vemos que a simulação da água parece muito boa, e o movimento e fluxo das ondas de forma realista.

imagem


GPU PerfStudio nos mostra a malha polígona tesselada para a água, que é bastante complexa. É difícil dizer com certeza, mas a rotina de tessellation não parece escalar reversamente o número de polígonos de forma dinâmica com base na sua distância da câmera. Como resultado, a malha se dissolve em uma banda sólida púrpura de pixels perto do horizonte. Ainda assim, a complexidade é usada de forma impressionante, esta água é uma das mais convincentes que já vimos em qualquer jogo.

imagem


De igual ponto de vista, podemos olhar rumo a terra firme de Manhattan. Neste quadro, não há água em tudo, só algumas caixas de mandato federal (este é um jogo FPS), um parque, árvores e edifícios. No entanto, quando analisamos este quadro no depurador, vemos um pico de utilização relativamente grande da GPU para uma chamada de renderização, tal como vimos para a cena costa acima. Aqui está:

imagem


Isso mesmo. A malha de água tesselada permanece em cena, aparentemente cheia e vazante debaixo da terra por toda parte, mesmo não sendo visível. A GPU está fazendo o trabalho de criar a malha, apesar que a água estará completamente oclusa por outros objetos no quadro final. Isso é verdade aqui, e descobrimos que é também o caso em outras áreas ao ar livre do jogo com uma linha costeira nas proximidades.

Obviamente, é completamente desnecessário esta carga de processamento geométrico da GPU. Teríamos esperado que a engine fosse otimizada para estabelecer um limite para a água ou perto da costa, de modo que o GPU tesselasse sem motivo
Um exemplo melhor

imagem


Nem todos os polígonos adicionais na versão DX11 de Crysis 2 são desperdiçados, longe disso. Por exemplo, fomos à procura de objetos tesselados na cena acima, quando vimos isto:

imagem


Estes tijolos ao lado da janela são incrivelmente detalhados e o resultado de tessellation e displacement mapping é quase real. Na versão DX9 do jogo, os tijolos não terão contornos individuais ou tanta variação. Não se engane: esse é um monte de polígonos, novamente se aproximando de um polígono por pixel em alguns lugares. Ainda assim, esta é uma adição ao jogo que realmente melhora a qualidade da imagem.

imagem


Infelizmente, o mar invisível com bastante carga de tessellation continua neste quadro, deveria haver um patch de correção para isto.

Uma cena complexa

O tessellation do DirectX 11 e alguns outros efeitos foram adicionados em Crysis 2 um pouco as pressas porque algumas cenas têm pouco ou nenhum objeto com estes recursos. Outros, porém, estão repletos disso. Nós já vimos alguns exemplos de objetos específicos tesselados, agora vamos dar uma olhada em um quadro que amarra um monte destes elementos juntos.

imagem


Voltamos ao primeiro nível do jogo, após sair para a cidade pela primeira vez. O prédio em que estávamos estava cheio de escombros. Novamente, estes são alguns recursos visuais muito bons para um jogo moderno. A madeira lascada e o entulho são complexos o suficiente para um olhar relativamente natural e realista, em sua maior parte.

imagem


A madeira no chão não é apenas uma textura lisa mapeada para uma superfície plana. Em vez disso, as placas são inclinadas e deformada com tessellation pesadamente. Algumas das placas realmente são apenas longas extensões de superfícies planas, no entanto, e mesmo estas são compostas de muitos milhares de polígonos pequenos.

imagem


O displacement mapping nos tijolos que vimos na cena anterior estão de volta aqui, cobrindo uma parede parcialmente destruída. Novamente, têm um aspecto muito agradável, e a contagem de polígonos são enormes.

imagem


A madeira lascada dos suportes na cena são também fortemente tesseladas, tanto que a malha começa a parecer uma superfície sólida.

imagem


Um olhar mais atento para a madeira tesselada revela algumas retas, pranchas retangulares. A complexidade está muito real nas extremidades dos estilhaços desta prancha, mas mesmo estes espinhos não são muito irregulares. Eles são apenas um tanto de pontas afiadas.

imagem


Surpreendentemente, a moldura da janela plana, a tábua lascada, e a parede interior são compostas por malhas de polígonos incrivelmente densas.

imagem


Puxando para trás a nossa cena completa mais uma vez, nota-se que por baixo de tudo está uma malha de água em constante movimento, totalmente bloqueada pelo cenário, mas está presente.

Considerações finais

A decisão da Crytek em implantar grande quantidades de tessellation em locais sem sentido é frustrante, porque isto é, essencialmente, um desperdício de energia e GPU e fizeram isso em um jogo AAA que esperávamos ser a grande “vitrine” do DirectX 11. Agora, não me interpretem mal. Crysis 2 ainda é incrível e, de certa forma, é um belo show para o DX11 e para os PCs high-end. Algumas partes da atualização DX11, como texturas de maior resolução e as paredes de tijolos com displacement mapping, melhoram sensivelmente o visual do jogo. Mas a estranha ineficiência cria problemas. Por que são em grande parte superfícies planas, como as barreiras Jersey, subdividido em tantos milhares de polígonos, com nenhum benefício aparente visual? Por que a água a ser tesselada constantemente sob as ruas da cidade, invisível para todos?

Uma resposta potencial é descaso do desenvolvedor ou pressa. Nós já sabemos a história aqui, com o atraso da atualização DX11 e a natureza incompleta da release inicial para PC, nós ouvimos rumores de que a pressão da EA, forçou a Crytek lançar este jogo antes que a versão PC estivesse realmente pronta. Se for verdade, poderíamos facilmente ver o tempo e orçamento apertado para adicionar características DX11exclusivas para PC.

Não há outra explicação possível. Vamos ligar os pontos: como você deve saber, os dois principais fornecedores de GPU tendem a identificar os jogos próximos de PC mais promissores e fazem parceria com os editores e desenvolvedores de várias formas, inclusive oferecendo apoio de engenharia e acordos de co-marketing. Como um título AAA, Crysis 2 tem obtido muito apoio da Nvidia em várias formas. Em si, esse apoio é geralmente uma coisa boa para jogos de PC. Na verdade, duvidamos que o patch DX11 sequer existiria sem insistência da Nvidia. Sabemos que para um fato que o pessoal da Nvidia ficaram desapontados com o modo do lançamento de Crysis 2, assim como muitos jogadores de PC. O problema surge quando, como às vezes acontece, o desenvolvedor de jogos e a fabricantes de GPU conspiram para adicionar detalhes no jogo de forma que não beneficia todos os hardware. Há um precedente para esse tipo de coisa na era DX11. Tanto a demonstração UniEngine Heaven e Tom Clancy HAWX 2 dobravam até a contagem de polígonos de forma questionável para inflar a carga de processamento geometrico sem alterar a qualidade visual.

Detalhes geométricos desnecessários retarda todas as GPUs, é claro, mas isso só afeta mais as placas AMD Radeons DX11 que em Nvidia Geforces DX11. A arquitetura Fermi dedica mais atenção (e transistores) para o processamento de alta geometria do que a arquiteturas das GPU Radeon. Temos visto o efeito claramente em benchmarks sintéticos de Tessellation. Alguns jogos têm mostrado um efeito similar, simplesmente porque eles não jogam polígonos suficiente para a taxa de processamento geométrico das Radeons. No entanto, com todos os seus detalhes geométricos, a versão atualizada do Crysis 2 DX11 agora consegue ultrapassar o limite. Os caras do Hardware.fr descobriram que tessellation permite derrubar o FPS em Radeons recentes em 31-38%. As Geforces equivalentes apenas sofrem em cerca de 17-21%.

Os proprietários Radeon têm algum recurso, graças ao controle deslizante em novos drivers Catalyst que permite ao usuário reduzir o fator tessellation usado por jogos. Damien aconselha os usuários a configurarem um limite de 16 ou 32, bem abaixo do pico de 64.

Como uma publicação que analisa GPUs, nós temos algum recurso, também. Uma de nossas opções é limitar o fator de tessellation em cartões de Radeon em testes futuros. Outra é simplesmente para desconsiderar Crysis 2 e focar em outros jogos nas reviews. Ainda outra é excluir os resultados de Crysis 2 do cálculo global de desempenho, como fizemos com HAWX 2 no passado. Nós ainda não decidimos exatamente o que vamos fazer daqui para frente, e podemos levar analisar caso a caso. Seja qual for nossa escolha, no entanto, nós vamos ter a certeza que este pequeno artigo como nós apresentamos será o bastante para entender por que Crysis 2 pode não ser o indicador mais fiável do comparativo de desempenho GPU.


fonte: Techreport



Sameera ChathurangaPosted By Sameera Chathuranga

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation test link ullamco laboris nisi ut aliquip ex ea commodo consequat contact me

Thank You

0 comentários:

Postar um comentário