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

Material Abstraction #29

Open
11 tasks
wpumacay opened this issue May 30, 2023 · 0 comments
Open
11 tasks

Material Abstraction #29

wpumacay opened this issue May 30, 2023 · 0 comments
Labels
component: bindings Related to Python Bindings generation component: engine objects Related to objects from the engine itself (e.g. Cameras, Lights, Meshes, etc.) component: shaders Related to creating/updating/refactoring glsl shaders from the engine type: docs type: feature

Comments

@wpumacay
Copy link
Owner

wpumacay commented May 30, 2023

Description

This keeps track of the implementation of the material_t type. We currently don't know whether to have a separate type for each material type or just have a single object that handles types by an enum.

One of the key differences with our previous implementation is that a given material type (e.g. LAMBERT) should be linked to a specific shader (or shader chunk). This is similar to how ThreeJS handles materials, and it looks that their master-shader approach is the best option going onward with our material system implementation.

Tasks

  • Core implementation (base material?)
  • Material types
    • Basic Material
    • Lambert Material
    • Phong Material
    • Shader Material
  • Examples of usage (C++)
  • Implement Python bindings
  • Examples of usage (Python)
  • Documentation (API auto-generated by Sphinx)
  • Documentation (.rst custom made related to usage)
@wpumacay wpumacay converted this from a draft issue May 30, 2023
@wpumacay wpumacay added component: bindings Related to Python Bindings generation component: shaders Related to creating/updating/refactoring glsl shaders from the engine type: docs type: feature component: engine objects Related to objects from the engine itself (e.g. Cameras, Lights, Meshes, etc.) labels May 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: bindings Related to Python Bindings generation component: engine objects Related to objects from the engine itself (e.g. Cameras, Lights, Meshes, etc.) component: shaders Related to creating/updating/refactoring glsl shaders from the engine type: docs type: feature
Projects
Status: Todo
Development

No branches or pull requests

1 participant