OPTIMIZACION: ANTIPORTAL

 

La textura antiportal aplicada sobre un brush hace que éste se comporte al mismo tiempo como un brush hint y  como un brush areaportal.A diferencia de los brushes “areaportals” que solo sirven para aplicar a puertas y los brushes “hint” que solo se aplican en lugares cerrados, los brushes “antiportal” se usa en lugares abiertos.

 

La utilización de los Antiportals se somete a varias restricciones:

 

 1.- No pueden alinear  con las divisiones creadas por brushes estructurales, ni con las creadas por el motor del juego, de lo contrario puede producirse “leaking”. (las divisiones (splits) creadas por  el motor del juego tienen un tamaño de 1024*1024 por defecto, y se pueden modificar mediante la clave _blocksize,,dentro de la entidad worldspawn. Para mostrar las divisiones del motor, dentro de GTKRadiant selecciona desde el menú View->Show->Show Blocks). Es latoso averiguar donde se producirán la divisones. Una buena opción es usar el plugin prtview en cualquier versión de GTKRadiant.

 

2.- No se debe colocar un brush “antiportal” en el campo de visión del jugador. Si lo hicierais, se produciría el efecto HoM (Pasillo de Espejos). Hay que colocarlos dentro de brushes estructurales o de brushes de detalle.

 

3.- No se puede tener un bruhs “antiportal” que corte a la  mitad tu mapa y esperar a que bloqué la visión en el juego. Se deben cerrar el mapa de modo que tenga 2 zonas distintas delimitadas por el brush Antiportal

 

4.- Los brushes “Antiportal” crean nuevos nodos-hojas BSP, es decir, nuevas divisiones en el mapa, al igual que los brushes “hint”, pero con la diferencia que los “Antiportal” no crean portales para las divisiones, y bloquean la renderización de los triángulos ocultos por ellos.

 

Consejos de utilización:

 

- El shader common Antiportal se aplica en una única cara del brush. A las otras caras se aplica la textura shader common “Skip”.

 

- Un Antiportal no genera sombras, contrariamente a un caulk. Se puede pues colocarlo dentro de estructuras bastante finas sin que proyectar sombras no deseadas en el momento de la fase LIGHT de compilación.

 

- Un brush AntiPortal es atravesable, no es sólido, al contrario que un brush Caulk.

 

- El mejor caso de utilización para un AntiPortal, es el de optimizar el VIS (renderización en el juego)  sobre un terreno.

 

- Puedes combinar  texturas Antiportals con  Hints y/o Sky, para optimizar lo mejor posible la división de tus zonas.

 

 

 

La textura shader common antiportal tiene asociada shader  y  esta textura en el GTKRadiant:

 

textures/common/antiportal

{

      qer_nocarve

      qer_trans 0.30

      surfaceparm antiportal

      surfaceparm nodraw

      surfaceparm nonsolid

      surfaceparm structural

      surfaceparm trans

}

Y tiene asignada esta textura:

 

 

 

 

La textura shader common skip tiene asociada este script shader  y  esta textura en el GTKRadiant:

 

 

textures/common/skip

{

      qer_nocarve

      qer_trans 0.30

      surfaceparm nodraw

      surfaceparm nonsolid

      surfaceparm skip

      surfaceparm structural

      surfaceparm trans

}

Y tiene asignada esta textura:

 

 

 

  

Vamos a ver un ejemplo del uso de un antiportal:

 

En el mapa de abajo hemos puesto un brush “antiportal” oculto en el interior de la montaña que separa al tractor del jugador.

 

 

 

Si compilamos el mapa y cargamos el archivo .prt mediante el plugin “prtview” veremos que si se ha creado una división del mapa en línea con el brush “antiportal”.

 

 

Pero sin embargo no se han creado portales en esa división.

 

 

Si lanzamos nuestro mapa en el juego…

 

 

Si activamos r_showtris 2 y vemos que no se están renderizando los triángulos ocultos por la montaña (más bien por el brush antiportal que hay dentro), por lo tanto no se renderiza el tractor que está al otro lado.

 

 

 

Solo podremos ver el tractor cuando estemos al otro lado de la división generada por el brush antiportal.

 

 

Si eliminamos el brush antiportal del interior de la montaña y volvemos a compilarlo y a ejecutarlo dentro del juego, vemos que el tractor (y los triángulos ocultados por la montaña) se renderiza aunque el jugador no lo esté viendo.

 

 

  

Descargar ejemplo del tutorial: antiportal.pk3

 

 

 
 
 
 

 Última actualización: domingo, 18 de mayo de 2008.  

mEg@bIt