MOFLOVE ~

¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
MOFLOVE ~

Comunidad cs 1.6


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

    Frizze
    Frizze
    Super Moderador
    Super Moderador


    Mensajes : 73
    Karma : 198
    Reputaciòn : 17
    Fecha de inscripción : 13/10/2011
    Edad : 26
    Localización : Santa fe

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

    Mensaje por Frizze Vie Oct 14, 2011 8:32 pm

    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:

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


    Utilizando los sólidos simples creamos sóldos complejos mediante las operaciones booleanas:
    ∩ (Intersección)
    U (Unión)
    - (Diferencia)
    [Guía] Qué es un CSG? Cómo funciona? 300px-Csg_tree

    Los sólidos simples de CSG deben ser convexos y simpre son coplanares.
    Convexo significa que todos los ángulos interiores son menos de 180°.
    [Guía] Qué es un CSG? Cómo funciona? Angulos01

    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.
    [Guía] Qué es un CSG? Cómo funciona? Angulos02

    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.
    [Guía] Qué es un CSG? Cómo funciona? Coplanar01

    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
    [Guía] Qué es un CSG? Cómo funciona? Vector01

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

    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.
    [Guía] Qué es un CSG? Cómo funciona? Figura03
    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.
    [Guía] Qué es un CSG? Cómo funciona? Figura04
    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

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

    -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)

      Fecha y hora actual: Jue Mayo 02, 2024 1:20 am