Skip to content

Retro52/OpenGL-3D-Drawer

Repository files navigation

OpenGL-3D-Drawer

This simple 3D renderer can load and display almost any 3D model using OpenGL graphics API. mainImage

Build

Dependencies

The project depends on FreeType, Assimp, GLFW, GLEW, and OpenGL32 libraries. All of them are present in the vendors folder. All of the neccessarry dll`s are present in bin folder.

To build the project you will have to install Assimp and FreeType libraries (note that you have to put the FreeType library header in your default include folder, due to how the library is built) and run CMakeList.txt

The following header-only libraries were also used:

  • inipp.h: used under MIT License, Copyright (c) 2017-2020 Matthias C. M. Troffaes.
  • json.hpp: used under MIT license, Copyright (c) 2013-2022 Niels Lohmann, v3.11.2.
  • stb_image.h: used under MIT License, Copyright (c) 2017 Sean Barrett, v2.27.

Run

Note that the application needs 2 configuration files (config.ini and config.json by default). You can specify the .json config file path in the .ini file without recompiling, but not vice versa. You also might want to ensure that all of the relative paths in the .json and .ini files are correct before running.

Features

  • Simple materials
  • Simple logging system
  • Directional lights soft shadows
  • Lighting supports normal and specular maps
  • Lighting supports multiple light-sources lighting
  • Textures of almost any format are supported as well
  • The renderer supports loading models in a large number of formats
  • Entity system implemented using entt library (inspired by TheCherno youtube series)
  • ... and more

License

MIT License.

About

Repo for OpenGL-3D-Drawer project

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors