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:


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.


- 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:
