CSE 167 Final Project - Ryan Doving

Reflection Robot




Program can be downloaded here


Screenshots



  • All 3 lights turned on, demonstrating specular highlights and "reflection" on the floor






  • Stenciling of robot below plane is apparent, creating a proper reflection






  • Demonstrates rotation of the viewer. Reflection of a light on the plane is also visible




  • Comments

    (also available here)
    Instructions:
    
    Run FinalProject.exe.  
    
    arrow keys         -  move the robot
    's', 'f', 'e', 'd' -  rotate viewer
    1, 2, 3            -  toggle lights
    'w'                -  toggle wireframe mode
    'c'                -  toggle culling back faces
    ESC                -  exit program
    
    
    
    Technical Explanation:
    
    This program uses OpenGL to highlight techniques such 
    as Phong lighting, blending, and polygon offsets to 
    create a robot that moves around on a reflective floor. 
    
    The actual robot is drawn using GLUT solid polygons and 
    triangle fans.  Normals were added to non-GLUT objects 
    to enable the use of Phong lighting.
    
    A quad with alpha value less than 1 is then rendered to 
    create the floor.  It uses transparency to make visible 
    a copy of the robot and lights scaled underneath the 
    floor, which gives the effect of a reflection.
    
    The robot is then redrawn scaled under the floor.  The 
    lights are also redrawn to create accurate lighting 
    effects for the "reflection".  This second robot is 
    visible through the semi-transparent floor, which gives 
    the effect of a reflection off the surface of the floor.
    
    
    
    Aims:
    
    I originally planned to draw a robot on a reflective marble 
    floor, using texture maps to create the marbled effect. 
    The difficult part of this was trying to make the texture map 
    transparent.  After spending several hours over the recommended 
    20-25 hour limit to no avail, I decided to revert back to the 
    plain floor.