Download

Rendering






Advertisement
/ 19 []
Download Presentation
Comments
emily
From:
|  
(4305) |   (0) |   (0)
Views: 72 | Added:
Rate Presentation: 0 0
Description:
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
Rendering

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

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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -




Slide 1

Rendering

Slide 2

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

Slide 3

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

Slide 4

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

Slide 5

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)

Slide 6

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

Slide 7

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

Slide 8

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

Slide 9

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

Slide 10

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

Slide 11

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

Slide 12

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

Slide 13

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

Slide 14

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)

Slide 15

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

Slide 16

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

Slide 17

Creación de escenas

  • Esquema (storyboard)

  • Modelos de los objetos

  • Posición

  • Rendering inicial

  • Modificaciones

  • Rendering final

Slide 18

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


Copyright © 2014 SlideServe. All rights reserved | Powered By DigitalOfficePro