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:
Duvida em customização de carro na unity
Tutorial Como Fazer Uma Chama de Vela Com Movimento Natural Unity
[Jogo em andamento] The Legends of Koai
Alguém pode ajuda a fazer sistema de destruir e construir?
Terreno sumindo
[ASSET] Modelo 3d guitarra gibson firebird "low poly" e outros...
Alguém conhece algum tutorial para criar um jogo parecido com esse na Unity?
como fazer um sistema de captura igual de pokemon generations
Como posso chamar o Cursor do Mouse no script?
[TUTORIAL] Inventario com ScritableObject parte 2
Galera como posso fazer um sistema de combo no mobile ?
duvida
COMO EU POSSO FAZER MEU PERSONAGEM FICAR AGACHADO ENQUANTO EU APERTO O BOTÃO
[PROBLEMA] First Person Controller script não reproduz sons de passo
[TUTORIAL] Sistema COMPLETO de câmeras
Problema em causar dano no player
Como simular um segundo controle no Unity?
Alguém pode me ajuda a coloca animação quando anda?
Erro Movimentação RPG
Unity ML-Agents
Forme Mais Palavras (disponível na Play Store)
PLANECAOS Offline Tiro FPS - Android
Dúvida sobre implementação de sistema de criar/editar mapa unity/unreal
[____ASSET____] MS Vehicle System (FREE VERSION)
Onde foi parar Input Debugger no Unity?
Referência nula em script da Unity
[MAKING-OF] Bastidores da criação do jogo The Hero of Krintau!
[JOGO MOBILE] The Hero of Krintau (Gratuito na Play Store!)
Verificar se a versao do jogo é igual a da Play Store
sistema de motocicleta
Como posso criar um sistema de atacar?
Player se movimenta em direção diferente da posição da camera
PlayerPrefs salva SetActive??
Documentações, Livros e Tutoriais gratuitos... Extensa gama de recursos
TEXTURIZAÇÃO DE CENARIO GRANDE | TECNICA
Girar arma junto com personagem para ele so atacar pela frente !
Erro Unity 2019.3.14f1
[PESQUISA] Pra que plataforma você prefere esse estilo de jogo?
Água no unity 2019.3
COMO SALVAR O PLAYER QUANDO ELE TIVER DESATIVO OU ATIVADO??
Como adiciono um SOM neste script de pulo?
[TUTORIAL] Animação customizável (Por scripts)
Como posso criar um sistema de direção para meus ataques.
pulo com botao UI
Não Consigo Fazer Alterações Em Transform/Sprite Renderer Quando Em Exexução
Como definir limites de zoom para um objeto inspecionado?
[____COLABORE COM O FÓRUM____] Doação para a renovação do domínio
Proposta de Parceria em Belo Horizonte
2 Objetos no mesmo spawner ao mesmo tempo
Pausar o cronômetro
Problemas com fisica
Trailer do jogo Project Lazarus
Unity 2018.2.17 - PlayMode não funciona animações
Força a um objeto numa lista
problemas com celulares android grande
Variável estática que pode ser consultada por todos - Unity Photon
Como fazer a pontuação aparecer no menu?
Melhorar o desempenho do URP no Android
Banco Thief (Assaltador de Banco)-Android-
Como faço para que meu personagem ao subir em um lugar bem íngreme ele escorregue?
Como posso deixar o fogo da vela mais realista?
COMO FAZER COLISÃO COM CAIXAS TIPO OS PUZZLES DO PATETA E MAX DO SNES?
URP Unity em Android
Nano - Jogo de Estratégia para Android
[TUTORIAL] Teleporte de camera em sequencia com tempo (cutscene)
Movimentaçao por SQM / UNITY 2D
Como Modelar O Corcovado Rio De Janeiro No sketchup Game De Mundo Aberto Artigo 157
Como posso substituir um arquivo já feito?
onde eu encontro o wrap Mode da animação? pfv,preciso parar de dar loop
Limite Máximo de tamanho de mapa na Unity?
[TUTORIAL] Ressetar parametros do Animator após executar animação ( Unity 5 )
FPS KIT 1.0 - EM DESENVOLVIMENTO
Como faz a câmera seguir e gira em torno do jogador
[TUTORIAL] Cronometro simples com segundos e minutos
Timer
Problema ao destruir Clone de um Prefab
Bom dia, erro invisível como resolver? Erro -> [15:32:11]
Transmitir Obejto atravez do click do mouse
Ola sou programador e preciso da sua ajuda!!
Invencível
Personagem invisivel
Armazenar textos do usuario.
C# duvidas sobre como construir um script em arvore
Timer para mudar de câmera
ERRO AO TENTAR DAR PLAY NO JOGO
Vídeo com tela branca no Simmer
Modelo feito no blender e triangular faces
Aparecer Texto por um Certo tempo
[RESOLVIDO] Reiniciar o cronometro ao responder uma questão
[TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
MENU DE SELEÇÃO DE FASES
Sobre Criação e Execução de Cutscene
[TUTORIAL] Joystick virtual para mobile
Como gravar o nome de um personagem inserido pelo usuário no unity
Como fazer um botão Joystick que controle o First Person Controller?
[TUTORIAL] FPS Controller com corpo completo!
[RESOLVIDO] Executar uma ação somente quando o player adquirir um item
ALGUÉM INTERESSADO EM DESENVOLVER UM KIT THIRD PERSON?
Hoje à(s) 5:45 pm
Hoje à(s) 5:14 pm
Hoje à(s) 5:10 pm
Hoje à(s) 4:22 pm
Hoje à(s) 3:37 pm
Hoje à(s) 1:26 pm
Hoje à(s) 12:04 pm
Hoje à(s) 12:09 am
Ontem à(s) 5:45 pm
Ontem à(s) 4:18 pm
Ontem à(s) 2:37 pm
Ontem à(s) 11:33 am
Ontem à(s) 11:05 am
Qui Maio 28, 2020 9:29 pm
Qui Maio 28, 2020 9:05 pm
Qui Maio 28, 2020 6:49 pm
Qui Maio 28, 2020 6:01 pm
Qui Maio 28, 2020 5:21 pm
Qui Maio 28, 2020 4:44 pm
Qui Maio 28, 2020 2:36 pm
Qui Maio 28, 2020 10:58 am
Qui Maio 28, 2020 5:02 am
Qua Maio 27, 2020 11:59 pm
Qua Maio 27, 2020 10:42 pm
Qua Maio 27, 2020 9:59 pm
Qua Maio 27, 2020 8:52 pm
Qua Maio 27, 2020 7:03 pm
Qua Maio 27, 2020 7:02 pm
Qua Maio 27, 2020 6:52 pm
Qua Maio 27, 2020 5:13 pm
Qua Maio 27, 2020 5:12 pm
Qua Maio 27, 2020 4:34 pm
Qua Maio 27, 2020 4:04 pm
Qua Maio 27, 2020 10:44 am
Ter Maio 26, 2020 10:22 pm
Ter Maio 26, 2020 5:56 pm
Ter Maio 26, 2020 5:28 pm
Ter Maio 26, 2020 5:21 pm
Ter Maio 26, 2020 5:16 pm
Ter Maio 26, 2020 4:44 pm
Ter Maio 26, 2020 2:06 pm
Seg Maio 25, 2020 11:39 pm
Seg Maio 25, 2020 7:31 pm
Seg Maio 25, 2020 2:04 pm
Seg Maio 25, 2020 12:58 pm
Seg Maio 25, 2020 11:02 am
Dom Maio 24, 2020 8:21 pm
Dom Maio 24, 2020 7:13 pm
Dom Maio 24, 2020 7:05 pm
Dom Maio 24, 2020 5:03 pm
Dom Maio 24, 2020 9:04 am
Sab Maio 23, 2020 4:45 pm
Sab Maio 23, 2020 2:04 pm
Sab Maio 23, 2020 11:40 am
Sab Maio 23, 2020 9:37 am
Sex Maio 22, 2020 8:33 pm
Sex Maio 22, 2020 2:32 pm
Sex Maio 22, 2020 3:46 am
Qui Maio 21, 2020 5:38 pm
Qui Maio 21, 2020 4:52 pm
Qui Maio 21, 2020 3:32 pm
Qui Maio 21, 2020 9:42 am
Qui Maio 21, 2020 2:40 am
Qui Maio 21, 2020 12:41 am
Qua Maio 20, 2020 5:52 pm
Qua Maio 20, 2020 5:05 pm
Qua Maio 20, 2020 2:42 pm
Qua Maio 20, 2020 2:12 pm
Qua Maio 20, 2020 1:05 pm
Ter Maio 19, 2020 7:04 pm
Ter Maio 19, 2020 3:59 pm
Ter Maio 19, 2020 10:00 am
Ter Maio 19, 2020 7:49 am
Seg Maio 18, 2020 10:37 pm
Seg Maio 18, 2020 10:11 pm
Seg Maio 18, 2020 6:55 pm
Seg Maio 18, 2020 6:52 pm
Seg Maio 18, 2020 5:57 pm
Seg Maio 18, 2020 4:39 pm
Seg Maio 18, 2020 4:09 pm
Seg Maio 18, 2020 12:56 pm
Seg Maio 18, 2020 10:57 am
Seg Maio 18, 2020 9:11 am
Dom Maio 17, 2020 11:04 pm
Dom Maio 17, 2020 9:34 pm
Dom Maio 17, 2020 8:02 pm
Dom Maio 17, 2020 6:26 pm
Dom Maio 17, 2020 6:25 pm
Dom Maio 17, 2020 6:02 pm
Dom Maio 17, 2020 5:53 pm
Dom Maio 17, 2020 5:35 pm
Dom Maio 17, 2020 4:07 pm
Dom Maio 17, 2020 12:11 am
Sab Maio 16, 2020 5:20 pm
Sab Maio 16, 2020 3:33 pm
Sab Maio 16, 2020 8:45 am
Sab Maio 16, 2020 8:14 am
Sab Maio 16, 2020 1:20 am
Sab Maio 16, 2020 12:01 am
HomemDoAcre
IzraeuEbW
PauloFR
streamer
deikson
PauloFR
PauloFR
Callyde Jr
glauco
hendrick22
mateusoss
Spuk
JohnRambo
AmazingDeliciano
adolfomello1
mecjo
lesgoy
streamer
Faker
Emerson Rebouças
poyser
Daniel Dória
SabrinaSantos
Edu4rdogx
FelipeSouza11
AnaSenpai
JohnRambo
JohnRambo
gtcmcsgo
Yuri Heinz
verme1311
francisco barroso
Kayke_27
Antônio T
MAZUI ESTUDIO
Portela
RafaelSquid1
RafaelSquid1
RafaelSquid1
Kayke_27
Th2y
cyaiber pank
IssacDB
gaspargnc
DougSoares
Weslley
MarcosSchultz
toatoa
AmazingDeliciano
Th2y
Valakinhas
Patrick
Samuelostgamer
maxwarnava
Valakinhas
juansup
Th2y
lesgoy
JohnRambo
Yuri Heinz
Yuri Heinz
RodrigoPrivilegium
lesgoy
lesgoy
gui78h3
Eskeleto
Yuri Heinz
PM JOGOS
gabriel alves souza
vini024
Joc
Weslley
streamer
gui78h3
gui78h3
ViniciusRemix
FelipeSouza11
IssacDB
fausto2017
bionics
maxwarnava
Bomfa
Weslley
MarcosSchultz
Diego Felix
danielPedra90
ronigleydson
MarcosSchultz
Bomfa
MarcosSchultz
MarcosSchultz
gaspargnc
gui78h3
francisco barroso
Bomfa
francisco barroso
francisco barroso
Micco
fabricadegame

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

Ir em baixo

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

Mensagem por marcos4503 em 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 : 3427
REPUTAÇÃO : 571
Idade : 21
Á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

Voltar ao Topo Ir em baixo

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

Mensagem por Édipo em 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 : 2289
REPUTAÇÃO : 40
Idade : 32
Respeito as regras : [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) WvDYdlf

Voltar ao Topo Ir em baixo

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

Mensagem por marcos4503 em 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 : 3427
REPUTAÇÃO : 571
Idade : 21
Á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

Voltar ao Topo Ir em baixo

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

Mensagem por Édipo em 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 : 2289
REPUTAÇÃO : 40
Idade : 32
Respeito as regras : [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android) WvDYdlf

Voltar ao Topo Ir em baixo

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

Mensagem por glauco em 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 ^^
glauco
glauco
MembroAvançado

Masculino PONTOS : 1871
REPUTAÇÃO : 104
Idade : 20
Áreas de atuação : unity 3D...
Level Design
aprendendo modelagem
se aperfeiçoando na unity 3D

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

Voltar ao Topo Ir em baixo

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

Mensagem por marcos4503 em 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 : 3427
REPUTAÇÃO : 571
Idade : 21
Á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

Voltar ao Topo Ir em baixo

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

Mensagem por glauco em 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
glauco
glauco
MembroAvançado

Masculino PONTOS : 1871
REPUTAÇÃO : 104
Idade : 20
Áreas de atuação : unity 3D...
Level Design
aprendendo modelagem
se aperfeiçoando na unity 3D

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

Voltar ao Topo Ir em baixo

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

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

Muito obrigado haha!
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 3427
REPUTAÇÃO : 571
Idade : 21
Á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

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum