Add support for material schemes to Ember
The Ogre material system has support for "schemes", which allows you to group different techniques together. This can be very handy for quickly telling the scene manager to use a certain sets of techniques when rendering the scene.
The main advantage for Ember would be that we could allow the user to specify a detail level. For users with low end graphical cards it would be nice since it can allow them enjoy the world without stutter.
I propose that we allow the user to select from four different schemes: "lowest", "low", "medium", "high".
"lowest" is for fixed functions cards. These will eventually go away, but there are still some out there.
"low" is for a 3-4 year old card.
"medium" is for a 1-2 year old card.
"high" is for current hardware.
Eventually, "experimental" settings could be added. It is thought to be a setting where we as developers can get some leeway with designing really good looking, but resource hungry, techniques. It's not guaranteed that it will run without problems even on high end cards.
In addition to these, we should also provide a "debug" scheme, which will render the world in a way which helps with debugging (single colours determines by LOD and material id perhaps?).
We also need to provide a mechanism by which the overhead minimap can be rendered. This should not use any shadows. It might be that we would need to use a separate terrain material for this. We will have to investigate.
Blueprint information
- Status:
- Complete
- Approver:
- Erik Ogenvik
- Priority:
- Medium
- Drafter:
- Erik Ogenvik
- Direction:
- Needs approval
- Assignee:
- Alexey Torkhov
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Alexey Torkhov
- Completed by
- Erik Ogenvik
Related branches
Related bugs
Bug #413613: Shadows flicker when something is drawn in a separate viewport. | Fix Released |
Sprints
Whiteboard
This is almost done. There are some issues left with flickering of the shadows when another viewport is rendered.