CSE 872 Dr. Charles B. Owen Advanced Computer Graphics1 Other Rendering Techniques Types of...

30
CSE 872 Dr. Charles B. Owen Advanced Computer Graphics 1 Other Rendering Techniques Types of rendering Wireframe techniques Scan-line conversion Reyes rendering Ray tracing (done) • Shadows • Reflections Depth of field, focus, etc. • Antialiasing

Transcript of CSE 872 Dr. Charles B. Owen Advanced Computer Graphics1 Other Rendering Techniques Types of...

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics1

Other Rendering Techniques

• Types of rendering– Wireframe techniques– Scan-line conversion– Reyes rendering– Ray tracing (done)

• Shadows• Reflections• Depth of field, focus, etc.• Antialiasing

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics2

Line only techniques

• Hidden-line removal– Line graphics– Wireframe images– “Halo” line images

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics3

Floating Horizon Algorithms

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics4

Robert’s Algorithm

• First visible line algorithm• O(N2) complexity• All objects must be convex volumes• Excessively complex

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics5

Warnock Algorithm

• Spatial subdivision– Quad-trees

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics6

Appel’s Algorithm

• Quantitative invisibility– When a line goes behind something, increment by 1

– When it comes out, increment by -1

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics7

Haloed Lines

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics8

So much for wireframe…

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics9

What are the ways to convert primitives to image?• Scan-line conversion

• Ray tracing

Anything else?

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics10

Scan-line conversion

• Each primitive is mapped to 2D and then converted to image– List priority algorithms– Z-buffer techniques– A-buffer techniques

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics11

Painters Algorithm

• Sort back to front• Draw back to front– That’s all there is to it

• Does this always work?

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics12

Z-buffer algorithms

• Associate a z value with each pixel– Contains z for nearest point drawn so far– OpenGL, Direct3D, etc.

• Where do we get the Z?

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics13

A-Buffer Algorithms

• Create a list of polygons for each scan line• Determine x extents for each line• Sort in z order• Draw pixel for nearest line

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics14

Spanning Scan Line Algorithms

• Create a list of polygons for each scan line• Determine x extents for each line• Determine spans– All end points and intersections partition spans

• Draw front line for each span

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics15

List priority algorithms

• Sort things in depth order– Painter’s algorithm paints back to front– We could just paint front if no overlaps

• Newell-Newell-Sancha Algorithm– Provides way to sort polygons

• Splits any polygons if there is a cyclical relationship

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics16

Doing things in a z-buffer world

• Z-buffer: the most common scan-line method

– What’s good about it?

– What’s bad about it?

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics17

Shadows?

• Why does OpenGL not show shadows?

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics18

Drawing Shadows

• Assume a light at (0,0,0). We want to know were the shadow projects on a plane defined by ax+by+cz+d=0– An occluding point S=(sx,sy,sz,1)

– Anything along line through S would be: (sx,sy,sz,1)

– Line intersection with plane is:– asx+bsy+csz+d=0

– a=-d/(asx+bsy+csz)

– Intersection with plane is: -d(sx,sy,sz)/(asx+bsy+csz)

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics19

Using this equation

• -d(sx,sy,sz)/(asx+bsy+csz)

)/(

)/(

)/(

10

000

000

000

czbyaxdz

czbyaxdy

czbyaxdx

czbyax

dz

dy

dx

z

y

x

cba

d

d

d

1. Translate so light is at origin2. Put this matrix on stack (using translated plane)3. Draw object we are casting shadow of in shadow color

???

Similar approach existsFor lights at infinity

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics20

How I got this working…

• I display the shadow into the stencil buffer• I then draw the polygon with alpha value that

decreases brightness

• See example program…

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics21

Shadow Direction

Image from light 0 viewpoint

Image from light 1 viewpoint

What all can we do with this?

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics22

Lit Polygon Determination

Image from light 0 viewpoint

Image from light 1 viewpoint

Partition polygons into lit/not lit sets

Subdivide any that are partially lit

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics23

Shadow Texture

Image from light 0 viewpoint

Image from light 1 viewpoint

Create a texture map for each visible polygon

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics24

Shadow Map

Image from light 0 viewpoint

Depth map from light 0 viewpoint

The map partitions the space into shadowed/not shadowed. For each point, determine which partition we are in

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics25

Deep Shadow Maps

3D texture where each point is how much illumination we receive

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics26

Shadow Volumes

• Polygons cast polyhedra of shadow volumes• Intersect polyhedra and object space

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics27

Reflections/Transparency?

• How?

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics28

Environment Maps

• Uses vertex normals to generate texture coordinates• How can we use this to generate:– Reflections– Transparency with refraction?

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics29

Depth of Field?

• What?• Why?• How?

CSE 872 Dr. Charles B. OwenAdvanced Computer Graphics30

Motion Blur

• What?• Why?• How?