Como otimizar um mapa no Hammer Editor: 10 etapas (com imagens)

Índice:

Como otimizar um mapa no Hammer Editor: 10 etapas (com imagens)
Como otimizar um mapa no Hammer Editor: 10 etapas (com imagens)
Anonim

Você quer acelerar o desempenho do seu mapa personalizado, não se atrapalhar com problemas de renderização e reduzir o tempo de compilação? Aqui estão algumas dicas para ajudá-lo a otimizar qualquer mapa no Hammer.

Passos

Otimize um mapa no Hammer Editor Etapa 1
Otimize um mapa no Hammer Editor Etapa 1

Etapa 1. Selar as salas

Isso é um dever. Se houver QUALQUER vazamento no mapa, o compilador não será capaz de determinar os limites do mapa e tentará renderizar tudo dentro do mapa de uma vez. Pior ainda, quaisquer portais de área, pincéis de dicas e oclusores no mapa não funcionarão, tornando-os inúteis. Além disso, a água não será processada corretamente se houver vazamentos no mapa.

  • Na Fig. 1a, a sala obviamente não está selada. Se você compilar este mapa com esse vazamento, vvis (a parte da compilação que determina os dados de visibilidade) não será capaz de determinar os limites do mapa, já que os visleaves irão apenas "vazar" para o vazio negro fora de nosso mapa.
  • Na Fig. 1b, a sala está lacrada e será compilada corretamente.
  • Para verificar se há vazamentos, primeiro certifique-se de que haja pelo menos uma entidade no mapa (como um "info_player_start"), caso contrário, isso não funcionará. Salve e compile o BSP pressionando F9 ou indo para Arquivo -> Executar Mapa. Selecione "Normal" para Executar BSPe selecione "Não" para ambos Execute o VIS e Executar RAD (também certifique-se de verificar o "Não execute o jogo depois de compilar" caixa). Assim que terminar a compilação, feche o log de compilação e vá para Map -> Load Point File. Se houver algum vazamento, será solicitado que você confirme a operação (por exemplo, "Carregar arquivo de ponto padrão? [C: / Arquivos de programas / ----]) Selecione" Sim "e você verá uma linha vermelha projetando-se da entidade mais próxima * pela área do vazamento. (* É por isso que você precisa de uma entidade, pincel ou ponto, em seu mapa. Não funciona com pincéis de mundo ou de detalhe.) Sele o vazamento, recompile o BSP, e carregue o pointfile. Se tudo estiver lacrado, ele deve ir para uma pasta vazia no Steam / steamapps / GAMERTAG / GAME / mapsrc pasta. Sempre verifique se há vazamentos antes de o mapa ser divulgado ao público.
Otimize um mapa no Hammer Editor Etapa 2
Otimize um mapa no Hammer Editor Etapa 2

Etapa 2. Crie pincéis com "tools / toolsnodraw"

Certifique-se de sempre criar pincéis com o tools / toolsnodraw texture primeiro e, em seguida, texture apenas o que o jogador pode ver do ponto de vista do jogador. Se você for ver apenas um lado de uma parede, faça a textura apenas desse lado visível.

Otimize um mapa no Hammer Editor Etapa 3
Otimize um mapa no Hammer Editor Etapa 3

Etapa 3. Reduza o número de pincéis e faces

Sempre que possível, concentre-se em criar geometria com alguns pincéis grandes em vez de milhares de pincéis pequenos. Mais pincéis equivalem a mais faces, e mais faces equivalem a desempenho e tempo de compilação mais lentos. Resumindo: se você pode criar geometria complexa com um ou dois pincéis, por que usar mais do que isso?

Na Fig. 3a, existem dois pincéis: o da esquerda foi criado com a ferramenta Arch que criou um pincel de 8 faces com 40 faces, e o da direita foi feito de um único pincel recortado com apenas 11 faces. O último foi obtido utilizando a ferramenta de recorte (Shift + X). Para conseguir o último, é recomendado criar primeiro a forma geométrica desejada com a ferramenta de arco para referência. Em seguida, crie um pincel com o mesmo comprimento, largura e altura do arco de referência e coloque-o ligeiramente acima da referência. Selecione o pincel e corte os ângulos. (pode ser necessário alterar o tamanho da grade ("-" para diminuir, "+" para aumentar) e / ou mover manualmente os vértices (Shift + V) do arco de referência para ajustar ao ponto da grade mais próximo.) um pincel geometricamente idêntico, mas apenas com menos faces

Otimize um mapa no Hammer Editor Etapa 4
Otimize um mapa no Hammer Editor Etapa 4

Etapa 4. Faça bom uso de pincéis de detalhe

Os pincéis mundiais bloqueiam a visibilidade, selam o mapa e dividem o BSP em "folhas", que são basicamente a maneira do compilador determinar o que pode e o que não pode ser visto em um determinado momento e lugar. Pincéis de detalhes foram projetados para serem essencialmente "invisíveis" para o compilador. As únicas escovas que deveriam ser escovas do mundo são as paredes, o piso e o teto de uma sala. Praticamente tudo o mais na sala que não é uma entidade de trabalho e não bloqueia significativamente a visão do jogador deve ser amarrado a um pincel func_detail (amarrar usando Ctrl + T). Uma vez que pincéis de detalhes não bloqueiam a visibilidade, eles não serão compilados em vvis cálculos e não dividirá o mapa em mais visleaves (o que é bom na maioria dos casos). Esteja avisado, porém, que isso também não selará o mapa. Apenas certifique-se de que todos os pincéis do mundo selem o mapa e que não haja problemas.

Otimize um mapa no Hammer Editor Etapa 5
Otimize um mapa no Hammer Editor Etapa 5

Etapa 5. Use portais de área e pincéis de dicas de forma adequada

Portais de área e pincéis de dicas são ótimas maneiras de limitar a visibilidade e aumentar o desempenho, se feitos corretamente. No entanto, você não deve colocá-los em todos os corredores e janelas, pois o valor para calcular o que deve ser renderizado e quando poderia muito bem ultrapassar aquele de apenas renderizar a sala inteira de uma vez. Em vez disso, você só deve separar salas com muitos detalhes. Isso poupará seu computador de renderizar muitos objetos desnecessários e ajudará a aumentar o desempenho sem sobrecarregar os cálculos de visibilidade.

Otimize um mapa no Hammer Editor Etapa 6
Otimize um mapa no Hammer Editor Etapa 6

Etapa 6. Use oclusores (com moderação)

Os oclusores são semelhantes a um portal de área fechada, pois não renderiza o que está por trás dele. No entanto, é diferente de um portal de área fechada porque não precisa selar uma sala (pode ser independente e não tocar escovas de mundo) e apenas bloqueia modelos 3D (também conhecidos como adereços). Esta ferramenta é muito cara em termos de uso de memória, então você só deve usar oclusores quando houver um modelo 3D caro atrás de uma parede independente que não pode ser vedada por portais de área.

Otimize um mapa no Hammer Editor Etapa 7
Otimize um mapa no Hammer Editor Etapa 7

Etapa 7. Adicionar Sky-boxes 3D

Não é totalmente necessário, mas ajudará a fazer o mapa parecer muito maior sem reduzir drasticamente os FPS (quadros por segundo). Os camarotes 3D geralmente são feitos para mapas "grandes" ao ar livre, mas é possível fazer um mapa interno se você puder ver o exterior através de uma janela ou algo assim. Os skyboxes 3D são muito baratos para renderizar e podem fazer um pequeno mapa parecer até 16x maior, já que os skyboxes 3D são configurados para uma escala de 1/16 no Hammer e depois aumentados durante a compilação.

Otimize um mapa no Hammer Editor Etapa 8
Otimize um mapa no Hammer Editor Etapa 8

Etapa 8. Adicione névoa

Em grandes mapas externos, a névoa pode limitar a quantidade de detalhes sendo renderizados e pode fazer seu mapa parecer mais realista no processo. Basta adicionar uma entidade env_fog_controller em seu mapa. Na opção "Enable Fog" no Propriedades do objeto guia, selecione "Sim". Em seguida, edite o Far Z Clip Plane ao seu gosto, o que irá remover todos os pincéis após essa distância, eliminando o mecanismo de renderização de objetos desnecessários (O Far Z Clip Plane valor deve ser maior que o Fim do Nevoeiro valor).

Otimize um mapa no Hammer Editor Etapa 9
Otimize um mapa no Hammer Editor Etapa 9

Etapa 9. Não enlouqueça na escala do Lightmap

A escala do mapa de luz essencialmente determina como as sombras nítidas ou borradas são renderizadas na geometria. Números maiores degradam a qualidade da sombra, mas podem aumentar o desempenho. Ao contrário, uma escala de mapa de luz mais baixa aumenta o visual das sombras, mas pode reduzir drasticamente o desempenho. Uma escala de mapa de luz muito grande ou muito pequena pode produzir um efeito de iluminação irreal que é muito opaco ou muito nítido, respectivamente. A escala de mapa de luz padrão para todos os pincéis é 16, que é uma área equilibrada entre visuais e desempenho.

Otimize um mapa no Hammer Editor Etapa 10
Otimize um mapa no Hammer Editor Etapa 10

Etapa 10. Se o seu mapa tiver água, coloque uma entidade "water_lod_control" no mapa

Essa entidade determina a distância que você deve estar da água "cara" para que ela faça a transição para a água "barata". Água cara parece muito mais realista do que água barata e, portanto, custa mais em termos de uso de memória e cálculos no computador. Uma distância de transição mais curta produzirá água mais barata em uma distância mais curta e, portanto, perderá muita qualidade visual quando à distância, mas também aumentará o desempenho.

Pontas

  • Os deslocamentos não bloqueiam a visibilidade, portanto, para garantir que o mapa esteja selado, crie um pincel de mundo com o tools / toolsnodraw textura abaixo do deslocamento e selar o mapa com ele (ou seja, fazer com que os cantos desse pincel toquem os cantos do camarote). Como na primeira etapa, sempre certifique-se de que o mapa esteja lacrado, caso contrário, praticamente todas as técnicas de otimização mencionadas são jogadas para fora da janela e no vazio negro do mecanismo de origem.
  • Ao criar portais de área (criando um pincel texturizado com ferramentas / ferramentasareaportal e vinculando-o a func_areaportal), é muito importante que os lados de um areaportal que não estão sendo visualizados estejam tocando pincéis mundiais. Por exemplo, se você deseja colocar um areaportal em uma porta, mas essa porta tem uma moldura ligada a func_detail, você deve não ter a escova areaportal tocando o batente da porta porque é func_detail (e como as escovas func_detail não afetam a visibilidade, o log de compilação voltará com um vazamento). Em vez disso, a escova areaportal deve tocar as paredes, teto e chão da porta (que devem ser escovas universais), cruzando o batente da porta. Não se preocupe com a possibilidade de haver "cortes em z" ao redor da moldura da porta; o quadro ainda será renderizado corretamente no jogo… está simplesmente lá no editor Hammer para o compilador usar durante vvis.
  • Este artigo pressupõe que você tenha conhecimento básico da interface do Hammer Editor (criação de pincéis, colocação de entidades, vinculação de entidades, etc.).
  • Ao criar pincéis de dica, texture apenas as faces agindo como planos de dica (as faces que dividirão o BSP) com o tools / toolshint textura. Textura todas as outras faces do pincel, não atuando como um plano de sugestão com tools / toolsskip, caso contrário, você criará mais visleafs do que deseja.
  • Você pode vincular o estado Aberto / Fechado de um portal de área a uma porta de trabalho, como func_door, func_door_rotating ou uma entidade semelhante. Para fazer isso, a porta para a qual você deseja vincular o areaportal precisa de um "nome" exclusivo. (Dê o nome clicando duas vezes na porta para abrir seu Propriedades do objeto janela e dê a ela um nome simples em Nome na guia Informações da classe.) Assim que tiver a porta nomeada, vá para o portal da área Propriedades do objeto e role para baixo até "Nome da porta vinculada" e selecione a porta à qual deseja vincular o portal da área. Além disso (e isso é muito importante), você precisa definir o Estado inicial do portal da área para o Estado inicial da porta. O que isso faz é garantir que, quando a porta for fechada, o portal da área se feche com ela. Se você estiver curioso sobre o que exatamente os estados de portais de área Aberto / Fechado ditam, se um portal de área for Aberto, todas as visleaves que são visíveis do outro lado do portal de área são renderizadas. Ao contrário, se o areaportal for Fechado, então nada além do areaportal será renderizado. Então, se houver um corredor aberto que você sempre poderá ver, o Estado inicial do areaportal deve ser definido como Aberto, não Fechado. E quando ligado a uma porta, você não será capaz de ver além da porta de qualquer maneira, então defina-o como Fechado se a porta aparecer fechada (a menos que tenha uma janela transparente, que então você deve ter o portal de área definido como Aberto e não nem se preocupe em ligá-lo à porta).

Avisos

  • Nunca faça um pincel complicado com a Hollow Tool. Os vértices (cantos dos pincéis) se cruzarão e criarão uma grande bagunça desleixada.
  • Use apenas oclusores como último recurso. Consome muita memória, então se um adereço puder ser selado em uma sala com portais de área ou se for possível dividir os visleaves com dicas e pular pincéis, então desative o uso de oclusores.
  • Os portais de área aberta consomem muito mais memória porque os visleaves são calculados em tempo real. É aconselhável usar portais de área fechada ou pincéis de dicas sempre que possível.

Recomendado: