La información en este artículo es para Source. Haga clic aquí para más información.

func_detail

From Valve Developer Community
< Es
Jump to navigation Jump to search
English (en)Español (es)한국어 (ko)中文 (zh)Translate (Translate)

func_detail es un entidad de brocha interno (en) disponible en todos los juegos de Source Source. No es una entidad de brocha (brush entity) real, sino que mueve todas las brochas contenidas a worldspawn y las marca como CONTENTS_DETAIL, lo que resulta en que no afecten la visibilidad ni segmenten las brochas que no son de detalle. Todo el trabajo con brochas que no forma la 'columna vertebral' del mundo (y que no está vinculado a una entidad real) debería ser de detalle, con la excepción del vidrio translúcido (que sufre problemas de ordenación alfa cuando no es "estructural").

Valve proporciona un mapa de ejemplo en 🖿sourcesdk_content\hl2\mapsrc\sdk_func_detail.vmf. También puedes cargar los archivos fuente de los mapas de HL2 y ocultar las brochas de detalle con su visgroup automático para ver dónde las usó Valve.

Tip.pngConsejo:Alternativamente, usa la variable de consola r_drawfuncdetail 0 para ocultar las brochas de detalle en cualquier mapa mientras se está ejecutando.

Las brochas del mundo (world brushes) que usan materiales %CompileDetail siempre serán tratadas como si estuvieran vinculadas a un func_detail.

Separar los func_details es puramente por conveniencia del editor; 5 brochas en un func_detail actuarán igual que 5 func_details con una brocha cada uno.

Las brochas de Agua y Slime/Limo no pueden ser de detalle. VBSP elimina automáticamente los contenidos de detalle de los materiales líquidos, y modificar VBSP para eliminar esta peculiaridad resulta en que los líquidos sean invisibles en el juego (aunque todavía se pueda nadar en ellos).

Efectos

El objetivo de crear una entidad de brocha de detalle es evitar la creación de un número innecesario de visleaves por un mero detalle del mapa, de ahí el nombre de la entidad. VBSP permitirá que los visleaves se superpongan a los detalles y, por lo tanto, minimizará los visleaves y el tiempo de compilación.

World-vs-detail.png

Arriba se muestran una brocha de mundo (cilindro izquierdo) y una brocha de detalle (cilindro derecho). Las líneas azules son los límites de los visleaves. La brocha de mundo ha segmentado el mapa en nueve segmentos de forma extraña, lo que lleva a tiempos de compilación más largos y un rendimiento marginalmente inferior, mientras que la brocha de detalle no ha cambiado nada.

Advertencias

  • Las brochas de detalle no se pueden usar para sellar un mapa o áreas de areaportals.
  • Debido a que las brochas de detalle no segmentan las brochas de mundo, la luz puede filtrarse por debajo de ellas si la escala del mapa de luz de la otra superficie es mayor que el ancho/alto de la brocha de detalle. Si te encuentras con esto, corta manualmente la brocha subyacente en múltiples partes (con Shift+X), y texturiza la parte inferior con nodraw.
    • Este efecto puede hacer que las brochas de detalle con mucho contacto superficial se vuelvan ineficientes, ¡porque la superficie debajo de ellas también se está renderizando! Las caras estructurales que están completamente ocultas por func_detail deben texturizarse con nodraw.
    • Sin embargo, las brochas de detalle se segmentan entre sí. El VBSP original (vanilla) no admite niveles de detalle como se ve en el HLBSP de GoldSrc, por lo que todas las brochas de detalle se segmentarán entre sí sin preferencia.
Tip.pngConsejo:El fork de DeathByNuke de VBSP tiene las banderas de compilación de material de mapa %CompileChopLow, %CompileChopHigh, y %CompileChopAll que ofrecen cierto control sobre qué segmenta qué.
  • Se sabe que las superficies en brochas de detalle muy delgadas (de unas 2 unidades de grosor) desaparecen a ciertas distancias. Como solución alternativa, usa func_brush en su lugar.
  • Las brochas de mundo con materiales translúcidos y/o transparentes aplicados, o que son mallas de desplazamiento, no afectan a VIS y no pueden sellar áreas.
    • Las brochas de mundo con material translúcido seguirán segmentando las hojas (leaves). Esto se debe a que utilizan un árbol BSP para ayudar en la ordenación alfa (como en Quake II Quake II), a diferencia de las brochas de detalle, las mallas de desplazamiento y las entidades.
  • Las brochas de detalle, en algunos casos, fusionarán caras con otras brochas de detalle y, en ocasiones, con brochas de mundo, lo que puede hacer que creen hojas (leaves).
  • En condiciones normales, cada vez que una brocha de detalle contacta con una brocha de mundo, VBSP registrará la unión y la optimizará. Esta conexión se conoce alternativamente como unión en T (T-junction) o índice de agua (water index), y hay un límite en el número de uniones en T que VBSP intentará corregir (65,535). El uso excesivo de brochas de detalle en contacto con la geometría del mundo podría hacer que VBSP aborte la compilación con un error. Usar la opción -notjunc omitirá esta optimización a costa de posibles inconsistencias visuales.
Note.pngNota:El agua, por razones desconocidas, hace que el recuento de uniones en T se dispare. Eliminar/remodelar cuerpos de agua puede solucionar esto.

Buenos candidatos

No queda mucho de la Plaza de la Estación de Ciudad 17 una vez que eliminamos las brochas de detalle (así como entidades y props). Valve también ha omitido algunas brochas de mundo...

Cualquier brocha que no bloquee significativamente la vista del jugador probablemente debería ser de detalle. Ejemplos específicos incluyen:

  • Pilares, plintos y soportes
  • Muros independientes
  • Pasarelas suspendidas
  • Escalones (crea una brocha de mundo lisa en forma de cuña debajo)
  • Edificios pequeños
  • Brochas rotadas
  • Brochas muy pequeñas o delgadas

Keyvalues

Minimum / Maximum DX Level (mindxlevel / maxdxlevel) <integer(en) choices> (eliminado desde Left 4 Dead)
The entity will not exist if the engine is running outside the given range of DirectX Versions.
Choices
Warning.pngAviso: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
Desplaza la geometría por esta cantidad en el BSP compilado. (Usado para instancias; no debe usarse directamente)
Confirmar:Probablemente también admite angles (ángulos) por una razón similar.

Véase también