O que é LOD?
Para princípio de conversa, o que é LOD? Esta comum sigla significa “Level Of Detail”, uma palavrinha que você vai ouvir falar MUITO em otimização de cenários.
Utilizar LODs tem suas vantagens, pois, são “simples” de criar e geram um resultado rápido e perceptível, mesmo com configurações simples feitas por um iniciante.
Como Funciona o LOD?
Suponha que temos uma SM de um carro, o que é feito em tese é replicar este objeto, e reduzir sua qualidade conforme replica novos níveis, onde estes são trocados com base na porcentagem de tela ou tamanho de tela (Screen size).
A screen size é basicamente uma maneira diferente de calcular distâncias.
Na Unreal Engine 4 o LOD base, numerado como “0” sempre estará com a porcentagem de tela igual a 1, isso representa que o objeto ocupa 100% da tela, ou que ele teria o tamanho completo, por isso screen size.
Conforme se reduz esse número “1” para “0.75”, “0.5” e “0.25” nos níveis do LOD aumenta-se a distância que a SM será trocada para uma com menos triângulos, ou seja, quanto maior a distância entre a câmera e o objeto, menor o tamanho do objeto na tela.
Entendendo a Configuração de LOD (LOD Settings)
LOD Group - Aqui você pode escolher um grupo com padrões da UE para criação automática de cada nível de LOD. Cada grupo tem uma quantidade de LODs, mas, em geral, não há grande diferença, recomendo a utilização de “SmallProp” ou “LargeProp”. A distância dos níveis não é definida pelo grupo, mas por características da SM, por isso ignore esse fato de distância, pois vamos configurá-la manualmente para um resultado melhor.
LOD Import - Antes da UE4 possuir um sistema que gera automaticamente níveis de LOD com base em uma SM base, precisava criar os LODs manualmente em um programa de modelagem 3D, como Blender, exportar e importar novamente no motor. No método avançado vou explorar melhor esta funcionalidade de importação mesclando com a geração automática da UE4.
Number of LODs - Caso você não queira utilizar um grupo de LOD nas opções anteriores, pode apenas adicionar uma quantidade específica de LOD para a UE4 criar automaticamente. Atualmente o máximo de níveis é 8. Está opção é muito semelhante que o LOD Group, mas ele será MUITO útil para nós no método avançado.
Auto Compute LOD Distance - Se está opção estiver ativa, quando adicionar LODs usando a opção "Number Of LODs", ou se já existir LODs, ela vai bloquear a edição da distância entre os níveis e irá calcular automaticamente. Uma opção que não tenho o costume de usar, pois, as distâncias raramente são assertivas.
Configurando o LOD
Desativando Distância Automática
Desmarque a opção “Auto Compute LOD Distance”
Reduzindo Sombras
Vá para uma categoria acima, em “LOD 0” (Mostrado na Imagem) e expanda a seção “Section”. (Entrarei em mais detalhes sobre sombras em um próximo post)
Caso sua SM possua muitos materiais ou algum material que se enquadre na lista a seguir, é recomendado desativar as sombras.
Partes da SM que são pouco visíveis
Partes pequenas demais para perceber sombras
Que possuem materiais translúcidos (Vidros)
Materiais Emissivos
Partes internas que não ficam visíveis
Partes que sua sombra não causa mudanças visuais por estarem em uma localização que o restante da própria SM impossibilita a percepção de sombras.
É importante que as sombras que nunca deverão ficar visíveis sejam configuradas no LOD 0, antes da criação de qualquer outro LOD, caso contrario, você terá de configuração cada LOD manualmente.
Você também pode usar as opções na lateral esquerda “Highlight” ou “Isolate” para visualizar as partes que estão usando o slot de material específico, assim você pode identificar exatamente partes do objeto e decidir o que fazer.
Aplicando os LODs
Após configurar as sombras no LOD 0, volte a categoria “LOD Settings”. Na opção “Number Of LOD” defina o valor para 4 e clique em “Apply Changes”.
Visualizando os LODs
Duas categorias acima temos “LOD Picker”, expanda e marque “Custom”. Agora você consegue visualizar e editar cada um dos 4 níveis de LOD de sua SM, desde “Screen Size”, “Lightmaps”, materiais e configurações de redução.
Informações Relevantes
As informações mais relevantes para nós no momento são: quantidade de triângulos (Tris) e tamanho de tela (Screen Size).
Aqui é mostrado a quantidade de triângulos e vértices no nível.
Mostra o tamanho da tela definido no 3.
Estas duas informações são mostradas em diversos lugares.
Constando que no canto superior esquerdo da viewport é possível ver todas as configurações do LOD atual com base na câmera da viewport.
Reduction Settings
Para reduzir os tris de um nível de LOD basta expandir “Reduction Settings”
Termination - O motor usará os triângulos ou os vértices para calcular a redução.
Percent Triangles - Porcentagem do LOD base. (No caso padrão da UE4, LOD 0)
Welding Threshold - É a distância de solda dos vértices. Quanto maior o número definido, maior o número de vértices que o motor vai unir, essa função geralmente modifica severamente a silhueta do objeto.
Redução de Tris
Você pode reduzir cada um dos LOD como desejar, mas recomendo utilizar o padrão usado pela UE4. (Redução pela metade para cada LOD, comparando sempre o LOD anterior) O que recomendo por último é desmarcar as sombras de todas os materiais no último LOD. assim seu SM terá menos “Draw Calls” a longas distâncias. Além de que sua cena terá menos tris, por ter menos sombras.
NOTA: O motor duplica os SM com sombras ativas, para que elas possam ser geradas. Quanto menos partes da SM tiver sombra, menos a quantidade de tris gerados.
Screen Size
Geralmente, se a SM tem seu volume bem adequado, as distâncias são mais fáceis de configurar.
Como escolher uma boa distância? Use dos fatores: aparência do SM e plataforma que o projeto será executado.
Plataforma PC - Sendo a plataforma que mais se pode “exagerar” nos gráficos. É claro que, considerando o tipo de seu projeto e o público alvo. Para que pessoas com PCs de baixo desempenho utilize seu projeto, será preciso equilibrar beleza e desempenho.
Múltiplas Plataformas - A UE4 tem suporte para várias plataformas, pensando nisso cada nível de LOD tem a opção de adicionar uma “Screen Size” para cada plataforma, assim quando empacotar o projeto, ele automaticamente usará as configurações apropriadas. Lembrando que isso só é válido para a distância dos LOD, os “screen size”.
Esta é uma configuração que costumo usar, é claro que não é regra, principalmente por cada projeto ser único, e demanda de uma análise de quem o desenvolve, com alguns ajustes você pode chegar no que precisa.
O LOD não se limita a redução apenas de Tris, como viu, podemos reduzir sombras que afetam as chamadas de um projeto (Assunto para outro post). Outras configurações mais avançadas de otimizações mais rigorosos podem ser feitas no LOD e pretendo fazer um post apenas com essas informações.
Espero ter ajudado você a ganhar mais um pouco de informações sobre desenvolvimento de cenário, e que isso posso te ajudar ir cada vez mais longe! Meu nome é Alisson Almeida Artista de Ambiente e criador da SixSides e se esse artigo foi útil para você, compartilha com seus amigos e até uma próxima!
Yorumlar