Jump to content
  • ¡Hola, Invitado! Únete a nuestra comunidad y construyamos juntos algo increíble.

    Welcome to our community! If it’s your first visit, we recommend checking out the help by clicking the link above. To actively participate, simply click the ‘Connect’ or ‘Register’ button. Once registered, you’ll be able to post messages and explore the different forums available. We look forward to seeing you soon!

[Guía] Qué es un CSG? Cómo funciona?

Rate this topic


tada-s

Recommended Posts

Hola todos!! Esta vez les traigo un artículo que habla sobre CSG en GoldSrc (Half-Life). Todas las imágenes las hice menos el de las operaciones booleanas (EL Vave Hammer Editor se crasheó) y le puse información extra para que no sea simplemente traducción directa de otro artículo.

Guía Anterior: Qué es un BSP? Cómo funciona?

 

El CSG viene de la palabra "Constructive Solid Geometry", es una técnica que se utiliza operaciones booleanas y son "Sólidos inteligentes" que utilizan simples sólidos para formar sólidos complejos que no es posible crear con malla poligonales, pero nosotros nos enfocaremos más en cómo funciona en GoldSrc.

Sólidos Simples:

csgsolid.png

 

Utilizando los sólidos simples creamos sóldos complejos mediante las operaciones booleanas:

∩ (Intersección)

U (Unión)

- (Diferencia)

300px-Csg_tree.png

 

 

Los sólidos simples de CSG deben ser convexos y simpre son coplanares.

Convexo significa que todos los ángulos interiores son menos de 180°.

angulos01.png

 

Por lo tanto, para crear sólido Cóncavos (que tienen más de 180°), se necesita más de 1 sólido para convertirlo convexo.

angulos02.png

 

Coplanar significa que los vértices están en 1 mismo plano. El tercer imagen no es coplanar porque el vértice que se movió no puede estar en el mismo plano que los 3 vértices del frente.

coplanar01.png

 

Como dije antes, la ventaja de CSG es que está disponible cálculos matemáticos que no es posible en malla poligonales. En GldSrc, los sólidos CSG están formados por vectores (y no por vértices como malla poligonal) y tiene su propia ecuación para calcular.

Es posible 3 tipos de operaciones: Básica, Intermediaria y Avanzada. Estas 3 operaciones las combinamos para cálculos como problemas de colisión, luces, visiblidad, etc.; por lo tanto el CSG es el primer paso más importante para crear mapas.

Los vectores tienen la información de: posición de origen, distancia desde el origen hasta punto extremo, dirección y sentido

vector01.png

 

Un ejemplo de un sólido de 6 lados con vectorworks:

 

 

Primero hay un centro con sus respectivos vectores.

vector02.png

Si colocamos un plano perpendicular a cada vector,

perpendicular01.png

 

Quedaría con múchos planos intersecando:

vector03.png

 

Cortamos las partes donde se intersecan y quedará el sólido un sólido:

figura01.png

 

Las flechas indica en que lado está la cara.

figura02.png

 

 

 

Operaciones Básicas de CSG

Las operaciones básicas de CSG son para determinar las posiciones de los planos para formar sólidos y la intersección de raya-plano.

-La ecuación para determinar la distancia desde el punto A al plano B:= (Bd–Bnx*Ax–Bny*Ay–Bnz*Az)

-La ecuación para determinar la intersección de raya AB y plano C:

u = (-Cnx*Ax–Cny*Ay–Cnz*Az+d)/(-Cnx*(Ax–Bx)–Cny*(Ay–By)–Cnz*(Az–Bz))

x = Ax+(Bx-Ax)*u

y = Ay+(By-Ay)*u

z = Az+(Bz-Az)*u

 

 

Operaciones Intermediaria de CSG

Las operaciones intermediarias de CSG sirven en el juego y crean la base de operaciones avanzadas de CSG.

-Intersección punto-sólido.

Si un punto está detrás de todos los planos, significa que se encuentra dentro del sólido.

figura03.png

El punto A se encuentra dentro del sólido porque está detrás de todos los planos. El punto B está detrás de 4 planos pero está frente de 2 planos, por lo tanto, no está dentro de plano.

Esto ayuda para saber si un jugador está dentro del agua o de una zona como trigger_ que se activan al entrar "adentro".

-Intersección raya-sólido

Si el punto de intersección de la raya al plano está detrás de todos los otros planos, la raya interseca al sólido.

figura04.png

Es muy conveniente utilizar para saber si es visible el jugador que está el otro lado del sólido, ver la visibilidad entre la luz y el objeto y la colisión del jugador (chocar a la pared, etc.)

-Intersección sólido-sólido

Si cualquier vértice de un sólido está dentro del sólido, el sólido está intersecando (caso de punto-sólido).

Si cualquier borde interseca al sólido, el sólido está intersecando (caso raya-sólido)

 

-Cortes en sólidos

Es posible cortar sólidos en planos arbitrarios. Esto se utiliza en portal y BSP para crear zonas para renderizar.

 

Operaciones Avanzadas de CSG

-Mapa de texturas

Las coordenadas explican al GPU cómo pasa las texturas sobre el plano. Son calculados por cada cara las posiciones, rotación, escala y . Es posible calcular con las siguientes ecuaciones:

u = unx*x+uny*y+unz*z+ud

v = vnx*x+vny*y+vnz*z+vd

maptexture.png

-Portal Oclusion System

Separan en grandes partes llamadas "Portal Zone". Esto permite que no renderise los lugares que no se ven, los lugares que están oclutos por otros sólidos.

 

Además de estas operaciones el CSG ayuda en:

Cálculos de luces estáticas, Cálculos de luces dinámicas y el Binary Space Partitioning (BSP)

 

Para la información más exacta (en inglés)

Fuente:http://www.leadwerks.com/files/csg.pdf

Edited by tada-s

mapper.gif

modak.gif 5.png

 

Proyecto Enciclopedia Valve Hammer Editor en español.

http://www.mapping-zone.net/foro/showthread.php?p=9909#post9909

Link to comment
Share on other sites

+25 muy buena informacion

sopaquake-1.png

Pasa que swato caja tiene una coneccion clandestina con el verdulero de la esquina viste, y se bajo el OPERA!! EL O P E R A!!! !! EL O P E R A!! QUE NO SABE OPERAR las .PNG!!.

 

 

 

 

Es un foro, no un licuado de bananas, o una ensalada de frutas, como está, está bien.

 

la reputamadre que lo contrapario

 

[Hoy 16:09] Santi: y recibis mas info que mandando cumbia al 2020

[Hoy 16:08] Santi: te paso el cel del poola y el faqqu

[Hoy 16:08] Ezeh: se saben alguna pagina'

[Hoy 16:08] Ezeh: como saber de lo ultimo en cumbia de temas?

barwz.png

By S34Paint :D

 

 

Link to comment
Share on other sites

  • 2 weeks later...
manso kilombo pero algo se entiende jaja :)

ESFORZANDOME POR SER UN GRAN MAPPER Y SAVER TODO LO QUE SE PUEDA!

 

MIS POST:

 

Pack de programas + wads re buenos

 

http://www.mapping-zone.net/foro/showthread.php?p=45975#post45975

 

[VideoTutorial] Crear mi propio wad

http://www.mapping-zone.net/foro/showthread.php?t=8729

[Video-Tutorial] Efectos con Light Texture Style

http://www.mapping-zone.net/foro/showthread.php?p=45353#post45353

[Video-Tutorial] Efectos con Render FX

http://www.mapping-zone.net/foro/showthread.php?p=46194#post46194

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using our website, you accept our Privacy Policy and agree to the established conditions.