Criando Texturas UV-Mapeadas a partir da Radiosity

Requisitos: Conhecimentos em Radiosity e Mapeamento UV
Versão do Blender: 2.44

Uma das maiores dificuldades na hora de se criar texturas para jogos é conseguir um efeito de sombreamento convincente. No game engine, para conseguir esse efeito sem usar lâmpadas, pode-se usar radiosity, mas, seu uso em excesso pode causa queda de desempenho. Neste artigo iremos aprender a criar uma textura UV-Mapeada a partir da Radiosity.

Vamos usar como exemplo a personagem low poly da figura abaixo, mas essa técnica pode ser usada também para cenários:

    img01.jpg

Faça o mapeamento UV do objeto normalmente:

    img02.jpg

Após terminar o mapeamento, Adicione uma nova cena com uma cópia completa do objeto (Full Copy). Nesta cena iremos realizar a Radiosity. Se for em um cenário, coloque a emissão de luz normalmente como você faria. Se for em personagem, você deverá colocar a emissão de luz com o “emit” no máximo em todos os lados do objeto, e não esqueça de aplicar materiais os conforme o seu gosto, como na figura:

    img03.jpg

Aplique a Radiosity e apague as fontes de luz. Nosso macaco de teste ficou assim:

    img04.jpg

Entre no modo de seleção de faces (F), selecione todas as faces(A). Abra uma janela de “UV/Image Editor”. Como você pode ver, o mapeamento UV que você fez continua nesse novo modelo.
Agora na janela “UV/Image Editor”, nos menus, vá em “UVs” -> “Scripts” -> “UV Painter”. A mágica da conversão de Radiosity para Mapeamento UV está neste script.
O único problema neste script é que ele costuma fazer algumas barberagens na hora de salvar a imagem no HD. Eu recomendo que em vez de salvar por ele, faça um Screenshot(print screen) da imagem e depois edite em seu programa de edição de imagens preferido.
Abaixo a imagem do script em ação:

    img05.jpg

Após ter editado a imagem num programa de edição qualquer, vá à nossa primeira cena, onde está o personagem inicial, e mapeie-o com a imagem criada. Agora vamos acertar os vértices no UV/Image Editor, que deve estar um pouco fora do lugar, mais ou menos como a imagem abaixo:

    img06.jpg

Se isso acontecer (e provavelmente vai acontecer), trabalhe em cima dos vértices de forma que acerte o mapeamento em cima da imagem:

    img07.jpg

Prontinho! Agora para ficar mais legal, é só colocar os detalhes na sua imagem. Até a próxima!

    01.jpg
    uv2.jpg
Share and Enjoy:
  • del.icio.us
  • digg
  • Furl
  • LinkaGoGo
  • Ma.gnolia
  • NewsVine
  • Reddit
  • Shadows
  • Smarking
  • YahooMyWeb


Maio 2007

Textos no Game Engine

No Blender, temos a possibilidade de escrever textos no Game Engine usando uma imagem no formato targa(tga) com a textura da fonte desejada. Criar essa imagem usando um editor de imagens é um pouco complicado, já que existem algumas regrinhas básicas que devem ser seguidas para que não haja problemas (A imagem tem que ser em 8 bits, em tons de cinza etc…). Abaixo um exemplo de como ficaria essa imagem:

    arialbd.jpg

Criando sua fonte bitmap
Já existe uma ferramenta chamada ftBlender, que cria essa imagem a partir de uma fonte True Type. Esse programa é executado em linha de texto, através de parâmetros, e a fonte que você deseja converter tem que estar no mesmo diretório do programa.
Para algumas pessoas, que não estão acostumadas a trabalhar em linha de comando, o ftBlender se torna um pouco complicado. Pensando nessas pessoas, desenvolvi uma interface gráfica para esse programa: “Ftblender Interface”. Ele, em conjunto com o ftBlender, consegue criar as texturas sem ter que digitar uma linha de comando. Lembrando que o FtBlender Interface, como o próprio nome já disse, é apenas uma interface, sendo que o mérito da conversão fica todo para o FtBlender.
Abaixo uma imagem do programa em ação:

Ele é totalmente alto explicativo, bastando apenas seguir as instruções para criar sua fonte com sucesso!
O link para download do programa:
Download FtBlender Interface

Inserindo Textos no Game Engine

1 -- Adicione um plano (Plane);

    plano01.jpg

2 – Agora você vai fazer um mapeamento UV deste plano usando a textura que você criou com o Programa “FtBlender”. O mapeamento deverá ficar em cima do primeiro caractere arroba, conforme as imagens abaixo:

    plano02.jpg

O plano deverá ficar assim:

    plano03.jpg

3- Nos botões “Texture Face” (F9), abilite as opções “Tex”, “Text” e “Alpha”:

    plano04.jpg

4 – Agora adicione uma propriedade com o nome de “Text” (com a primeira letra em Maiúscula). Essa propriedade pode ser de qualquer tipo (float, integer, string etc…), ela é que vai definir o texto que será escrito. No nosso caso, criamos a propriedade do tipo String e colocamos o se valor como “Testando”:

    plano05.jpg

Faça o teste (P). Pode acontecer de sua imagem ficar com as letras viradas, como na figura:

    plano06.jpg

Se isso acontecer, você deve selecionar o plano e em “Modo de Edição”, rotacionar a malha de forma que fique na posição correta.

    plano07.jpg

Criamos nosso texto no game engine. Para você modificar esse texto em tempo real, é só criar um logicbrick de forma que modifique o valor da propriedade.

Share and Enjoy:
  • del.icio.us
  • digg
  • Furl
  • LinkaGoGo
  • Ma.gnolia
  • NewsVine
  • Reddit
  • Shadows
  • Smarking
  • YahooMyWeb


Maio 2007

Simulação de Partículas

Requisitos: Conhecimentos mínimos em mapeamento UV, Curvas IPO e LogicsBricks.

Primeiros Passos – A Partícula Solitária

-- Para criarmos as partículas no Game Engine, vamos precisar de uma imagem semelhante a essa (não é necessário ter o canal alpha);

    Particula.jpg

- Adicione um plano (Add -> Mesh -> Plane);
- Em modo de Edição (TAB), rotacione o plano de forma que a face com a normal visível fique virada para o eixo –X (eixo x negativo). Esta operação é muito importante para o funcionamento da partícula;
- Mapeie o plano com nossa imagem;
- Na aba “Texture Face”, habilite os botões “Tex”, “Halo” e “Add”;

    Texture_Face.jpg

- Nomeie o plano como “Particula”.
- Agora adicione os seguintes logicBricks na particula:

    LogicBricks01.jpg

As configurações iniciais da nossa partícula já estão prontas, você já tem uma partícula solitária. Faça um teste (P). Se a partícula ficar virada sempre na direção da câmera, independente de onde ele esteja significa que você realizou todos os passos da forma correta.

    Particula_Teste_01.jpg

Emissão de Partículas
Já criamos nossa partícula, agora vamos aprender a fazer com que um objeto(Empty) passe a emitir várias partículas.
- Mova a partícula para um layer diferente (M) e oculte este layer;
- No layer visível, adicione um Empty;
- Configure os seguintes logicbricks no Empty:

    LogicBricks02.gif

Observação: No atuador “Edit Object” do tipo “Add Object”, “OB” é o nome do objeto que vai ser adicionado na cena e “Time” é o tempo de vida deste objeto. Então em nosso exemplo, o novo objeto criado vai ficar em cena um pouco mais de dois segundos (levando em conta que está configurado por padrão que cada vinte e cinco frames corresponde a um segundo).

Nossa partícula já está funcionando, faça um teste (P). Essas são as configurações básicas para que ela se torne funcional. Os próximos passos agora são incrementar para transformá-la em efeitos mais vistosos, de acordo com a imaginação do “desenvolvedor”. Mas para facilitar a sua vida, ai vão algumas dicas muito úteis:

Dica 01: Cintilância.
O Efeito de Cintilância dá a impressão de que as partículas estão piscando. Esse efeito pode se atingido de duas maneiras, ou se preferir a união das duas.
A primeira maneira é adicionar uma curva IPO na partícula que vai aumentar e diminuir seu tamanho em um determinado espaço de tempo. Depois adicionar um atuador “IPO” do tipo “Play” que vai executar essa animação constantemente. Como já temos um sensor “Always”, é só ligar em seu respectivo Controller.
A segunda maneira é idêntica à primeira, a diferença é que em vez da fazê-la no objeto “Particula”, vamos aplicá-la no objeto “Empty”.
Nos dois casos, a curva IPO ficaria mais ou menos assim:

    IPO_Curve01.jpg

E nosso atuador assim:

    LogicBricks03.jpg

Resultado animando o “Empty":

    Particula_Teste_02.jpg

Dica 2: Velocidade de Emissão de Partículas.
Até agora, em nossos exemplos, a quantidade de emissão partículas está no máximo, mas se você quiser dar uma diminuída, para causar um efeito melhor ou até mesmo para melhorar o desempenho, faça o seguinte: No sensor “Always” do “Empty” existe uma opção representada pela letra “f” com o valor padrão de 0. Esta opção representa o delay que o Sensor vai sofrer para executar sua ação. Se o valor fosse 5, então irá imitir a partícula a cada 5 frames.
No meu caso, coloquei o valor 15, o resultado foi esse:

    Particula_Teste_03.jpg


Dica 3: Colorindo as Partículas

As partículas podem assumir várias cores, inclusive mudar de cor gradativamente (isso é muito útil se queremos fazer um efeito simulando fogo, já que sua base é vermelha e o topo é amarelado). Para conseguirmos trabalhar com as cores, vamos ter que usar curvas IPO. Selecione o objeto “Particula”, e em suas curvas IPO, localize os canais ColR, ColG, ColB(que representam respectivamente os canais Vermelho, Verde e Azul). Selecione os canais e, na janela, segure CTRL e clique aonde você quer criar uma Chave IPO correspondente a aquela cor.
Observer a figura:

    IPO_Curve02.jpg

Em nosso exemplo, colocamos todos os canais com o valor de 1.00. Esse é o valor máximo. Como nos sabemos, a união de todas as cores formam o branco, então se colocar todos os canais com o valor 1.00, a partícula vai ficar branca. Se quisermos que a partícula fique com o valor máximo vermelho, então teremos que configurar da seguinte maneira: ColR:1.00, ColG:0.00, ColB:0.00.

    Particula_Teste_04.jpg

Animando esses canais de cores, podemos conseguir efeitos bem legais:

    Particula_Teste_05.jpg

Coloquei aqui apenas algumas dicas de como melhorar nossa partícula, mas existem muitas outras coisas que podem ser feitas, vai da criatividade de cada um. Grande parte do que foi posto neste artigo não é regra, pode e deve ser modificado, dependendo de sua necessidade.

Bom divertimento!

Share and Enjoy:
  • del.icio.us
  • digg
  • Furl
  • LinkaGoGo
  • Ma.gnolia
  • NewsVine
  • Reddit
  • Shadows
  • Smarking
  • YahooMyWeb


Maio 2007 « Página AnteriorPróxima Página »