Skybox Optimization
Este artigo aborda os diferentes métodos de colocação de brushes skybox num mapa, bem como as suas vantagens e desvantagens. Para o efeito, é apresentado um exemplo de um mapa no qual são aplicados todos os métodos. Os Brushes de telhado estão ocultas para efeitos de tutorial.
Visão geral
Method | Descrição | Vantagens | Desvantagens | |
---|---|---|---|---|
Método Box ("Diaper") | Criar um enorme bloco de skybox oco que contenha todo o nível |
|
| |
Skybox apertada | Criar paredes e tectos skybox divisão a divisão sem criar áreas transitáveis não intencionais |
|
| |
Abordagem dinâmica | Como a Skybox apertada, mas não tão apertada, deixando as diferentes secções do mapa ligadas acima da área jogável |
|
|
Alguns outros benefícios da criação de uma skybox adequada para otimizar o mapa podem incluir
- Uso mais fácil de areaportals
- Organização mais fácil de ativadores env_soundscape
- Renderização de um maior número de adereços detail em displacements.
Método de caixa
A maioria dos mapeadores inexperientes tende a criar uma grande caixa em torno de seu nível e texturizá-la com a textura tools/toolsskybox
, em seguida, esculpi-la para fora para criar, literalmente, uma sky box. A maioria dos mapeadores faz isso porque não tem experiência com o funcionamento de uma skybox e seus efeitos, ou pode fazer isso simplesmente porque não quer vazamentos em seu mapa. Isto é por vezes referido como um skybox "diaper".
De qualquer forma, este “Método da caixa” não é a forma como deve formar a sua skybox, pois pode causar mais problemas do que os que resolve. Para demonstrar o porquê, será criado um pequeno mapa para o objetivo deste artigo. É um esquema simples: alguns caminhos com três grandes áreas e paredes a separá-las. Este não é o mapa mais complicado, mas serve para ilustrar o ponto. Além disso, repara como o chão ao longo do nível é feito de displacements costurados uns aos outros. Isto é bastante comum, e verá como isto afecta a skybox e a otimização do mapa daqui a pouco. Com o Box Method (Método de Caixa) aplicado, o mapa apareceria como a imagem abaixo.
Os displacements estão a desaparecer e a desaparecer por uma razão: para demonstrar que não são efetivamente tidos em conta pelo VVIS. Os displacements não bloqueiam a visibilidade e o VVIS não calcula as visleafs que param na superfície dos displacements; as folhas de visão atravessam-nos diretamente. Se tivesse uma parede feita de displacements, o seu computador continuaria a renderizar todos os modelos, jogadores e geometria por trás deles. Apenas a geometria do mundo - neste caso, as paredes/brushes - irá bloquear a visibilidade e criar as visleafs que controlam os itens a renderizar.
No , isto é uma má prática, pois o VVIS corta automaticamente as folhas de visão ao longo do eixo da origem. Em vez disso, a origem deve ser movida para um dos 4 quadrantes do eixo x/y.
No , no entanto, este conselho pode e deve ser ignorado, pois a tela do mapa é significativamente menor, e os brushes colocados muito perto da borda do mapa muitas vezes compilam incorretamente, especialmente se forem pequenos.
Skybox apertada
Segue o anexo de um exemplo de um skybox criada corretamente:
a skybox agora está em conformidade com o contorno do nível, e a textura nodraw é usada em todas as áreas sob as paredes e o chão, ao invés da textura tools/toolsskybox
. Isto reduz a quantidade de cálculos necessários (reduzindo significativamente o tempo de compilação) porque a skybox não contém todo o espaço vazio gerado pelo método anterior. A textura nodraw é usada porque não precisamos de criar luz por baixo do nível e não queremos erros de renderização que ocorrerão quando a luz atingir as displacements a partir de baixo.
Todos estes métodos introduzem alterações visíveis na compilação:
Portal Clusters: 73 »» 16
Numportals: 201 »» 19
Total Clusters Visible: 3981 »» 134
Average Clusters Visible: 54 »» 8
Average Clusters Audible: 73 »» 13
VisDataSize: 2048 »» 196
Para um mapa tão pequeno, estas diferenças já são enormes e irão aumentar drasticamente o desempenho do mapa no jogo, especialmente se o mapa for maior.
Quando não construir seções
Conformar a skybox com os caminhos do nível não deve ser feito sempre, mas apenas quando apropriado. Há alguns casos em que se deve deixar espaços para ver através deles, para que se possa ver a seção seguinte do mapa, por exemplo.
Uma 'torre' laranja alta foi colocada na área central do mapa, como pode ser visto abaixo. No entanto, se a skybox se mantiver como está, essa torre aparecerá/desaparecerá quando as pessoas andarem à volta, devido à construção da skybox. É necessário cortar a skybox em alguns pontos para garantir que a torre é visível de todos os ângulos a partir dos quais o jogador a pode ver.
Removendo e recortando as paredes para que a torre possa ser vista de qualquer ângulo e utilizando a textura nodraw entre as paredes no centro, obtemos um resultado semelhante a este:
Também se pode tentar limitar a área em que a torre será mostrada. Basta aumentar a altura de algumas paredes, para que quando o jogador estiver perto de uma parede e a torre estiver atrás dela, a torre não possa ser vista devido à altura da parede:
Veja também
Category:Optimization (Level Design) Category:Level_Design_FAQ