- Rendering blocks is slow.
- Rendering tile-entities is slower.
- Rendering hundreds of them, which TC does and has to, is pure insanity.
The solution: Write a system for rendering cached models and effects per-block.
Use cases:
- All the complex tile-entities that TC renders.
- Custom blocks (yes).
Must have:
- Must react quickly on block updates. No huge delays allowed.
- Must allow alternate triggers for updating the geometry, like a (game)mode-switch.
- Alternatively: Allow some parts of geometry to be flagged, so its only rendered if the flag is set in the renderer.
- Continuous re-uploading of geometry to the graphics card is a very bad thing in a bandwidth intensive game like Minecraft, so the geometry must be cached.
- Bounding boxes of chunks must expand if the geometry is too large.
- Alternatively: Add a 'second layer' to it for very large geometry, like the connections between utility blocks. Blocks can then render as usual.
- There should be no hard limits on the amount and looks of geometry.
Optionals:
- Rendered geometry may need to be translucent. (?)
- The system must not render hidden chunks, if possible.
- Rendered geometry may have to be shaded (eg: lighting).
The solution: Write a system for rendering cached models and effects per-block.
Use cases:
Must have:
Optionals: