fullscreen
timer
qrcode
plickers
selector
edit
reset

traditional graphics pipeline

COS 350 - Computer Graphics

graphics pipeline

graphics pipeline

graphics pipeline

graphics pipeline stages

vertex data
transformations \(\,\rightarrow\,\) [ vertex processing ]
transformed vertex data
convert to pixels \(\,\rightarrow\,\) [ clipping and rasterization ]
fragments w/ interpolated data
compute final colors \(\,\rightarrow\,\) [ fragment processing ]
fragments color and depth
blending hidden-surface \(\,\rightarrow\,\) [ framebuffer processing ]
framebuffer

only a subset of modern pipeline stages (tessellation, geometry, vertex post-process, primitive assemly)

graphics pipeline stages

graphics pipeline stages

vertex processing

vertex data
[ vertex processing ]
transformed vertex data
[ clipping and rasterization ]
fragments w/ interpolated data
[ fragment processing ]
fragments color and depth
[ framebuffer processing ]
framebuffer

vertex processing

[Marschner 2004]
[Marschner 2004]

vertex processing

clipping and rasterization

vertex data
[ vertex processing ]
transformed vertex data
[ clipping and rasterization ]
fragments w/ interpolated data
[ fragment processing ]
fragments color and depth
[ framebuffer processing ]
framebuffer

clipping and rasterization

clipping to ensure correctness

in front of eye behind eye

point clipping

line clipping

line clipping

polygon clipping

culling

viewport transformation

[Marschner 2004]
[Marschner 2004]

rasterization


See S10_Algorithms for more details on rasterization

fragment processing

vertex data
[ vertex processing ]
transformed vertex data
[ clipping and rasterization ]
fragments w/ interpolated data
[ fragment processing ]
fragments color and depth
[ framebuffer processing ]
framebuffer

fragment processing

lighting computation

lighting computation - flat shading

lighting computation - Gouraud shading

lighting computation - Phong shading

lighting computation comparison

Gouraud Phong
artifacts in highlights good highlights

lighting computation

lighting computation

framebuffer processing

vertex data
[ vertex processing ]
transformed vertex data
[ clipping and rasterization ]
fragments w/ interpolated data
[ fragment processing ]
fragments color and depth
[ framebuffer processing ]
framebuffer

framebuffer processing

hidden surface removal - painter alg.

hidden surface removal - painter alg.

hidden surface removal - z buffer

hidden surface removal - z buffer

z-buffer
color buffer
[ adapted from Shirley ]

hidden surface removal - z buffer

z-buffer
color buffer
[ adapted from Shirley ]

which z distance

[ Marschner 2004 ]

which z distance

[ Marschner 2004 ]

hidden surface removal - raycasting

hidden surface removal - scanline

hidden surface removal - REYES

framebuffer processing

traditional graphics pipeline

why?

why graphics pipelines?

traditional graphics pipeline architecture

graphics pipelines vs. raytracing

raycasting

  • foreach pixel, foreach obj
  • project pixels onto objects
  • discretize first
  • access objects many times
    • scene must fit in mem
  • very general solution
  • \(O(\log(n))\) w/ accel. struct.
    • but constant very high

graphics pipeline

  • foreach obj, foreach pixel
  • project objects onto pixels
  • discretize last
  • access objs once
    • image must fit in mem
  • hard for complex effects
  • \(O(n)\) or lower sometimes
    • but constant very small

what about RTX?

† kind of

×