Mapeadores
Hub
Mapeadores
Hub
Tornar a la web
Comunitat
IniciNormesNotíciesF.A.Q.BansSupporter
Fòrum Mapeadores
Fòrum
Comunicados21
Anuncios12Eventos8
General1454
Off-Topic1024Presentaciones349International28Youtube28
Servers984
CS:S | ZombieMod | Barricada + Escape210CS:GO | Zombie Escape345CS:GO | KZ Timer2CS:GO | Prey5Bans164Feedback123Unirte133
Mapping533
Problemas y Dudas249Mapas118Guías y Tutoriales110Proyectos Comunitarios24Modelos, Texturas y Partículas11Prefabricados19
Releases2
Mapeadores
Hub
Tornar a la web
Comunitat
IniciNormesNotíciesF.A.Q.BansSupporter
Fòrum Mapeadores
Fòrum
Comunicados21
Anuncios12Eventos8
General1454
Off-Topic1024Presentaciones349International28Youtube28
Servers984
CS:S | ZombieMod | Barricada + Escape210CS:GO | Zombie Escape345CS:GO | KZ Timer2CS:GO | Prey5Bans164Feedback123Unirte133
Mapping533
Problemas y Dudas249Mapas118Guías y Tutoriales110Proyectos Comunitarios24Modelos, Texturas y Partículas11Prefabricados19
Releases2
Hub›Fòrum›Mapping›Guías y Tutoriales

Visleafs

@Morell📅 March 17, 2011⏱ Lectura de 3 min👁 453 vistes💬 1 postGuías y Tutoriales
Morell
@MorellOPOriginal
📅 17 de març del 2011#1

Durante la compilación, el programa compilador del Half Life 2 (o de cualquier juego Source) divide el mapa en distintas áreas llamadas visleafs para determinar qué áreas pueden ser vistas desde un determinado punto y que entidades y sólidos han de mostrarse cuando el jugador se encuentra en un determinado lugar. Algo lógico ya que si se tuviese que calcular el mapa entero, sería una tarea muy pesada. El encargado de realizar dicho proceso es el programa vvis, el segundo que se ejecuta en el proceso de compilación y que se encarga del proceso mencionado anteriormente.

Vamos con un ejemplo gráfico para comprenderlo mejor; Para empezar tenemos un mapa de ejemplo:

image [b]El primer paso[/b]; es dividir el nivel en distintas áreas, ignorando todas las entidades y displacements, e ir perfilando las zonas jugables: image Este paso es realizado por el vbsp, el primer programa que se ejecuta durante la compilación. El proceso se llama "portaling" y cada uno de los planos que se encuentran entre dos visleafs se llaman portal. El resultado es un archivo ([nombremapa].prt) que es cogido por el vvis, el segundo programa que se ejecuta durante la compilación. En rojo se encuentran marcados los visleafs, mientras que lo azul marca los portales. Este proceso apenas dura unos pocos segundos durante la compilación. Segudo paso; Vvis en acción. En este paso, el vvis se encargará de realizar una serie de líneas entre los portales, si ambas líneas se cruzan, significa que ambos portales se pueden ver, luego ambos visleafs se verán juntos.

image En la primera imagen, el visleaf 1 puede "ver" al visleaf 2, sin embargo en la siguiente imagen; el visleaf 2 no puede "ver" al visleaf 4 image Al final; nuestra tabla de visivilidad quedará de la siguiente manera:

  • 1 -> 2 [color="#9ACD32"]visible
  • 1 -> 3 [color="#9ACD32"]visible
  • 1 -> 4 [color="#FF0000"]no visible
  • 2 -> 3 [color="#9ACD32"]visible
  • 2 -> 4 [color="#FF0000"]visible
  • 3 -> 4 [color="#9ACD32"]visible

Obviamente esta es una versión simplificada y reducida de todos los cálculos que se llegan a hacer en un mapa. ¿Te imaginas el número de cálculos que se llegan a hacer si no usas la entidad func_detail? En este caso si el jugador se sitúa en la primera habitación, los visleafs 1-> 4 no se “ven” por lo tanto no se dibujan, ahorrando así una cantidad considerable de trabajo al ordenador:

image (La parte roja es la que no se dibuja, la verde sí. Los cuadrados son entidades) Aquí reside la explicación de por qué es importante reducir el número de visleafs y cómo afecta directamente al tiempo de compilación. Cuantos más visleafs haya, más tardará el mapa en compilarse.

📋 Aquest post és part del fòrum històric de Mapeadores. El contingut es preserva tal com va ser publicat originalment.