Mapeadores
Hub
Mapeadores
Hub
Volver a la web
Comunidad
InicioNormasNoticiasF.A.Q.BansSupporter
Foro Mapeadores
Foro
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
Volver a la web
Comunidad
InicioNormasNoticiasF.A.Q.BansSupporter
Foro Mapeadores
Foro
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›Foro›Mapping›Guías y Tutoriales

Func_occluders

@Morell📅 March 17, 2011⏱ Lectura de 4 min👁 339 vistas💬 1 postGuías y Tutoriales
Morell
@MorellOPOriginal
📅 17 de marzo de 2011#1

Los func_occluders son aquellos que “esconden” las entidades de tu campo de visión, así de fácil y de sencillo. Sin duda, una herramienta de gran ayuda que nos permitirá optimizar nuestro mapa todavía más, aunque es importante recordar que un funcionamiento tan sencillo como el de los occluders puede arruinar tu mapa si no los utilizas con cuidado, ya que son un arma de doble filo; pueden causar más problemas de los que solucionan. Por otra parte, es importante destacar que la textura en si es inútil, pues habrá que convertirla a un func_occluder para que dé el resultado deseado. Por eso en esta sección de la guía aprenderemos qué es un func_occluder y en qué casos debamos utilizarlo, para evitar arruinar todo el trabajo hecho en el mapa. En este primer ejemplo; se ha creado un sólido con la textura nodraw, y en las caras que se quieran ocultar, se ha puesto la textura occluder; para finalizar, se ha convertido a fun_occluder; obteniendo el siguiente resultado:

image La línea roja es la cara del sólido que posee la textura occluder, mientras que el resto posee la textura nodraw. En resumen, todo lo que tenga la textura occluder será ocultado y todo lo que tenga la textura nodraw no será ocultado. En la imagen anterior, todas las entidades moradas serán ocultadas, mientras que las entidades azules, se mostrarán. ¿Fácil eh? Ahora vamos a ver con otro ejemplo el proceso de una manera más detallada. En este caso tenemos un Stargate, en cuya parte de atrás tenemos una vegeteción abundante:

imageimage Toda esa vegetación que se encuentra detrás, es vegetación que se renderiza para nada, puesto que el jugador no la puede ver realmente al encontrarse detrás del Stargate. Sin embargo, nos interesa que esa vegetación sí que se vea, (que no desaparezca) si por el motivo que fuese el jugador decidiese dar una vuelta por el escenario, por lo tanto, vamos a usar un func_occluder:

Para ello crearemos un sólido con la textura nodraw cubriendo la zona que queramos ocultar:

image Aplicaremos la textura occluder solo en el lado del sólido correspondiente a la puerta: image Finalmente; haremos clic en el botón tie to entity o pulsamos CTRL+T, seleccionando la entidad func_occluder y marcando en la casilla "Valor inicial" "Activado": image Obteniendo así el siguiente resultado: imageimage Todas aquellas entidades que se encuentran detrás del func_occluder se encuentran ocultas; evitando así que se renderizen y que relenticen nuestro mapa, (Verde renderizado / Rojo no renderizado) con la consiguiente mejora y aumento de FPS.

Por otro lado, y aunque esta textura parezca que es una muy buena opción para optimizar, presenta algunas desventajas:

  • Se calcula en tiempo real, es decir mientras juegas. El motor debe calcular qué entidades se encuentran bloqueadas por el func_occluder y cuáles no, lo que se traduce en un aumento de tareas a procesar y por tanto, menos velocidad en el juego.
  • El func_occluder solo oculta entidades, no sólidos.
  • El func_occluder no divide los visleafs.
📋 Este post es parte del foro histórico de Mapeadores. El contenido se preserva tal como fue publicado originalmente.