martes, 22 de marzo de 2011

Modelos de Graficas Booleanas

Primitivas

 

Los diferentes programas de modelado (edición 3D) que se usan para crear los escenarios y personajes de animación, incorporan entre sus herramientas la posibilidad de crear objetos a partir de superficies y sólidos elementales.

Algunos elementos geométricos son la base del modelo que se expone: esfera, plano, cilindro, cono, toro …
Estos elementos básicos son los denominados “primitivas gráficas” y mediante operadores se agrupan para construir elementos mucho más complejos como se verá posteriormente.




Vemos la superficie de un objeto y no su interior; si utilizamos operaciones booleanas deberemos pensar en el volumen y diferenciar entre la superficie o “frontera” del objeto y el volumen que éste ocupa.

 

Por ejemplo, en un plano la frontera vendrá determinada por los bordes o aristas del polígono que lo representa ya que el plano no tiene volumen. Sin embargo, en una esfera, la frontera del objeto es su superficie, pasándose a llamar “contorno” la curva que la encierra cuando la representamos en una imagen.

Planos, superficies y volúmenes

La primitiva más sencilla es el triángulo. A partir de este elemento geométrico se generan superfícies con diferentes grados de complejidad. Por ejemplo, con dos triángulos podemos formar un rectángulo plano, con varios que compartan un centro un polígono (que aproxime o simule una circunferencia), etc.




Si construimos una superficie formada por triángulos que comparten los vértices y la cerramos podemos considerar el volumen como lo que hay en “el interior” de la frontera que forma la superficie.

Una esfera puede aproximarse mediante una forma poliédrica, y mediante técnicas de renderizado (interpolaciones) obtener imágenes con formas suavizadas.


El modelo geométrico puede dar lugar a diferentes representaciones. modificando la percepción del objeto

En la segunda visualización, el poliedro adopta una apariencia de esfera gracias al modelo de visualización, sin embargo el contorno de la forma es el mismo.

Este contorno poligonal degrada la percepción de la forma esférica. Para corregirlo es necesario aumentar el número de caras del poliedro.


La nueva aproximación a la superficie esférica mejora la visualización a costa de aumentar el volumen de superficies para incluir en los cálculos de la imagen. El volumen de la esfera también se aproxima mejor, permitiendo una edición más detallada del modelo.

Operaciones Booleanas

Objetos como la esfera, el cilindro, cono etc, pueden ser definidos de forma análoga, obteniéndose volúmenes básicos denominados como hemos dicho “primitivas gráficas”.
El volumen de estos objetos se puede caracterizar con una ley simple, por ejemplo:

Un punto del espacio es interior a un volumen si no existe ninguna recta que pase por el punto y no corte a la frontera (superficie). Si existe al menos una, es exterior.
Las operaciones booleanas se basan en los modelos que se estudian con el álgebra de Boole. Los conceptos de suma, resta, parte común etc. son los empleados en esta técnica de modelizado de sólidos.

Suma

Al sumar dos volúmenes, el volumen total es inferior a la suma de sus volúmenes, ya que hay una parte común entre los elementos.




Si sumamos por ejemplo una esfera y un cubo, el objeto resultante ocupará el espacio que ocupan los dos elementos; los puntos interiores a alguno de ellos serán por lo tanto puntos del objeto resultante de la suma.

Distinguiremos entre diferentes volúmenes o regiones del espacio en este ejemplo:
  • Exterior: Puntos que no son interiores a ningún objeto.
  • Interior: Puntos que son interiores a uno o a los dos objetos.
La nueva frontera del objeto suma, utiliza partes de las fronteras de los elementos primitivos como se observa en la imagen.

Intersección

 

La intersección de dos objetos se conoce también como “parte común”. Está formada por los elementos que son interiores a los dos objetos que se usen en la operación.

De nuevo las fronteras son formadas por partes de las dos fronteras implicadas.

Diferencia

Las dos operaciones anteriores se realizan independientemente del orden en que se definan los elementos. Sin embargo la diferencia no tiene esta propiedad conmutativa. No es lo mismo quitarle el volumen A al cuerpo B, que quitarle B al A.


La operación booleana “B – A”, es decir, obtener la diferencia entre B y A, es equivalente a decir “quitarle a B la parte común entre B y A”.

Si al cubo le quitamos la esfera, obtenemos un volumen menor, pero mayor que la diferencia de volúmenes, ya que las partes de la esfera que no están en contacto con el cubo no pueden restarse.

 

La diferencia entre restar un elemento a otro, o invertir el orden de los objetos en la operación es notoriamente distinta.

Normalmente indicaremos el objeto que perdura y a continuación el que restamos, aunque puede depender de la implementación en cada programa.

Si quieres ver un ejemplo de construcción usando esta técnica, mira

viernes, 18 de marzo de 2011

Algebra Booleana

El álgebra booleana es un sistema matemático deductivo centrado en los valores cero y uno (falso y verdadero). Un operador binario " º " definido en éste juego de valores acepta un par de entradas y produce un solo valor booleano, por ejemplo, el operador booleano AND acepta dos entradas booleanas y produce una sola salida booleana.
            Para cualquier sistema algebraico existen una serie de postulados iniciales, de aquí se pueden deducir reglas adicionales, teoremas y otras propiedades del sistema, el álgebra booleana a menudo emplea los siguientes postulados:
  • Cerrado. El sistema booleano se considera cerrado con respecto a un operador binario si para cada par de valores booleanos se produce un solo resultado booleano.
  • Conmutativo. Se dice que un operador binario " º " es conmutativo si A º B = B º A para todos los posibles valores de A y B.
  • Asociativo. Se dice que un operador binario " º " es asociativo si (A º B) º C = A º (B º C) para todos los valores booleanos A, B, y C.
  • Distributivo. Dos operadores binarios " º " y " % " son distributivos si A º (B % C) = (A º B) % (A º C) para todos los valores booleanos A, B, y C.
  • Identidad. Un valor booleano I se dice que es un elemento de identidad con respecto a un operador binario " º " si A º I = A.
  • Inverso. Un valor booleano I es un elemento inverso con respecto a un operador booleano " º " si A º I = B, y B es diferente de A, es decir, B es el valor opuesto de A.
 
Leyes fundamentales
El resultado de aplicar cualquiera de las tres operaciones definidas a variables del sistema booleano resulta en otra variable del sistema, y este resultado es único.
1. Ley de idempotencia:
 a \cdot a = a \,
 a + a = a \,
2. Ley de involución:
 \overline {\bar {a}} = a
3. Ley conmutativa:
 a \cdot b = b \cdot a \,
 a + b = b + a \,
4. Ley asociativa:
 a \cdot (b \cdot c) = (a \cdot b ) \cdot c\,
 a + (b + c) = (a + b ) + c \,
5. Ley distributiva:
 a \cdot (b + c) = (a \cdot b) + (a \cdot c) \,
 (a + b ) \cdot c = (a \cdot c) + (b \cdot c) \,
 a + (b \cdot c) = (a + b) \cdot (a + c) \,
 (a \cdot b ) + c = (a + c) \cdot (b + c) \,
 a + \bar {a} \cdot b = a + b \,
6. Ley de cancelación:
 (a \cdot b) + a= a \,
 (a + b) \cdot a= a \,
7. Ley de identidad:
 a + 0 = a \,
 a + 1 = 1 \,
 a \cdot 1 = a \,
 a \cdot 0 = 0 \,
 \overline {(a + b)}= \bar {a} \cdot \bar {b} \,
 \overline {(a \cdot b)} = \bar {a}+ \bar {b} \,