SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Limitar movimento da camera com imput android!!
Spawnar objeto a 1 metro de distancia de mim
Selecionar itens com as teclas do teclado
Cabeça do personagem virar ao mecher a câmera!
Pulo em Projeto 3d com Character Controller
NÃO CONSIGO COLOCAR TEXTURAS NAS PAREDES DAS CASAS!!!
Simulador controlado a partir de. Um app
Google Play Services
Meu personagem customizado não quer morrer no RealisticFPSPrefab
Unity colisao nao funciona
FillAmount da imagem sincronizado com um timer
Como Fazer Camera do Euro Truck 2 (para Android)
Erro na transição de cena
vc code não reconhece minha função, ajuda!?
Player não segue a trajetória quando pula correndo
[RESOLVIDO] AS ÁRVORES DO MEU UNITY ESTÃO ROSAS, O QUE FAZER!!???
Batalha por turnos
jogo de corrida
Melhor Configuiração Para Rodar Unity e Programas de Modelagem !
Tetris: Ghost House
Limpeza de animação
ANIMAÇÃO DE MORTE EM LOOPING
Random Maze
Como fazer para os braços subirem e descerem?
Pedido de Script de Crosbow
Camera some com partes do corpo
Pack De Modelos Para Baixar
modificar armas sem tirar animações
Batalha por turnos
Converter UASSET em FBX
ajuda para adaptação em um script.
[TUTORIAL] Salvando e carregando dados com serialização (Parte 3)
Duvida sobre animação
[TUTORIAL] Salvando e carregando dados com serialização (Parte 2)
[TUTORIAL] Sistema de PORTAS e CHAVES
Copiar prefab de um projeto e enviar para outro!!
Unity + Photon 2
[TUTORIAL] Acessar o objeto pai de algum hit.
[TUTORIAL] Salvando e carregando dados com serialização (Parte 1)
ERRO: Falha ao inicializar mecanismo de armazenamento de persistência
[TUTORIAL] Script de Spawn Aleatório
Tamanho aleatorio sprite
Dúvida sobre PlayerPrefs
Como criar um offset fluido na Unity?
Cor e transparencia de um objeto
Problema na rotação da Bicicleta
expotaçao blender para unity
Sistema de ataque com cooldown e classe Time da unity.
Angulo unity
[EXEMPLOS DE CODIGO] Uso ou Para Aprendizagem
[RESOLVIDO] - Blender - Deixar a Face do Cubo pra cima
Interrogação beta, jogo de puzzle 3D
[TUTORIAL] Movimentação SQM (2D)
Duvida C#
sistema de dialogo mostra o html sendo escrito (Unity3D)
não consigo andar, pular ou mover a camera no meu jogo
Otimização
Alguem sabe resolver esse erro Gradle build failed?
Touch Drag
estou tentando rotacionar o personagem porem ele não segue a direção certa
[RESOLVIDO] alguém sabe resolver o erro Unable to Load Firebase?
Unity remote 5
[RESOLVIDO] Como retirar esses T que está do local onde tem textos?
[RESOLVIDO] Detectar qual lado da tela estou arrastando o dedo no touch?
Existe algo parecido com Shaders Graph ?
[Duvida] como implementar limite vector2
[RESOLVIDO] Bicicleta no Unity
Problema com um script de som
[RESOLVIDO] Efeito de vento Unity 2D
Como criar uma capa
Help em exibir informações do personagem na UI do game
[TUTORIAL] Fazer objeto se mover em pontos diferentes (Serve para 2D e 3D).
Texto Sumir e tela apagar Gradativamente
O Botão do Canvas não mostra os Métodos do Script que está no Objeto
[TUTORIAL] Desbloqueio e Escolha de Personagens.
erro IndexOutOfRangeException: Index was outside the bounds of the array.
Movimentação de x para Y
Unity 2d Aspect ratio
Sistema de tiro na diagonal em jogo 2D
Precisa-se Programador Unity - Trabalho remunerado
Estatisticas Gerais dentro do Jogo?
Bug(???) no AudioSource
Sniper Modelo 3D
Teaser da Gameplay de mais um jogo. Bio Weapons Z
FBX não gera sombra
Procuro programador para JOGO DE TERROR
Qual servidor com melhor custo-benefício?
Como pegar 2 Touchs e posicoes na tela
Doações na Google Play
Exercícios - iniciantes
Jogo 2D Personagem atravessa o chão quando Pula muito alto
(Dúvida) Criação de gráficos em um jogo na Unity
Meu personagem ignora as colisoes laterais dos tilemap 2D
Diferença de "Vector3" e "new Vector3"
Como posicionar a torre no mapa isométrico.
SISTEMA DE SAVE
[RESOLVIDO] Problema ao dar build em um projeto com Firebase unity
[RESOLVIDO] mascara 3D (unity3D)
È certo ver tutorial ensinando a fazer um script especifico?
Ontem à(s) 3:42 pm
Ontem à(s) 11:49 am
Ontem à(s) 11:47 am
Ter Out 19, 2021 10:48 pm
Ter Out 19, 2021 7:54 pm
Ter Out 19, 2021 4:19 pm
Ter Out 19, 2021 11:20 am
Ter Out 19, 2021 12:01 am
Seg Out 18, 2021 6:39 pm
Seg Out 18, 2021 5:51 pm
Seg Out 18, 2021 5:45 pm
Dom Out 17, 2021 11:56 pm
Dom Out 17, 2021 11:29 pm
Sab Out 16, 2021 5:55 pm
Sab Out 16, 2021 3:38 pm
Sex Out 15, 2021 9:57 pm
Sex Out 15, 2021 6:35 pm
Sex Out 15, 2021 2:31 pm
Sex Out 15, 2021 10:52 am
Qui Out 14, 2021 10:50 pm
Qui Out 14, 2021 2:50 am
Qua Out 13, 2021 12:07 pm
Qua Out 13, 2021 3:54 am
Ter Out 12, 2021 10:48 pm
Ter Out 12, 2021 10:46 pm
Seg Out 11, 2021 7:57 pm
Seg Out 11, 2021 5:44 pm
Seg Out 11, 2021 5:42 pm
Seg Out 11, 2021 10:14 am
Dom Out 10, 2021 8:22 pm
Dom Out 10, 2021 9:56 am
Sab Out 09, 2021 6:55 pm
Sab Out 09, 2021 6:11 pm
Sab Out 09, 2021 2:00 pm
Sab Out 09, 2021 12:33 am
Sab Out 09, 2021 12:24 am
Sex Out 08, 2021 8:19 pm
Sex Out 08, 2021 8:08 pm
Sex Out 08, 2021 2:00 pm
Qui Out 07, 2021 8:03 pm
Qui Out 07, 2021 1:47 pm
Qua Out 06, 2021 3:26 pm
Ter Out 05, 2021 9:01 pm
Ter Out 05, 2021 2:58 pm
Ter Out 05, 2021 2:45 pm
Ter Out 05, 2021 2:22 pm
Seg Out 04, 2021 7:59 pm
Seg Out 04, 2021 6:21 pm
Seg Out 04, 2021 6:20 pm
Dom Out 03, 2021 10:03 am
Sab Out 02, 2021 9:28 pm
Sab Out 02, 2021 7:47 pm
Sab Out 02, 2021 8:57 am
Sex Out 01, 2021 10:14 pm
Sex Out 01, 2021 4:10 pm
Sex Out 01, 2021 12:39 pm
Qui Set 30, 2021 9:20 pm
Qui Set 30, 2021 8:31 pm
Qui Set 30, 2021 3:31 pm
Qui Set 30, 2021 3:09 pm
Qui Set 30, 2021 12:41 pm
Qua Set 29, 2021 7:54 pm
Qua Set 29, 2021 6:30 pm
Qua Set 29, 2021 12:41 pm
Qua Set 29, 2021 8:28 am
Ter Set 28, 2021 8:34 pm
Ter Set 28, 2021 8:16 pm
Ter Set 28, 2021 7:34 pm
Ter Set 28, 2021 6:42 pm
Ter Set 28, 2021 10:34 am
Ter Set 28, 2021 9:36 am
Ter Set 28, 2021 8:09 am
Seg Set 27, 2021 11:32 am
Seg Set 27, 2021 5:53 am
Dom Set 26, 2021 7:48 pm
Dom Set 26, 2021 5:19 pm
Dom Set 26, 2021 1:14 pm
Sab Set 25, 2021 5:50 pm
Sab Set 25, 2021 10:04 am
Sab Set 25, 2021 8:44 am
Sex Set 24, 2021 9:43 pm
Sex Set 24, 2021 5:11 pm
Sex Set 24, 2021 5:09 pm
Sex Set 24, 2021 5:07 pm
Sex Set 24, 2021 4:30 pm
Sex Set 24, 2021 4:30 pm
Sex Set 24, 2021 4:23 pm
Sex Set 24, 2021 4:12 pm
Sex Set 24, 2021 4:10 pm
Sex Set 24, 2021 1:33 pm
Sex Set 24, 2021 8:00 am
Qui Set 23, 2021 5:58 pm
Qui Set 23, 2021 3:51 pm
Qui Set 23, 2021 2:59 pm
Qui Set 23, 2021 2:32 pm
Qui Set 23, 2021 1:47 pm
Qui Set 23, 2021 7:30 am
Qua Set 22, 2021 5:03 pm
Qua Set 22, 2021 11:29 am
capim22
Fagner
Fagner
jhonih00010
eadev99
Crash Psycho
Joana
nando07
leozinhobx
gustakegamer@gmail.com
kalielson
Kayke_27
fernando.OVS
DuduBertol
WesFarias
Fagner
igorobm
Crash Psycho
Claus13
classicandsimple
AGAMENOM
ViniciusTKH
igorobm
stratengine
crazylagg
igorobm
edu63
edu63
edsonvinicius76
Xavier
lauderson
igorobm
igorobm
Fagner
marcussant
FelipeSouza11
igorobm
igorobm
MayLeone
kessisdiones
BBFree
MayLeone
MayLeone
MayLeone
MayLeone
Fagner
Pkneves
stratengine
stratengine
Rangel Oblivion
WLCS22
Rangel Oblivion
edsonvinicius76
Pokedlg
alnmg
Charlesoff
Xavier
kessisdiones
joaozinpedrin
Fagner
kessisdiones
joaozinpedrin
kessisdiones
Atho
GustavoPeky2
g
leleo
pdsimulador
Prandini
Xavier
tasf
edsonvinicius76
TIKO
TIKO
TIKO
TIKO
edsonvinicius76
nando07
sidney oliveira
Crash Psycho
Kayke_27
TIKO
TIKO
Patrick
Fagner
bertarele
Fagner
Fagner
Fagner
Rangel Oblivion
ronasser
poyser
Play3rAleatori0
jeronimo Collares
Yinzy
alnmg
kessisdiones
alnmg
Fagner

[TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

3 participantes

Ir para baixo

TUTORIAL [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por marcos4503 Qua Jul 19, 2017 6:03 am

Oi galera! A um tempo atrás eu fiz um tópico com 43 dicas de otimização. Ele pode ser encontrado aqui:
https://www.schultzgames.com/t4985-tutorial-43-otimas-dicas-de-otimizacao-para-jogos-mobile-android
Desde aquele tópico, fui aprendendo novas maneiras de otimizar o jogo. Dessa vez mais focado em gargalos e em malhas animadas. Então vamos lá.

1 - Reduzir OU EVITAR o uso do componente Outline e Shadow
Spoiler:

Tá.. eu sei que esses componentes deixam o visual do texto mais bonito e tal, mais é sério, eles causam gargalos enormes em mobile, se abusados. A minha dica aqui é que evite o máximo o uso deles. O motivo é que esses componentes infelizmente são mal tratados pela Unity, foram feitos de uma maneira bem... "Marromeno". Eles geram muitas draw calls porque fazem o componente ser processador mais algumas vezes pra gerar as sombras ou linhas. Você pode colocar linhas pretas ao redor de imagens, através do photoshop. Tente usa-los somente em TEXTOS que precisam de um certo destaque pra não ficarem feios, como esse exemplo:

[TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) Six-Guns_WP_37

Observe os textos das moedas e das estrelas de sherif, esse é um bom uso desses componentes. Tambem evite de usa-los ao mesmo tempo. Sempre use o Outline OU Shadow. Nunca os dois ao mesmo tempo.

2 - Evitar alteração em tempo real no alpha de componentes da UI
Spoiler:

Alterações em tempo real(mathf, animator, etc..) no alpha de imagens, pode gerar gargalos imensos no jogo. É sério. Tente evitar de ficar alterando o alpha de imagens e outros objetos enquanto o jogo roda. Não quer dizer que você não possa usar isso, mais use de uma maneira cautelosa, sempre teste tudo.

3 - Usar somente uma malha para personagens
Spoiler:

Tente usar somente uma malha para seus personagens animados. A questão aqui é que tudo que possui uma animação vinda de programas de modelação, possui um componente chamado "Skinned Mesh Renderer". Esse é o componente responsavel por processar as deformações de sua malha. Quanto menos desses componentes estiverem sendo processados simultaneamente, melhor para a CPU.

4 - Reduzir qualidade das animações dos perssonagens que não são os principais
Spoiler:

Essa tambem é uma boa maneira de melhorar o desempenho se você possui muitos personagens na tela. Vá até o componente "Skinned Mesh Renderer" do personagem, e altere o componente chamado "Quality" para 2 Bones ou 1 Bones. Quanto menos bones, pior é a qualidade. Só tenha em mente que 1 Bone vai deixar as animações do personagem, meio quadradas.

5 - Configurar o Terrain corretamente
Spoiler:

Ah.. o Terrain.. No último tópico eu meio que dei uma detonada nele.. Mais então, estava eu indo refazer o cenario do meu jogo e resolvi dar uma chance pra ele, então descobri que se bem otimizado, ele pode ser uma boa. Então aqui vão algumas dicas pra quem quer usa-lo.

- Evite usar Terrenos muito grandes (acima de 600x600)
- Evite usar mais de 3 texturas para pintar o terreno (Usar 4 ou mais texturas começa a afetar o processamento bem negativamente)
- Evite usar muita grama.. Se você vai colocar a grama do Terrain, coloque só algumas apenas dando cliques, para isso é so reduzir o tamanhodo pincel para 1.

Agora, as configurações para ele:

- Pixel error: deixe em 200
Pixel error reduz a quantidade de vertices do terreno e tambem faz um tipo de LOD em montanhas que estão distantes pra reduzir a quantidade de vertices a serem processadas. o terreno vai ficar um pouquiiiinho mais feio, mais vai ser mais rapido para processar.

- Base map dist.: Deixe em 25
Essa é o tamanho da area que processa corretamente a textura do terreno, no caso, o que estiver a mais de 25 metros da camera, vai ficar meio borrado, pra ficar mais leve.

- Material: Deixe em Built In Legacy Diffuse
Esse é o material mais leve do terrain.

- Detail distance: Deixe em qualquer valor abaixo de 80
A distancia que a grama começa a ser renderizada

- Collect detail patches: Deixe ativado
Esse componente, quando ativado faz com que os dados do terreno sejam armazenados na memoria RAM sempre que não estão sendo vistos, assim quando voltarem a serem vistos, apenas são renderizados, enquanto que se estiver desabilitado, esses dados não são armazenados, então tudo é descontado na CPU, causando gargalos. Tenha em mente que dependendo do terreno, esse componente pode aumentar o consumo de RAM consideravelmente.

- Terrain Width, Lenght e Height: Deixe todos igual ou abaixo de 600
Esse é o tamanho do terreno. Não é proibido fazer algo acima de 600, mais deve ser feito com cautela, eu testei somente terrenos até o tamanho de 600, e não tive problemas com eles.

- Heightmap Resoltion: Deixe igual ou abaixo de 129
Esse é o tamanho da textura que coordena o mapa de alturas do seu terreno. Tente deixar num valor baixo pra não ficar pesado. Cuidado: Se você já modelou seu terreno, e fizer alguma alteração aqui, a modelagem do terreno vai ser resetada.

- Detail resolution: Deixe igual ou abaixo de 256
Nivel da resolução de detalhes do terreno

- Detail resolution per patch: Deixe igual ou abaixo de 8
Quantidade de detalhes em cada patch do terreno.

- Control texture resolution: Deixe igual ou abaixo de 256

- Base texture resolution: Deixe igual ou abaixo de 1024
Nivel de detalhe da textura do terreno em si.

Pra finalizar, tente usar texturas menores ou iguais a 512 de resolução em seus terrenos, e não deixe de usar o Occlusion Culling nos terrenos tambem, isso ajuda a aliviar o processamento de vertices. Foi executando essas dicas que eu consegui usar terrenos em meu jogo, sem afetar negativamente o desempenho. Os terrenos estão bem baratos para o processamento em meu jogo.


6 - Mais um shader leve para o processamento
Spoiler:

Quem viu o ultimo tópico, sabe que eu recomendei o Difusse como shader leve. Mais, ele é o segundo shader mais leve. Ele ainda calcula processamento de varias luzes. Então agora vou recomendar o shader que combina beleza e desempenho e se sobresai sobre os outros. O "Vertex Lit (Only Directional Light)" é o shader mais leve depois do Diffuse, que calcula luz, mais ele só suporta no maximo uma luz direcional. Pra resumir, aqui estão os shaders de mobile. Os primeiros shaders são os mais leves.

- Unlit (Sem luz)
- Vertex Lit (Sem luz)
- Vertex Lit (Only Directional Light)
- Diffuse
- Bumped Diffuse (Suporta normal map)
- Bumped Specular (Only Direcional Light)
- Bumped Specular


7 - Reduzir os calculos de física
Spoiler:

Bom.. SE você possui um jogo de tiro, ou ação ou similares, não tem porque ter uma fisica sendo simulada a 50 vezes por segundo. Você pode reduzir para 30 vezes por segundo. Ainda é um valor bom, e que não é notavel a olho nú, ainda é um valor rapido. Você só deve notar uma diferença BEEEEEEEEEEEM pequena em calculos de suavização, como Mathf.Lerp, Vector.Lerp, Quaternion.Lerp e etc.

Para fazer isso, vá em Edit > Project Settings > Time. Altere o campo "Fixed Timestep" para "0.03", altere o "Maximum Allowed Time" para "0.04".

8 - Cuidado ao usar Coroutines
Spoiler:

No ultimo tópico eu disse que elas podem ajudar muito, e realmente, ajudam bastante, mais você sempre deve testa-las quando as cria. Essas rotinas, geram alocações no garbage collector, então, sempre fique atento em como seus scripts estão se saindo pelo Profile.

Outra dica legal tambem: Você pode executar verificações if pelas coroutines, de tempos em tempos. Ao inves de jogar uma verificação como "Vector3.Distance", direto na void Update, você pode colocar essa verificação em uma Rotina, e programa-la para ser verificada a cada 0.3 segundos por exemplo. É uma forma leve e que não afeta tanto assim no processamento.


Isso é tudo pe-pe-pessoal!
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 3942
REPUTAÇÃO : 578
Idade : 22
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras : [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) Aad8pUi

http://windsoft.xyz

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por Édipo Qua Jul 19, 2017 8:31 pm

no caso de um jogo que preciso de um mapa bem brande mais ou menos uns 3000 de tamanho, é melhor usar 1 de 3000 ou vários de no máximo 600 como vc disse?

Édipo
MembroAvançado

Masculino PONTOS : 2817
REPUTAÇÃO : 44
Idade : 33
Respeito as regras : [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) WvDYdlf

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por marcos4503 Qua Jul 19, 2017 8:34 pm

É bom tambem dividir o terrain, se ele for muito grande, assim voce pode desativar terrenos muito distantes pra poupar processamento
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 3942
REPUTAÇÃO : 578
Idade : 22
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras : [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) Aad8pUi

http://windsoft.xyz

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por Édipo Qui Jul 20, 2017 10:03 am

@marcos4503 escreveu:É bom tambem dividir o terrain, se ele for muito grande, assim voce pode desativar terrenos muito distantes pra poupar processamento
ok
muito obrigado

Édipo
MembroAvançado

Masculino PONTOS : 2817
REPUTAÇÃO : 44
Idade : 33
Respeito as regras : [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) WvDYdlf

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por Crash Psycho Ter Maio 21, 2019 8:24 am

@marcos4503 escreveu:Oi galera! A um tempo atrás eu fiz um tópico com 43 dicas de otimização. Ele pode ser encontrado aqui:
https://www.schultzgames.com/t4985-tutorial-43-otimas-dicas-de-otimizacao-para-jogos-mobile-android
Desde aquele tópico, fui aprendendo novas maneiras de otimizar o jogo. Dessa vez mais focado em gargalos e em malhas animadas. Então vamos lá.

1 - Reduzir OU EVITAR o uso do componente Outline e Shadow
Spoiler:

Tá.. eu sei que esses componentes deixam o visual do texto mais bonito e tal, mais é sério, eles causam gargalos enormes em mobile, se abusados. A minha dica aqui é que evite o máximo o uso deles. O motivo é que esses componentes infelizmente são mal tratados pela Unity, foram feitos de uma maneira bem... "Marromeno". Eles geram muitas draw calls porque fazem o componente ser processador mais algumas vezes pra gerar as sombras ou linhas. Você pode colocar linhas pretas ao redor de imagens, através do photoshop. Tente usa-los somente em TEXTOS que precisam de um certo destaque pra não ficarem feios, como esse exemplo:

[TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) Six-Guns_WP_37

Observe os textos das moedas e das estrelas de sherif, esse é um bom uso desses componentes. Tambem evite de usa-los ao mesmo tempo. Sempre use o Outline OU Shadow. Nunca os dois ao mesmo tempo.

2 - Evitar alteração em tempo real no alpha de componentes da UI
Spoiler:

Alterações em tempo real(mathf, animator, etc..) no alpha de imagens, pode gerar gargalos imensos no jogo. É sério. Tente evitar de ficar alterando o alpha de imagens e outros objetos enquanto o jogo roda. Não quer dizer que você não possa usar isso, mais use de uma maneira cautelosa, sempre teste tudo.

3 - Usar somente uma malha para personagens
Spoiler:

Tente usar somente uma malha para seus personagens animados. A questão aqui é que tudo que possui uma animação vinda de programas de modelação, possui um componente chamado "Skinned Mesh Renderer". Esse é o componente responsavel por processar as deformações de sua malha. Quanto menos desses componentes estiverem sendo processados simultaneamente, melhor para a CPU.

4 - Reduzir qualidade das animações dos perssonagens que não são os principais
Spoiler:

Essa tambem é uma boa maneira de melhorar o desempenho se você possui muitos personagens na tela. Vá até o componente "Skinned Mesh Renderer" do personagem, e altere o componente chamado "Quality" para 2 Bones ou 1 Bones. Quanto menos bones, pior é a qualidade. Só tenha em mente que 1 Bone vai deixar as animações do personagem, meio quadradas.

5 - Configurar o Terrain corretamente
Spoiler:

Ah.. o Terrain.. No último tópico eu meio que dei uma detonada nele.. Mais então, estava eu indo refazer o cenario do meu jogo e resolvi dar uma chance pra ele,  então descobri que se bem otimizado, ele pode ser uma boa. Então aqui vão algumas dicas pra quem quer usa-lo.

- Evite usar Terrenos muito grandes (acima de 600x600)
- Evite usar mais de 3 texturas para pintar o terreno (Usar 4 ou mais texturas começa a afetar o processamento bem negativamente)
- Evite usar muita grama.. Se você vai colocar a grama do Terrain, coloque só algumas apenas dando cliques, para isso é so reduzir o tamanhodo pincel para 1.

Agora, as configurações para ele:

- Pixel error: deixe em 200
Pixel error reduz a quantidade de vertices do terreno e tambem faz um tipo de LOD em montanhas que estão distantes pra reduzir a quantidade de vertices a serem processadas. o terreno vai ficar um pouquiiiinho mais feio, mais vai ser mais rapido para processar.

- Base map dist.: Deixe em 25
Essa é o tamanho da area que processa corretamente a textura do terreno, no caso, o que estiver a mais de 25 metros da camera, vai ficar meio borrado, pra ficar mais leve.

- Material: Deixe em Built In Legacy Diffuse
Esse é o material mais leve do terrain.

- Detail distance: Deixe em qualquer valor abaixo de 80
A distancia que a grama começa a ser renderizada

- Collect detail patches: Deixe ativado
Esse componente, quando ativado faz com que os dados do terreno sejam armazenados na memoria RAM sempre que não estão sendo vistos, assim quando voltarem a serem vistos, apenas são renderizados, enquanto que se estiver desabilitado, esses dados não são armazenados, então tudo é descontado na CPU, causando gargalos. Tenha em mente que dependendo do terreno, esse componente pode aumentar o consumo de RAM consideravelmente.

- Terrain Width, Lenght e Height: Deixe todos igual ou abaixo de 600
Esse é o tamanho do terreno. Não é proibido fazer algo acima de 600, mais deve ser feito com cautela, eu testei somente terrenos até o tamanho de 600, e não tive problemas com eles.

- Heightmap Resoltion: Deixe igual ou abaixo de 129
Esse é o tamanho da textura que coordena o mapa de alturas do seu terreno. Tente deixar num valor baixo pra não ficar pesado. Cuidado: Se você já modelou seu terreno, e fizer alguma alteração aqui, a modelagem do terreno vai ser resetada.

- Detail resolution: Deixe igual ou abaixo de 256
Nivel da resolução de detalhes do terreno

- Detail resolution per patch: Deixe igual ou abaixo de 8
Quantidade de detalhes em cada patch do terreno.

- Control texture resolution: Deixe igual ou abaixo de 256

- Base texture resolution: Deixe igual ou abaixo de 1024
Nivel de detalhe da textura do terreno em si.

Pra finalizar, tente usar texturas menores ou iguais a 512 de resolução em seus terrenos, e não deixe de usar o Occlusion Culling nos terrenos tambem, isso ajuda a aliviar o processamento de vertices. Foi executando essas dicas que eu consegui usar terrenos em meu jogo, sem afetar negativamente o desempenho. Os terrenos estão bem baratos para o processamento em meu jogo.


6 - Mais um shader leve para o processamento
Spoiler:

Quem viu o ultimo tópico, sabe que eu recomendei o Difusse como shader leve. Mais, ele é o segundo shader mais leve. Ele ainda calcula processamento de varias luzes. Então agora vou recomendar o shader que combina beleza e desempenho e se sobresai sobre os outros. O "Vertex Lit (Only Directional Light)" é o shader mais leve depois do Diffuse, que calcula luz, mais ele só suporta no maximo uma luz direcional. Pra resumir, aqui estão os shaders de mobile. Os primeiros shaders são os mais leves.

- Unlit (Sem luz)
- Vertex Lit (Sem luz)
- Vertex Lit (Only Directional Light)
- Diffuse
- Bumped Diffuse (Suporta normal map)
- Bumped Specular (Only Direcional Light)
- Bumped Specular


7 - Reduzir os calculos de física
Spoiler:

Bom.. SE você possui um jogo de tiro, ou ação ou similares, não tem porque ter uma fisica sendo simulada a 50 vezes por segundo. Você pode reduzir para 30 vezes por segundo. Ainda é um valor bom, e que não é notavel a olho nú, ainda é um valor rapido. Você só deve notar uma diferença BEEEEEEEEEEEM pequena em calculos de suavização, como Mathf.Lerp, Vector.Lerp, Quaternion.Lerp e etc.

Para fazer isso, vá em Edit > Project Settings > Time. Altere o campo "Fixed Timestep" para "0.03", altere o "Maximum Allowed Time" para "0.04".

8 - Cuidado ao usar Coroutines
Spoiler:

No ultimo tópico eu disse que elas podem ajudar muito, e realmente, ajudam bastante, mais você sempre deve testa-las quando as cria. Essas rotinas, geram alocações no garbage collector, então, sempre fique atento em como seus scripts estão se saindo pelo Profile.

Outra dica legal tambem: Você pode executar verificações if pelas coroutines, de tempos em tempos. Ao inves de jogar uma verificação como "Vector3.Distance", direto na void Update, você pode colocar essa verificação em uma Rotina, e programa-la para ser verificada a cada 0.3 segundos por exemplo. É uma forma leve e que não afeta tanto assim no processamento.


Isso é tudo pe-pe-pessoal!

Na parte de Shader vc fala que " O "Vertex Lit (Only Directional Light)" é o shader mais leve depois do Diffuse".
Depois mostra uma Lista dizendo "Os primeiros shaders são os mais leves",Bom eu estou querendo usar o Unlit, mas ele é "diferente",
Unlit Color:
[TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) QwMsskU
,


Não sei se ele é novo pois estou usando a Unity 2019.1, como é para Mobile eu quero um shader simples,sem textura,que possa me dar desempenho.


Uma dúvida,poderia me dizer para que serve aquela caixinha que eu marquei?>_<.


Obgd ^^
Crash Psycho
Crash Psycho
MembroAvançado

Masculino PONTOS : 2485
REPUTAÇÃO : 128
Idade : 21
Áreas de atuação : unity 3D...
Game Design .
Modelador 3d, uso o blender.
se aperfeiçoando na unity 3D.

Respeito as regras : [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) WvDYdlf

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por marcos4503 Ter Maio 21, 2019 2:20 pm

O Unlit não renderiza texturas e nem calcula efeitos de luzes. Então, seu personagem vai ficar com um aspecto beeeem esquisito, como se fosse um desenho sem sombreamento nem nada. Normalmente esse unlit é usado pra particulas e casos bem específicos. Recomendo usar o VertexLit já que quer desempenho. Você não precisa necessariamente associar uma textura a ele. Caso queira alterar a cor, você pode usar o Difuse (pois ele tem uma variavel pra alterar a cor).

Se eu não me engano, ao marcar essa caixa, todas as faces da sua malha ainda serão renderizadas, mesmo que você coloque a câmera na posição oposta das normals.
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 3942
REPUTAÇÃO : 578
Idade : 22
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras : [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) Aad8pUi

http://windsoft.xyz

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por Crash Psycho Ter Maio 21, 2019 2:39 pm

@marcos4503 escreveu:O Unlit não renderiza texturas e nem calcula efeitos de luzes. Então, seu personagem vai ficar com um aspecto beeeem esquisito, como se fosse um desenho sem sombreamento nem nada. Normalmente esse unlit é usado pra particulas e casos bem específicos. Recomendo usar o VertexLit já que quer desempenho. Você não precisa necessariamente associar uma textura a ele. Caso queira alterar a cor, você pode usar o Difuse (pois ele tem uma variavel pra alterar a cor).

Se eu não me engano, ao marcar essa caixa, todas as faces da sua malha ainda serão renderizadas, mesmo que você coloque a câmera na posição oposta das normals.
Vlw man!

Sua sabedoria me fascina Smile
Crash Psycho
Crash Psycho
MembroAvançado

Masculino PONTOS : 2485
REPUTAÇÃO : 128
Idade : 21
Áreas de atuação : unity 3D...
Game Design .
Modelador 3d, uso o blender.
se aperfeiçoando na unity 3D.

Respeito as regras : [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) WvDYdlf

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por marcos4503 Ter Maio 21, 2019 5:22 pm

Muito obrigado haha!
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 3942
REPUTAÇÃO : 578
Idade : 22
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras : [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) Aad8pUi

http://windsoft.xyz

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste fórum
Você não pode responder aos tópicos