Cialis online Clomid online Viagra online

Archive

Posts Tagged ‘Photoshop’

Gerando normal maps rapidamente com o plugin da NVidia

July 27th, 2010

Enquanto estou trabalhando quietamente na cena Sci-Fi resolvi escrever este rápido tutorial mostrando uma maneira mais otimizada para gerar normal maps com o plugin da Nvidia. Muitas pessoas desconsideram o plugin por acharem os resultados de baixa qualidade e preferem modelar ou esculpir todos os detalhes o que na minha opinião vai gerar muito trabalho desnecessário. Acredito que o problema esteja na forma como ele é usado, e não com o plugin em si (que é um ótimo salva-vidas). É claro que não da pra fazer tudo com o plugin, então o ideal é a avaliar a situação e ver se realmente compensa modelar ou não.

Basicamente o que as pessoas costumam fazer é simplesmente converter o diffuse em grayscale e passar o plugin. Na maior parte dos casos o resultado vai ser ruim pois o plugin funciona comparando a intensidade dos pixels entre si. Dessa maneira você tem normal maps com pouca variação de profundidade já que o diffuse raramente tem gradientes representando corretamente as variações de profundidade encontradas na superficie a ser representada.

No tutorial a seguir fiz alguns ajustes rapidos no diffuse utilizando filtros para explicar a idéia. Tentei retirar a maior parte dos detalhes de baixa frequência, deixando apenas as formas mais dominantes. Depois coloquei gradientes para ter mais variação de profundidade. O correto seria misturar o resultado esses filtros com retoques de pintura digital para se obter heightmaps mais corretos, mas vou pular essa parte.

Comparações entre os resultados:

Thiago Klafke Game Art , , ,

Texturas hand-painted

July 15th, 2009

Hoje tenho um excelente time-lapse mostrando o processo de uma textura low-res (128×128) pintada totalmente a mão. O cara utiliza diversas técnicas diferentes, como sobreposição de fotos e pintura tradicional. Extremamente recomendável para quem quer aprender a pintar texturas.

Fun fact: Foi tudo feito no mouse, sem auxilio de uma tablet.

Portfolio do Jonathan Fletch

Thiago Klafke Game Art , ,

Criando arte 3d para o Nintendo DS – Especificações Técnicas

April 9th, 2009

Quando eu tava preparando meu portfolio pre enviar pra Ubisoft ano passado resolvi que seria uma boa idéia pesquisar sobre o hardware do DS, já que o Bertrand disse na entrevista para o UOL que o primeiro jogo do estúdio seria para o DS. Foi meio dificil encontrar informações precisas na época, a maioria era desencontrada e bizarra. Como a maior parte do pessoal que mexe com homebrew e corre atrás dessas informações é programador a parte sobre arte era bem resumida.

Antes de tudo, eu acho extremamente importante para quem deseja trabalhar como game artist profissionalmente entender muito bem o lado técnico das coisas. Não basta saber modelar ou texturizar, tem de conhecer as limitações do hardware também. Afinal seus assets ou levels deve funcionar corretamente dentro do jogo. Vejo muita gente hoje em dia falando que é environment artist sendo que no portfolio só tem render de Vray. Mas deixemos essa discussão pra depois. Vamos ao que interessa, o Nintendo DS!

Atenção: Este artigo não contém informações confidenciais. Tudo que está descrito aqui foi obtido através de pesquisa na própria internet, em sites como wikipedia e sites de entusiastas.

Dois CPUs? Como assim?

Como vocês devem saber o DS possui dois CPUs: O ARM9, que trabalha com a engine 3d e o ARM7, que trabalha com duas engines 2d. Basicamente quando a Nintendo projetou o DS, eles turbinaram o CPU do Gameboy Advance (o ARM7) e adicionaram um segundo CPU, capaz de renderizar gráficos 3D. Não vou entrar em detalhes tão técnicos sobre essa parte, mas o que você precisa entender é que esses CPUs podem ser utilizadas de várias maneiras, depende da natureza do projeto. Eles também não são atados à nenhuma tela. Você pode setar a tela de cima pra usar a engine 3d e a de baixo pra usar uma engine 2d (ou vice-versa), ou ainda setar as duas para utilizar 3d. Porém se fizer isso o FPS cai pela metade (30) e os recursos ficam partilhados entre as telas. Num jogo de ação isso fica ináceitavel. Mais explicações sobre dual 3d abaixo.

Só pra constar, a tela do DS tem 256 pixels de largura por 192 pixels de altura.

A Engine 3d: Características

A Engine 3d do DS é capaz de: Transforming, Clipping e Lighting (TCL), mapeamento de texturas, alpha blending, cel shading, edge marking (desenha uma linha na silhueta dos meshes), distance fog e z-buffering. O problema dos gráficos 3d dele não serem tão bonitos está no fato do DS não possuir um texture filtering decente (ele usa nearest neighbor pra quem se interessar). Isso significa que quando o número de texels da textura não batem com o número de pixels que ela ocupa na tela artefatos vão aparecer. Quando a quantidade de texels é maior que a de pixels isso não é tão problemático, mas quando é o contrário a textura já começa a ficar serrilhada e bem feia. Trocando em miúdos: Se a sua textura tem 64 pixels de altura é ideal que ela também ocupe 64 pixels de altura na tela. Em um jogo 3d é impossível deixar tudo pixel perfect mas com um pouco de paciência e tato dá pra aproximar bem.

O limite de polígonos visíveis por vez é de 2048. Um erro cometido por quem não conhece o sistema é de achar que toda a cena deve ter no máximo 2048 triângulos. Não é verdade. O DS é capaz de renderizar quads, desde que todos os vértices da face sejam coplanares. Porém o limite de poligonos em quads cai para algo em torno de 1.500 por tela. Outro detalhe importante (e que quase ninguém sabe) é que o DS possui backface culling. No 3d studio max quando estiver trabalhando em seu modelo, colapse tudo, vá no sub-object face, ligue “ignore backfacing” e faça uma seleção que ocupe toda a tela. Se você tiver as estatísticas ligadas ele vai mostrar quantas faces estão visíveis naquele ângulo de câmera no momento. Um limite comum para personagens é de 200/300 poligonos. Pode até ser um pouco mais se for o personagem principal e ocupar boa parte da tela.

Iluminação

A iluminação no DS é bem básica, por vértice. Para os level artists que estão lendo: é legal aprender vertex painting e vertex baking, se você não conhece.

Texturas e Bancos de VRam

A engine 3d tem um limite de até 512kb para texturas. Para tudo. Cenário, personagem, HUD, menu, qualquer coisa. Geralmente todas essas texturas são carregadas quando o level é carregado, então é bom prestar bastante atenção nisso e não abusar. Se o seu jogo utilizar dual 3d o limite cai para 256 kb para as DUAS telas simultaneamente. Isso ocorre pois o DS tem de ocupar um dos bancos de VRam (memória de video) para renderizar a segunda tela. É como se ele tirasse uma screenshot da segunda tela, armazenasse num dos bancos e enviasse a mesma para a outra tela. Isso também explica o fato dos FPS cairem pela metade.

Formatos: As texturas no DS geralmente são palhetizadas em 4, 16 ou 256 cores. Existem outros modos mas não vou abordar porque não são práticos e quase nunca usados. Para palhetizar uma textura no Photoshop, vá no menu Mode – Indexed. Utilize “local” no Palette, “none” no forced e coloque o número de cores desejado. Saiba que se você utilizar entre 16 e 256 cores, no DS contará como uma palheta de 256 portanto preste bastante atenção nisso. Salve suas texturas como .bmp para evitar aborrecimentos.

O DS também suporta compressão de texturas, mas ela é um pouco bizarra e não vou abordar em detalhes aqui. Resumindo: pra esse modo funcionar as palhetas deverão ser compartilhadas ao máximo entre as texturas, o que pode até ser bom dependendo da direção de arte. Podem aparecer alguns artefatos nas texturas também devido à compressão. Tenho a impressão que o Metroid Prime Hunters usa bastante esse recurso.

Transparência

Existem duas maneiras de se fazer transparência no DS: Através de alpha maps ou texturas “non-zero”.

Alpha Maps: É arriscado usar alpha maps no DS. A engine 3d (a única que suporta) tem problemas com z-buffering, o que significa que se existirem 2 alphas se sobrepondo na tela ela não sabe direito qual renderizar primeiro, o que pode levar a erros de renderização e artefatos. Para utilizar alphas você deve salvar um bitmap separado para ele, em tons de cinza onde o preto é totalmente trasparente e branco é opaco, assim como máscaras de photoshop. Você também deverá palhetizar essas duas texturas de uma forma diferente: Uma deve ter 8 cores e a outra 32. Cabe ao artista avaliar qual textura merece mais cores e qual merece mais níveis de transparência.

Non-Zero: Bem mais leve que alpha maps. O que ele faz é pegar a primeira cor da palheta (não importa se é de 4, 16 ou 256 cores) e transformar em transparente. Geralmente utilizamos a cor 255 0 255 (magenta puro) pois raramente alguma textura usará essa cor. No Photoshop na hora de palhetizar sua textura coloque “custom” em Forced e adicione essa cor na primeira posição da palheta. Na hora de gerar a palheta ele vai colocar o magenta na primeira posição. Com esse modo você não terá problemas com o z-buffer. Todas as florestas do Call of Duty: World at War (versão DS claro) foram feitas com esse método.

Animação

Animação não é minha praia mas sei o DS suporta os seguintes modos: Animação com bones (no máximo 2 vertices por bone), Morphing (interpolação de vértices) e Animação Modular (Num modelo de personagem por exemplo cada membro é um mesh separado, o Dragon Ball Origins usa isso).

Vizualizando seu modelo 3d no DS!

Sim, existe como vizualizar seus modelos no DS sem saber programar ou possuir o Dev-Kit oficial. Basta ter um flashcard (como o R4) e esse aplicativo home brew pra carregar modelos dentro do próprio DS. Ele trabalha com .obj e .bmp. Ótimo pra testar os modelos no próprio DS e ir pegando as manhas e vendo o que fica bom e o que não fica. O link para o aplicativo e instruções estão aqui.

Bons Jogos 3d no DS

Alguns jogos que julgo utilizarem muito bem os recursos 3d do DS. Estude esses jogos e você aprenderá uma coisa ou outra:

  • Nanostray 2 (O jogo 3d mais bonito do DS na minha opinião)
  • Zelda: Phantom Hourglass (Utiliza muito bem os recursos do DS, como cel shading e edge marking)
  • Mario 64 DS (Eles refizeram as texturas originais, estão muito mais bonitas)
  • Call of Duty: World at War (Cenários 3d impressionantes)
  • Pokémon Platinum (Cenários 3d low poly bem charmosos, conseguiram fazer muito bem a transição do 2d pra 3d)
  • Tony Hawk: Proving Grounds (O mesmo que o de cima)
  • Metroid Prime Hunters (Utiliza compressão nas texturas. As texturas são quase todas cinzas e as cores são dadas através da iluminação no cenário)

É isso… se alguma coisa ficou confusa pergutem ai nos comentários!

Atualizado em: 06/05/09

Thiago Klafke Discussão Técnica , , , ,

Quer ser um level artist?

February 1st, 2009

Environment artist (ou level artist dependendo do estúdio), é o artista responsável pela arte utilizada nos cenários. Ai se incluem: Texturas, objetos 3d e iluminação. Antigamente essa função era realizada pelo level designer, que costumava ser muito mais polivalente. Essa é uma função relativamente nova e surgiu com a necessidade de se dividir melhor as funções – agora o level designer se dedica apenas ao design e scripting. Enfim, é a área de game dev que mais me interesso e mais acho fascinante, que infelizmente é meio negligênciada aqui na terra do Blanka. Uma pena, pois grande parte do que está visível na tela de um jogo o tempo todo é trabalho dos level designers/artists.

Para guiar quem deseja trabalhar nessa área, resolvi escrever algumas dicas. Note que são apenas dicas de fatos que observei durante anos, não existe nenhuma regra para isso.

Skills necessários:

  • Modelagem 3d
    É necessário dominar um pacote de modelagem, de preferência que seja padrão na indústria. É fácil se sentir atraído pelo Blender ou algum outro programa qualquer, mas ainda está para nascer um estúdio respeitável que utilize um desses programas bizarros. Pessoalmente sou fã do 3ds max, porém o Maya e o XSI também são padrão. Baixe as versões trial dos mesmos e teste você mesmo, é questão de gosto apenas.
    Aprenda modelagem low poly de objetos e edifícios, unwrapping, modelagem high-poly e criação de normal maps.
  • Texurização
    Sempre fui fascinado por texturas. Infelizmente comecei a criar as minhas próprias texturas um pouco tarde. O legal de se dominar texturização é que assim você pode dar um toque mais pessoal aos seus modelos/mapas. Com o tempo você acaba desenvolvendo seu estilo próprio, deixando seu trabalho mais original e atraente. Para texturas o único software que recomendo é o Adobe Photoshop. É um programa muito versátil que qualquer um que deseja trabalhar na indústria deve dominar. E se possível adquira uma tablet (de preferência wacom, eu tenho uma graphire4, são bem baratas hoje em dia e dão conta do recado).
  • Iluminação
    Não é muito raro a iluminação dos cenários ficar a cargo de level artists. Sempre ouvi que uma boa iluminação é capaz de transformar o cenário mais mal modelado e texturizado em algo especial. Concordo totalmente. Talvez esta seja a ferramenta principal na hora de transmitir sensações, valorizar a atmosfera e guiar o player através dos levels.

Conhecimentos Desejados

  • História da Arte e Estética
  • Teoria de Cores e Formas (inicie com as teorias da Gestalt)
  • Composição
  • Conhecer pelo menos uma engine

O que um bom portfolio deve ter?

O portfolio deve conter trabalhos que demonstrem que você é capaz de criar um objeto/level do zero, além de ter uma boa noção estética, harmonia e composição.  Uma boa dica é criar um level totalmente custom, mesmo que ele não possua gameplay algum. A Unreal Engine 3 é uma boa pedida. Você pode modelar o mapa todo no seu programa de modelagem e importar o mesh no editor para os retoques finais e iluminação. Exemplos de bons portfolios:

Philip Klevestav, Bram Eulaers, Henning Horstmann, Robert Briscoe, Wesley Tack

Aqui tem um link muito bom pros interessados. Contém uma lista de links sobre environment art imperdível. Tutoriais, referências, tudo. Entre também no fórum Made in Brazil, onde sou um dos administradores. Lá tem um monte de tutoriais, discussões e trabalhos de artistas brasileiros.

Thiago Klafke Game Art , ,