Diferentes tamanhos de Textura afeta o desempenho do jogo?
4 participantes
Página 1 de 1
Diferentes tamanhos de Textura afeta o desempenho do jogo?
Eu sempre uso tamanho de potencia (32x32, 64x64 etc). Mas em meu jogo atual estou usando os tamanhos 256x256 e 64x64, acredito que isso não influencia no processamento de imagem.
Por exemplo: pretendo fazer texturas de cor única (ex. Preto, amarelo) com tamanho 32x32. pra ser usados em pequenos objetos.
A dúvida seria... melhor usar tudo de um tamanho só?
Por exemplo: pretendo fazer texturas de cor única (ex. Preto, amarelo) com tamanho 32x32. pra ser usados em pequenos objetos.
A dúvida seria... melhor usar tudo de um tamanho só?
dkrazor- Avançado
- PONTOS : 2574
REPUTAÇÃO : 24
Idade : 35
Áreas de atuação : Design / Programador de jogos.
Respeito as regras :
Re: Diferentes tamanhos de Textura afeta o desempenho do jogo?
De certo modo seria melhor para um sincronismo de processamento (mas isso vindo de mim é opinião), é bem provável que a engine faça suas artimanhas e deixe tudo numa boa!
Tegh- Avançado
- PONTOS : 2654
REPUTAÇÃO : 97
Idade : 23
Respeito as regras :
Re: Diferentes tamanhos de Textura afeta o desempenho do jogo?
Percebi que você possui o bom hábito de manter as texturas no formato POT Power of Two, ou seja, dimensões múltiplas de 2. Isso garante que a textura possa ser armazenada em um formato comprimido, poupando memória. Usar texturas com dimensões diferentes faz com que ela seja tratada usando formato ARGB32 em algumas plataformas, que é sem compressão e aumenta consideravelmente o consumo de memória.
Respondendo a sua pergunta, não, utilizar tamanhos diferentes não tem impacto algum no desempenho.
Mas algumas coisas precisam ser consideradas, quantidade e tamanho. Texturas com resoluções acima do necessário irão devorar sua memória de vídeo, o que dependendo da plataforma, é um recurso bem limitado.
Grandes quantidades de texturas, normalmente resultam em muitos materiais, que por sua vez produzem muitos drawcalls, esse é outro ponto que pode afetar o desempenho do seu jogo. Neste caso, uma boa prática é criar Atlas de textura, onde você junta várias texturas pequenas em uma/umas maiores, diminuindo a quantidade de Drawcalls.
Apesar de ser contra intuitivo, utilizar uma imagem maior geralmente tem uma performance melhor que usar muitas pequenas.
Imagine que você é o processador, e tem 64 objetos para aplicar texturas. cada uma delas tem 128x128px, você teria que ler na memória, passar pro sampler, e pedir pra ele desenhar a textura no objeto, depois repetir isso mais 63 vezes... Com o Atlas de 1024x1024,/Utilizei esse valor pois cabem 64 imagens de 128px em uma de 1024/ você lê na memória uma única vez, passa pro sampler, e ele usa a mesma imagem que já está no cache para desenhar a textura de todos os objetos.
Com uma única chamada -Drawcall- você desenha toda a cena. Como pode imaginar, isso reduz o tempo de acesso na memória e aumenta a performance do jogo.
Respondendo a sua pergunta, não, utilizar tamanhos diferentes não tem impacto algum no desempenho.
Mas algumas coisas precisam ser consideradas, quantidade e tamanho. Texturas com resoluções acima do necessário irão devorar sua memória de vídeo, o que dependendo da plataforma, é um recurso bem limitado.
Grandes quantidades de texturas, normalmente resultam em muitos materiais, que por sua vez produzem muitos drawcalls, esse é outro ponto que pode afetar o desempenho do seu jogo. Neste caso, uma boa prática é criar Atlas de textura, onde você junta várias texturas pequenas em uma/umas maiores, diminuindo a quantidade de Drawcalls.
Apesar de ser contra intuitivo, utilizar uma imagem maior geralmente tem uma performance melhor que usar muitas pequenas.
Imagine que você é o processador, e tem 64 objetos para aplicar texturas. cada uma delas tem 128x128px, você teria que ler na memória, passar pro sampler, e pedir pra ele desenhar a textura no objeto, depois repetir isso mais 63 vezes... Com o Atlas de 1024x1024,/Utilizei esse valor pois cabem 64 imagens de 128px em uma de 1024/ você lê na memória uma única vez, passa pro sampler, e ele usa a mesma imagem que já está no cache para desenhar a textura de todos os objetos.
Com uma única chamada -Drawcall- você desenha toda a cena. Como pode imaginar, isso reduz o tempo de acesso na memória e aumenta a performance do jogo.
Isabela- Avançado
- PONTOS : 2835
REPUTAÇÃO : 260
Idade : 24
Respeito as regras :
Re: Diferentes tamanhos de Textura afeta o desempenho do jogo?
cara 128x128 , eu uso 2048x2048px, , e são diversos materias, cada persoangem tem pelo menos 5 materiais ,, isso da drawcall pra Krlh
Re: Diferentes tamanhos de Textura afeta o desempenho do jogo?
Isabela escreveu:Percebi que você possui o bom hábito de manter as texturas no formato POT Power of Two, ou seja, dimensões múltiplas de 2. Isso garante que a textura possa ser armazenada em um formato comprimido, poupando memória. Usar texturas com dimensões diferentes faz com que ela seja tratada usando formato ARGB32 em algumas plataformas, que é sem compressão e aumenta consideravelmente o consumo de memória.
Respondendo a sua pergunta, não, utilizar tamanhos diferentes não tem impacto algum no desempenho.
Mas algumas coisas precisam ser consideradas, quantidade e tamanho. Texturas com resoluções acima do necessário irão devorar sua memória de vídeo, o que dependendo da plataforma, é um recurso bem limitado.
Grandes quantidades de texturas, normalmente resultam em muitos materiais, que por sua vez produzem muitos drawcalls, esse é outro ponto que pode afetar o desempenho do seu jogo. Neste caso, uma boa prática é criar Atlas de textura, onde você junta várias texturas pequenas em uma/umas maiores, diminuindo a quantidade de Drawcalls.
Apesar de ser contra intuitivo, utilizar uma imagem maior geralmente tem uma performance melhor que usar muitas pequenas.
Imagine que você é o processador, e tem 64 objetos para aplicar texturas. cada uma delas tem 128x128px, você teria que ler na memória, passar pro sampler, e pedir pra ele desenhar a textura no objeto, depois repetir isso mais 63 vezes... Com o Atlas de 1024x1024,/Utilizei esse valor pois cabem 64 imagens de 128px em uma de 1024/ você lê na memória uma única vez, passa pro sampler, e ele usa a mesma imagem que já está no cache para desenhar a textura de todos os objetos.
Com uma única chamada -Drawcall- você desenha toda a cena. Como pode imaginar, isso reduz o tempo de acesso na memória e aumenta a performance do jogo.
Gostei desse Atlas de textura, vou ver como usá-lo. Percebi mesmo que um cenario pequeno tem muito materiais (vindo do Sketchup), e ainda estou tendo que extrair alguns para mudar o tipo de Shader para os mais simples (Mobile Diffuse etc).
Também estou classificando os materiais por tipo. Para que eu posso reaproveita-los sempre.
Os mobiles é como fazer um jogo para PS2 na época kkkk cheio de desafios.
dkrazor- Avançado
- PONTOS : 2574
REPUTAÇÃO : 24
Idade : 35
Áreas de atuação : Design / Programador de jogos.
Respeito as regras :
Re: Diferentes tamanhos de Textura afeta o desempenho do jogo?
Vocês aí ostentando texturas, e eu aqui usando cada canal RGBA separadamente como se fosse uma textura completa.
Dkrazor, isso que vou dizer é coisa de gente maluca, mas vai que você se identifica...
Existe uma "Técnica" onde você só utiliza os canais RGBA separados, uma única imagem possui até 4 canais, sendo assim, é possível utilizar os 4 como se fossem texturas separadas.
Dependendo do projeto, isso reduz meu build size em quase 75%, pois onde eu uso uma textura, você usaria 4 pra obter o mesmo resultado.
Utilizo essa técnica pra fazer lightmaps customizados para mobile, como a iluminação é praticamente gravada em escala de cinza, os canais de uma imagem servem direitinho pro armazenamento, assim, em uma única imagem que o Dom3000 usa como textura pra o personagem dele, eu armazeno 144 lightmaps de casas em RGB, ou 256 lightmaps usando RGBA. é praticamente a iluminação de uns 3 bairros de uma cidade 3d mobile.
#Dom3000ooooOstentador
Dkrazor, isso que vou dizer é coisa de gente maluca, mas vai que você se identifica...
Existe uma "Técnica" onde você só utiliza os canais RGBA separados, uma única imagem possui até 4 canais, sendo assim, é possível utilizar os 4 como se fossem texturas separadas.
Dependendo do projeto, isso reduz meu build size em quase 75%, pois onde eu uso uma textura, você usaria 4 pra obter o mesmo resultado.
Utilizo essa técnica pra fazer lightmaps customizados para mobile, como a iluminação é praticamente gravada em escala de cinza, os canais de uma imagem servem direitinho pro armazenamento, assim, em uma única imagem que o Dom3000 usa como textura pra o personagem dele, eu armazeno 144 lightmaps de casas em RGB, ou 256 lightmaps usando RGBA. é praticamente a iluminação de uns 3 bairros de uma cidade 3d mobile.
#Dom3000ooooOstentador
Isabela- Avançado
- PONTOS : 2835
REPUTAÇÃO : 260
Idade : 24
Respeito as regras :
Re: Diferentes tamanhos de Textura afeta o desempenho do jogo?
Caraca maluko !!!!!Isabela escreveu:Vocês aí ostentando texturas, e eu aqui usando cada canal RGBA separadamente como se fosse uma textura completa.
Dkrazor, isso que vou dizer é coisa de gente maluca, mas vai que você se identifica...
Existe uma "Técnica" onde você só utiliza os canais RGBA separados, uma única imagem possui até 4 canais, sendo assim, é possível utilizar os 4 como se fossem texturas separadas.
Dependendo do projeto, isso reduz meu build size em quase 75%, pois onde eu uso uma textura, você usaria 4 pra obter o mesmo resultado.
Utilizo essa técnica pra fazer lightmaps customizados para mobile, como a iluminação é praticamente gravada em escala de cinza, os canais de uma imagem servem direitinho pro armazenamento, assim, em uma única imagem que o Dom3000 usa como textura pra o personagem dele, eu armazeno 144 lightmaps de casas em RGB, ou 256 lightmaps usando RGBA. é praticamente a iluminação de uns 3 bairros de uma cidade 3d mobile.
#Dom3000ooooOstentador
nossa essa técnica parece ser muito complicada e eficiente
Tópicos semelhantes
» O que minha barra de Respeito Afeta? Pontos? Reputação?
» Problema com desempenho
» Melhorar o desempenho do URP no Android
» Como colocar dois backgrounds diferentes para dois canvas diferentes?
» Alterar tamanhos de objetos que estão no canvas, automaticamente.
» Problema com desempenho
» Melhorar o desempenho do URP no Android
» Como colocar dois backgrounds diferentes para dois canvas diferentes?
» Alterar tamanhos de objetos que estão no canvas, automaticamente.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos