viernes, 2 de diciembre de 2011

3.3 REPRESENTACIÓN TRIDIMENSIONAL DE OBJETOS


3.3.1 Superficies de polígonos.
      La superficie de un polígono se especifica con el conjunto de coordenadas de sus vértices, y parámetros para sus atributos asociados. Los datos se colocan en tablas que se utilizarán en el procesamiento, despliegue y manipulación de objetos en una escena. Las tablas de datos se organizan en: Tablas geométricas Contienen las coordenadas de vértices y los parámetros para identificar la orientación espacial de las superficies del polígono. Tablas de atributos. Parámetros como grado de transparencia, reflectividad y textura. 

        En cuanto a las tablas geométricas, una organización conveniente para almacenar los datos es crear 3 listas: Vértices Donde se almacenan las coordenadas para cada vértice. Aristas Contiene apuntadores a la tabla de vértices para identificar los vértices de que se compone cada arista. Polígonos Contiene apuntadores a la tabla de aristas para identificar las aristas de que se compone cada polígono. Además, a los objetos individuales y las caras de polígonos que los componen se les puede asignar identificadores de objeto y de faceta para una referencia rápida.
        La representación de frontera que más se utiliza para un objeto grafico tridimensional es un conjunto de polígonos de superficie que encierra en el interior del objeto. Muchos sistemas gráficos almacenas todos los objetos como conjuntos de polígonos de superficie. Esto facilita y acelera la representación de superficie y despliegue de objetos, ya que todas las superficies se describen con ecuaciones lineales.
       Una representación de polígono para un poliedro define con precisión las características de superficie del objeto, pero para otros objetos, las superficies se teselan o tejen para producir una aproximación del enlace de polígonos.
       El contorno de armazón se puede desplegar con rapidez para dar una indicación general de la estructura de la superficie, pero para lograr una representación más realista, se interpolan los patrones de sombreado a lo ancho de las superficies de los polígonos para eliminar o reducir la presencia de fronteras de aristas de polígonos. 

3.3.2 Líneas y superficies curvas.
Las ecuaciones de los objetos con límites curvos se pueden expresar en forma paramétrica o en forma no paramétrica. El Apéndice A proporciona un resumen y una comparación de las representaciones paramétricas y no paramétricas. Entre los múltiples objetos son útiles a menudo en las aplicaciones gráficas se pueden incluir las superficies cuadráticas, las supercuádricas, las funciones polinómicas y exponenciales, y las superficies mediante splines. Estas descripciones de objetos de entrada se teselan habitualmente para producir aproximaciones de las superficies con mallas de polígonos.
       La necesidad de representar curvas y superficies proviene de modelar objetos “from scratch” o representar objetos reales. En este último caso, normalmente no existe un modelo matemático previo del objeto, y el objeto se aproxima con “pedazos” de planos, esferas y otras formas simples de modelar, requiriéndose que los puntos del modelo sean cercanos a los correspondientes puntos del objeto real.
La representación no paramétrica de una curva (por ejemplo, en dos dimensiones) puede ser implícita, y = f(x)
O bien explícita,
f(x, y) = 0
La forma implícita no puede ser representada con curvas multivaluadas sobre x (por ejemplo, un círculo), mientras que la forma explícita puede requerir utilizar criterios adicionales para especificar la curva cuando la ecuación tiene más soluciones de las deseadas.
Representación paramétrica.
Una representación paramétrica (por ejemplo, de una curva bidimensional) tiene la forma  P(t) = ( x(t), y(t) )T t1 <= t <= t2
La derivada o vector tangente es
P’ (t) = ( x’(t), y’(t) )T
El parámetro t puede reemplazarse mediante operaciones de cambio de variable, y frecuente se normaliza de modo que t1 = 0 y t2 = 1. Aunque geométricamente la curva aparece equivalente, una operación de este tipo normalmente modifica el comportamiento de la curva (esto es visible al comparar sus derivadas). 
 
3.3.3 Superficies cuadráticas.
      Una clase de objetos que se Utiliza frecuentemente es la de las superficies cuadráticas, que se describen con ecuaciones de segundo grado (cuadráticas). Entre ellas se incluyen las esferas, los elipsoides, los toros, los paraboloides y los hiperboloides. Las superficies cuadráticas, particularmente las esferas y los elipsoides, son elementos comunes en las escenas gráficas, y las subrutinas para generar estas superficies están disponibles a menudo en los paquetes gráficos. También, las superficies cuadráticas se pueden producir con representaciones mediante splines racionales.
      Esta clase de objetos es una generalización de las cuadráticas. Las supercuádricas se crean incorporando parámetros adicionales a las ecuaciones de las cuadráticas, para proporcionar una mayor flexibilidad en el ajuste de las formas de los objetos. Se añade un parámetro adicional a las ecuaciones de una curva y se utilizan dos parámetros adicionales en las ecuaciones de las superficies.

 Funciones para la generación de superficies cuadráticas de GLU.
 Para generar una superficie cuadrática utilizando funciones de GLU, necesitamos asignar un nombre a la cuadrática, activar el sombreador de cuadráticas de GLU y especificar los valores de los parámetros de la superficie. Además, podemos establecer otros parámetros para controlar la apariencia de una superficie cuadrática con GLU. Las siguientes líneas de código muestran la secuencia básica de llamadas a funciones para mostrar una esfera alámbrica centrada en origen de coordenadas universal.
GLUquadricObj *spherel;
Spherel = gluNewQuadric ( ) ;
g l u Q u a d r i c D r a w S t y l e (spherel, GLD_LINE};
g l u S p h e r e ( s p h e r e l , v, n L o n g i t u d e s , n L a t i t u d e s );
En la primera línea de código se define un nombre para el objeto de tipo cuadrática.

       Este nombre se utiliza después en otras funciones de GLU para hacer referencia a esta superficie cuadrática particular. A continuación, se activa el sombreador de cuadráticas con la función gluNewQuadric, entonces se selecciona el modo de visualización GLULINE para s p h e r e l con el comando gluQuadricDrawStyle. Por tanto, la esfera se muestra en su modelo alámbrico con un segmento de línea recta entre cada par de vértices de la superficie. Al parámetro r se le asigna un valor de doble precisión para usarlo como radio de la esfera.
       La esfera se divide en un conjunto de caras poligonales mediante líneas de longitud y de latitud equiespaciadas. Especificamos el número entero de líneas de longitud y de líneas de latitud como valores de los parámetros n Longitudes y n Latitudes.
       Se visualizan tres objetos con superficies cuadráticas (una esfera, un cono y un cilindro) en su modelo alámbrico con el siguiente programa de ejemplo. Establecemos la dirección de la vista como el semieje positivo z para que el eje de todos los objetos visualizados sea vertical. Los tres objetos se posicionan en diferentes localizaciones dentro de una única ventana de visualización.

 3.3.4 Representaciones de “spline”.

En el dibujo de bocetos, un spline es una banda flexible que se utiliza para producir una curva suave que pasa por unos puntos concretos. Se distribuyen varios pesos pequeños a lo largo de la banda para mantenerla en su posición sobre la mesa de dibujo mientras se traza la curva. El término curva con spline en principio hacia referencia a una curva dibujada de este modo. Podemos describir matemáticamente tal curva con una función creada por tramos de polinomios cúbicos, cuya primera y segunda derivadas son continuas en las diferentes partes de la curva.
En los gráficos por computadora, el término curva con spline ahora se refiere a cualquier curva compuesta formada por partes polinómicas que satisfacen condiciones de continuidad específicas en los límites de las mismas. Una superficie con splines se puede describir con dos conjuntos de curvas ortogonales con splines. Existen varias clases diferentes de especificaciones de splines que se utilizan en aplicaciones de gráficos por computadora. Cada especificación individual simplemente hace referencia a un tipo particular de polinomio con ciertas condiciones específicas en los límites.
         Los splines se utilizan para diseñar formas de curvas y de superficies, para digitalizar dibujos y para especificar trayectorias de animación de objetos o la posición de la cámara en una escena. Entre las aplicaciones habituales de CAD con splines se incluyen el diseño de la carrocería de un automóvil, las superficies de aviones o naves espaciales, los cascos de las embarcaciones y los electrodomésticos.
Splines de interpolación y de aproximación.
Especificamos una curva con spline proporcionando un conjunto de coordenadas de puntos, llamados puntos de control, que marcan la forma general de la curva. Estas coordenadas se ajustan mediante funciones polinómicas paramétricas y continuas por tramos de uno de estos dos modos. Cuando las partes polinómicas se ajustan para que todos los puntos de control estén conectados, se dice que la curva resultante interpola el conjunto de puntos de control. En cambio, cuando la curva de polinomios generada se dibuja para que algunos, o todos, los puntos de control no estén en la trayectoria de la curva, se dice que la curva aproxima el conjunto de puntos de control. Se utilizan métodos similares para construir superficies de interpolación o de aproximación con splines.
       Los métodos de interpolación se utilizan habitualmente para digitalizar dibujos o para especificar trayectorias de animación. Los métodos de aproximación se utilizan fundamentalmente como herramientas de diseño para crear formas de objetos. Líneas rectas conectan los puntos de control situados por encima de la superficie.
        Una curva o una superficie con splines se define, modifica y manipula con operaciones sobre los puntos de control. Seleccionando interactivamente posiciones espaciales para los puntos de control, un diseñador puede establecer una forma inicial. Después de que se visualiza el polinomio de ajuste para un conjunto concreto de puntos de control, el diseñador puede volver a posicionar algunos o todos los puntos de control para reestructurar la forma del objeto. Las transformaciones geométricas (traslación, rotación y cambio de escala) se aplican al objeto transformando los puntos de control. Además, los paquetes de CAD insertan puntos de control adicionales para ayudar al diseñador en el ajuste de las formas de los objetos.

Un conjunto de puntos de control define un límite de una región del espacio que se denomina armazón (huli) convexo. Una manera de imaginarse la forma de un armazón convexo para una curva bidimensional consiste en imaginar una banda de goma estirada alrededor de los puntos de control para que cada punto de control esté sobre el perímetro de ese límite o dentro de éste. Por tanto, el armazón convexo de una curva bidimensional con spline es un polígono convexo. En el espacio tridimensional, el armazón convexo de un conjunto de puntos de control de splines forma un poliedro convexo. El armazón convexo proporciona una medida de la desviación de una curva o una superficie de la región del espacio próxima a los puntos de control. En la mayoría de los casos, un spline está confinado dentro de su armazón convexo, lo cual garantiza que la forma de objeto sigue los puntos de control sin oscilaciones erráticas. También, el armazón convexo proporciona una medida de las amplitudes de las coordenadas de una curva o una superficie diseñadas, por lo que es útil en subrutinas de recorte y de visualización.
        Una polilínea que conecta la secuencia de puntos de control de una curva de aproximación con splines se muestra habitualmente, para recordar al diseñador las posiciones de los puntos de control y su ordenación. Este conjunto de segmentos de línea conectados se denomina grafo de control de la curva. A menudo, el grafo de control se denomina «polígono de control» o «polígono característico», aunque el grafo de control es una polilínea y no un polígono. 
       En una superficie con splines, dos conjuntos de polilíneas que conectan los puntos de control forman las aristas de las caras poligonales, de una malla de cuadriláteros del grafo de control de la superficie. 


3.3.5 Curvas y superficies de Bézier.
Este método de aproximación con spline fue desarrollado por el ingeniero francés Pierre Bézier para su uso en el diseño de las carrocerías de automóviles Renault. Los splines de Bézier disponen de unas propiedades que los hacen especialmente útiles y convenientes para el diseño de curvas y superficies. Además, son fáciles de implementar. Por estas razones, los splines de Bézier están disponibles con mucha frecuencia en diversos sistemas CAD, en paquetes para gráficos generales y en paquetes heterogéneos de dibujo y pintura.

       Por lo general, una parte de una curva de Bézier se puede ajustar a cualquier número de puntos de control, aunque algunos paquetes gráficos limitan el número de puntos de control a cuatro. El grado del polinomio de Bézier se determina con el número de puntos de control que hay que aproximar y con su posición relativa. Como en los splines de interpolación, podemos especificar la trayectoria de la curva de Bézier en las proximidades de los puntos de control utilizando funciones de combinación, una matriz de caracterización, o las condiciones en los límites. En las curvas generales de Bézier, sin restricciones en el número de puntos de control, la especificación de la función de fundido es la representación más conveniente.
 
Ecuaciones de las curvas de Bézier. 
 En primer lugar consideraremos el caso general con n + 1 puntos de control, indicados como p4 = (xkyyh zk) y donde k varía desde O a n . Estos puntos se combinan para producir el siguiente vector de posición P (w), que describe la trayectoria de una función de aproximación polinómica de Bézier entre p„ y p„. En la mayoría de los casos, una curva de Bézier es un polinomio de un grado menos que el número de puntos de control designados: tres puntos generan una parábola, cuatro puntos una curva cúbica, y así sucesivamente. La Figura 8.33 muestra la apariencia de algunas curvas de Bézier para varias selecciones de puntos de control en el plano xy (z = 0). Con ciertas posiciones de los puntos de control, sin embargo, obtenemos polinomios de Bézier degenerados. Por ejemplo, una curva de Bézier generada con tres puntos de control colíneales es un segmento de línea recta. Y un conjunto de puntos de control que están todos en la misma posición producen una «curva» de Bézier que es un único punto.
Ejemplo de un programa de generación de curvas de Bézier.
En el siguiente programa se proporciona una implementación para el cálculo de las funciones de combinación de Bézier y la generación de una curva bidimensional con splines de Bézier cúbicos. Se definen cuatro puntos de control en el plano xy, y se dibujan 1000 posiciones de píxeles a lo largo de la trayectoria de la curva utilizando un grosor de píxel de 4. En el procedimiento binomialCoeffs se calculan los valores de los coeficientes binomiales y en el procedimiento computeBezPtse calculan las coordenadas a lo largo de la trayectoria de la curva.

         Estos valores se pasan al procedimiento b é z i e r, y se dibujan las posiciones de los pixeles utilizando las subrutinas de dibujo de puntos de OpenGL. De forma alternativa, podríamos haber aproximado la trayectoria de la curva con segmentos de línea recta, utilizando menos puntos. Los límites de las coordenadas universales se establecen para que se visualicen sólo los puntos de la curva dentro del visor , si quisiéramos también dibujar los puntos de control, el grafo de control, o el armazón convexo, necesitaríamos ampliar los límites de la ventana de recorte en coordenadas universales.
Propiedades de las curvas de Bézier.
Una propiedad muy útil de una curva de Bézier es que la curva une el primer punto de control con el último.
        Los valores de las primeras derivadas paramétricas de una curva de Bézier en los puntos extremos, se pueden calcular a partir de las coordenadas de los puntos de contro.
       En estas expresiones, vemos que la pendiente en el comienzo de la curva tiene la dirección de la línea que une los dos primeros puntos de control y la pendiente en el extremo final de la curva tiene la dirección de la línea que une los dos últimos puntos extremos. De forma similar, las segundas derivadas paramétricas de una curva de Bézier en sus puntos extremos se calcula como sigue:

Técnicas de diseño utilizando curvas de Bézier.

Una curva de Bézier cerrada se genera cuando establecemos el último punto de control en la posición del primer punto de control. También, especificando múltiples puntos de control en una única posición proporciona más peso a dicha posición. na única posición de coordenadas se introduce como dos puntos de control y la curva resultante se desplaza hacia las proximidades de esta posición.
        Podemos ajustar una cuna de Bézier a cualquier número de puntos de control, pero esto requiere el cálculo de funciones polinómicas de grado superior. Cuando hay que generar curvas complicadas, éstas se pueden formar uniendo varias secciones de curvas de Bézier de menor grado. La generación de secciones de curvas de Bézier más pequeñas también proporciona un mejor control local sobre la forma de la curva. Ya que las curvas de Bézier tienen la importante propiedad de que la tangente a la curva en un punto extremo tiene la dirección de la línea que une aquel punto extremo con el punto de control adyacente.
 
Superficies de Bézier.

Las superficies de Bézier tienen las mismas propiedades que las curvas de Bézier y proporcionan un método conveniente para aplicaciones interactivas de diseño. Para especificar las posiciones de los puntos de control con coordenadas tridimensionales, podríamos en primer lugar construir una cuadrícula rectangular en el plano xy «de tierra». A continuación, elegimos las alturas sobre el plano de tierra en las intersecciones de la cuadrícula como los valores de la coordenada z de los puntos de control. Los parches de superficie se pueden representar con polígonos y sombrear utilizando las técnicas de sombreado expuestas en el Capítulo 10. La superficie formada por dos secciones de superficie de Bézier garantiza una transición suave de una sección a otra estableciendo tanto continuidad de orden cero como de primer orden en la línea límite. La continuidad de orden cero se obtiene haciendo coincidir los puntos de control en los límites. La continuidad de primer orden se obtiene seleccionando los puntos de control a lo largo de una línea recta que recorre el límite y manteniendo una relación constante entre los segmentos de línea colíneales para cada conjunto de puntos de control específicos de los límites de las secciones.