Giter Club home page Giter Club logo

defferredrendering's Introduction

Notes for Project Deferred Shading / Deferred Rendering

General: Some code and especially shaders (and models like backpack) are based on the following two sources:

Purpose of this project: Visualize forward and deferred rendering within different scenes. Comments have been added for further explanation of the code, for the each scene most comments can be found in the corresponding .h file.

Basic structure of the project:

  • src: contains source code
    • geometry: rendering of teapot and torus (David Wolf)
    • objectModel: handling of models, in this case backpack model (Joey de Vries)
    • vendors: ImGui (used to get user input), glm (math libary), stb_image (loading of textures)
  • dependencies: external libaries / headers (ASSIMP, GLAD, GLFW)
  • dlls: dynamic libaries (assimp: .dll file is copied to outDir by postprocess comand in visual studio)
  • resources: shaders and models (objects like backpack)

The ways of implementing deferred rendering change dependind on the scene signicantly due to differences in the approaches chosen by David Wolf and Joey de Vries. Same structures like using pass1() and pass2() have been implemented for both. The class scenerunner.h by David Wolf has been

Notes:

  • in Visual Studio -> Solution Explorer click on "show all files" to see program structure (no filters were used)
  • ImGui is used for an easy way to get and process user input
  • scenerunner.h manages all scenes and provides a button for each scene so the user can start a scene
  • scenerunner.h contains mainLoop of the programm, prints some basic information on top of every scene and issues update() and render() for currently running scene
  • David Wolf and Joey de Vries have partially very different approaches to implement deferred rendering, while some differences have been kept and can be seen in the code, some unification has been made, example
    • handling of shaders sceneoverlap, sceneforward, scenedeferred: direcly in the class of scene
    • handlung of shaders in scenecombined, scenefguffer: wrapper class around shaders which provides additional level of abstraction
  • The following lists states how the scenes are implemented
    • SceneOverlap: deferred
    • SceneForward: forward
    • SceneDeferred: deferred
    • SceneCombined: (1) deferred, (2) forward
    • SceneGBuffer: forward

defferredrendering's People

Contributors

mrkjw 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.