Advertisement
1 of / 19

Rendering


Contenido. ObjetivoRepresentaci

Download Presentation

Rendering

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use only and may not be sold or licensed nor shared on other sites. SlideServe reserves the right to change this policy at anytime.While downloading, If for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.











- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -




Presentation Transcript


Rendering l.jpg

Rendering


Contenido l.jpg

Contenido

  • Objetivo

  • Representación de líneas

    • Algoritmo DDA

    • Algoritmo de Bresenham

  • Representación de polígonos

  • Rellenado de polígonos

  • Eliminación de superficies ocultas


Representaci n rasterization l.jpg

Representación (Rasterization)

  • Se dispone de:

    • Topología de la escena

    • Coordenadas de los vértices proyectados

    • Intensidades en los vértices o en cada punto

    • Coordenada z de los vértices

  • Se desea obtener:

    • Color en cada pixel


Representaci n de una l nea l.jpg

Representación de una línea

  • Dadas las coordenadas de dos vértices

  • Determinar los pixels que deben marcarse

    • Produce efectos incorrectos marcar todos los pixels por los que pasa

Solución correcta


Algoritmo dda digital diferential analyzer l.jpg

dx = xb - xa

dy = yb - ya

x = xa

y = ya

If (Abs(dx) > Abs(dy)) Then

steps = Abs(dx)

Else

steps = Abs(dy)

End If

xIncrement = dx / steps

yIncrement = dy / steps

Call Plot(x, y)

For k = 0 To steps - 1

x = x + xIncrement

y = y + yIncrement

Call Plot(x, y)

Next k

Algoritmo DDA (Digital Diferential Analyzer)


Algoritmo de bresenham l.jpg

1

1/2

0

Algoritmo de Bresenham

  • DDA trabaja con números reales

  • El algoritmo de Bresenham se desarrolló para plotters digitales

  • Se basa en:

    • incrementar en el sentido mayor

    • la otra coordenada se incrementa 0 o 1

    • Se controla por el error entre la línea y el orígen del píxel más cercano


Algoritmo de bresenham7 l.jpg

Algoritmo de Bresenham

  • El error se incrementa con el valor de la pendiente: e = e + dy/dx

  • Cuando el error es superior a 1/2:

    • se incrementa y

    • se resta 1 al error

  • Se comienza con

    • e = -1/2

    • se controla e > 0


Algoritmo de bresenham8 l.jpg

Algoritmo de Bresenham

  • Operaciones con e:

    • Inicio: e = dy/dx - 1/2

    • Incremento: e = e + dy/dx

    • Control: if (e>0) then e = e -1, x = x + 1

  • x e y son enteros

  • e es real

    • Para trabajar con enteros, se multiplica el error por 2 • dx


Algoritmo de bresenham9 l.jpg

dx = Abs(xa - xb)

dy = Abs(ya - yb)

e = 2 * dy - dx

If (xa > xb) Then

x = xb

y = yb

xEnd = xa

Else

x = xa

y = ya

xEnd = xb

End If

Call Plot(x, y)

Do While (x < xEnd)

x = x + 1

If (e > 0) Then

y = y + 1

e = e - 2 * dx

End If

e = e + 2 * dy

Call Plot(x, y)

Loop

Algoritmo de Bresenham


Representaci n de pol gonos l.jpg

Representación de polígonos

  • Se procesa cada línea (scan line)

  • Se rellena entre el inicio y final de cada arista

Para el polígono sóloson necesarios los pixels rojos


Representaci n de aristas de pol gonos l.jpg

Se necesita un pixel por línea horizontal (scan line)

Se basan en modificaciones de los algoritmos DDA o de Bresenham, ejemplo con DDA:

dx = xb - xa

dy = yb - ya

x = xa

increment = dx / dy

For y = ya To yb

Call Plot(x, y)

x = x + increment

Next y

Representación de aristas de polígonos


Rellenado entre aristas l.jpg

Rellenado entre aristas

  • En cada línea hay un número par de aristas

  • En polígonos convexos son siempre 2

  • Se realiza el sombreado y la coordenada z

  • El modo de representación se puede realizar

    • scan line

    • polígono por polígono


Scan line l.jpg

Scan Line

  • Se genera la imagen línea a línea

  • Para cada línea

    • lista de aristas en la línea (añadir y eliminar)

    • en cada pixel, obtener valores de los polígonos en el pixel a partir de sus aristas (incrementalmente)

    • representar el pixel del polígono más cercano


Pol gono por pol gono l.jpg

Polígono por polígono

  • Se genera la imagen polígono por polígono

  • Para cada polígono

    • Para cada línea entre ymax e ymin del polígono

      • obtener lista de aristas en la línea

      • representar los pixels entre estas aristas si no hay representado otro polígono más cercano (se almacena también el valor de z)


Eliminaci n de superficies ocultas l.jpg

Eliminación de superficies ocultas

  • Han existido históricamente distintos métodos

  • Se puede comentar el algoritmo del pintor

  • El utilizado habitualmente es el Z-buffer

    • es el único posible en representación polígono por polígono

    • implementado en hardware


Z buffer l.jpg

Z buffer

  • Una matriz con los valores de z en cada pixel

  • Permite representar los polígonos de forma independiente

  • Al representar un polígono, se comparan sus pixels con los almacenados y si son visibles se representan y substituyen el valor de z


Creaci n de escenas l.jpg

Creación de escenas

  • Esquema (storyboard)

  • Modelos de los objetos

  • Posición

  • Rendering inicial

  • Modificaciones

  • Rendering final


Slide18 l.jpg

http://www.pixar.com/howwedoit/index.html