LIGHTMAP - Pergunta simples porem complexa

Por: wel  

Em: 30/03/2016 09:43

Olá, Desculpa a pergunta simples mas não é tão quanto parecê

Gostaria de gerar mapas LIGHTMAP no 3DS MAX no segundo canal UV de uma sena gigante com muitos objetos automaticamente é um senário para um game que estou modelando.

lembrando o mapa LIGHTMAP no UV2 sera gerado objeto a objeto.

sei que o FLATIRION é um PLUGIN para isso mas no momento não tenho condições de comprar ele, gostaria de fazer na mão ou com um script automaticamente.

Agradeço.
Não é muito dificil não.

Procura algum script pra gerar o UV automatico ai, tem varios gratuitos.

Gere seu UV channel 2, e em seguida, renderize pelo baketotexture o lightmap, selecionando esse mesmo channel 2. Ai é só aguardar os mapas ficarem prontos.


eu Uso um do Soulbourn tools. http://www.neilblevins.com/cg_tools/cg_tools.htm

Ele tem milhares de ferramentas boas, scripts que automatizam muita coisa.
Poxa cara gostei desse pack de scripts mas isso não faz oq eu disse

Gerar os mapas para UV channel 2 faz com o \"uVFlattenMapper\"

só que gerar o bake de varios objetos não achei, o \"texmapBaker\" não esta gerando automaticamente ou eu não estou sabendo usar

teria algum outro???
Oi Wel, tdo bem?

Vou colar a resposta do André abaixo, qualquer dúvida estamos a disposição.

-------------------

Oi, tudo bem?

Desculpe a demora para responder, minha vida está super enrolada atualmente.

Sobre a sua dúvida, realmente não é simples como parece, pois tem vários detalhes que precisam ser observados.
Porém, eu creio que você está confundindo um pouco o que precisa ser feito no 3ds max e o que precisa ser feito na Engine de Game.

No 3ds max você precisa criar um canal de mapeamento específico para o Lightmap, pois se usar o mapeamento automático oferecido pelas Engines, certamente terá problemas nas quinas dos objetos porque o mapeamento automático separa quase todas as faces, enquanto que, o ideal é deixar o mínimo possível de faces separadas, já que é justamente na emenda das faces que pode ocorrer artefatos na iluminação.
O mapeamento automático das Engines é exatamente igual o mapeamento automático do 3ds max, tanto o do Unwrap com o Flatten Mapping quanto o do Render To Texture.

Agora, para exportar o objeto corretamente para uma Engine você precisa mapear com o Unwrap criando o mínimo possível de ilhas de mapeamento, ou seja, grupos de faces unidas.
Mesmo Plug-ins de mapeamento automático não conseguem um resultado perfeito, sempre precisa de correções manuais em cada objeto.
Se você já tem este mapeamento da textura, pode usar exatamente o mesmo mapeamento no segundo canal UV para a Engine aplicar o Lightmap.
Portanto, não é no 3ds max que você vai gerar o Lightmap, já que cada Engine tem o seu próprio renderizador e métodos diferentes para gerar o Lightmap.
No 3ds max você vai apenas criar dois canais de mapeamento, o primeiro com o mapeamento da textura e o segundo com o mapeamento para o Lightmap, que pode ser uma cópia do primeiro.

É bem simples copiar o canal atual de mapeamento para um novo canal, basta aplicar outro Unwrap em cima do primeiro e mudar para 2 no item Map Channel, que fica no menu Channel logo no início das propriedades do Unwrap.
Quando trocar para 2 vai aparecer uma mensagem perguntando se quer mover o canal atual para o novo ou se quer abandonar o canal atual e criar um novo do zero, escolha a opção Move para fazer uma cópia do canal 1 no canal 2.

Estou enviando duas imagens em anexo mostrando estas configurações.

OBS: É muito importante colapsar o objeto depois de aplicar os dois Unwrap para poder exportar em FBX para as Engines, pois se deixar os dois Unwrap no Modify, apenas o último será considerado.
Você pode colapsar clicando com o botão direito no quadro do Modify e escolhendo Collapse All ou clicando com o botão direito na Viewport com os objetos selecionados e escolher Convert To > Editable Poly ou Editable Mesh.

Na hora que importar na Engine, tanto a Unity quanto a Unreal possuem opções para criar os mapeamentos automaticamente, então, tem que desabilitar para usar os mapeamentos que estão no FBX.

Dependendo da Engine que for usar, a forma de exportar do 3ds max e de montar o cenário no Game é diferente, na Unity você pode importar o cenário todo de uma só vez mantendo a mesma hierarquia do 3ds max, na Unreal tem que importar objeto por objeto e montar o cenário manualmente, mas cada objeto vai repeitar a mesma distância até o centro do 3ds max, então, se colocar todos os objetos no 0,0,0 da Unreal, tudo vai encaixar perfeitamente.
Se quiser pode importar tudo junto na Unreal, mas se mandar combinar as malhas o cenário todo será tratado como um único objeto e se não combinar as malhas cada Element dos objetos serão tratados como objetos individuais, ou seja, cada prego de uma cadeira será um objeto independente na Engine, por isso que tem que importar objeto por objeto mandando combinar as malhas.

Abraços e tudo de bom.
A resposta do André é bem perspicaz no sentido de usar os bakers das engines, há vários motivos para isso:
1. Não vai precisar se preocupar com set up de render, uma vez que esses bakers tem poucos parâmetros.
2. Não vai precisar trabalhar manualmente a relação da densidade dos texels do seu normal map uma vez que essas engines tem ferramentas que automatizam essa tarefa (texels = pixel por cm à grosso modo).
3. Não vai precisar se preocupar tanto com a geração do mapeamento, para objetos mais importantes e complexos pode valer a pena fazer o unwrap você mesmo, porém há objetos mais secundários e simples que eu imagino que tu possas delegar a tarefa às próprias engines sem prejuízo de qualidade das suas cenas.

Se você estiver apenas estudando e quer entender como as coisas funcionam \"por trás das cortinas\" aí eu até entendo você querer fazer isso. Mas se sua intenção é concluir o trabalho eu imagino que optar por usar as ferramentas que aumentam tua produtividade é a melhor opção.

Se por acaso for só estudo mesmo e tu quer fazer o bake no max (já fiz muito isso) então saiba que o render to texture só faz o bake de um objeto por textura, ou seja, ele vai criar N texturas, na quantidade de objetos separados que tu tiver. Por isso é importante que tu una todos os objetos em um só para fazer um super bake gigante, entende? Nada prático, mas é uma limitação estranha do sistema padrão do max (plugins resolvem isso).

Um abraço!
Cara, esse texto do André, sem querer me ajudou com uma duvida q eu tinha a anos, com relação ao lightmap. Eu achava que tinha q fazer uma UV COMPLETAMENTE diferente do que usualmente se faz com as da textura, e de fato nunca entendi muito bem como funciona!

Faça o login para poder comentar

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 710590.

Total de membros registrados: 138057

Últimos membros registrados: REMOVIDR, vagnerthuram02, DianaRCCastro, @muiladas, IvanClaudio, ADERSONS, elasticare, Acfabbri.

Usuário(s) on-line na última hora: 758, sendo 21 membro(s) e 737 visitante(s).

Membro(s) on-line na última hora: AlexTerra, Duda, Gabriel.C, billypaul, Reinaldo Silva, Augusto Peixoto, Max Idalgo, Eduardo Ramos, gilson antunes, renaz, Pierrejr78, mandrade, Le_Andro, Thiago Couto, Lucas Reis, Leonardo, Henrique Ribeiro, Frederico Wagner N. R., REMOVIDR, Fernando Cunha, Marco Rocha.

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2024. Todos direitos reservados.