Giter Site home page Giter Site logo

adeon18 / shift Goto Github PK

View Code? Open in Web Editor NEW
18.0 1.0 0.0 42.46 MB

Shift: A Rendering Sandbox for Computer Graphics Research

Home Page: https://shift.notionlinker.com

License: BSD 3-Clause "New" or "Revised" License

CMake 0.18% GLSL 0.57% C++ 90.97% Batchfile 0.01% C 8.28%
graphics-programming pbr-shading rendering rendering-3d-graphics research thesis tone-mapping vulkan vulkan-engine vulkan-renderer

shift's Introduction

Shift: A Rendering Sandbox for Computer Graphics Research

Shift is a modern rendering engine based on the Vulkan API that was designed for the graphics programmers to learn, practice, research, and optimize various rendering techniques.

Shift consists of 3 main parts:

Note: Since Shift 1.0 is done as a bachelor's thesis, more information about Shift structure and documentation will be released after the thesis publication in the future versions.

You can learn watch Shift rendering demo videos and images on the webpage!


Features

A brief list of features in Shift 1.0:

  • Model loading (GLTF, FBX, OBJ and more).
  • Texture loading (PNG, TGA, JPG).
  • Light System with Directional and Point lights supported.
  • Physically Based Rendering (For GLTF only models for now).
  • HDR ToneMapping (Reinhard, Lottes, Uncharted 2 and ACES).
  • A unique UI based upon Dear ImGui that provides a view of textures and render targets in real-time. Also allows you to move and tweak lights. The UI is designed in a way to be easily attached to any system/class in Shift.

To load a custom 3D scene, go to Renderer::LoadScene() in Renderer.cpp. It contains an example of how to do just that. Scene loading is not a part of Shift 1.0, but it is a main priority for the future versions of Shift.


Prerequisites

  1. Have a Windows 10/11.
  2. Download the MSVC 2022 compiler (is the only one supported as of Shift 1.0).
  3. Download the LunarG Vulkan SDK (ticking all boxes is recommended).
  4. Set the VULKAN_SDK_PATH in .env.cmake to your SDK install directory.

Dependencies

Shift CMake system pulls all dependencies except for the Vulkan related ones (that come with Vulkan SDK). Here is a list of the dependencies that will be pulled:


Building

Using Clion:

  1. Open Shift as a new project and set the compiler to MSVC 2022 and build. Shift's CMake will do the rest.

Using MSVC 2022:

  1. Generate the .sln with mkdir Solution; cmake ...
  2. Open the .sln with the MSVC 2022.
  3. Set Shift as a startup project and build.
  4. Pray, I Guess...

Note: There will be a lot of warnings when building Assimp so don't get too scared:D

After running Shift you should get a skeleton:

If that is so, congrats! You are now running Shift!

Screenshots

More demos, screenshots, additional documentation, and credits to 3D modelers are on the Shift webpage!

Credits

shift's People

Contributors

adeon18 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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.