3D Graphics

3D Shader Sceneviewer

A sceneviewer created with C++ openFrameworks that can export rendered images and obj files

This project was created using C++ openFrameworks, and was a culmination of many of the labs and smaller projects I've done during that class. I wanted to combine many of the features that the labs and projects had, with the addition of having the ability to export the entire scene into a .obj file. So, I merged and refactored a lot of the code to make everything work into one project. Additionally, I had to research how .obj and .mtl files work, as these are both separate files but connect with each other to render the .obj file's material, diffuse, normals, specular, and ambient occlusion.

C++
openFrameworks
Computer Graphics
Lighting
Shading
obj
3D Shader Sceneviewer
Project Details

Duration

3 months (Oct. 2024 – Dec. 2024)

Team Size

Solo project

Key Challenges

  • β€’ Shader algorithms
  • β€’ Objects to .obj

Demo Video

Watch a demo of 3D Shader Sceneviewer showcasing its key features and functionality.

Problem & Solution

Problem

The current project can only export rendered images, but cannot be used into a "real" 3D editor to modify.

Solution

Have a way to export the entire scene as a .obj file so that it can be uploaded to a 3D editor.

Key Features

3D sceneviewer

Can interact with the objects and move them in the scene

Render images with shading

Can render the scene with the given lighting and textures.

Export to obj

Can export the entire scene as a .obj, .mtl, and it's corresponding texture files.

Results & Impact

Key Achievements

  • Professor enjoyed my presentation 😎
  • 100% grade on Final Project

Lessons Learned

This project gave me a great understanding on how .obj files work, as I basically had to write the entire .obj file and .mtl file myself.