Blender PT

Blender 3D, Modelação, Renderização, Arte tudo em Português

Você não está autenticado.

#1 2014-11-30 22:05:41

jnascimento
Membro
De: Coimbra
Registado: 2013-02-24
Mensagens: 327

Normal Maps (addon)

Viva,  tenho andado um pouco desaparecido, a verdade é que tenho estado envolvido num projecto pessoal smile.
Este projecto passa por tentar criar um addon em python e c, que extraia normais a partir de imagens (difusas/albedo) dentro do blender o mesmo que programas como xnormal, Bitmap2Material , crazybumps e muitos outros fazem externamente.

Neste já tenho um pequeno prototipo mas ainda está muito cru, e lento, tendo me focado especialmente na funcionalidade e não no interface.

É um projecto que vou evoluir lentamente mas assim que tiver novidades ou uma versão funcional eu coloco aqui para quem quiser exprimentar.

Capture_zpsdbeb4bec.png~original


Atualmente a brincar com: Blender, Substance Designer & Painter, UE4

Offline

#2 2014-11-30 23:13:35

zeroshift
Moderator
De: Palmela
Registado: 2013-02-24
Mensagens: 293

Re: Normal Maps (addon)

Viva,

Super fixe! Estás a fazer uma lib em C que é chamada pelo python, é para tratar do calculo dos kerneis? Por acaso a função de bake do Blender dá para gerar a textura de normalmap a partir de uma imagem, mas é mais chato que essa dessa maneira e também não tem controlos extra para além da intensidade dos bumpmap.

Cumps

Offline

#3 2014-12-01 01:18:04

jnascimento
Membro
De: Coimbra
Registado: 2013-02-24
Mensagens: 327

Re: Normal Maps (addon)

Ois, sim é para tratar os kerneis, confesso é que o meu C está um pouco enferrujado por enquanto smile com o python não me safei muito bem a multiplicar os kerneis, mesmo usando o "numpy". Numa imagem de 2048 x 2048 demorava sempre perto de 1min a calcular sobel 3x3, visto ter de iterar por todos os pixeis para calcular a normal.

Quanto à intensidade dos detalhes, ainda estou em pesquisas, não sei se usarei um filtro tipo "gausian blur selectivo" ou apenas selecionar por escalas de cinza.

Por acaso nunca fiz o Bake de uma imagem para normal, podes apontar um tutorial disso? Até por motivo de comparação para performance.
Obrigado


Atualmente a brincar com: Blender, Substance Designer & Painter, UE4

Offline

#4 2014-12-01 15:36:44

Utopia780
Membro
De: Lisboa
Registado: 2013-02-24
Mensagens: 814
Website

Re: Normal Maps (addon)

Bela iniciativa Nascimento!

Parabéns!

Vou querer testar isso.
Não querendo parecer mal agradecido.. como são os resultados em comparação, por exemplo, o normal map plugin do Gimp?

Offline

#5 2014-12-01 21:11:42

sergio
Membro
De: Lisboa
Registado: 2013-09-28
Mensagens: 231
Website

Re: Normal Maps (addon)

parece muito bom, espero que o teu projecto continua.

Offline

#6 2014-12-02 00:07:25

zeroshift
Moderator
De: Palmela
Registado: 2013-02-24
Mensagens: 293

Re: Normal Maps (addon)

A maneira que conheço de fazer isso no Blender actuamente é assim:
-Criar um plano 2D
-Fazer UV Mapping com Reset no plano
-Adicionar um material ao plano
-Atribuir uma textura apenas com Influence -> Geometry -> Normal, no UVMap de base
-Adicionar mais um UVMap onde se coloca uma imagem vazia (Image->New Image), deixar esse UVMap selecionado
-Ir ao Bake -> Normal Space ->Tangent
-Ter o plano selecionado
-Bake
-Profit!

Offline

#7 2014-12-23 14:22:19

jnascimento
Membro
De: Coimbra
Registado: 2013-02-24
Mensagens: 327

Re: Normal Maps (addon)

Olá a todos, peço desculpa pela demora na resposta, tem sido complicado conciliar trabalho, blender, natal, etc.. smile.
Desde já obrigado ao sérgio pela força e ao zeroshift pela explicação smile

Utopia:
Em comparação com Gimp os resultados finais são praticamente iguais. Em baixo deixo as comparaçoes, mas como são imagens não é conclusivo apenas pela imagem.

Converti o algoritmo python para C logo para uma DLL que chamo no python. O que transformou a conversão de uma imagem de minuto e meio em 2 segundos. Estou a ver se implemento os restantes algoritmos e faço algumas proteções de erros ( memória leaks, falta de memória ) antes de por qualquer coisa aqui para a malta exprimentar.

Capture_zps3229baf2.png~original

Centro (cor castanha) -> Imagem base
Esq -> normal map gerado pelo Blender de high poly para um plano
Centro -> Normal Map gerada pelo Blender usando o meu (pseudo) addon
Direita -> Normal Map gerada pelo Gimp

i5-4670 CPU @ 3.4GHz - 8GB Ram (Windows 8.1 64bits)
Resolução 512px x 512px
Gimp -> tempo ????
Blender -> tempo 0.7 secs

Última edição por jnascimento (2014-12-23 14:29:03)


Atualmente a brincar com: Blender, Substance Designer & Painter, UE4

Offline

#8 2014-12-24 12:38:11

Utopia780
Membro
De: Lisboa
Registado: 2013-02-24
Mensagens: 814
Website

Re: Normal Maps (addon)

Muito bom!

O C é realmente muito mais rápido do que python. Já tinha essa noção mas essa diferença é incrível.

Fico a aguardar os avanços deste fabuloso addon! Força Nascimento!

Offline

#9 2014-12-26 23:41:22

zeroshift
Moderator
De: Palmela
Registado: 2013-02-24
Mensagens: 293

Re: Normal Maps (addon)

A principal vantagem que notei há algum tempo quando testei o xNormal, é que o normal map gerado se sobressai mais que o gerado pelo Blender, por isso é bastante positivo existir uma alternativa a algoritmo por defeito do Blender.

Offline

#10 2014-12-30 12:13:16

MAR71N
Membro
De: Pombal
Registado: 2013-02-24
Mensagens: 69
Website

Re: Normal Maps (addon)

- @ jnascimento:
se a teu addon é apenas pegar na textura e criar um normal map, isso é bom. Pois simplifica o processo que já existe e se o resultado for bom e com possibilidades de ajustes então tens aqui uma excelente alternativa. wink
Continua com o bom trabalho, espero ver o resultado final do teu addon.


» Itso é prouqe o crebéro lê as pavralas cmoo um tdoo e não lreta por lerta «

Offline

Rodapé do site