Giter Site home page Giter Site logo

angelo1211 / hybridrenderingengine Goto Github PK

View Code? Open in Web Editor NEW
1.1K 29.0 117.0 430.27 MB

Clustered Forward/Deferred renderer with Physically Based Shading, Image Based Lighting and a whole lot of OpenGL.

License: MIT License

CMake 4.76% C++ 65.28% GLSL 27.21% C 2.75%
rendering-engine 3d-graphics prototype opengl physically-based-rendering graphics-programming sdl2 c-plus-plus graphics shaders

hybridrenderingengine's Introduction

🚀 Hello there! I'm Angel. 🚀

  • 💼 I'm a Graphics Programmer at Rockstar North.
  • ⛰️ Just trying to get a little bit better at this every day.

hybridrenderingengine's People

Contributors

angelo1211 avatar

Stargazers

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

Watchers

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

hybridrenderingengine's Issues

Evaluate how hard it would be to port to linux.

Given that I have been using CMAke for building, SDL2 for the hardware abstraction layer and OpenGL it might not be too awful to port the project to linux. This is not super high priority however.

Rewrite shadow mapping to use virtual texturing.

Dynamic shadow mapping is currently the most expensive operation on the renderer, yet it still looks pretty awful. It's also implemented in a way that does not scale well at all and causes way too many API calls. It would be worth it to attempt to implement a more robust system like virtual texturing as seen here:

http://www.adriancourreges.com/blog/2016/09/09/doom-2016-graphics-study/

It would be also worth it to research shadow mapping techniques that leverage the Cluster shading algorithm like the one in the Emil Persson and Ola Olsson talk.

Occasionally on load, the entire scene is just red or black

image

The skyboxes are unaffected when this happens, so it must be one of the other shaders (like the BRDF lut or something). The exact cause is unknown though, because it's a random chance to occur on every boot. Even though I'm familiar with the codebase at this point, I have no idea what causes it

More json

This is a wonderful project, so I wanderer whether there is more Jsons that can achieve the effect in Render samples, it means a lot to me. Appreciate!

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
ASSIMP_LIBRARY_DEBUG
linked by target "hybridRenderer" in directory C:/src/HybridRenderingEngine
ASSIMP_LIBRARY_RELEASE
linked by target "hybridRenderer" in directory C:/src/HybridRenderingEngine

image

Reduce very large VRAM footprint.

Currently the project uses nearly 700MB of VRAM because of the many framebuffers I'm using. Find a way to reduce it, possibly by freeing frame buffers that are only used during initialization?

Automatic shadow mapping & caching.

Currently the directional light shadow map is updated every frame so that users can play with the GUI controls for it but there is no real reason it should be updating every frame if no change in the static or dynamic geometry has occurred.

Blog post on first release.

Describing the work done until now, laying out implementation detail and outlining the work that is yet to be done.

Decouple material system from mesh & models classes.

Currently texture are loaded and stored directly in the model class with each mesh object containing a list of references to textures that it will use. This is inconvenient since it impedes material reuse beyond the model layer and limits the types of material possible by the texture slots it has. Working on this would allow for simpler shaders and would be an opportunity to implement run-time material switching.

Add formatting checks for scene JSON description file.

Currently, if the scene file is missing some component that the renderer deems necessary it will just crash. This is inconvenient. We should add a warning that lets the user know that something is missing, then load a default value if possible and continue.

Hi, very nice work!!! Can u help me this bug?

it's not a bug, I just donlt know how to show it

build ‹master*› » ./hybridRenderer
Vendor:   NVIDIA Corporation
Renderer: NVIDIA GeForce RTX 2060 SUPER/PCIe/SSE2
Version:  4.6.0 NVIDIA 470.103.01

Beginning Scene load, checking scene description file:
Cannot access ../assets/scenes/Sponza.json
Cannot find scene descriptor file for Sponza 
Could not load default sponza scene. No models succesfully loaded!
Failed to initialize scene manager.
HRE could not initialize successfully. Shutting down.
Closed input manager.
Closed renderer manager.
Closed scene manager.
Closed display manager.

Any help?

the json file just there...

Remove unnecessary STL calls to vector.h

Mesh, Model and Scene classes use vector.h as a container in cases where it might not be necessary at all. Evaluate if this is the case and come up with alternative.

Could not run the release

Vendor:   NVIDIA Corporation
Renderer: GeForce GTX 750 Ti/PCIe/SSE2
Version:  4.6.0 NVIDIA 442.19

Beginning Scene load, checking scene description file:
Cannot access ../assets/scenes/Sponza.json
Cannot find scene descriptor file for Sponza
Could not load default sponza scene. No models succesfully loaded!
Failed to initialize scene manager.
HRE could not initialize successfully. Shutting down.
Closed input manager.
Closed renderer manager.
Closed scene manager.
Closed display manager.

The json is right there, so I dont understand, even tried with admin rights

cmake failed

Hi, I am interested in this project, but cmake failed
123

Crash during shader load.

Attempted to launch the hybridRenderer.exe, the console window shows Loading Complete!..., but the Hybrid Rendering Engine window is unresponsive and stays blank white while using ~18% CPU, 0% GPU and ~124MB memory.

Windows 10, i7 5930k, 32GB RAM, 1080ti with 416.94 driver using the v0.1 release.

Full text from console is
Vendor: NVIDIA Corporation
Renderer: GeForce GTX 1080 Ti/PCIe/SSE2
Version: 4.6.0 NVIDIA 416.94

Beginning Scene load, checking scene description file:
../assets/scenes/Sponza.json is a valid file
Loading camera...
Loading models...
../assets/models/Sponza/Sponza.gltf is a valid file
Loading skybox...
Loading lights...
Loading directional light...
Loading point light...
Generating environment maps...
Reticulating splines...
Loading Complete!...

Build failed. Error C2593 on scene.cpp

Severity Code Description Project File Line Suppression State
Error C2593 'operator =' is ambiguous hybridRenderer C:\Users\DEMO\source\repos\HybridRenderingEngine-0.1\src\scene.cpp 397

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.