Date post: | 22-Dec-2015 |
Category: |
Documents |
Upload: | winifred-doyle |
View: | 216 times |
Download: | 1 times |
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 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 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 Graphics28
Environment Maps
• Uses vertex normals to generate texture coordinates• How can we use this to generate:– Reflections– Transparency with refraction?