Advertisement
1 / 19

Rendering PowerPoint PPT Presentation


  • 89 Views
  • Uploaded on 15-11-2011
  • Presentation posted in: General

Rendering. 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). Se dispone de: Topología de la escena - PowerPoint PPT Presentation

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 and may not be sold / licensed / shared on other websites without getting consent from its author.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