UNIDAD 2.GRAFICACIÓN 2D 2.1 TRAZO DE LÍNEAS RECTAS Línea Recta: En geometría euclidiana, la recta o la línea recta, se extiende en una misma dirección, existe en una sola dimensión y contiene infinitos puntos; está compuesta de infinitos segmentos (el fragmento de línea más corto que une dos puntos). También se describe como la sucesión continua e indefinida de puntos en una sola dimensión, es decir, no posee principio ni fin. Horizontal, vertical e inclinada Algoritmo de Bresenham para trazar líneas El algoritmo de Bresenham es un algoritmo creado para dibujar rectas en los dispositivos de gráficos rasterizados, como por ejemplo un monitor de ordenador, que determina qué pixeles se rellenarán, en función de la inclinación del ángulo de la recta a dibujar. Es un algoritmo preciso para la generación de líneas de rastreo que convierte mediante rastreo las líneas al utilizar solo cálculos incrementales con enteros que se pueden adaptar para desplegar circunferencias y curvas. Los ejes verticales muestran las posiciones de rastreo y los ejes horizontales identifican columnas de pixel. Si 0<|m|<1 *Se capturan los extremos de la línea y se almacena el extremo izquierdo en (x0, y0). *Se carga (x0, y0) en el búfer de estructura (se traza el primer punto) *Se calculan las constantes Δx,Δy, 2Δy y 2Δy-Δx y se obtiene el valor inicial para el Parámetro de decisión p0=2Δy-Δx. Para j=0 mientras j<Δx *En cada xk a lo largo de la línea, que inicia en k=0 se efectúa la prueba siguiente: Si pk<0 *Trazamos (xk+1,yk). *Asignamos pk+1= pk+2Δy. Sino *Trazamos (xk+1,yk+1). *Asignamos pk+1= pk+2Δy-2Δx. Fin Para Si |m|>1 *Recorremos la dirección en pasos unitarios y calculamos los valores sucesivos de x que se aproximen más a la trayectoria de la línea. 2.2 REPRESENTACIÓN Y TRAZO DE POLÍGONOS Polígono. Un polígono es una figura bidimensional compuesta por una secuencia finita de segmentos rectos consecutivos que cierran una región en el espacio. Estos segmentos son llamados lados, y los puntos en que se intersecan se llaman vértices. El interior del polígono es llamado área. Polígono (lados rectos) No es un polígono (tiene una curva) No es un polígono (abierto, no cerrado) Tipos de polígonos - Simple o complejo Un polígono simple sólo tiene un borde que no se cruza con él mismo. Uno complejo se interseca consigo mismo. Polígono simple (este es un pentágono) Polígono complejo (también es un pentágono) - Cóncavo o convexo Un polígono convexo no tiene ángulos que apunten hacia dentro. En concreto, los ángulos internos no son mayores que 180°. Si hay algún ángulo interno mayor que 180° entonces es cóncavo. Convexo Cóncavo - Regular o irregular Si todos los ángulos son iguales y los lados también, es regular, si no es irregular Regular Irregular 2.3 TRANSFORMACIÓN BIDIMENSIONAL 2.3.1 TRASLACIÓN Una traslación es el movimiento en línea recta de un objeto de una posición a otra. Se traslada cada punto P(x,y) dx unidades paralelamente al eje x y dy unidades paralelamente al eje y, hacia el nuevo punto P'(x',y'). Las ecuaciones quedan: Si se definen los vectores columna queda: Entonces la ecuación 1 puede ser expresada como: Una forma de efectuar la traslación de un objeto es aplicándole a cada punto del mismo la ecuación 1. Para trasladar todos los puntos de una línea, simplemente se traslada los puntos extremos. En la figura se muestra el efecto de trasladar un objeto 3 unidades en x y -4 unidades en y. Esto se cumple también para el escalamiento y la rotación. 2.3.2 ESCALAMIENTO Una transformación para alterar el tamaño de un objeto se denomina escalación. Dependiendo del factor de escalación el objeto sufrirá un cambio en su tamaño pasando a ser mayor, o menor en su segmento de longitud. El escalamiento se hace con un factor sx en el eje x y en un factor sy en el eje y. Escalamiento uniforme sx = sy Escalamiento diferencial. La transformación de escalamiento puede expresarse con las siguientes multiplicaciones En forma matricial Se escala a ½ en el eje x y a ¼ en el eje y . El escalamiento se efectúa con respecto al origen; 2.3.3 ROTACIÓN Para rotar un objeto (en este caso bidimensional), se ha de determinar la cantidad de grados en la que ha de rotarse la figura. Para ello, y sin ningún tipo de variación sobre la figura, la cantidad de ángulo ha de ser constante sobre todos los puntos. Los puntos también pueden ser rotados un ángulo θ con respecto al origen En forma matricial En la figura se muestra la rotación de la casa 45º, con respecto al origen. 2.4 REPRESENTACIÓN MATRICIAL En las aplicaciones de diseño y de creación de imágenes, realizamos traslaciones, rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones apropiadas. En este tema consideramos cómo se pueden volver a formular las representaciones de la matriz de modo que se pueden procesar de manera eficiente esas secuencias de transformación. Es posible expresar cada una de las transformaciones básicas en la forma de matriz general con las posiciones de coordenadas P y P’ representadas como columnas de vector. Con las representaciones de matriz podemos establecer una matriz para cualquier secuencia de transformaciones como una matriz de transformación compuesta al calcular el producto de la matriz de las transformaciones individuales. La creación de productos de matrices de transformación a menudo se conoce como concatenación o composición de matrices. Traslaciones Si se aplican dos vectores de traslación sucesivos (tx1, t y1) y (tx2 , t y2 ) en la posición de coordenadas P, la localización transformada final P, la localización transformada final P’ se calcula como: P'=T(t x2,t2)·T(tx1,ty1)·P}{=T(tx2, 2)·T(t x1,t y1)}{·P Donde se representan P y P’ como vectores de columna de coordenadas homogéneas. Podemos verificar este resultado al calcular el producto de la matriz para las dos agrupaciones asociativas. Asimismo, la matriz de transformación compuesta para esta secuencia de transformaciones. Rotaciones Dos rotaciones sucesivas que se aplican en el punto P producen la posición transformada P'=R(θ2)·R(θ1){·P}=R(θ2){· (θ1)}·P Al multiplicar las dos matrices de rotación, podemos verificar que dos rotaciones sucesivas son aditivas Escalamiento La siguiente figura ilustra una secuencia de transformación para producir escalación con respecto de una posición fija seleccionada (xf,f) al utilizar una función de escalación que sólo puede escalar en relación con el origen de las coordenadas 2.5 VENTANA Y PUERTO DE VISIÓN Un área rectangular que se especifica en coordenadas mundiales se denomina ventana. El área rectangular en el dispositivo de despliegue en el cual se coloca la ventana se llama puerta de visión. La figura ilustra el trazo o planimetría de la selección de una imagen que queda dentro del área de ventana en una puerta de visión designada. Esta planimetría se llama transformación de la visión o bien transformación de normalización. Los límites de la ventana se especifican en coordenadas mundiales. Las coordenadas de dispositivo normalizadas se usan con mayor frecuencia para la especificación de la puerta visión, aunque las coordenadas del dispositivo pueden emplearse si hay solamente un dispositivo de salida en el sistemas. Cuando se usan coordenadas de dispositivo normalizadas, el programador considera el dispositivo de salida como aquel que tiene valores coordenados dentro del intervalo de 0 a 1. Las posiciones de coordenadas que se expresan en coordenadas de dispositivo normalizadas deben convertirse a las coordenadas del dispositivo antes de que un dispositivo de salida específico haga el despliegue. Una rutina específica del dispositivo se incluye en paquetes de gráficas con este fin. La ventaja de emplear coordenadas de dispositivo normalizadas es que el paquete de gráficas es considerablemente independiente del dispositivo. Pueden utilizarse distintos dispositivos de salida ofreciendo los conductores adecuados del dispositivo. Cambiando la posición de la puerta de visión, los objetos pueden desplegarse en diferentes posiciones en un dispositivo de salida. Asimismo, variando el tamaño de las puertas de visión, el tamaño y las proporciones de los objetos pueden alterarse. Cuando se trazan en forma sucesiva ventanas de diferentes tamaños en una puerta de visión, pueden lograrse efectos de acercamiento. Conforme las ventanas se hacen pequeñas, un usuario puede lograr el acercamiento de alguna parte de una escena para visualizar detalles que no se muestran con las ventanas mayores. Analógicamente, puede obtener un panorama general más amplio realizando un acercamiento de una sección de escena con ventanas cada vez más mayores. Los efectos de toma panorámica se producen moviendo o desplazando una ventana de tamaño fijo a través de una imagen grande. UNIDAD 3. GRAFICACIÓN 3D 3.1 REPRESENTACIÓN DE OBJETOS EN TRES DIMENSIONES El diseño ayudado por ordenador representa un gran ahorro de esfuerzo y tiempo. Además se consiguen resultados extraordinarios con respecto a los procedimientos clásicos de diseño. Los programas de diseño industrial o arquitectónico admiten tres maneras de representación de objetos. Modelos bidimensionales del objeto o parte de él. Se reproducen separadamente las diferentes caras, planos o cortes para ser estudiados y modificados. Normalmente se utiliza una representación formal del objeto, obteniendo sus vistas desde diferentes puntos de visualización. Se denominan vistas principales de un objeto, a las proyecciones ortogonales del mismo sobre 6 planos, dispuestos en forma de cubo. También se podría definir las vistas como, las proyecciones ortogonales de un objeto, según las distintas direcciones desde donde se mire. Si situamos un observador según las seis direcciones indicadas por las flechas, obtendríamos las seis vistas posibles de un objeto. Modelos tridimensionales que incluyan únicamente un conjunto de puntos y líneas en el espacio. Estos modelos se llaman “wireframe” o alambrado (armazón de alambre). El objeto así representado rota en diferentes ángulos para su estudio o transformación definitiva. Existen varias formas de representación en modo wireframe: 1. Representación alambrica: Activa este modo de sombreado. 2. Representación alambrica det: Se muestran bordes alámbricos e iluminación 3. Área de trabajo: Muestra los objetos como área de trabajo solamente. El área de trabajo se define como la caja más pequeña que abarca completamente un objeto. Modelos sólidos que incluyen el dibujo de superficies y son los más completos y complejos. 1. Suavizado + Resaltes: Activa este modo de sombreado, que permite ver la homogeneidad e iluminación de los objetos. También puede presentar mapas en la superficie de objetos. Esto sucede mapa a mapa, pero puede presentar tantos mapas como desee simultáneamente en el visor. Los mapas sólo aparecen en objetos que tienen coordenadas de mapeado. 2. Suavizado: Muestra suavizado, pero no resaltes Espacio tridimensional El espacio 3D es un espacio matemático virtual creado por el programa de diseño 3D. Este espacio está definido por un sistema cartesiano de tres ejes: X, Y, Z. El punto donde salen las líneas virtuales que definen los ejes se llama origen y sus coordenadas son (0, 0, 0). En este espacio virtual se crean, modifican y disponen los diferentes objetos tridimensionales que van a componer la escena. Renderizado El renderizado es un proceso de cálculo complejo desarrollado por un ordenador destinado a generar una imagen 2D a partir de una escena 3D. Así podría decirse que en el proceso de renderización, la computadora "interpreta" la escena 3D y la plasma en una imagen 2D. La renderización se aplica a los gráficos por ordenador, más comúnmente a la infografía. En infografía este proceso se desarrolla con el fin de imitar un espacio 3D formado por estructuras poligonales, comportamiento de luces, texturas, materiales, animación, simulando ambientes y estructuras físicas verosímiles, etc. Una de la parte más importante de los programas dedicados a la infografía son los motores de render los cuales son capaces de realizar técnicas complejas como radiosidad, raytrace (trazador de rayos), canal alpha, reflexión, refracción, iluminación global, etc. Cuando se trabaja en un programa de diseño 3D por computadora, no es posible visualizar en tiempo real el acabado final deseado de una escena 3D compleja ya que esto requiere una potencia de cálculo demasiado elevada. Por lo que se opta por crear el entorno 3D con una forma de visualización más simple y técnica y luego generar el lento proceso de renderización para conseguir los resultados finales deseados. Proyecciones En dos dimensiones, las operaciones de visión transfieren puntos bidimensionales en el plano coordenado mundial a puntos bidimensionales en el plano de coordenadas del dispositivo. Las definiciones de objetos, sujetados contra el marco de una ventana, se delinean en un puerto de visión (viewport). Estas coordenadas de dispositivo normalizadas se convierten después en coordenadas de dispositivo y el objeto se despliega en el dispositivo de salida. En tres dimensiones, la situación es un poco más complicada, ya que ahora tenemos algunas alternativas como la forma en que se van a generar las vistas. Podríamos visualizar una escena desde el frente, desde arriba o bien desde atrás. También podríamos generar una vista de lo que observaríamos si estuviéramos parados en medio de un grupo de objetos. Además, las descripciones tridimensionales de objetos deben proyectarse en la superficie de visión plana del dispositivo de salida. La visualización en nuestro caso significa información del mundo real en la pantalla. La visualización 2D son las operaciones de transferencia de puntos bidimensionales en el plano coordenado del mundo en el plano coordenado del dispositivo. Existen dos métodos básicos para proyectar objetos tridimensionales sobre una superficie de visión bidimensional. Estas dos maneras, dependen de si todos los puntos del objeto pueden proyectarse sobre la superficie a lo largo de líneas paralelas o bien los puntos pueden proyectarse a lo largo de líneas que convergen a una posición denominada centro de proyección. En ambos casos, la intersección de una línea de proyección con la superficie de visión determina las coordenadas del punto proyectado sobre este plano de proyección. Proyecciones 3.2 VISUALIZACIÓN DE OBJETOS El universo 3D entero no es completamente observable en una pantalla 2D. Sino que solo una parte del mismo será visible, en un determinado momento, bajo una determinada posición y orientación de cámara. La cámara mencionada anteriormente representa el ojo desde el cual se está observando el universo 3D en un determinado momento, y se la denomina Frustum. El Frustum es una figura geométrica de aspecto piramidal, que delimita la región de espacio del universo 3D que terminará siendo visible en pantalla. Consiste en una pirámide rectangular compuesto por seis planos: near plane, far plane, left plane, right plane, top plane y bottom plane. El volumen encerrado entre estos planos dependerá de los valores configurados de la cámara: Position: lugar en el espacio en donde se encuentra la cámara, en un momento determinado Look at: dirección hacia donde apunta la cámara en un momento determinado, partiendo desde la posición especificada anteriormente. Near distance: distancia que existe entre la posición de la cámara y el near plane del Frustum. Indica la distancia a partir de lo cual todo empieza a ser visible. Aquello que se encuentre entre la cámara y el near plane, es decir, demasiado cerca al ojo de la cámara, no será visible. Far distance: distancia máxima a la que un objeto será visible. Determina la posición del far plane del Frustum. Es análogo a la visibilidad máxima que puede ver el ojo. Aspect Ratio: es relación entre el ancho y el alto de la pantalla 2D sobre la que se va a proyectar el mundo 3D. Se calcula dividiendo el ancho de la pantalla por el alto de la misma. Ratio = width / height FOV: indica el ángulo de visión respecto del eje Y. Es lo que determina el ensanchamiento de la pirámide del Frustum, desde el near plane al far plane. Normalmente toma un valor entre 40° y 60°. Todos los triángulos de todos los modelos del universo 3D que se encuentren dentro del volumen del Frustum serán visibles en pantalla (exceptuando aquellos que se interponen ante otros). Aquellos triángulos que se encuentran parte dentro del Frustum y parte afuera, serán recortados hasta dejar solo la parte de los mismos que es visible (triangle splitting). A este proceso de determinar que triángulos caen dentro del volumen de visión se lo denomina Frustum Culling, y puede ser realizado en distintas etapas: a nivel de la aplicación o directamente por el adaptador de video. Una vez que se ha calculado los triángulos que se encuentran dentro del Frustum, habrá que tener en cuenta que algunos estarán tapando a otros, en lo que respecta a al ojo de la cámara. Por lo tanto no todos los triángulos dentro del Frustum terminarán convirtiéndose realmente en pixels de pantalla. A este proceso se lo denomina Occlusion Culling. Por lo tanto el concepto de Rendering consiste en calcular, para una cámara determinada, dentro de un universo 3D determinado, que pixels deberán ser dibujados en pantalla. El proceso de Rendering es bastante complejo e involucra varias etapas. Gracias a la existencia de APIs gráficas como OpenGL y DirectX, junto con el apoyo de los adaptadores de video, el programador normalmente no debe ocuparse de todo este proceso de transformación. Sino que se limita a especificar la geometría del mundo que quiere representar en el modelo lógico de 3D dimensiones, y luego la API gráfica en cuestión será la encargada de transformar ese mundo 3D en una matriz bidimensional de pixels. 3.3 TRANSFORMACIONES TRIDIMENSIONALES El escalado, la traslación y la rotación son transformaciones lineales, ya que los nuevos puntos se calculan a partir de combinaciones lineales de las componentes de los puntos originales. Se define TRANSFORMACIÓN AFÍN a una combinación de transformaciones lineales aplicadas a un objeto. Cada transformación vendrá representada por una sola matriz, que se obtendrá multiplicando las matrices de cada una de las transformaciones, y en el mismo orden en el que queremos que se apliquen. Una escena 3D se define por los puntos, planos y líneas que lo componen. Como son 3 dimensiones, se necesita un tercer eje, siendo estos el eje X, Y y Z. El sentido de estos queda definido por la regla de la mano derecha. La regla de la mano derecha determina la dirección positiva del eje Z cuando se conoce la dirección de los ejes X y Y en un sistema de coordenadas 3D. Cualquier punto se describe entonces como una terna de valores (x, y, z) Las transformaciones 3D son extensiones de las transformaciones en dos dimensiones, por tanto, en 3-D, aplicando la misma regla, habrá que pasar a matrices 4x4 3.4 LINEAS Y SUPERFICIES CURVAS La necesidad de representar curvas y superficies proviene de modelar y representar objetos reales o ficticios. 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 cercanos a los correspondientes puntos del objeto. Definiciones Básicas. Una curva es una línea continua de una dimensión, que varía de dirección paulatinamente. Una superficie es una extensión en que se consideran sólo dos dimensiones. Superficies Curvas. Las superficies curvas pueden generarse a partir de un conjunto funciones matemáticas que definen la superficies o bien a partir de un conjunto de puntos de datos especificados por el usuario. Cuando se especifican funciones de curvas, un paquete puede emplear las ecuaciones definidoras para localizar y gráfica posiciones de pixeles a lo largo de la trayectoria de la curva, casi igual como sucede con las curvas en dos dimensiones. La definición analítica de una dada curva puede hacerse de varios modos y se relaciona directamente con la forma de representarla gráficamente: • Explícitamente : y = f(x) • Implícitamente: f(x, y) = 0 • Paramétricamente: x = x(t) y = y(t) Representación Explícita Es la mas conocida desde que nos ensenaron a utilizar las coordenadas cartesianas para graficar funciones. En 3D, para representar una curva se requieren dos ecuaciones: y = f (x), z = g(x) Obteniendo una superficie en 3D que será: z = f (x, y) Representación Implícita Para curvas y superficies estándar (rectas, círculos, planos, toroides, etc.), este tipo de definición es mas directa y permite visualizar y modificar sencillamente parámetros importantes y específicos de cada curva (radio en un circulo, distancia al origen en un plano, etc.). En 3D, una superficie se describe por f(x, y, z) = 0 Ejemplo • Una esfera: x2 + y2 + z2 – r2 = 0 • Una curva corresponde a la intersección de dos superficies: f(x, y, z) = 0 y g(x, y, z) = 0 Nota: el punto (x, y, z) debe pertenecer a ambas superficies. Representación Paramétrica El valor de cada variable espacial se expresa en términos de una variable independiente (t), llamada parámetro. Estas funciones juntas han de formar las ecuaciones paramétricas de una curva: x = x(t) y = y(t) z = z(t) Cada valor de t determina un punto (x,y) que se puede representar en un sistema de coordenadas. Superficie Paramétrica al conjunto de puntos (x,y,z,) dados por r(u,v)= x(u,v)i + y(u,v)j + z(u,v)k. Las Ecuaciones x=(u,v), y=(u,v) y z=(u,v) se llaman Ecuaciones Paramétricas de la superficie. La configuración de los objetos gráficos 3D curvas y superficies también se puede ilustrar con mayor detalle mediante la siguiente escena:
Report "UNIDAD 2 Y PARTE DE LA 3 GRAFICACION IMPRIMIR.docx"