Páginas: [1]   Ir para o Fundo
Imprimir
Autor Tópico: Normal Map no Blender  (Lida 5881 vezes)
0 Membros e 1 Visitante estão vendo este tópico.
Cara-RJ
Moderador Global
Membro Vitalício
*****

Reputação 10
Offline Offline

Sexo: Masculino
Mensagens: 660


-: 0
-: 0



Ver Perfil WWW
« : Janeiro 18, 2005, 01:10 »

Olá a toda a comunidade!

Trago para vocês uma pequena explicação sobre o uso dos famosos Normal Maps.
Bem, Normal Map não passa de um mapa de relevo, como os chamados Bump Maps em outros softwares, mas o que o torna especial é o seu funcionamento.

Pequena explicação sobre Bump Maps e Normal Maps, de minha interpretação:

Os Bump Maps são mapas em tons de cinza que indicam ao software a altura do relevo de acordo com a intensidade do tom de cinza, onde um cinza claro será alto-relevo e um cinza escuro será baixo-relevo.

Os Normal Maps são mapas em escala RGB (vermelho, verde e azul), onde o canal vermelho representa o eixo X, o canal verde representa o eixo Y e o canal azul representa o eixo Z, e é essa a grande diferença entre um Normal Map e um Bump Map (no caso do Blender, entre um Normal Map em RGB e um em tons de cinza), você terá muito mais suavidade na representação de um relevo, afinal nós temos 256 transições de cinza, enquanto temos 16 milhões de transições em RGB.

Nós teremos valores de eixo negativos e positivos de acordo com o valor do canal de cor (varia de 0 a 255, onde zero será -1.0 e 255 será 1.0). O Blender por enquanto não possui valor de eixo Z negativo.

Mas você deve estar se perguntando: "Mas pra que eu vou querer um mapa deste, parece tão complicado...". Atualmente é a indústria de jogos que anda tirando vantagens desta tecnologia (jogos recentes como Doom3 e Half-Life2), onde você possui modelos Low-Poly com Normal Maps de modelos High-Poly para simular modelos High-Poly.
As aplicações para este tipo de recursos são inúmeras.

Como criar um Normal Map no Blender 2.36:

1- No editor de materiais, crie um material novo. Você irá adicional 3 texturas tipo Blend a este material. Siga os parâmetros da figura abaixo para o resto do material.


2- Agora, para as texturas Blend, no Map Input, acione o botão Nor (1) e para cada textura acione um eixo na primeira linha (2) (canal vermelho - X, verde - Y, azul - Z). Na textura azul você deverá deixar como na fig.2.
Em Map To, para cada uma das texturas adicione a cor correspondente com o eixo (circulo azul) e em Texture Blending Mode (círculo verde), na textura vermelha deixe em MIX, nas outras duas coloque em ADD.




Está criado o material que irá gerar o Normal Map.

Agora, vamos colocar a Suzanne na cena (afinal não tem modelo melhor para testes :P ) e aplicar o material criado nela.
Ela deverá ficar "bonitinha", toda em colorida, pronta para o Carnaval.
Bom, posicione a câmera de frete para Suzanne, se conseguir enquadrá-la toda, melhor (do meu ponto de vista).



E para um melhor resultado, vamos habilitar Ambient Occlusion com 16 Samples, habilitar Ray Shadows para a lâmpada e em Render, coloque o OSA em 16, habilite o Ray Tracing e aumente o valor de OCtree para 128.
Defina um valor quadrado para a saída do render (como 512x512, 1024x1024...) e selecione Targa para arquivo de saída.

Não se assuste com os valores para a saída da imagem, não deve levar mais do que 5 segundos (no meu PC levou 3 segundos em 512x512).

Resultado:


De posse da nova imagem TGA da Suzanne, vá até um outro Layer (camada) e adicione um plano, uma câmera e uma Lamp a cena.
Para este Plane crie um material novo, vá até texture button e selecione Image. Carregue o arquivo TGA que salvamos anteriormente e habilite o botão Normal Map. Volte ao Material Button e em Map To desabilite o botão Col e habilite o botão Nor.



Agora é só renderizar a imagem com a câmera da cena, verifique os parâmetros de AO, OSA, OCtree, pois agora eles não precisam ficar ao máximo.

Resultado:


Se o botão Normal Map não for habilitado, será renderizado como um Bump normal:


Se quiser utilizar a imagem como UV Map também pode.

Bom, espero que com estas linhas, tenha conseguido explicar de forma resumida o que é Normal Map e como ele funciona.
Lembro que a explicação sobre o que é Normal Map e Bump Map é de minha autoria, não foi retirada de nenhuma página, então está sujeita a erros.

Existem programas que geram Normal Map a partir de UV Maps gerados por aplicativos 3D, um deles bastante comentado é o ORB. As grandes fabricantes de placas de vídeo, Nvidia e ATI disponibilizam programas geradores de Normal Map, vale a pena dar uma olhada:

ATI - http://www.ati.com/developer/tools.html
Nvidia - http://developer.nvidia.com/page/tools.html

Descupem pelo longo texto e espero que todos apreciem um pouco este tutorial.
Abraços, Carlos Felipe - Cara-RJ
Registrado

"Se é forte não sei, mas com certeza vai brilhar."
Rude
Alexandre
Visitante
« Responder #1 : Janeiro 18, 2005, 15:28 »

Muito bom Cara!! Parabéns :-D
Registrado
Cara-RJ
Moderador Global
Membro Vitalício
*****

Reputação 10
Offline Offline

Sexo: Masculino
Mensagens: 660


-: 0
-: 0



Ver Perfil WWW
« Responder #2 : Janeiro 19, 2005, 05:03 »

Valeu Ganon!
É só uma explicação meio que resumida do do que se encontra na Web e na página do Blender.

Sempre que possível vou atualizar a explicação. ;-)
Registrado

"Se é forte não sei, mas com certeza vai brilhar."
Rude
Cara-RJ
Moderador Global
Membro Vitalício
*****

Reputação 10
Offline Offline

Sexo: Masculino
Mensagens: 660


-: 0
-: 0



Ver Perfil WWW
« Responder #3 : Julho 23, 2006, 01:55 »

É chegada a hora de atualizar um pouco esta introdução à Normal Map.

A técnica que descrevi acima é eficiente para gerar mapas para superfícies planas, que é o tipo de mapa suportado pelo Blender.

Mas e se você tiver um objeto esférico, ou um personagem para jogos, como usar essa técnica para gerar o mapa? Seria muito difícil, renderizar todos os pontos de vista e criar uma composição dos mapas no Gimp ou Photoshop. Então o que fazer?

É aí que entra o script criado pelo JMS, o qual cria as cores do normal map usando as normais do objeto (lógico....) e cria um vertex color no objeto.
Após a criação do vertex color é preciso colocar essa informação no mapa de UV. Para tal, o Blender já vem equipado com um script: UVpainter (que é do mesmo autor do bake normal, JMS).
Mas para quem quiser, disponibilizo um script semelhante, encontrado no Elysiun, para usar na geração de um outro tipo de mapa, mas isso é papo para outro tutorial ;). O nome do script é Bake UVcolor to Texture.
É muito mais simples de se usar que o UVpainter, ao clicar no script abrirá uma confirmação: "GO!". Dependendo da complexidade da sua malha e de seu computador, pode demorar um pouco até aparecer a próxima opção do script, a escolha da resolução do mapa de textura.
As opções são 256, 512, 1024 e 2048. Escolha a sua e em seguida você verá o Blender renderizando o seu mapa UV com as cores do Normal map (ele irá salvar esse render como baked_tex_0001.png).

Agora você já tem seu mapa de Normais pronto para ser aplicado no seu modelo low-poly a partir do high-poly.

Modelo high-poly:


Modelo low-poly:


Mapa gerado atravéz da técnica descrita:


Render com o mapa de normal no modelo low-poly:


Um render melhor (com outro modelo, cortesia do Sculpt do Blender, de novo):


Os scripts:
http://geocities.yahoo.com.br/landcf/scripts.zip (peguem leve no servidor....)
É necessário carregar o Vcol_normals.py pelo editor de texto do Blender.

Dúvidas, é só postar aqui. 8-)
Registrado

"Se é forte não sei, mas com certeza vai brilhar."
Rude
Mauricio Cunha
Membro Intermédio
***

Reputação 1
Offline Offline

Sexo: Masculino
Mensagens: 154


-: 0
-: 0



Ver Perfil WWW
« Responder #4 : Setembro 20, 2007, 15:32 »

Aproveitando o topico, e sabendo que minha duvida ainda persiste por mais materiais que se busque a respeito desse assunto eu gostaria de perguntar onde estou "errando".

Vou explicar os passos, e gostaria de entender qual eh o problema nestes passos que sao seguidos (LP=Low-Poly e HP-High Poly):

1) Feito o modelo em LP, faca o corte do modelo para obter o uvmap
2) Pinto este UVMAP em um editor de imagens e devolvo para o modelo o mapa pintado
3) Usando ferramentas de NORMAL MAP com base na textura pintada eh que crio o normal map (uso o plugin da n-vidia e neste ultimo fiz um teste com o uso do CrazyBumps)
4) Com o normal map gerado com base na textura eu aplico-o ao modelo que agora passa entao a ter o UVMAP padrao como 1a textura e o NORMAL MAP como 2a textura, porem vejam que o resultado nao eh satisfatorio (reparem na camiseta por exemplo).



Registrado

iuri
Membro Jr.
**

Reputação 3
Offline Offline

Sexo: Masculino
Mensagens: 235


-: 0
-: 0



Ver Perfil WWW
« Responder #5 : Setembro 24, 2007, 04:35 »

Eu acho que o problema é porque o valor do nor está muito baixo. Veja que está a 0.5. Tenta colocar um valor mais maior. O Nor está em em map to.

Falou!
Registrado

gaiden
Membro Intermédio
***

Reputação -1
Offline Offline

Sexo: Masculino
Mensagens: 150


-: 0
-: 0


Ver Perfil
« Responder #6 : Outubro 31, 2007, 04:11 »

Hum...então para utilizar normal maps em um personagem...devo texturizá-lo primeiro (pode ser até mesmo por UV) e após isso renderizar usando as configs mencionadas e AO tb...p targar o render resultante....
após isso pego essa TGA e aplico como textura co Nor ativado???
Registrado

_____________________________________________

    Sorrindo     See´ya!
                                                               By GAIDEN
_____________________________________________
Mauricio Cunha
Membro Intermédio
***

Reputação 1
Offline Offline

Sexo: Masculino
Mensagens: 154


-: 0
-: 0



Ver Perfil WWW
« Responder #7 : Junho 04, 2008, 13:49 »

Pessoal

Houveram mudancas na maneira de se trabalhar com normal map com a versao mais nova do Blender ?
Registrado

iuri
Membro Jr.
**

Reputação 3
Offline Offline

Sexo: Masculino
Mensagens: 235


-: 0
-: 0



Ver Perfil WWW
« Responder #8 : Junho 06, 2008, 13:45 »

Eu sei que agora dá pra fazer render baking com tangent space... http://www.blender.org/development/release-logs/blender-246/render-baking/
Pelo que eu sei ele é melhor para imagem que a camera se move, como jogo e video. E isso é legal Cheesy

Falou!
Registrado

Mauricio Cunha
Membro Intermédio
***

Reputação 1
Offline Offline

Sexo: Masculino
Mensagens: 154


-: 0
-: 0



Ver Perfil WWW
« Responder #9 : Junho 08, 2008, 08:14 »

Valeu Iuri, vou dar uma olhada...
Registrado

Páginas: [1]   Ir para o Topo
Imprimir
 
Ir para: