Shader Causa Tela Preta
3 participantes
Página 1 de 1
Shader Causa Tela Preta
Olá pessoal, já fiz um tópico desse lá no fórum do Unity mas aqui por ser em português a comunicação fica mais fácil.
Estou fazendo um jogo para Android e segui esse link para criar um shader para trocar as cores dos sprites renderizados pela câmera.
Em alguns celulares ele estava apresentando tela preta logo após a splashscreen da Unity. Na thread que fiz no fórum do Unity, consegui corrigir parcialmente o problema, agora ficando em tela preta apenas se usar um anúncio ou deixar o jogo em segundo plano.
Alguém sabe como me ajudar?
Estou fazendo um jogo para Android e segui esse link para criar um shader para trocar as cores dos sprites renderizados pela câmera.
Em alguns celulares ele estava apresentando tela preta logo após a splashscreen da Unity. Na thread que fiz no fórum do Unity, consegui corrigir parcialmente o problema, agora ficando em tela preta apenas se usar um anúncio ou deixar o jogo em segundo plano.
Alguém sabe como me ajudar?
enrisco- Iniciante
- PONTOS : 1661
REPUTAÇÃO : 0
Respeito as regras :
Re: Shader Causa Tela Preta
enrisco escreveu:Olá pessoal, já fiz um tópico desse lá no fórum do Unity mas aqui por ser em português a comunicação fica mais fácil.
Estou fazendo um jogo para Android e segui esse link para criar um shader para trocar as cores dos sprites renderizados pela câmera.
Em alguns celulares ele estava apresentando tela preta logo após a splashscreen da Unity. Na thread que fiz no fórum do Unity, consegui corrigir parcialmente o problema, agora ficando em tela preta apenas se usar um anúncio ou deixar o jogo em segundo plano.
Alguém sabe como me ajudar?
O problema acontece na Unity também? Por que vários recursos não são suportados em dispositivos móveis.
Re: Shader Causa Tela Preta
Não acontece não, o problema é que antes de eu fazer a alteração que me recomendaram, ele funcionava perfeitamente no meu celular, mas ficava com tela preta em outros.
Depois que alterei, ficou com tela preta depois de ver anúncio/deixar em segundo plano em todos os celulares, mas no editor continua funcionando perfeitamente.
Depois que alterei, ficou com tela preta depois de ver anúncio/deixar em segundo plano em todos os celulares, mas no editor continua funcionando perfeitamente.
enrisco- Iniciante
- PONTOS : 1661
REPUTAÇÃO : 0
Respeito as regras :
Re: Shader Causa Tela Preta
Você está utilizando "RenderTexture" e ela é limitada em funcionamento para dispositivos móveis... Celulares mais antigos, ou sem recursos para processamento disso, não vão retornar um material, apresentando apenas uma imagem preta como resultado.
Outro problema que pode ocorrer, é no formato da RenderTexture que você está utilizando... você pode alterar várias propriedades nela, por exemplo, o formato de cores, resolução, antialiasing, etc, etc... tente optar por opções básicas, e veja se algo melhora.
Outro problema que pode ocorrer, é no formato da RenderTexture que você está utilizando... você pode alterar várias propriedades nela, por exemplo, o formato de cores, resolução, antialiasing, etc, etc... tente optar por opções básicas, e veja se algo melhora.
Re: Shader Causa Tela Preta
MarcosSchultz escreveu:Você está utilizando "RenderTexture" e ela é limitada em funcionamento para dispositivos móveis... Celulares mais antigos, ou sem recursos para processamento disso, não vão retornar um material, apresentando apenas uma imagem preta como resultado.
Outro problema que pode ocorrer, é no formato da RenderTexture que você está utilizando... você pode alterar várias propriedades nela, por exemplo, o formato de cores, resolução, antialiasing, etc, etc... tente optar por opções básicas, e veja se algo melhora.
Você conhece algum material ou recurso que dê pra fazer algo do gênero para plataformas móveis? Eu apenas preciso modificar a cor dos pixels das texturas para tons especificos (então usar a propriedade color do SpriteRenderer não funcionaria.)
enrisco- Iniciante
- PONTOS : 1661
REPUTAÇÃO : 0
Respeito as regras :
Re: Shader Causa Tela Preta
Cara, acho que talvez pesquisando algo na AssetStore, ou pesquisando algo da pilha de pós processamento V2, você ache algo.
Não sou muito manjão de shaders, então não é uma área que eu ententa muito.
Não sou muito manjão de shaders, então não é uma área que eu ententa muito.
Re: Shader Causa Tela Preta
beleza! Valeu mesmo pela atenção!MarcosSchultz escreveu:Cara, acho que talvez pesquisando algo na AssetStore, ou pesquisando algo da pilha de pós processamento V2, você ache algo.
Não sou muito manjão de shaders, então não é uma área que eu ententa muito.
enrisco- Iniciante
- PONTOS : 1661
REPUTAÇÃO : 0
Respeito as regras :
Re: Shader Causa Tela Preta
Preciso saber algumas coisas:
Versão da Unity.
Render Pipeline (URP, HDRP, Built-in..)
2D ou 3D.
Tem algumas coisas no link que você postou que não são erradas, mas são bem custosas pra mobile, como fazer Blit() na OnRenderImage e fazer esse tipo de efeito com pós processamento, existem outras possibilidades bem mais leves, sabendo mais detalhes do que citei acima e exatamente o que quer fazer no seu jogo, fica mais fácil te ajudar.
Versão da Unity.
Render Pipeline (URP, HDRP, Built-in..)
2D ou 3D.
Tem algumas coisas no link que você postou que não são erradas, mas são bem custosas pra mobile, como fazer Blit() na OnRenderImage e fazer esse tipo de efeito com pós processamento, existem outras possibilidades bem mais leves, sabendo mais detalhes do que citei acima e exatamente o que quer fazer no seu jogo, fica mais fácil te ajudar.
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Shader Causa Tela Preta
Aí você me pegou! Eu também não conheço absolutamente nada sobre shader, fiz seguindo o post então sei melhores práticas para Android.Fagner escreveu:Preciso saber algumas coisas:
Versão da Unity.
Render Pipeline (URP, HDRP, Built-in..)
2D ou 3D.
Tem algumas coisas no link que você postou que não são erradas, mas são bem custosas pra mobile, como fazer Blit() na OnRenderImage e fazer esse tipo de efeito com pós processamento, existem outras possibilidades bem mais leves, sabendo mais detalhes do que citei acima e exatamente o que quer fazer no seu jogo, fica mais fácil te ajudar.
Eu uso a versão 2018.4.23f1. Pode me explicar como funciona Render Pipeline ou me enviar um material sobre?!
enrisco- Iniciante
- PONTOS : 1661
REPUTAÇÃO : 0
Respeito as regras :
Re: Shader Causa Tela Preta
Se está usando a 2018, provavelmente criou seu projeto usando a pipeline padrão... o que é bom kkk nunca mexi nas novas, então não sei como fazer por lá. Mas ainda não respondeu se é 2D ou 3D.
Eu fiz um exemplo 3D que utiliza o próprio shader do objeto pra simular o efeito do link, pego o valor de luminosidade da textura e uso isso pra substituir a cor original por uma vindo de uma paleta de cores estilo gameboy.
Exemplo 3D
Resultado:
paleta:
É imensamente mais leve que fazer via pós processamento, logo os celulares vão adorar.
Sobre a renderTexture, não precisa se preocupar com desempenho, pois qualquer câmera acaba usando sempre uma renderTexture pra poder exibir o jogo na tela do aparelho, e diminuindo a resolução, é certeza de que o desempenho fica melhor, só precisa mudar onde fazer o Blit() e tudo fica ok.
No exemplo tem o código.
Eu fiz um exemplo 3D que utiliza o próprio shader do objeto pra simular o efeito do link, pego o valor de luminosidade da textura e uso isso pra substituir a cor original por uma vindo de uma paleta de cores estilo gameboy.
Exemplo 3D
Resultado:
paleta:
É imensamente mais leve que fazer via pós processamento, logo os celulares vão adorar.
Sobre a renderTexture, não precisa se preocupar com desempenho, pois qualquer câmera acaba usando sempre uma renderTexture pra poder exibir o jogo na tela do aparelho, e diminuindo a resolução, é certeza de que o desempenho fica melhor, só precisa mudar onde fazer o Blit() e tudo fica ok.
No exemplo tem o código.
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Shader Causa Tela Preta
Opa desculpa, é 2D mesmo.Fagner escreveu:Se está usando a 2018, provavelmente criou seu projeto usando a pipeline padrão... o que é bom kkk nunca mexi nas novas, então não sei como fazer por lá. Mas ainda não respondeu se é 2D ou 3D.
Eu fiz um exemplo 3D que utiliza o próprio shader do objeto pra simular o efeito do link, pego o valor de luminosidade da textura e uso isso pra substituir a cor original por uma vindo de uma paleta de cores estilo gameboy.
Exemplo 3D
Resultado:
paleta:
É imensamente mais leve que fazer via pós processamento, logo os celulares vão adorar.
Sobre a renderTexture, não precisa se preocupar com desempenho, pois qualquer câmera acaba usando sempre uma renderTexture pra poder exibir o jogo na tela do aparelho, e diminuindo a resolução, é certeza de que o desempenho fica melhor, só precisa mudar onde fazer o Blit() e tudo fica ok.
No exemplo tem o código.
enrisco- Iniciante
- PONTOS : 1661
REPUTAÇÃO : 0
Respeito as regras :
Re: Shader Causa Tela Preta
Porém, desculpe, eu não entendi muito bem. No caso, a função Blit() acaba sendo o culpado nos dispositivos Android? E qual o código que você usou para corrigir? Não consegui encontrar.
enrisco- Iniciante
- PONTOS : 1661
REPUTAÇÃO : 0
Respeito as regras :
Re: Shader Causa Tela Preta
Não tem problema em usar o Blit(), o problema é utilizar ela na OnRenderImage(), o que resulta na criação de uma cópia da RenderTexture pra aplicar o efeito, pra só depois jogar isso na tela.
Eu mudei pra OnPostRender(), dessa forma eliminamos a cópia, só pegamos o que a câmera renderizou e jogamos na tela direto.
Provavelmente a tela preta que você presenciou nem tem a ver com isso ou com o uso da RenderTexture, e sim incompatibilidade com o shader/efeito de pós processamento, mas alterando o local do Blit() e fazendo o efeito via shader do material dos objetos, você ganha bastante desempenho nos celulares mais modestos, além de anular qualquer incompatibilidade.
Eu mudei pra OnPostRender(), dessa forma eliminamos a cópia, só pegamos o que a câmera renderizou e jogamos na tela direto.
Provavelmente a tela preta que você presenciou nem tem a ver com isso ou com o uso da RenderTexture, e sim incompatibilidade com o shader/efeito de pós processamento, mas alterando o local do Blit() e fazendo o efeito via shader do material dos objetos, você ganha bastante desempenho nos celulares mais modestos, além de anular qualquer incompatibilidade.
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Shader Causa Tela Preta
Mano obrigado mesmo pela resposta! Eu vou dar uma estudada sobre como é feita essa aplicação via shader, e qualquer coisa atualizo aqui!Fagner escreveu:Não tem problema em usar o Blit(), o problema é utilizar ela na OnRenderImage(), o que resulta na criação de uma cópia da RenderTexture pra aplicar o efeito, pra só depois jogar isso na tela.
Eu mudei pra OnPostRender(), dessa forma eliminamos a cópia, só pegamos o que a câmera renderizou e jogamos na tela direto.
Provavelmente a tela preta que você presenciou nem tem a ver com isso ou com o uso da RenderTexture, e sim incompatibilidade com o shader/efeito de pós processamento, mas alterando o local do Blit() e fazendo o efeito via shader do material dos objetos, você ganha bastante desempenho nos celulares mais modestos, além de anular qualquer incompatibilidade.
enrisco- Iniciante
- PONTOS : 1661
REPUTAÇÃO : 0
Respeito as regras :
Re: Shader Causa Tela Preta
Eu atualizei meu shader pra funcionar com a UI/2D, e adicionei o suporte a transparência, basta criar um material e ir substituindo o dos seus sprites e imagens.
Você ainda deve usar o script que fiz pra renderizar na resolução do Gameboy, creio que ele juntamente com esse shader seja a melhor opção pra mobile. Boa sorte
Link do projeto
Você ainda deve usar o script que fiz pra renderizar na resolução do Gameboy, creio que ele juntamente com esse shader seja a melhor opção pra mobile. Boa sorte
Link do projeto
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Tópicos semelhantes
» Unity 3d TELA PRETA
» Unity trava com tela preta ao editar textura do Terrain - Unity 5.6.3p2
» Tela preta depois do logo da unity
» Tela preta na Unity (após upgrade do Windows)
» Problema com o Shader (Shader Bloqueado)
» Unity trava com tela preta ao editar textura do Terrain - Unity 5.6.3p2
» Tela preta depois do logo da unity
» Tela preta na Unity (após upgrade do Windows)
» Problema com o Shader (Shader Bloqueado)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos