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

Scene loading improvements #34

Open
einarf opened this issue Sep 3, 2019 · 0 comments
Open

Scene loading improvements #34

einarf opened this issue Sep 3, 2019 · 0 comments
Labels
core / important enhancement New feature or request

Comments

@einarf
Copy link
Member

einarf commented Sep 3, 2019

Currently the Scene instance returned by scene loaders are fairly generic. It contains both the scene structure and is responsible for rendering. This is a problem when handling scenes from different formats, but at least does a decent job at rendering any scene using generic shaders.

Improvements

  • The Scene class should ideally ONLY contain the scene tree with nodes, meshes, materials.
  • Keep the old rendering code intact in the Scene class to not break compatibility.
  • Should support different material classes with with a common base class. Each material should have the same common minimum set of properties that still allows for basic rendering regardless of material class. This way we for example expand material support for wavefront and PBR materials for GLTF2.
  • Move to separate SceneRenderer classes. Have a basic scene renderer what will render any scene and expand to specific ones for wavefront and PBR rendeing for GLTF2. These could take a scene as input and generate a list of scopes ready for rendering. Stick to UBOs and drop as many single uniform setters as possible.
  • Better support for bounding box data.
  • Ensure to provide a decent interface for users to extend and/or implement renderer.
@einarf einarf added the enhancement New feature or request label Sep 13, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core / important enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant