¡GoConqr estrena diseño! Cuéntanos qué te parece.

Apuntes

Rendering, Rasterización

mariangelesp14 Computacion grafica Muestreo, Computacion Gráfica, Metodos numericos Español 1 página

Contenido del apunte (1)

Página 1

Unidad de procesamiento gráfico o GPU

La GPU es una

parte esencial del hardware de visualizacion en modo inmediato, pero la

separamos del monitor y dejamos para lo ultimo por su importancia capital en la

CG. Antiguamente se conocian como placas graficas o placas aceleradoras de

video, pero desde el ano 2000 aproximadamente se utiliza el termino GPU para

resaltar su programabilidad. Hoy hasta los telefonos celulares contienen una

GPU.

La GPU es

basicamente una computadora especializada que procesa geometria (triangulos) y

genera pixeles.

Las variables de

estado son las condiciones de iluminacion, el punto de vista, el material y

otros datos “actuales” que se modifican o no, pero entre un triangulo y otro;

normalmente el estado tiene “larga” duracion (un objeto = muchos triangulos).

El tiempo de vida de esas variables hace sustentable procesar muchisimos

vertices, triangulos y sus fragmentos en paralelo. Actualmente se les estan

incorporando bloques de procesamiento especializados en la compresion y

descompresion de imagenes y video (codecs).

Como procesador

es una calculadora de matrices y vectores cuatridimensionales y ademas esta

especializada para manejar imagenes y pedazos (bloques rectangulares de una

memoria lineal) en forma muy eficiente.

La principal

ventaja estriba en que no se requiere mucha compatibilidad hacia atras (backwards compatibility) es decir que la

arquitectura del hardware es bastante mas libre que para una CPU y por lo tanto

ha evolucionado en forma asombrosa, tanto que hay procesadores en paralelo

basados en GPU que no se usan para imagenes sino para calculo de proposito

general (GPGPU) y un par de lenguajes (CUDA de Nvidia y OpenCL en general) para

realizarlo y ya algunas de las mas potentes supercomputadoras utilizan GPGPU

para el procesamiento.

Rendering

Se denomina rendering, y suele

castellanizarse como renderizado, al conjunto de computos que permiten

transformar una escena (normalmente tridimensional) en una imagen o una

pelicula. La escena es basicamente el conjunto de objetos, e incluye

posiblemente alguna forma de ambiente (cielo, imagen de fondo, etc.), pero tambien

incluye elementos como las luces, la camara y, para las peliculas, una

definicion de los movimientos de los objetos, las luces y la camara.

Mas alla de los

procedimientos individuales, el resultado se suele clasificar como fotorealista

o no-fotorealista (non photorealistic rendering o NPR). El

primero trata de simular un modelo fisico de la iluminacion real de objetos y

caracteres virtuales, el segundo (NPR) trata de simular el producto de la mano

artistica o puede utilizarse para representaciones visuales abstractas, como en

la visualizacion cientifica o matematica.

Casi todas las

imagenes que se generan mediante la Computacion Grafica son de tipo raster; es decir que

contienen informacion en los pixeles, que son puntos discretos con color. Pero

existe tambien el renderizado vectorial, que produce un trazado analitico de

los contornos y rellena cada interior con un color.

El trazado

vectorial clasico es el de los plotters, pero ahora tambien se utiliza para

almacenar imágenes rellenas, por ejemplo las definiciones de CorelDRAW o

Inkscape de logotipos y otros dibujos sencillos.

Una imagen raster consta de

informacion discreta; al ampliarla se ve “pixelada” (los pixeles pasan a ser

cuadrados visibles) a menos que se apliquen tecnicas de interpolacion o suavizado

que ayuden a mejorar un poco el resultado. La imagen vectorial, en cambio,

puede ampliarse sin perder definicion pues la ampliación solo varia el tamano

del dominio del calculo y se cuenta con las ecuaciones que reproducen cualquier

porción de la imagen.

El renderizado es

una secuencia de procedimientos de calculo que requieren software y hardware

especial para adecuarse a las exigencias modernas, tanto es asi que en este

momento se estan desarrollando ambos tipos de herramientas y cualquier aseveracion

que hagamos quedara obsoleta en un par de anos mas. Las placas graficas

permiten optimizar y paralelizar gran parte del computo, pero aun asi hay

algoritmos especiales que se incluyen en una amplia variedad de programas,

tanto libres como comerciales, para obtener distintos tipos de

resultados.

Otra

clasificacion del procedimiento se basa en la intencion de uso final, pero se

refiere mas bien a los cambios que sufre el modelo y la escena; pueden ser una

secuencia de procedimientos pre-programados que se renderizan en modo batch (esto es como

poner los ingredientes y enviar todo a cocinar al horno) o bien interactivo,

donde el usuario debe estar constantemente revisando y actualizando las

variables.

Los ejemplos

tipicos del renderizado en batch son las peliculas y las complejas imágenes

fotorealistas, para el interactivo son los videojuegos, el diseno (CAD) y la

exploracion de imagenes medicas o datos tecnicos.

Los pasos basicos

del renderizado definen el asi llamado pipeline gráfico, que incluye algunos procesos

especificos que iremos viendo a lo largo del curso, pero cuyo significado

podemos adelantar. Antes debemos describir como se crean las escenas y algunas

técnicas utilizadas.

Rasterización:

Que es, para que sirve, como se hace?

La idea es

representar un objeto mediante un conjunto discreto de puntos. Los objetos

continuos del modelo(curvas y superficies) se representan en un monitor u otro

dispositivo raster mediante un conjunto discreto de píxeles.

Las curvas raster

son una sucesión finita de puntos contiguos de coordenadas enteras y de modo

que no haya espacio entre dos puntos sucesivos de la línea: max (|Ax|,|Ay|)=1.

Una sucesión de puntos continuos suele denominarse “wáter tight”, a prueba de

agua o impermeable.

DDA:

El algoritmo calcula las derivadas en

t0 y pinta o marca el primer pto redondeando x0=int(x(t0)+0.5)

y0=int(y(t0)+0.5)

Luego con la variable de mayor derivada

con respecto a t,digamos x por ejemplo, calcula si debe avanzar o retroceder una

unidad, eso lo dictamina el signo de dx

, dando dx=+o-1. Con dt=1/|dx| calcula todo de nuevo en t+dt hasta llegar a t1

Es importante que sea una derivada

fácil de obtener sino se complica.por lo gral se utiliza en la mayoría de los polinomios.

Bresenham o pto medio:

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.

Es el algoritmo DDA, pero con una

mejora que consiste en utilizar solo aritmética de enteros. Para deshacernos de

las divisiones hay que multiplicar todo

por 2(para el redondeo) y por el denominador de la pendiente(dx o dy). Luego

hay que procurar que todos los valores sean enteros.

Algoritmo para rasterizar circunferencias:

Utilizamos un octavo del círculo, porque

tiene simetría central.

En este caso se calcula el tramo que va

de 90grados a 45, la curva es de tendencia horizontal, con x creciente e y decreciente; x aumenta de a una unidad.

Ahora lo que hay que saber es si el próximo punto está dentro o afuera de la

circunfencia. Si el punto medio está dentro pintamos el pixel E y si está

afuera el SE.

Un punto cualquiera está fuera del

círculo si x^2+ y^2>r^2.Luego habrá

que analizar si el próximo pto medio en (xi+1 e yi-0.5) ya que x crece e y

decrece, está o no dentro de la circunferencia (xi+1)^2+(yi-0.5)^2-r^2>0 si

se cumple se pinta SE sino E.

Subdivisiones binarias para elipse:

Se pinta el primer y último punto de la

elipse, si el intervalo en x o y es mayor que la unidad, entonces se pinta el

punto de parámetro intermedio.

Uso ¼ de la elipse con t variando de 0

a pi/2 calculo x-xc=(rh)*cos(t), y-yc=(ry)*sin(t)

Nueva Página

Información

Descripción
Computación Gráfica Introducción, Rendering, Rasterización
Creado por
mariangelesp14
Visitas
39
Valoración

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?