All Projects → JulianThijssen → Flux

JulianThijssen / Flux

Licence: gpl-3.0
A real-time physically based rendering engine written in C++ and OpenGL

Projects that are alternatives of or similar to Flux

Vxr
General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
Stars: ✭ 181 (+5.85%)
Mutual labels:  game-engine, opengl, rendering, physically-based-rendering
Etlegacy Deprecated
Archived repository. For current repo, see: https://github.com/etlegacy/etlegacy
Stars: ✭ 470 (+174.85%)
Mutual labels:  game, game-engine, opengl
Innocenceengine
Cross-platform modern game engine.
Stars: ✭ 149 (-12.87%)
Mutual labels:  game-engine, opengl, rendering
Glumpy
Python+Numpy+OpenGL: fast, scalable and beautiful scientific visualization
Stars: ✭ 882 (+415.79%)
Mutual labels:  game, opengl, rendering
Overload
3D Game engine with editor
Stars: ✭ 335 (+95.91%)
Mutual labels:  game-engine, opengl, physically-based-rendering
Ncine
A cross-platform 2D game engine
Stars: ✭ 372 (+117.54%)
Mutual labels:  game-engine, opengl, rendering
Ouzel
C++ game engine for Windows, macOS, Linux, iOS, tvOS, Android, and web browsers
Stars: ✭ 607 (+254.97%)
Mutual labels:  game, game-engine, opengl
Simplerenderengine
Small C++14 render engine
Stars: ✭ 253 (+47.95%)
Mutual labels:  game-engine, opengl, rendering
Pharaohstroy
A maplestory IDE which can develop the multi-platform maplestory game
Stars: ✭ 69 (-59.65%)
Mutual labels:  game, game-engine, opengl
Voxelman
Plugin-based client-server voxel game engine written in D language
Stars: ✭ 105 (-38.6%)
Mutual labels:  game, game-engine, opengl
Openage
Free (as in freedom) open source clone of the Age of Empires II engine 🚀
Stars: ✭ 10,712 (+6164.33%)
Mutual labels:  game, game-engine, opengl
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+2080.12%)
Mutual labels:  game, game-engine, opengl
Etlegacy
ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license.
Stars: ✭ 212 (+23.98%)
Mutual labels:  game, game-engine, opengl
Rigelengine
A modern re-implementation of the classic DOS game Duke Nukem II
Stars: ✭ 393 (+129.82%)
Mutual labels:  game, game-engine, opengl
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (+21.64%)
Mutual labels:  game, game-engine, opengl
Lighthouse2
Lighthouse 2 framework for real-time ray tracing
Stars: ✭ 542 (+216.96%)
Mutual labels:  game-engine, opengl, rendering
Dagon
3D game engine for D
Stars: ✭ 165 (-3.51%)
Mutual labels:  game-engine, opengl, rendering
Polymer
🎨 graphics + interaction engine
Stars: ✭ 243 (+42.11%)
Mutual labels:  game-engine, opengl, rendering
Intrinsic
Intrinsic is a Vulkan based cross-platform game and rendering engine. The project is currently in an early stage of development.
Stars: ✭ 984 (+475.44%)
Mutual labels:  game, game-engine, rendering
Raz
Modern & multiplatform game engine in C++17
Stars: ✭ 161 (-5.85%)
Mutual labels:  game-engine, opengl, rendering

Flux

Welcome to the Flux Rendering Engine repository. This application is meant to be an exploration into modern rendering techniques used in the game industry. One of the major improvements over its progenitor Radiant are its Physically Based Rendering capabilities.

alt text

Technology

Implemented

  • Cook-Torrance BRDF
  • Irradiance mapping
  • Prefiltered environment maps + BRDFintegration map
  • Normal mapping
  • HDR Skybox
  • FXAA
  • Gamma Correction
  • HDR + Tone mapping
  • HDR Bloom
  • SSAO
  • Shadow mapping
  • Deferred Rendering
  • Color Grading
  • Fog
  • Crepuscular rays

Planned

  • Automatic exposure adjustment
  • Spherical Harmonics
  • Omni-directional shadow mapping
  • Light probes
  • PBR Lens flares

Building

Requirements

Setting up

The first step is to pull the repository from GitHub. You can do this in any way you like, but here is one possible way:

  1. Create a local folder for the project on your computer
  2. Go into the folder and open GitBash or a terminal with git enabled
  3. Execute the command git init to initialize the Git repository
  4. Execute the command git remote add origin [email protected]:JulianThijssen/Flux.git to link your local repository to the remote GitHub one.
  5. Fetch all branches from the repository using git fetch -a
  6. Now you can pull in the source files from the master branch by executing git pull origin master
  7. If you get a permission denied message on the last step be sure that you have an SSH-key pair and have added the public one to your GitHub account. See: https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh

Building

  1. Launch CMake (available here: https://cmake.org/)
  2. In the source code field browse to the local folder from the last section (which contains CMakeLists.txt).
  3. In the build field copy the source code field but append /Build at the end. This will put all files necessary for building in the Build folder (it will create it if it doesn't exist).
  4. Press Configure and select the generator for your IDE of choice with the platform of x64. Press Finish to configure the project.
  5. If no errors appear in the CMake log on the bottom, press Generate to generate the solution for your given IDE.
  6. Press Open Project to launch the IDE and the project.

Compilation

Windows

  1. At the top of Visual Studio set the build mode (where it says Debug) to Release.
  2. Right click the project TestProject in the Solution Explorer and select Set as StartUp Project.
  3. Right click the project Flux and press Build, if that succeeds, right click the TestProject project and press Build.
  4. If all is well both builds should succeed and if you run the project with Ctrl+F5 it will launch TestProject.exe.

Linux | Mac

This depends on your IDE / compiler. Follow their instructions for compiling source code. The code is untested on these platforms.

Demo Scene

A test scene is available at: https://github.com/JulianThijssen/Flux/releases/download/v0.1.0/TestScene.zip

Place the contents of this .zip file in a folder called res in your Build folder.

Dependencies

Editor

  • Assimp 3.3.1

Engine

  • GLFW 3.2.1

License

The source code and auxiliary files fall under a GPL License, which you can read about in LICENSE.md.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].