Otimize sua experiência

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.


Otimizar sua experiência é o processo de configurar seus recursos e configurações do Studio para manter sua taxa de quadros e níveis de desempenho altos para dispositivos com limitações de memória e processamento gráfico (GPU).Esse processo garante que quase todos os usuários tenham a mesma experiência de jogo e visual enquanto estão vendo seu ambiente.

Usando o arquivo Arte do Ambiente - Optimizing file como referência, esta seção do currículo de arte ambiental mostra como revisar e configurar o arquivo do seu local para gráficos otimizados, incluindo orientações sobre:

  • Revisando os parâmetros de física e renderização de cada recurso para confirmar que eles preservam a memória e o desempenho do motor.
  • Cortar excesso de textura, geometria ou transparências que aumentam desnecessariamente a quantidade de cálculos que o Roblox Engine deve realizar para renderizar seus recursos.

Enquanto o Roblox Engine lida com a maior parte do trabalho de otimização para você, você pode ajudar nesses esforços de otimização usando o Microprofiler para ver onde leva mais tempo para renderizar quadros específicos.Usando essas informações, você pode tomar decisões informadas sobre quais recursos precisam de sua atenção em relação aos seus parâmetros ou conteúdo excessivo.

Revisar física e parâmetros de renderização

Em Montar uma biblioteca de recursos, você aprendeu quão importante é definir parâmetros de física e renderização que permitam que seus recursos mantenham sua alta qualidade visual em dispositivos com limitações de memória e GPU.No entanto, é comum como você constrói seu ambiente para ajustar esses parâmetros de acordo com a posição e o propósito contextual de um recurso dentro de sua experiência.Por exemplo, grande parte da folhagem no ambiente de tag a laser final lança sombras apesar de um custo de desempenho porque aumenta o realismo do ambiente.

Quando você modifica os parâmetros de física e renderização, é útil perto do final do processo de desenvolvimento revisar todos os parâmetros para ver onde você pode otimizar um parâmetro enquanto mantém os objetivos estéticos e os requisitos de jogabilidade.Para ilustrar, você pode desativar a propriedade BasePart.CastShadow para a folhagem próxima aos cantos da área de jogo para economizar em desempenho sem interferir na experiência de jogo ou visual de um usuário.

Cull conteúdo não essencial

Depois de revisar seus parâmetros de física e renderização, você pode revisar os próprios recursos para ver onde você pode descartar qualquer conteúdo não essencial da experiência que não afeta seu jogo, como texturas idênticas com diferentes IDs de recursos, geometrias complexas com muitos vértices ou transparências que se sobrepõem umas às outras dependendo da visão da câmera.As seções a seguir detalham o que você pode fazer para revisar esse conteúdo e por que isso ajuda os esforços de otimização.

Remover texturas duplicadas

Ao passar de desenvolver seus recursos para construir seu ambiente, é comum iterar sobre malhas ou texturas à medida que você encontra o que é necessário para seus objetivos estéticos ou requisitos de jogabilidade.Se você não converter seus recursos em pacotes, ao importar essas iterações no Studio, você está criando IDs exclusivos que o Roblox Engine precisa referenciar ao renderizar seus recursos dentro do ambiente.

Por exemplo, se você importar as seguintes duas malhas de hidrante para o Studio separadamente, mesmo que sejam exatamente as mesmas em aparência, o Motor do Roblox as trata como dois objetos com IDs de recurso exclusivos.Quanto mais únicas as chamadas que o motor precisa fazer, maior o impacto na memória e no desempenho.Por esse motivo, é importante confirmar quando você está reutilizando um recurso múltiplas vezes, cada instância desse recurso usa o mesmo ID de recurso para que o motor só precise fazer um único chamada para renderizá-lo repetidamente.

Two of the exact same fire hydrant with unique assetIDs. There is no visual difference but the duplicate assetIDs negatively impacts performance.

Otimizar geometria

Se você encontrar que precisa fazer mais ajustes para aumentar a taxa de quadros em dispositivos diferentes, é útil ver onde você pode otimizar sua geometria por meio de:

  • Combinar grupos de malhas em um único recurso.
  • Diminuir o número de polígonos de recursos com complexidade geométrica.

Expandindo nesta primeira técnica, cada recurso único em sua experiência representa uma chamada de desenho na GPU em que envia um sinal para a GPU para chamar informações para que o motor Roblox renderize o recurso corretamente.Quanto mais recursos exclusivos você tem, mais chamadas de desenho o sistema precisa fazer.Por esse motivo, se você tiver um grupo de malhas que compõem um componente maior em sua experiência, você pode agrupá-las em ferramentas de modelagem de terceiros para reduzir a necessidade de várias chamadas de desenho.

Para ilustrar esse ponto, os pais do ambiente de tag de laser final contêm múltiplas peças e malhas juntas para criar as grandes torres fora do edifício.Se você combinar todos esses componentes individuais juntos, você pode torná-lo um único recurso com apenas um ID de recurso e reduzir o número de chamadas de desenho de 8 para 1.No entanto, é importante notar que essa técnica remove sua capacidade de alterar livremente as características visuais e físicas de cada componente, como sua posição ou material.

Por exemplo, na imagem a seguir, a torre esquerda permanece com vários recursos sob um objeto Model e a torre direita é um único recurso.Você pode modificar cada componente da torre de esquerda individualmente, mas quando você modifica a torre direita, como alterar sua cor para preto, isso afeta a totalidade do objeto.É por isso que é importante considerar apenas essa técnica perto do fim do desenvolvimento do seu ambiente quando você sabe onde você pode melhorar o desempenho sem afetar seus objetivos estéticos.

A front view of the two towers. The tower on the left includes multiple assets under a single model, while the tower on the right decreases the amount of assets by removing all texture objects.

Expandindo a segunda técnica, recursos com complexidade geométrica têm mais polígonos, o que significa que eles têm mais vértices que o motor precisa calcular enquanto renderiza sua aparência visual.Isso significa que recursos com menos complexidade e fidelidade são menos onerosos de renderizar, o que leva a uma melhoria tanto em desempenho quanto em memória.

Excluir transparências em camadas

Para fornecer um senso de realismo ao ambiente, o ambiente de tag de laser final inclui muitas malhas com diferentes níveis de transparência, como a folhagem no espaço ao ar livre, vidro no sinal futurista ou guarda-corpo de plantador.Quando a câmera vê vários objetos semitransparentes que estão na frente ou atrás um do outro, o Motor do Roblox deve renderizar os pixels sobrepostos várias vezes para contar as áreas transparentes.Esse processo é chamado de sobrecarga de transparência alta e vem com um impacto significativo no desempenho.

Por exemplo, considere a seguinte visão de um plantador no ambiente de amostra.O motor deve renderizar as áreas transparentes das folhas entre a planta mais próxima da câmera para a planta mais próxima da área ao ar livre em camadas, equivalendo a centenas de milhares de pixels sobrecarregados.Para aliviar parte desse impacto, é importante revisar o layout de todos os objetos semitransparentes em seu ambiente e garantir que não haja muitos locais onde haja muitas camadas de sobreposição, especialmente em grandes áreas da tela.

A Rthro avatar facing a planter with multiple plants with transparency between the leaves.
A side view of the Rthro avatar facing a planter with multiple plants with transparency between the leaves, and example layers of overdrawn pixels are highlighted to show where there is overdrawn in the environment.

Quando você terminar de revisar todo o seu conteúdo para garantir que ele seja otimizado em todos os dispositivos, sua experiência já está pronta para publicação!