Uso de los Hint brush

Los “planos hint” son usados para dividir los visleaves durante la compilación y, a la vez, son una forma de optimizar los resultados del la fase de compilación del Vis map. Son comúnmente referidos como “hint brush” desde que son puestos en un mapa de la misma manera que solido normal. Los “planos hint” son definidos por el lado del solido que esta cubierto con la textura tools/toolshint. Varios “planos hint pueden ser definidos texturizando múltiples lado del solido, o utilizando varios sólidos. Las otras cara del solido que no actúan como “planos hint” deben ser cubiertas por la textura tools/toolsskip; estas caras serán ignoradas en la compilacion. Los “hints” son automáticamente unidos a sus propios “auto visgroup”, así que los puedes ocultar fácilmente.

Nota: esto es la traducción de un articulo de la wiki de Valve. Podreis encontrar el articulo original y mas ejemplos aquí.

Por que y cuando dividir "visleaves".

Nota: aprender como los visleaves funcionan es esencial para entender este articulo.

A veces, ciertas formas de los “leafs” son favorecidas sobre otras simplemente porque ese leaf hace ver menos que otros. Siempre que un “leaf” no se ve, el contenido de este no es renderizado, haciendo mas rápido el rendimiento. Lo siguiente muestra la importancia de los cortes de los “leafs”, y, al mismo tiempo, muestra ejemplos donde los hints son útiles.

El primer ejemplo es casi el mismo que el mapa ejemplo del SDK. Esta es la vista lateral de una única habitación con jugadores y unos tubos separados por una pared:

Vista lateral del mapa ejemplo sdk_hints.vmf, mostrando al jugador comenzando a la izquierda, y los modelos a la derecha separados por un muro.

Cuando un jugador esta en cualquiera de los dos “player_starts” el motor debe considerar si los sólidos (tubos) a la derecha del muro deben ser renderizados. Eso ocurre debido a que vbsp.exe no hizo lo que debería ser la forma mas eficiente de dividir nuestro mapa en “leafs”:

Sin “hints”, vbsp crea “leafs” que se extienden hasta el techo.

Debido a que los “leafs” son muy altos y llegan hasta el techo, el “leaf” en la izquierda (con los jugadores) pueden “ver” directamente el “leaf” a la derecha con los sólidos. Así que el “leaf” y su contenido (los tubos) serán renderizados. Por eso, por que los sólidos no pueden ser vistos desde la perspectiva del jugador (están detrás de la pared del medio), podemos usar los “hints” para dirigir el proceso de creación de los “leafs”.

Creando un único y horizontal “hint”, creamos múltiples “leafs”, y los 2 “leafs” en ambos lados del muro no se pueden ver el uno al otro.

La linea blanca es un lado de un solido con la textura tools/toolshint. Hace que el vbsp divida nuestro mapa en tres “leafs”. En este caso, no exisistira una linea de vision desde el “leaf” en el que esta el jugador a el “leaf” en el que están los tubos. Esa es la esencia del “hint”.

Los skyboxes son a veces un poco altos, haciendo que le jugador pueda ver muchas cosas de la ciudad debido a que el “leaf” en el que esta puede ver por encima de los edificios (como el ejemplo anteriormente explicado). Esto también es una buena situación para utilizar los “hints” para detener la visibilidad.

Hints en esquinas.

Aquí hay la vista superior de una típica esquina. Hay 2 jugadores (los cuadrados verdes) y unos cilindros que, en resumen, cada uno representa muchas cosas que ser renderizadas por el motor. Aquí, el propósito con los “hints” sera evitar renderizar los objetos cuando sea necesario, por ejemplo, cuando un jugador esta cerca de la esquina de los objetos. Uno quizás pensara que vbsp se asegurara de que cada jugador no vea los objetos del otro. Esto es incorrecto. Dividirá este espacio en 2 “leafs”, cada uno cortando los “leafs” a través de la linea marrón o rosa (dependiendo de que solido vbsp corte primero). De cualquiera de las formas, los “leafs” de cada esquina tienen una linea de visión directa hacia cada una, así que el contenido de cada una siempre sera renderizado estando en la esquina opuesta.

Sin “hints”, cada esquina de este pasillo sera renderizado estando en la esquina opuesta.

Esta situación puede ser perfeccionada simplemente situando un “hint” en la esquina, dividiendo nuestro mapa en tres “leafs”, (haciendo un total de tres en vez de 2) pero asegurándose de que las cosas de un jugador no sean renderizadas desde el punto de vista del otro jugador.

Añadiendo un “hint” creamos “leafs en las esquinas que no se pueden ver el uno al otro.

No hay linea de visión directa entre los “leafs” marrón y rojo, así el renderizado innecesario se evita. De cualquier modo, si uno de los jugadores se mueve al “leaf” verde, verá sus objetos y los del otro jugador renderizados. No puedes evitar eso utilizando “hints”. El único modo de detener esto seria cambiando el diseño del mapa o utilizando otros métodos.

Hints utilizados para simplificar.

Por ultimo, “hints” pueden ser usados para simplificar un mapa. A veces, vbsp divide el mapa en mas “leafs” de los necesarios. Esto incrementa el tiempo de compilación. “Hints” pueden ser usados para evitar esto. Por ejemplo, “hint” pueden ser situados en pasillos y puertas para prevenir la división de las habitaciones que unen. O, si tienes un problema con que cierto “leaf” esta en contacto con demasiados “leafs”, “hints” pueden ser utilizados para cortar ese “leaf” en varios, asi estar en contacto con menor cantidad de “leafs”.

Nota:** “Visleafs” siempre serán divididos cada 1024 unidades (en cada linea roja o azul en las vistas 2D).

Ver también

source/mapas/uso_de_hint_brush.txt · Última modificación: 2011/06/15 17:31 (editor externo)
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki



GAS Style basado en Prototype Style © 2008 ShadowFlames Development
Original Design by Frost - Maintained and Modified by Ika

Traducción al español por Huan Manwë