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.

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.
Project Gallery



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.