Descripción
Sólidos Simples:
Utilizando los sólidos simples creamos sóldos complejos mediante las operaciones booleanas:
∩ (Intersección)
U (Unión)
- (Diferencia)
Los sólidos simples de CSG deben ser convexos y simpre son coplanares.
Convexo significa que todos los ángulos interiores son menos de 180°.
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.
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.
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
Un ejemplo de un sólido de 6 lados con vectorworks:
Spoiler
Primero hay un centro con sus respectivos vectores.
Si colocamos un plano perpendicular a cada vector,
Quedaría con múchos planos intersecando:
Cortamos las partes donde se intersecan y quedará el sólido un sólido:
Las flechas indica en que lado está la cara.
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 😄
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.
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.
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
-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
Extra celda
General
-
Dificultad del tutorial
Facil
Comentarios recomendados
No hay comentarios para mostrar
Crear una cuenta o conéctate para comentar
Tienes que ser miembro para dejar un comentario
Crear una cuenta
Regístrese para obtener una cuenta nueva en nuestra comunidad. ¡Es fácil!
Registrar una nueva cuentaConectar
¿Ya tienes una cuenta? Conéctate aquí.
Conectar ahora