GtkRadiant/Otimizando mapas

Origem: Wikilivros, livros abertos por um mundo aberto.

Mapas compilados com o q3map2 (formato Q3 BSP)[editar | editar código-fonte]

  • Detail brushes

O que os detail brushes fazem basicamente é "limpar" o BSP do mapa. Quando um brush estrutural encosta em outro o compilador faz um corte ali, aquele corte vira um portal de visibilidade. Colocando um detail brush o compilador não faz aquele corte e nem aquele portal, assim o mapa compila mais rápido e também o motor vai precisar calcular menos portais na hora de rodar o mapa.

  • AreaPortals

Os AreaPortals são usados apenas em portas, quando a porta está fechada os triângulos do outro lado não são renderizados.

  • Cluster portais e hint brushes

O q3map2 coloca muitos cluster portais no mapa compilado, dividindo o mapa em muitos clusters. A partir daí o motor vai calcular em tempo real quais clusters (os pedaços do mapa) que o jogador pode ver, ou na verdade o que o motor pensa que o jogador pode ver. Os clusters podem ser mais ou menos explicados como volumes, ou uma espécie de zona volumétrica se você já mexeu com motores de portais.

Quando o q3map2 compila a visibilidade do mapa ele traça milhares de linhas de um cluster para outro, gerando uma base do que cada cluster pode "ver".

Os hint brushes são brushes com a textura hint em todas as faces. O que o hint brush faz mais ou menos é funcionar como um divisor de cluster. Ele força mais cluster portais no mapa durante a compilação. Os hint brushes também poderiam ser chamados de cluster brushes, já que eles seguem mais ou menos a regra das zonas dos motores de portais, você tem que isolar um espaço para ele funcionar. Do mesmo modo que os portais de visibilidade, hint brushes são praticamente inúteis em lugares abertos demais.

Os hint brushes são uma troca, você troca um tempo de compilação de visibilidade muito maior por oclusão de triângulos mais eficiente no mapa depois. Os portais forçados pelos hint brushes aumentam o número de linhas traçadas ao mesmo tempo que quebram muitas linhas (a linha de visibilidade de um portal que antes chegava até outro encontra um hint brush no meio).

Para ver os portais digite r_showportals 1 no caso do motor Q3 ou r_drawportals 1 no caso do motor livre DP. Para ver os triângulos digite r_showtris 1-10 (no caso da versão mais recente do DP use também r_showdisabledepthtest 1).

Observação: cluster não tem tradução em português.

  • Antiportal

Segundo a definição oficial um anti-portal é ao mesmo tempo um hint brush e um area portal, ao contrário dos area portals que só servem para portas e os hint brushes que só servem em lugares fechados, o antiportal é usado em lugares abertos.

Observação: para usar o antiportal você tem que criar uma textura com um shader dizendo que ela é um antiportal.

Mapas no formato Doom 3, Quake IV e outros[editar | editar código-fonte]

  • Detail brushes

Não existem mais no Doom 3, todos os brushes na compilação são considerados estruturais.

  • Portais de visibilidade

O Doom 3 e o Quake 4 são chamadas "motores de portais" porque usam portais para dividir os mapas em zonas. A idéia básica dos portais é evitar que o motor renderize o que o jogador não está vendo. Os portais funcionam "lacrando" algumas áreas do mapa em zonas, assim se o jogador não está vendo aquela zona ela não é renderizada (a zona inclui tudo o que está dentro dela). A zona só passa a ser renderizada se o jogador puder ver pelo menos um pontinho daquela zona na tela. Os portais funcionam melhor em lugares fechados como corredores e salas, não dão muito certo em lugares abertos que precisariam de portais grandes demais.

Como não existe mais pré-compilação de visibilidade, é muito mais fácil controlar os portais do que com hint brushes.

Mapas no formato Quake II, Half Life e outros[editar | editar código-fonte]

  • Hint brushes

Os hint brushes do Q2 são diferentes dos mapas compilados com Q3map2, ao invés dos hint brushes forçarem mais cluster portais eles forçam cortes no BSP do mapa. Aparentemente é a partir dos cortes do BSP do mapa que o motor "pensa" o que o jogador pode ver ou não.