Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[gltf] Add glTF2 loader and pbr renderer #270

Draft
wants to merge 127 commits into
base: main
Choose a base branch
from
Draft

Conversation

IAmNotHanni
Copy link
Member

@IAmNotHanni IAmNotHanni commented Dec 7, 2020

Closes #256
Closes #268
Closes #429

Let there be glTF2 models

Work in progress!

gltf

I am adapting the glTF2 loader from Sascha Willem's sample repository. This work will not include model animations, physically based rendering or other components of glTF2 we're not supporting yet.

TODO

  • Write a glTF2 loader class using tinygltf
  • Modify descriptor pattern so it allows for multiple images to be passed in
  • Fix all clang-tidy warnings!
  • Add automatic tests (inexor-vulkan-renderer-tests)
  • Add benchmarks (inexor-vulkan-renderer-benchmarks)
  • Squash before opening pull request

Sorting this massive PR

I will have to make smaller pull requests out of this one, otherwise it's too big.
Here is a list of things I changed:

  • Added ktx dependency
  • Added ShaderLoader wrapper and don't load shaders through TOML file
  • Added glTF2 data structure files...
  • Added Cubemaps
  • Added glTF2 loader
  • Refactored rendering: separate data loading from rendering.
  • Refactored rendering: Render octree in new rendergraph style
  • Refactor rendergraph setup function
  • Added new methods to rendergraph and other small refactorings (builder pattern)
  • Added wrapper for loading glTF2 files (based on tinygltf)
  • Added wrapper for glTF2 model data parsing
  • Added glTF2 pbr renderer
  • Added new shaders for skybox
  • Added new shaders for pbr, including BRDFLUT and cubemaps
  • Refactored ImGui to use ShaderLoader
  • Added BRDF lookup table generator
  • Fixed a bug in descriptor builder pattern (binding index!)
  • Added DescriptorPool wrapper
  • Refactored GpuTexture a little
  • Added OffscreenFramebuffer (required for cubemaps)
  • Fixed a bug in rendergraph
  • Added new representations (object type to string_view)
  • ...

@IAmNotHanni IAmNotHanni added the cat:enhancement enhancement/requested feature/update of existing features label Dec 7, 2020
@IAmNotHanni IAmNotHanni self-assigned this Dec 7, 2020
@IAmNotHanni IAmNotHanni changed the title [gltf] Added basic glTF2 loader wrapper, work in progress! [gltf] Added basic glTF2 loader wrapper Dec 17, 2020
@IAmNotHanni IAmNotHanni changed the title [gltf] Added basic glTF2 loader wrapper Basic glTF2 loader (no textures, animations or pbr yet) Jan 4, 2021
@IAmNotHanni IAmNotHanni added the org:on hold on hold, until ... label Apr 27, 2021
@IAmNotHanni IAmNotHanni changed the title Basic glTF2 loader (no textures, animations or pbr yet) Basic glTF2 loader May 10, 2021
@IAmNotHanni IAmNotHanni reopened this May 10, 2021
@IAmNotHanni IAmNotHanni removed the org:on hold on hold, until ... label May 10, 2021
@IAmNotHanni IAmNotHanni changed the title Basic glTF2 loader [glTF2] Add basic glTF2 loader May 15, 2021
@IAmNotHanni
Copy link
Member Author

  • Rebase onto master

@IAmNotHanni
Copy link
Member Author

  • Add nolints for pointer arithmetics

@IAmNotHanni
Copy link
Member Author

yeetari: just taking a look at the gltf PR - we preferably want to avoid the std::vectors and such completely when loading the textures

@IAmNotHanni
Copy link
Member Author

IAmNotHanni commented Jul 23, 2021

  • Rebase onto master

@IAmNotHanni IAmNotHanni changed the title [glTF2] Add basic glTF2 loader [gltf] Add basic glTF2 loader Jul 24, 2021
@IAmNotHanni
Copy link
Member Author

  • Rebase onto master

@IAmNotHanni
Copy link
Member Author

  • Rebase onto master

@IAmNotHanni IAmNotHanni changed the title [gltf] Add basic glTF2 loader [gltf] Add basic glTF2 loader and renderer Aug 7, 2021
@IAmNotHanni IAmNotHanni added org:on hold on hold, until ... and removed prio:high This has high priority. labels May 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cat:enhancement enhancement/requested feature/update of existing features org:on hold on hold, until ...
Projects
None yet
2 participants