[RESOLVIDO] Como Fazer Baked De Luz em Cenas Grandes?
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Como Fazer Baked De Luz em Cenas Grandes?
Eu tenho um projeto e nele varias luzes espalhadas, eu percebi que usar luz em tempo real pesa muito, então procurei algumas soluções e achei o baked lightmap que
deixa a cena muito mais leve, mais fui crescendo e na hora do baked demora muito (eu não tenho placa de vídeo), então queria saber se a alguma forma de fazer o baked em partes da cena, tipo:
faço 1 baked onde esta um cubo e guardo o baked, depois faço um baked onde esta uma esfera e guardo esse baked também, e assim por diante.
Teria como fazer algo desse tipo.
deixa a cena muito mais leve, mais fui crescendo e na hora do baked demora muito (eu não tenho placa de vídeo), então queria saber se a alguma forma de fazer o baked em partes da cena, tipo:
faço 1 baked onde esta um cubo e guardo o baked, depois faço um baked onde esta uma esfera e guardo esse baked também, e assim por diante.
Teria como fazer algo desse tipo.
alexalex- Membro
- PONTOS : 3151
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Como Fazer Baked De Luz em Cenas Grandes?
O segredo do baking em cenas grandes é saber trabalhar com a escala de cada objeto no lightmap, coisas que estão longe da visão do player, você diminui a escala. Não recomendo usar acima de 1 exceto pra assets "hero", como um objeto que você sabe que o player vai passar muito tempo olhando.
Se seu objeto for feito de uma única parte, e for bem grande, é capaz até do bake travar e nunca concluir, então sempre que possível, divida um objeto grande em partes menores, ele será combinado novamente no batching (claro, se tiver o mesmo material)
GPU lightmap ainda tem algumas desvantagens, consome mais memória para fazer o bake que a mesma cena usando CPU, fora que geralmente sua GPU tem menos memória disponível que o seu PC tem de RAM, logo não é viável para projetos grandes, a menos que você tenha um Titan sobrando VRAM.
Antigamente o sistema de lightmap armazenava os dados de iluminação nos dados dos objetos, permitindo isso que você quer, mas hoje infelizmente os dados são guardados globalmente juntamente com o restante de informações da cena, logo não dá mais pra fazer bake por partes.
Se for uma opção pra você, recomendo fazer suas próprias UVs de lightmap, aqui em meus testes consigo otimizar em cerca de 50% o espaço útil das UVs, o que na prática quer dizer um lightmap menor, gastando menos tempo no bake e ficando com uma resolução similar ou melhor.
Abaixa a resolução do lightmap e vai ajustando a escala em cada objeto, quando tudo estiver OK, você aumenta a resolução e faz o bake final com uma qualidade melhor.
Se seu objeto for feito de uma única parte, e for bem grande, é capaz até do bake travar e nunca concluir, então sempre que possível, divida um objeto grande em partes menores, ele será combinado novamente no batching (claro, se tiver o mesmo material)
GPU lightmap ainda tem algumas desvantagens, consome mais memória para fazer o bake que a mesma cena usando CPU, fora que geralmente sua GPU tem menos memória disponível que o seu PC tem de RAM, logo não é viável para projetos grandes, a menos que você tenha um Titan sobrando VRAM.
Antigamente o sistema de lightmap armazenava os dados de iluminação nos dados dos objetos, permitindo isso que você quer, mas hoje infelizmente os dados são guardados globalmente juntamente com o restante de informações da cena, logo não dá mais pra fazer bake por partes.
Se for uma opção pra você, recomendo fazer suas próprias UVs de lightmap, aqui em meus testes consigo otimizar em cerca de 50% o espaço útil das UVs, o que na prática quer dizer um lightmap menor, gastando menos tempo no bake e ficando com uma resolução similar ou melhor.
Abaixa a resolução do lightmap e vai ajustando a escala em cada objeto, quando tudo estiver OK, você aumenta a resolução e faz o bake final com uma qualidade melhor.
SteveRogers- Instrutor
- PONTOS : 2673
REPUTAÇÃO : 156
Respeito as regras :
Re: [RESOLVIDO] Como Fazer Baked De Luz em Cenas Grandes?
Eu vi em algum lugar no site da própria Unity sobre fazer o bake em cenas separadas e depois carregar estas cenas aditivamente... Ligando o modo pesquisa aqui.
Re: [RESOLVIDO] Como Fazer Baked De Luz em Cenas Grandes?
E como ficaria a iluminação na junção? não daria diferença na tonalidade? vou até pesquisar sobre isso, vai ser útil pakas, vlw Artplayer
Creio que achei:
https://docs.unity3d.com/Manual/MultiSceneEditing.html
Creio que achei:
https://docs.unity3d.com/Manual/MultiSceneEditing.html
SteveRogers- Instrutor
- PONTOS : 2673
REPUTAÇÃO : 156
Respeito as regras :
Re: [RESOLVIDO] Como Fazer Baked De Luz em Cenas Grandes?
Exato, existe um artigo no site da Unity exatamente sobre este caso de uso, estou procurando ele. É sobre um jogo Mobile onde eles tinham que fazer o Spawn de elementos procedurais durante o jogo e fizeram o bake dos objetos em cenas separadas.SteveRogers escreveu:E como ficaria a iluminação na junção? não daria diferença na tonalidade? vou até pesquisar sobre isso, vai ser útil pakas, vlw Artplayer
Creio que achei:
https://docs.unity3d.com/Manual/MultiSceneEditing.html
Edit:
https://unity3d.com/pt/how-to/light-baked-prefabs-on-mobile
https://unity3d.com/pt/learn/tutorials/topics/best-practices/lighting-settings
https://80.lv/articles/unity-2018-2-arrives/
Re: [RESOLVIDO] Como Fazer Baked De Luz em Cenas Grandes?
SteveRogers escreveu:O segredo do baking em cenas grandes é saber trabalhar com a escala de cada objeto no lightmap, coisas que estão longe da visão do player, você diminui a escala. Não recomendo usar acima de 1 exceto pra assets "hero", como um objeto que você sabe que o player vai passar muito tempo olhando.
Se seu objeto for feito de uma única parte, e for bem grande, é capaz até do bake travar e nunca concluir, então sempre que possível, divida um objeto grande em partes menores, ele será combinado novamente no batching (claro, se tiver o mesmo material)
GPU lightmap ainda tem algumas desvantagens, consome mais memória para fazer o bake que a mesma cena usando CPU, fora que geralmente sua GPU tem menos memória disponível que o seu PC tem de RAM, logo não é viável para projetos grandes, a menos que você tenha um Titan sobrando VRAM.
Antigamente o sistema de lightmap armazenava os dados de iluminação nos dados dos objetos, permitindo isso que você quer, mas hoje infelizmente os dados são guardados globalmente juntamente com o restante de informações da cena, logo não dá mais pra fazer bake por partes.
Se for uma opção pra você, recomendo fazer suas próprias UVs de lightmap, aqui em meus testes consigo otimizar em cerca de 50% o espaço útil das UVs, o que na prática quer dizer um lightmap menor, gastando menos tempo no bake e ficando com uma resolução similar ou melhor.
Abaixa a resolução do lightmap e vai ajustando a escala em cada objeto, quando tudo estiver OK, você aumenta a resolução e faz o bake final com uma qualidade melhor.
Como eu poderia fazer os UVs de lightmaps? Na resolução de lightmap tem uma opção de default scene, esse default é da qualidade(Project Settings/Quality) da cena atual ou o que?
alexalex- Membro
- PONTOS : 3151
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Como Fazer Baked De Luz em Cenas Grandes?
A Unity usa por padrão a UV2 pro lightmap, então é só criar 3 UVs em qualquer software de modelagem 3D.
Lembre-se apenas que UV2 na prática é a terceira UV.
UV0 = Textura
UV1 = Textura de detalhes
UV2 = Lightmap.
Se você quiser usar as Uvs geradas na Unity, recomendo que aumente o valor de "Pack margin" para 12 ou mais, é um valor que me dá bons resultados. O padrão é 4.
//------- Edit ---------
Artplayer, eu já achei esse post sobre lightmap em mobile, falando sobre mapa procedural, foi daí eu peguei a técnica que usei na cena que montei pro Rambo, usando lightmaps customizados.
Mas deixei passar esse ponto sobre editar o lightmap em mais de uma cena por vez kkk cara, isso vai ser muito útil pra mim, obrigado!
Lembre-se apenas que UV2 na prática é a terceira UV.
UV0 = Textura
UV1 = Textura de detalhes
UV2 = Lightmap.
Se você quiser usar as Uvs geradas na Unity, recomendo que aumente o valor de "Pack margin" para 12 ou mais, é um valor que me dá bons resultados. O padrão é 4.
//------- Edit ---------
Artplayer, eu já achei esse post sobre lightmap em mobile, falando sobre mapa procedural, foi daí eu peguei a técnica que usei na cena que montei pro Rambo, usando lightmaps customizados.
Mas deixei passar esse ponto sobre editar o lightmap em mais de uma cena por vez kkk cara, isso vai ser muito útil pra mim, obrigado!
SteveRogers- Instrutor
- PONTOS : 2673
REPUTAÇÃO : 156
Respeito as regras :
Re: [RESOLVIDO] Como Fazer Baked De Luz em Cenas Grandes?
Primeiro, na parte de importação do modelo 3D você tem a opção de gerar umas UVs automaticamente.
É aqui que você altera o pack margin pra não ter problemas com UV overlap.
Depois, com o objeto dentro da cena, você precisa dizer pra Unity o quão importante é esse objeto, se for o objeto que fica no alcance do player, ele tem que ter uma resolução maior que um objeto que está longe.
Mas pra cena não demorar séculos pra fazer bake enquanto você trabalha, lá na aba de rendering você diminui a resolução global do lightmap, pra trabalhar melhor, no fim, quando for lançar o jogo, você aumenta novamente pra ter uma qualidade melhor.
E não coloque tuuuudo no lightmap, alguns objetos são pequenos ou não tão importantes, para estes, defina a escala para 0 para que eles sejam iluminados apenas pelas light probes.
É aqui que você altera o pack margin pra não ter problemas com UV overlap.
Depois, com o objeto dentro da cena, você precisa dizer pra Unity o quão importante é esse objeto, se for o objeto que fica no alcance do player, ele tem que ter uma resolução maior que um objeto que está longe.
Mas pra cena não demorar séculos pra fazer bake enquanto você trabalha, lá na aba de rendering você diminui a resolução global do lightmap, pra trabalhar melhor, no fim, quando for lançar o jogo, você aumenta novamente pra ter uma qualidade melhor.
E não coloque tuuuudo no lightmap, alguns objetos são pequenos ou não tão importantes, para estes, defina a escala para 0 para que eles sejam iluminados apenas pelas light probes.
SteveRogers- Instrutor
- PONTOS : 2673
REPUTAÇÃO : 156
Respeito as regras :
Re: [RESOLVIDO] Como Fazer Baked De Luz em Cenas Grandes?
SteveRogers escreveu:Primeiro, na parte de importação do modelo 3D você tem a opção de gerar umas UVs automaticamente.
É aqui que você altera o pack margin pra não ter problemas com UV overlap.
Depois, com o objeto dentro da cena, você precisa dizer pra Unity o quão importante é esse objeto, se for o objeto que fica no alcance do player, ele tem que ter uma resolução maior que um objeto que está longe.
Mas pra cena não demorar séculos pra fazer bake enquanto você trabalha, lá na aba de rendering você diminui a resolução global do lightmap, pra trabalhar melhor, no fim, quando for lançar o jogo, você aumenta novamente pra ter uma qualidade melhor.
E não coloque tuuuudo no lightmap, alguns objetos são pequenos ou não tão importantes, para estes, defina a escala para 0 para que eles sejam iluminados apenas pelas light probes.
Seguir as suas instruções e conseguir reduzir muito o tempo de Baked, Depois adicionei o LightProbeGroup na cena e iluminou os objetos dinâmicos, até os que estão fora do alcance do LightProbe, então é isso
mesmo que faz o LightProbe, pois imaginei que ele só afetaria os objetos em seu alcance (Tipo dentro Dele), ou estou enganado.
alexalex- Membro
- PONTOS : 3151
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Como Fazer Baked De Luz em Cenas Grandes?
Bom saber que deu certo pra ti, sobre as light probes, imagine que você tenha uma sala completamente vermelha, a luz bate nela e reflete em todos os objetos dentro dela, inclusive na light probe que você colocou ali dentro. Se você tiver um objeto dinâmico do lado de fora, ele vai ficar vermelho também pois ele vai usar a iluminação da light probe mais próxima, e como você só tem a da sala vermelha, só ela vai contribuir pra iluminação. Então o ponto aqui é ter ao menos uma a cada X metros, pra captar a luz naquele espaço e transmitir corretamente pro objeto que estiver ali. Não tenha dó, coloque no cenário todo com um certo espaçamento entre uma e outra, e em locais específicos onde a luz muda bruscamente.
Não se preocupe com tamanho, pois elas não usam imagens para capturar a luz, e sim uma fórmula matemática, cada probe usa alguns bytes apenas, são necessárias muitas pra aumentar alguns kb no tamanho final do jogo e na memória.
Aqui tem um tutorial pra você ver como dá pra ter uma iluminação decente se você colocar as LProbes com sabedoria.
Não se preocupe com tamanho, pois elas não usam imagens para capturar a luz, e sim uma fórmula matemática, cada probe usa alguns bytes apenas, são necessárias muitas pra aumentar alguns kb no tamanho final do jogo e na memória.
Aqui tem um tutorial pra você ver como dá pra ter uma iluminação decente se você colocar as LProbes com sabedoria.
SteveRogers- Instrutor
- PONTOS : 2673
REPUTAÇÃO : 156
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Como fazer para controlar o áudio em diferentes cenas?
» [RESOLVIDO] como fazer um fadeIn
» Load de músicas e de cenas , como fazer?
» [RESOLVIDO]Como fazer o audio se sobrepor?
» [RESOLVIDO] alguém sabe como fazer um unico Input fazer duas ações?
» [RESOLVIDO] como fazer um fadeIn
» Load de músicas e de cenas , como fazer?
» [RESOLVIDO]Como fazer o audio se sobrepor?
» [RESOLVIDO] alguém sabe como fazer um unico Input fazer duas ações?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos