Skip to content

dbeyda/OpenGLRenderer

Repository files navigation

OpenGL Renderer

A 3D renderer developed as an introduction to real-time rendering.

This project is a 3D renderer developed as an introduction to real-time rendering. It was developed mainly during PUC-Rio's Real-Time Rendering class, and then further improved over winter recess. Credits for people and materials that help me are at the bottom of the page.

The Depth of Field implementation was a final assignment for the class. Here you can check out the final report and more information about the techniques used.

Features:

  • Load .obj files for meshes.
  • Load .png and .jpg for textures.
  • Load .mtl for material properties.
  • Importing diffuse, specular and ambient maps.
  • Support for multiple lights and models.
  • Basic camera movements.
  • Forward rendering.
  • Spotlights.
  • Phong Lighting Model, with diffuse, speccular and ambient lighting.
  • Shadow Mapping with soft shadows using jittered offsets, as seen here.
  • Bump Mapping, with vertices tangents calculated on mesh import.
  • Depth of Field (and bokeh) that can be toggled dinamically during runtime.

Images

Default configurations example:

Depth of Field example:

Bokeh when the scene is visualized from afar:

One light only soft shadow example:

Dependencies

  • GLEW
  • GLFW 3.3
  • OpenGL 4+

Credits and Thanks

The Cherno's youtube channel, for the Introduction to OpenGL Tutorials.

Joey De Vries' Learn OpenGL Tutorials for the incredible explanations and step-by-step guides.

Waldemar Celes, for the teaching of Real-Time Rendering class at PUC-Rio.

Bernard Lupiac for the guidance and help with debugging.

Releases

No releases published

Packages

No packages published