Graphics Project - Room Editor & Raytracer


Scene Graph (C++, openGL) - Created a scene graph room editor that can create various objects for the room, including a desk, chair, floor lamp, file cabinet, and computer monitor. Nodes store all of the object's information including object type, rotation, translation, scale, and whether it is the currently selected node. Can also load in .obj files and specific "extrude" and "surface revolution" files. The scene graph can select, add, delete, and clone nodes and their children. Selecting is done in prefix order, with the root node being the "room" (walls and floor).

Camera - Uses a free moving camera similar to those found in most first person shooters to fly around the scene.

Lighting - Uses a point light that can be moved around the scene.

Texturing - Textured the floor and computer monitor using SOIL (Simple openGL Image Library) including mipmapping of the textures.

Raycasting / Raytracing - Can raytrace the current scene and generate a bmp output image. Raytracing features for the objects include an additional point light for multiple shadows, object transparency, reflections, and refractions. Uses bounding boxes around the objects to speed up raytracing.


     





Back to Projects Page