Giter VIP home page Giter VIP logo

flux's Introduction

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.

flux's People

Contributors

julianthijssen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.