This article's documentation is for anything that uses the Source engine. Click here for more information.

func_detail

From Valve Developer Community
Jump to navigation Jump to search
Under construction.png
This page is actively undergoing a major edit.
As a courtesy, please do not edit this while this message is displayed.
If this page has not been edited for at least several hours to a few days, please remove this template. This message is intended to help reduce edit conflicts; please remove it between editing sessions to allow others to edit the page.

The person who added this notice will be listed in its edit history should you wish to contact them.

English (en)Español (es)한국어 (ko)Português do Brasil (pt-br)中文 (zh)Translate (Translate)

func_detail é um interno(en) entidade de brush(en) disponível em todos os jogos Source Source. Não é uma entidade brush real, mas sim move todos os bruhses contidos para worldspawn e os marca como CONTENTS_DETAIL, fazendo com que eles não afetem visibility(en) ou chop(en)ping brushes sem detalhes. Todo o trabalho brush que não forma a “backbone” (espinha dorsal) do mundo (e que não está vinculado a uma entidade real) deve ser detalhado, com exceção do vidro translúcido (que sofre de problemas de classificação alfa(en) quando não é “estrutural”).

A Valve fornece um mapa de exemplo em 🖿sourcesdk_content\hl2\mapsrc\sdk_func_detail.vmf. Você também pode carregar as fontes do mapa HL2 e ocultar os pincéis de detalhes com seu visgroup(en) automático para ver onde a Valve os utilizou.

Tip.pngDica:Como alternativa, use uma variável de console(en) r_drawfuncdetail 0 para ocultar brushes de detalhes em qualquer mapa enquanto ele estiver em execução.

Os World brushes que utilizam materiais %CompileDetail serão sempre tratados como se estivessem vinculados ao func_detail.

A separação dos func_details é apenas para conveniência do editor; 5 brushes em um func_detail funcionarão da mesma forma que 5 func_details com um brushes cada.

Brushes água(en) e Slime(en) não podem ser detalhados. VBSP(en) remove automaticamente o conteúdo detalhado de líquidos(en), e modificar o VBSP para remover essa peculiaridade faz com que os líquidos fiquem invisíveis no jogo (embora ainda seja possível nadar neles).

Efeitos

O objetivo de criar uma entidade de pincel de detalhes é evitar a criação de um número desnecessário de visleaves(en) para um mero detalhe do mapa, daí o nome da entidade. O VBSP permitirá que as visleaves se sobreponham aos detalhes, minimizando assim as visleaves e o tempo de compilação.

World-vs-detail.png

Acima estão um world brush (cilindro esquerdo) e um detail brush (cilindro direito). As linhas azuis são limites visleaf. O pincel mundial dividiu o mapa em nove segmentos de formas irregulares, levando a tempos de compilação mais longos e desempenho ligeiramente inferior, enquanto o brush de detalhes não alterou nada.

Avisos

  • Os brushes de detalhe não podem ser usados para selar(en) um mapa ou áreas de areaportal.
  • Como os pincéis de detalhes não cortam(en) os world brushes, a luz pode penetrar por baixo deles se a escala do lightmap da outra superfície for maior do que a largura/altura do detail brushes. Se isso acontecer, corte manualmente o brush subjacente em várias partes (com Shift+X) e aplique a textura por baixo com nodraw(en).
    • Esse efeito pode fazer com que detail brushes com muito contato com a superfície se tornem ineficientes, pois a superfície abaixo deles também está sendo renderizada! Faces estruturais que estão completamente obscurecidas por func_detail devem ser texturizadas com nodraw(en).
    • No entanto, os detail brushes “se sobrepõem”. O VBSP(en) Vanilla não suporta níveis de detalhes como visto no GoldSrc HLBSP(en), portanto, todos os detail brushes se sobrepõem sem distinção.
Tip.pngDica:Fork do DeathByNuke do VBSP(en) tem %CompileChopLow, %CompileChopHigh e %CompileChopAll flags de compilação do mapa de materiais(en), que oferecem algum controle sobre o que corta o quê.
  • As superfícies em detail brushes muito finos (com cerca de 2 unidades de espessura) são conhecidas por desaparecerem a determinadas distâncias. Como solução alternativa, use func_brush(en) em vez disso.
  • World brushes com materiais translúcidos(en) e/ou transparentes(en) aplicados, ou que sejam displacements(en), não afetam VIS(en) e não podem selar áreas.
    • Os World brushes com material translúcido ainda cortam leaves. Isso ocorre porque eles usam BSP tree(en) para auxiliar na classificação alfa (como em Quake II Quake II), ao contrário dos detail brushes, displacements e entidades.
  • Os detail brushes, em alguns casos, mesclam faces com outros detail brushes e, ocasionalmente, com World brushes, o que pode fazer com que criem leaves.
  • Em condições normais, sempre que um detail brushes entra em contato com um world brush, o VBSP(en) irá notar a junção e otimizá-la. Essa conexão é conhecida alternativamente como T-Junction e índice de água (water index), e há um limite para o número de T-Junctions que o VBSP tentará corrigir (65.535). O uso excessivo de detail brushes em contato com a geometria do mundo pode fazer com que o VBSP aborte a compilação com um erro. Usar a opção -notjunc irá pular essa otimização, mas poderá causar inconsistências visuais.
Note.pngNotar:A água, por razões desconhecidas, faz com que a contagem de T-Junctions dispare. Remover/remodelar corpos de água pode resolver isso.

Bons candidatos

Não resta muito da Praça da Estação Ferroviária de City 17 depois de removermos os pincéis de detalhes (assim como entidades e adereços). A Valve também deixou passar alguns world brushes...

Qualquer brush que não bloqueie significativamente , a visão do jogador deve ser considerada um detalhe. Exemplos específicos incluem:

  • Pilares, pedestais e suportes
  • Paredes independentes
  • Passarelas suspensas
  • Degraus (crie um world brush suave em forma de cunha por baixo)
  • Pequenos edifícios
  • Brushes girados
  • Brushes muito pequenos ou finos

Keyvalues

Minimum / Maximum DX Level (mindxlevel / maxdxlevel) <integer(en) choices> (removido desde Left 4 Dead)
The entity will not exist if the engine is running outside the given range of DirectX Versions.
Choices
Warning.pngAtenção:If these are used, the object may break when the user switches their DirectX settings.[missing string]
Name (targetname) <string(en)>
Name of this entity. Displayed in Hammer's 2D views and Entity Report. No effect in-game, nor in map compilers.
Origin (origin) <origin(en)> !FGD
Compense a geometria por esse valor no BSP compilado. (Usado para instâncias; não deve ser usado diretamente)
Confirmar:Provavelmente também suporta angles por um motivo semelhante.

Veja Também