Jump to content

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


tada-s

Recommended Posts


  • Followers:  10
  • Content Count:  293
  • Reputation:   2,101
  • Joined:  06/20/2010
  • Status:  Offline

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


  • Followers:  11
  • Content Count:  2,137
  • Reputation:   8,572
  • Joined:  07/29/2010
  • Status:  Offline

Esta muy bueno este articulo, lo unico que no me gusta es el tema matematico... dolor de cabeza increible.

 

y no te olvides de mandarle un saludo de mi parte a tu prima

Link to comment
Share on other sites


  • Followers:  28
  • Content Count:  967
  • Reputation:   3,040
  • Joined:  06/13/2010
  • Status:  Offline

+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...

  • Followers:  3
  • Content Count:  98
  • Reputation:   185
  • Joined:  02/28/2011
  • Status:  Offline

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

SOBRE MUNDO MAPPER

logo-mundomapper.webp

Mundo Mapper es una comunidad que se especializa en la creación de mapas para diversos juegos, como Counter-Strike 1.6 y Half-Life, utilizando el programa Valve Hammer Editor. Si eres un apasionado de los videojuegos y te interesa diseñar tus propios escenarios, ¡Mundo Mapper es el lugar perfecto para ti! 🎮

Puedes encontrar más información sobre Mundo Mapper en sus redes sociales:

Facebook: Mundo Mapper
YouTube: Mundo Mapper


¡Explora tu creatividad y construye mundos virtuales con Mundo Mapper! 🌍

EFICACIA EN APRENDIZAJE

guias.webp

Si deseas aprender más sobre el mapeo o configurar herramientas como Batch Compiler, Valve Hammer Editor o J.A.C.K, MundoMapper.net ofrece tutoriales útiles. Por ejemplo:

Configurar Batch Compiler 3.1.2: Este tutorial te guía en la configuración de Batch Compiler, una herramienta esencial para compilar mapas en Counter-Strike.


Configurar Valve Hammer Editor 3.5: Aprende los primeros pasos para usar Valve Hammer Editor, la herramienta de creación de mapas para juegos como Half-Life y Counter-Strike.

Configurar J.A.C.K: J.A.C.K. es una herramienta poderosa para diseñar y construir mapas en juegos como Half-Life y Counter-Strike

×
×
  • Create New...

Important Information

Accept Terms & Conditions Terms of Use, Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.