CIS 6905: Individual Study

Advisor: Jorg Peters


Weekly Plan

  • Week 1: Adjusting meeting time and schedule
                   Every week on Wednesday 5:00 PM


  • Week 2: Proposal for goals and topics
                   Objective: To enhance implementation skill using graphics language and a haptic device download


  • Week 3: Background study (Differential Geometry)
                   Chapter 10 & 19 from
                   Gerald Farin: Curves and Surfaces for CAGD, 5th edition Morgan Kaufmann Publishers, ISBN = "1-55860-737-4"


  • Week 4: Background study (Paper: The Platonic Spheroids)
                   J. Peters, L. Kobbelt, 'The Platonic Spheroids', CS Purdue TR--97-052


  • Week 5: Specifying goals
                   Take a part in the surgical simulation project
                   Read project proposal to get familiar with it and to find idea to add on it


  • Week 6: Shadow survey 1
                   Shadow is an important factor to provide users with realistic simulation
                   How to implement shadow? Reference Book: Real-time Rendering


  • Week 7: Shadow survey 2
                   Run and complie simple version of surgical simulation program based on CGAL
                   Shadow implementation example 1 (from http://nehe.gamedev.net) shadows on curved surfaces
                                                                     2 (from http://www.opengl.org) shadows on a planar surface
                                                                     3 (from http://www.paulsprojects.net) shadow mapping


  • Week 8: Shadow technology
    • Projected planar shadow
    • Not appropriate because we have curved surfaces to make a shadow on

    • Shadow volume: Stencil buffered shadow volume [1]
      1. Exclusive-Or
      2. Depth-pass (Z-pass)

      Image from [2]


      Image from [3]
      1. Render front face of shadow volume. If depth test passes, increment stencil value, else does nothing. Disable draw to frame and depth buffer.
      2. Render back face of shadow volume. If depth test passes, decrement stencil value, else does nothing. Disable draw to frame and depth buffer.
      3. Depth-fail (Z-fail, Carmack's Reverse)
      1. Render back face of shadow volume. If depth test failes, increment stencil value, else does nothing. Disable draw to frame and depth buffer.
      2. Render front face of shadow volume. If depth test failes, decrement stencil value, else does nothing. Disable draw to frame and depth buffer.

    • Shadow map


  • Week 9: Shadow implementation 1
                     To understand Halfedge data structures CGAL
                    


  • Week 10: Spring Break


  • Week 11: Shadow implementation 2
          Stencil buffered depth-pass shadow volume technique
    1. Render all the objects using only ambient lighting and any other surface-shading attribute. Rendering should not depend on any particular light source. Make sure depth buffer is written.
    2. Starting with a light source, clear the stencil buffer and calculate the silhouette of all the occluders with respect to the light source.
    3. Extrude the silhouette away from the light source to a finite or infinite distance to form the shadow volumes and generate the capping if depth-fail technique was used. (Infinite shadow volume extrusion is not really compulsory)
    4. Render the shadow volumes using the selected technique. Depth-pass or depth-fail.
    5. Using the updated stencil buffer, do a lighting pass to shade (make it a tone darker) the fragments that corresponds to non-zero stencil values.
    6. Repeat step 2 to 5 for all the lights in the scene.


  • Week 12: Paper presentation at SurfLab seminar
                     Paper link "As-Rigid-As-Possible Shape Manipulation", Igarashi et al., SIGGRAPH2005.


  • Week 13: Shadow implementation 3
                    


  • Week 14: Shadow implementation 4
                     How it works
                    
                         Drawing front shadow volume faces                   Drawing back shadow volume faces
                         (Increase the value in the stencil buffer)              (Decrease the value in the stencil buffer)
                    
                    
                         Drawing front and back shadow volume faces                   Drawing back shadow volume faces
                         (Red area has the value bigger than zero in the stencil buffer)                  


  • Week 15: Demonstration
                     Environment: One spotlight, multiple occluding objects and multiple shadowed objects.
                     Implementation: Read the input file of "off" file format for the occluding and shadowed objects.
    1. Enhance the depth perception

                       Without shadow                                                                 With shadow

    2. Other results

          Manipulating the occluding object                 Transform the shadowed object                 Transform the light

    3. Other object file

          Manipulating the occluding object                 Transform the shadowed object                 Transform the light

    4. Multiple occluding objects

         


  • References
    1. The Shadow Volume: General introduction from wikipedia
    2. The Theory of Stencil Shadow Volumes: Specific explanation of concept
    3. The Mechanics of Robust Stencil Shadows: Algorithm overview