O poder de uma textura (e muito conhecimento)

dori_udk_29.03.12

É muito difícil de acreditar, mas tudo isso o que você está vendo na imagem acima, e poderá conferir de maneira muito mais impressionante no vídeo após o break, é uma demo técnica feita com a ajuda do Unreal Development Kit e apenas uma textura medindo 256×512 pixels.

Para chegar a tal resultado o artista Tor Frick abusou dos efeitos de iluminação e de todo o seu conhecimento para criar um laboratório inteiro, mostrando que, com um pouco de paciência e dedicação, as empresas poderiam desenvolver jogos que consumissem bem menos memória, mas sem perder muita qualidade visual.

Normalmente, em cenas como esse existiria um monte de texturas, com cada uma geralmente muito maior do que esta aqui, o que consumiria muita memória,” explicou Frick. “Cada bit de memória que você não usa no ambiente significa mais que pode ser usado no personagem ou qualquer outra coisa. Uma economia como essa pode ser especialmente útil para entregarmos conteúdos mais bonitos nos dispositivos portáteis.

Tudo bem que as paredes ficaram com um aspectos de plástico, mas isso não tira o mérito da façanha, muito menos torna a demo menos fantástica.

 [via Kotaku]

Relacionados: ,

Autor: Dori Prata

Pai em tempo integral do pequeno Nicolas, enquanto se divide escrevendo para o Meio Bit Games, Techtudo e Vida de Gamer, tenta encontrar um tempinho para aproveitar algumas das suas paixões, os filmes, os quadrinhos, o futebol e os videogames. Acredita que um dia conseguirá jogar todos os games da sua coleção.

Compartilhar
  • http://twitter.com/regames Re: Games

    Nah, não tá realista o suficiente.
    /sarcasmo

  • http://nada-aqui.posterous.com Marcio Neves Machado

    O que ele economizou em memória desperdiçou em poder de processamento com cálculos de iluminação e mais polígonos. Qual a vantagem?

    • http://www.vidadegamer.com.br/ Dori Prata

      Mas cálculos de iluminaçãoa própria engine faz, creio eu, então acho que a perda não é significante.

      • http://nada-aqui.posterous.com Marcio Neves Machado

        Sim, faz, mas até certo ponto, creio eu. Não sou expert em programação de jogos, mas até onde eu entendo as texturas existem para dar “atalhos” na renderização, forrando superfícies planas para camuflar os polígonos. Se você reduz o uso das mesmas, significa que você precisa usar mais polígonos, aumentando tanto o processamente de cálculo dos mesmos QUANTO da iluminação sobre os mesmos. Pelo menos é o que eu entendo disso

        • http://www.facebook.com/people/Renan-Costa-Sousa/1059888025 Renan Costa Sousa

          A quantidade de polígonos seria a mesma com ou sem texturas maiores ou extras. Não é apenas com elas que se escondem as “imperfeições” num ambiente 3D 😉

          Se você economiza memória em troca de um processamento mais pesado, a principal mudança é que você está mudando o gargalo na velocidade da renderização. Mas com o grau de paralelismo que as GPU’s têm hoje, acho que vale a pena fazer essa troca.

        • Carlos Magno GA

          Eu achei criativas as soluções do cara. E acho que entendi um pouco o que ele fez.

          Não necessariamente ele precisou aumentar o número de polígonos para chegar no efeito desejado. Veja por exemplo um objeto que está bem na frente na primeira foto: o microscópio.

          Ele tem uma textura que lembra aquela borracha que você usa para ajustar a ocular do equipamento. Normalmente um projetista de jogos iria usar uma textura grande, tipo 64×32 pixels para colocar apenas um único objeto de 5 centímetros na tela. Ele no caso abusou da regularidade para fazer o telescópio. Veja por exemplo a figura em anexo.

          Isso foi um modelo mambembe que eu usei para mostrar como poderia ser feita a peça do microscópio. O primeiro cilindro eu usei o comando “Cylinder” do programa mesmo (nesse caso o Rhino3D) para criar um objeto que o programa reconhece como cilindro. Na hora de renderizar ele (como qualquer outro programa) gera um mesh gigantesco, com algo em torno de 500 ou mais polígonos

          No segundo cilindro eu criei um mesh permanente, que ficou com 222 polígonos nesse caso e bem parecido com o primeiro cilindro.

          No terceiro objeto eu fiz um prisma hexagonal (se você joga GTA San Andreas vai perceber que os canos das armas são hexágonos ou octógonos), sem informações de vetor normal.

          No quarto objeto eu peguei o mesmo mesh hexagonal e usei o comando “Weld”, que permite criar as normais no mesh hexagonal, deixando ele mais próximo do cilindro (eu poderia ter usado mais polígonos para deixar realista mas preferi não fazê-lo).

          No quinto cilindro que vem o pulo do gato do cara. Eu já tenho as informações de luz (mais ou menos) e as normais, falta apenas aplicar a textura. Em um jogo normal a textura do objeto seria um retângulo grande, mas quando eu vi o que o cara fez eu fiquei pensando: e se eu fizer uma textura de 2×1 pixels, um pixel marrom intercalando com um pixel preto.

          Se repetir os dois pixels ao longo de todo o cilindro (no caso 30 vezes ao longo do diâmetro) eu tenho o efeito que está em parte da ocular do microscópio usando apenas 2 míseros pixels. A textura que ele usou tem mais de dois pixels (olha a foto), mas mesmo assim o cara deve ter usado uma parcela ínfima da textura 256×512 para fazê-lo.

          Ou talvez nem seja tão ínfima assim, to vendo aqui a textura e ele aproveitou os mesmos pixels de uma forma sem fim de maneiras. Acho que a textura do microscópio é aquele pedaço ao centro que está só na camada verde da textura. Tem um tamanho considerável.

          P.S.: Acho que a ocular do telescópio é um prisma octogonal, dá pra ver as arestas do polígono.