Calculadora de memória de texturas YTD
O FXServer avisa quando um arquivo de stream precisa de mais de 16 MiB de memória física. Solte um .ytd aqui para ver esse número antes de ligar o servidor, com as texturas em ordem de quanto cada uma pesa. Quem lê o arquivo é o seu navegador, e ele não é enviado para lugar nenhum.
Solte arquivos .ytd aqui
Memória de textura por tamanho e formato
Sem arquivo em mãos? Escolha um tamanho e um formato para ver quanto custa uma textura.
Como usar
Solte o .ytd
Solte um ou mais arquivos .ytd na caixa, ou escolha pelo botão. Funciona com arquivos do FiveM (legacy) e do GTA V Enhanced.
Veja a memória física
É o número que o FXServer imprime na linha "uses X MiB of physical memory". Acima de 16 MiB o servidor avisa.
Ache as texturas pesadas
A tabela vem ordenada por memória. Textura 4096 ou sem compressão costuma estar no topo.
Reduza e confira de novo
Corte a resolução pela metade ou troque para um formato comprimido, salve o .ytd e solte outra vez.
Como o número é calculado?
Todo arquivo de stream começa com um cabeçalho RSC7 de 16 bytes. Dois campos dele dizem quanta memória o arquivo precisa depois de descompactado: um para a memória virtual (dados de estrutura) e outro para a memória física (os pixels das texturas). O FXServer decodifica esses campos quando o resource inicia e compara cada um com 16, 32, 48 e 64 MiB. Esta página usa a mesma fórmula, a que está em ResourceStreamComponent.cpp.
Para listar as texturas, a página descompacta a parte de estrutura do arquivo e lê nome, tamanho, formato e número de mips de cada uma. Os pixels não são necessários, então um dicionário de 150 MiB não é problema.
Os degraus do aviso e as formas de ficar abaixo deles estão em arquivos de modelo do veículo e o aviso de asset grande demais. Os tamanhos de textura por função estão em como otimizar um veículo FiveM.
O que cada degrau do aviso significa?
| Memória de um arquivo | Console do servidor |
|---|---|
| 16 MiB ou menos | Não aparece nada. |
| Acima de 16 MiB | Aviso em azul. |
| Acima de 32 MiB | Aviso em amarelo. |
| Acima de 48 MiB | A linha ganha a frase "Oversized assets can and WILL lead to streaming issues (such as models not loading/rendering)". |
| Acima de 64 MiB | Aviso em vermelho. |
Perguntas frequentes
- O que é o limite de 16 MiB do FiveM?
- É o primeiro degrau de um aviso do FXServer. Um arquivo de stream que precisa de mais de 16 MiB de memória física ou virtual ganha uma linha no console do servidor. A linha fica amarela acima de 32 MiB e vermelha acima de 64 MiB, e acima de 48 MiB vem com a frase de que assets grandes demais "can and WILL lead to streaming issues". O servidor continua enviando o arquivo.
- Por que a memória é maior que o arquivo no disco?
- Arquivos de stream são compactados. O cabeçalho guarda o tamanho dos dados descompactados, que é o que o jogo precisa manter na memória.
- Por que a soma das texturas dá menos que a memória física?
- A memória é reservada em páginas de tamanho fixo, e as texturas nem sempre se encaixam sem sobra. O valor do cabeçalho é o total reservado, por isso fica acima da soma, às vezes alguns MiB. O FXServer vai pelo cabeçalho.
- Lê arquivos .ytd do GTA V Enhanced?
- Sim. Lê o formato legacy (versão 13 do resource) e o do Enhanced (versão 5). Rodamos em 1584 arquivos .ytd de dois servidores de teste e todos foram listados.
- Posso soltar um .yft ou .ydr?
- Pode, mas só aparecem os dois números do cabeçalho. A lista de texturas é para arquivos .ytd.
- Meus arquivos são enviados para algum servidor?
- Não. A página lê tudo no seu navegador, com JavaScript, e não manda nada para fora. Dá para abrir a página, desligar a internet e ela continua funcionando.
Guias relacionados
- Arquivos de modelo do veículo (yft, _hi.yft, ytd) e o aviso de asset grande demais
- Como otimizar um veículo de FiveM: polígonos, LODs e orçamento de texturas
- Solução de problemas de veículo add-on no FiveM: causas e correções
