From BlenderWiki

Jump to: navigation, search
Blender3D FreeTip.gif
IMPORTANT! Do not update this page!
We have moved the Blender User Manual to a new location. Please do not update this page, as it will be locked soon.

Bump e Normal Maps

Modo: Todos os Modos

Painel: Shading/Texture Context → Image

Atalho: F6

Descrição

Normal Maps (Mapas para modificar a visualização Normal da Face) e Bump Maps (Mapas para criar ressaltos aparentes na face), ambos servem para o mesmo propósito: eles simulam a impressão de uma superfície 3D detalhada, pela modificação do sombreamento da superfície como se a superfície possuísse um monte de pequenos ângulos, ao invés de ser completamente achatada. Pelo fato de ser somente uma Modificação do sombreamento de cada Pixel, isto não vai fazer com que a superfície provoque/lance sombras e não irá obstruir outros Objetos. Caso o ângulo da Câmera seja muito horizontal a superfície, você irá notar que a superfície não é realmente formatada.

Nota sobre o termo Bake
O termo Bake (em inglês), significa cozer, cozinhar ou tirar do forno, mas na nossa língua, o Português, o termo soaria estranho para definições técnicas referentes a um software 3D. Portanto, manteremos o termo Bake como uma operação de fabricação ou execução de certas funções do Blender, Assim como está; de maneira que o leitor, novato ou experiente, se referencie pelo mesmo termo utilizado em inglês para estas funções. O termo aparece tanto aqui, quanto nas explicações sobre o Sistema de Partículas, Fluídos, e em outros lugares neste Manual do Usuário.


  • Ivan Paulos Tomé – Greylica


Ambos as técnicas de bump maps e normal maps funcionam pela modificação do ângulo da normal (a direção que está apontando perpendicularmente a partir de uma face), o que influencia como o Pixel é Sombreado. Ainda que os termos normal map e bump map são muitas vezes utilizados de maneira sinônima, existem certas diferenças:

  • Bump maps são texturas que guardam uma intensidade, a altura relativa dos Pixels a partir do ponto de visualização da câmera. Os Pixels parecem ser movidos pela distância requerida na direção das normais da face. Você pode tanto utilizar imagens em escala de Cinza (chamadas de greyscale) ou utilizar imagens de intensidade de uma Textura RGB (incluindo imagens).
  • Normal maps são imagens que guardam uma direção, a direção das normais são guardadas diretamente nos valores RGB de uma imagem. Normal Maps são muito mais precisos, por que ao invés de somente simular os Pixels como tendo uma distância da face ao longo de uma linha, eles podem simular esse mesmo Pixel sendo movido em qualquer direção, de uma maneira arbitrária. A parte complicada dos Normal Maps são que, diferentemente dos Bump Maps, que podem ser facilmente pintados a mão, Normal Maps usualmente tem de ser gerados de alguma maneira, muitas vezes a partir de geometrias de muito mais alta resolução que a geometria na qual você o está aplicando.

Normal maps dentro do Blender guardam uma normal como segue:

  • Mapas em Vermelho: Mapas a partir de (0-255) para X (-1.0 - 1.0)
  • Mapas em Verde: Mapas a partir de (0-255) para Y (-1.0 - 1.0)
  • Mapas em Azul: Mapas a partir de (0-255) para Z (0.0 - 1.0)

Pelo fato das Normais sempre apontarem para o visualizador, o valores negativos de Z não são guardados ( eles seriam invisíveis de qualquer maneira ). Dentro do Blender nós guardamos um campo completo do Azul, ainda que algumas outras implementações também mapeiem as cores azuis (128-255) para (0.0 - 1.0). A última convenção é utilizada no jogo Doom 3 por exemplo.



Ciclo de Trabalho

Os passos envolvidos na fabricação e utilização de Bump e Normal Maps são:

  1. Executar a modelagem de um modelo altamente detalhado chamado de hi-poly"'.
  2. Executar o Bake (fabricar) os Mapas de Bump maps e/ou Normal maps.
  3. Fazer um modelo menos detalhado, chamado de low-poly.
  4. Mapear o Mapa para o modelo low-poly utilizando um sistema de coordenadas em comum.

Consulte a seção de modelagem para saber como fazer um modelo altamente detalhado utilizando as ferramentas de Malha. A quantidade de detalhes que você coloca fica por sua vontade. Quanto mais rugas e detalhes, (protuberâncias, vincos, e saliências) você colocar, mais detalhado o seu mapa será.

Fabricando ou fazendo o Bake de um mapa, em uma simples explicação, é tomar os detalhes de uma Malha de Alta contagem de Polígonos, e aplicá-la a um Objeto similar. O Objeto similar é idêntico a Malha de alta contagem de Polígonos, com a exceção de ter menos vértices. Utilize a funcionalidade Render Bake presente no Blender para conseguir isso.

Modelando um modelo do tipo low-poly utilizando as Ferramentas de Edição do Blender. Em geral, as mesmas faces ou faces similares devem existir para que reflitam o modelo. Por exemplo, uma orelha altamente detalhada pode conter 1000 faces em um modelo high-poly, isso pode ser substituído por um simples plano, orientado na mesma direção da Malha da orelha detalhada. (Um Toque: A funcionalidade de modelagem do Blender chamada de "multi-resolution mesh" pode ser utilizada para se conseguir um bom efeito aqui.)

O Mapeamento é o processo de aplicação da textura para a Malha low-poly. Consulte a seção de Texturas para mais informações de como fazer a aplicação de uma Textura a um Material de uma Malha. Algumas considerações especiais para Bump e Normal Maps são:

  • Quando estiver utilizando um Bump map, mapeie a textura para Nor e habilite No RGB.
  • Quando estiver utilizando um Normal map, mapeie a textura para Nor

O sistema de coordenadas dos dois Objetos deve bater. Por exemplo, caso você fabrique o seu mapa utilizando um Mapa UV do modelo high-poly', você deve também executar o mapeamento UV para o modelo low-poly e alinhas as suas coordenadas UV para bater com o formato delineado da imagem high-poly (veja UV unwrapping para alinhar com as arestas do mapa do modelo high-poly.

Exemplos

Para configurar a cena, posicione uma câmera ortográfica mais ou menos 10 unidades de um macaco (Suzanne, visão de cima, numpad 7 ). Desdobre a Malha do Macaco para UV; neste exemplo nós fizemos um simples e fácil Project from View (Bounds). Escale a câmera de maneira que o macaco se enquadre. Configure a sua resolução de formato de saída para 512x512 ( texturas quadradas renderizam mais rapidamente em "Game Engines" (Máquinas de Jogos), usualmente). Nenhuma Luz ou qualquer outra coisa adicional é requerida.

Utilize o Render Bake para criar o Normal map.

Nódulo de Composição para fazer Bump Maps

Então, habilite Do Composite e configure o Nódulo de Composição mostrado a direita. Este é o seu Bump Map. Você faz um Bump Map pela utilização da mesma câmera ortográfica dentro do nódulo de composição mostrado. A frente do Modelo está 9.2 unidades da câmera, e as partes visíveis estão 1.3 unidades mais profundas (1/1.3=0.77). Se você salvar a sua imagem como JPG, você terá uma profundidade de 24-bits de cor. Salve essa imagem também como uma imagem OpenEXR com meia profundidade de cores, 16-bits; como uma imagem OpenEXR com plena profundidade de cores, 32-bits de cor. Alternativamente, você pode utilizar o Plugin ZUtilz, contudo, ele somente oferece uma imagem com 8 bits de profundidade de cores e a resolução do Bump Map pode ser muito pequena para um bom campo de valores Z.

Agora nós vamos olhar para alguns exemplos. Primeiro, o render da "Suzanne", em (Renderização da Suzanne). A segunda figura mostra o Normal Map da Suzanne (feito com o sistema de Bake do Blender. A figura mais a direita na parte de cima da coluna mostra o Bump Map da Suzanne.

Ambos os Mapas aqui são utilizados como texturas em um plano, primeiro o Normal Map (Renderização do Normal Map), então o Bump Map (Renderização do Bump Map). Em ambos os casos a câmera ficou na mesma posição dentro da qual os Mapas foram feitos (Perpendiculares ao Plano).

Renderização da Suzanne
Normal Map da Suzanne
Bump Map da Suzanne
Visão lateral da renderização do Normal Map aplicado em um Plano
Visão lateral da renderização do Normal Map feito com uma câmera Ortho, aplicado em um Plano. A mesma posição de câmera que usamos na figura anterior, menos distorção perspectiva.
Renderização do Normal Map aplicado em um Plano, perpendicular a superfície.
Renderização do Bump Map aplicado em um Plano.

A Renderização do Normal Map é somente um pseudo 3D. Você não pode olhar o lado da cabeça (Renderização da Visão Lateral).

Caso você utilize uma câmera Ortho para criar o Normal Map, você terá menos distorção perspectiva (Renderização com uma câmera Ortho).

Opções de Bake ou Fabricação

O Painel de Render Bake

Link explicando o Render Bake aqui. Em suma, o Blender suporta o Bake de Normal Maps, entre outras coisas nas quais podem ser utilizadas as operações de Bake:

  • Tangent: Executa o Bake de um Normal Map que é independente de visualização, e portanto a melhor opção para animação.
  • Object: Executa o Bake das Normais dentro das coordenadas do Objeto, e pode ser movida, mas não deformada.
  • Camera: Executa o Bake das Normais com o método mais antigo, significando que você não pode deformar ou mover o Objeto.
  • World: Executa o Bake das Normais com coordenadas, mas os Objetos não podem ser movidos ou deformados.

Outras opções incluem:

  • Selecionada para Ativa: Esta opção vai executar o Bake das Normais da Malha selecionada para a Malha ativa (Ex: A Malha do tipo "High poly" (Alta contagem de polígonos) é a selecionada e a partir dela é executada a operação de Bake para a Malha do tipo "Low Poli" (Baixa contagem de Polígonos), que é a Ativa).
  • Distance: Um Parâmetro que controla a distância máxima a partir de um Objeto para outro.
  • Clear: Limpa a imagem corrente de quaisquer dados.
  • Margin: A quantidade (Em Pixels) da qual estender o Normal Map.

Utilizando e criando Normal Maps

O Botão Normal Map dentro do Painel Image

Normal Maps e Bump Maps são simples de usar. Tenha certeza de que você aplicou a textura para o canal correto dentro dos Botões de Mapeamento de Material, no Painel Map To, para a saída de Nor. A força do efeito é controlada com o botão Numérico Nor, no mesmo Painel.

Caso você queira utilizar um Normal Map, você tem que configurar o botão Normal Map dentro do Painel Image nos Botões de Textura F6 (Botão Normal Map).

Pelo fato de somente as Normais serem afetadas durante a renderização, você não terá sombras, ou AO, ou outros efeitos 3D. Isso ainda é somente uma Textura.

Para executar a operação de Bake dos Normal Maps em um processo diferente, mas simples, faça o seguinte:

1) Faça uma Malha.

2) Crie uma versão com baixo número de polígonos do Objeto abaixando o nível de Multires ( se você estiver utilizando Multires), ou utilizando um Modificador Decimate, ou então pela modelagem da mesma Malha com menos vértices. Para simplicidade, vamos dizer que o Objeto com baixa contagem de polígonos se chame Mesh L e o Objeto com numero alto de polígonos se chame Mesh H.

3)Para fazer com que tudo isso funcione, a Malha chamada Mech L necessita de uma Imagem UV. Designe "seams" (juntas/costuras) , e desdobre a Malha para uma nova imagem do tamanho desejado (Com a grade de testes UV Habilitada.).

Você irá notar uma opção chamada "32 bit float" abaixo do Painel da nova Imagem. Esta
A Malha de baixo número de polígonos desdobrada
opção cria a sua imagem em 32 bits, o que é útil quando estiver gerando Mapas de deslocamento. Caso esteja salvando a Imagem de 32 bits, ela deverá ser salva em um formato que suporte 32bits, como OpenEXR.


4)antes de você executar a operação de Bake dos Normal Maps, ambas as Malhas devem estar exatamente na mesma localização, portanto, a Malha chamada Mesh L deverá ser movida de volta para a localização exata da Malha chamada Mesh H, com o uso de AltG.

5)Caso o botão "Selected to active" esteja habilitado (o que provavelmente está), você vai precisar selecionar primeiro a Malha chamada Mesh H, e depois a Malha chamada Mesh L.

6) Vá até a aba "Scene" F10 e então até a aba de bake (próxima a "anim"). Selecione "Normals", e personalize as suas opções de acordo com a sua necessidade. Então pressione o grande e brilhante botão de Bake e observe que o mapa aparecerá em toda a sua glória ...

O Normal Map depois da operação de Bake


7) Não, você ainda não terminou ainda. Nós ainda necessitamos adicionar o Normal Map como uma Textura. O próximo passo é ir até a aba de Materiais F5e aplicar a nova Textura . Selecione o tipo de Textura como "Image", e selecione a sua textura de Normal Map (espero que você tenha dado um nome a ela... ) com as setas.
Imagem Selecionada

8) Voltando ao Painel do Material principal dentro de "Map Input", altere as coordenadas da Textura para UV. dentro do "Map To", marque "Nor" e de-selecione "Col". Configure o valor de "Nor" para 1 (Ou um Valor diferente, dependendo de quanto de força de efeito você deseja para isso).

Você terminou !