Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
UNIDAD III RENDERING BÁSICO ▪ Algoritmos de rasterizado de líneas y círculos. Semana 15 Al término de la sesión, el estudiante crea y presenta un ejemplo OpenGL con algoritmos principales de rasterizado de líneas y círculos. Logro de Aprendizaje ¿Qué es la rasterización? Responder en el foro Rasterización ❑ Determina qué píxeles están dentro de una primitiva que se ha especificado mediante un conjunto de vértices. ❑ Produce un conjunto de fragmentos. ❑ Los fragmentos tienen una ubicación (ubicación del pixel); otros atributos tales como color y coordenadas de textura también pueden determinarse interpolando los valores en los vértices. El color de un determinado pixel se determinará posteriormente usando color, textura y otras propiedades de los vértices. La conversión de la descripción geométrica a la imagen raster implica calcular los píxeles que deben pintarse muestreando la forma geométrica subyacente. Rasterización de Segmentos de Rectas Anti - Aliasing Escena sin Anti - Aliasing: La razón por la que aparecen estos bordes irregulares se debe a cómo el rasterizador transforma los datos de los vértices en fragmentos reales detrás de la escena. Escena con Anti - Aliasing: Rasterización de Segmentos de Rectas ¿Cómo dibuja OpenGL una línea? ¿cómo se determina qué píxeles es necesario pintar? Para dibujar líneas rectas, habrá que calcular las posiciones intermedias entre los dos extremos ❑ A menor resolución, mayor es el efecto de distorsión en píxeles (Anti-Aliasing). ❑ Es necesario disponer de métodos para convertir primitivas en píxeles de la forma más eficiente posible. Una línea recta que, por ejemplo, no es ni horizontal ni vertical, Rasterización de Segmentos de Rectas Existen distintos algoritmos. En todos los casos la línea será dibujada de (x0, y0) a (x1, y1). Además, deben tenerse en cuenta las características de las rectas a dibujar: ❑ Deben ser rectas. ❑ Deben terminar exactamente. ❑ Deben tener densidad constante. ❑ Su densidad debe ser independiente de la longitud de la misma y del ángulo de inclinación. ❑ Deben dibujarse rápidamente. ¿Cómo dibuja OpenGL una línea? Rasterización de Segmentos de Rectas Algoritmo básico: Algoritmo Ecuación de la Recta El algoritmo básico utiliza la ecuación de la recta expresada como: y = mx + b Si la recta se dibuja desde el punto (x0, y0) hasta el punto (x1, y1), entonces, el algoritmo varia x desde x0 hasta x1 en incrementos de una unidad. m= Δ𝒙 Δ𝒚 = y1 −y0 X1 −X0 Finalmente: m es el valor de la pendiente: Rasterización de Segmentos de Rectas Algoritmo básico: Algoritmo Ecuación de la Recta En OpenGl usando C++ el algoritmo de ecuación de la recta sería: void abasico(int x0,int y0,int x1,int y1){ int x; float dx, dy, m, b, y; dx = x1 - x0; dy = y1 - y0; m = dy/dx; b = y0 - m*x0; y = y0; glBegin(GL_POINTS); for(x=x0; x<=x1; x++){ y = m*x + b; glVertex2f(x,(int)ceil(y-0.5)); } glEnd(); } Practicamos En grupos, investiga y expone otros algoritmos de rasterizado para: Líneas: ❑ Algoritmo DDA (Grupo1 ) ❑ Algoritmo de Bresenham o Punto Medio (Grupo2 y 9) Círculos: ❑ Flood Fill (Grupo3 y 8) ❑ Curva de Bézier (Grupo4 y 5) ❑ Algoritmo Anti-Aliasing (Xiaolin Wu) (Grupo6, 7 y 10) Presenta tu informe y el link del video grabado (participantes con cámara encendida) explicando el algoritmo y haciendo una demostración en CodeBlocks/Visual Studio y OpenGl. ❑ ¿Qué aprendí? ❑¿Qué necesito reforzar? ¿Preguntas o dudas? Referencias http://graficacionitl.blogspot.com/2012/04/linea-dda-en-c-con-open-gl.html?m=1 http://payo25.blogspot.com/2015/08/algoritmo-de-bresenham-y-algoritmo-dda.html https://programmerclick.com/article/60291818400/ https://www.academia.edu/38398063/practica_dos_opengl.docx https://niixer.com/index.php/2021/03/06/algoritmos-de-implementacion-en-rectas/ https://docplayer.es/64338586-Universidad-simon-bolivar-computacion-grafica-i-sep-dic-2011-algoritmos- para-dibujo-de-lineas.html http://bankslab.berkeley.edu/members/chris/AntiAliasing/AntiAliasingInOpenGL.html https://docplayer.es/64338586-Universidad-simon-bolivar-computacion-grafica-i-sep-dic-2011-algoritmos-para-dibujo-de-lineas.html https://docplayer.es/64338586-Universidad-simon-bolivar-computacion-grafica-i-sep-dic-2011-algoritmos-para-dibujo-de-lineas.html Diapositiva 1 Diapositiva 2 Diapositiva 3 Diapositiva 4 Diapositiva 5 Diapositiva 6 Diapositiva 7 Diapositiva 8 Diapositiva 9 Diapositiva 10 Diapositiva 11 Diapositiva 12 Diapositiva 13 Diapositiva 14 Diapositiva 15
Compartir