>> dev docs

Design notes

Some design notes about VRM: decoupling the renderer from the output writer will let us to add more output formats very easily if needed. And decoupling also the handling of projections can let us to add very fancy and creative projections in future versions.

VRM design diagram

Rendering pipeline

This is my first renderer ever, so if there is some naivety I hope that you will tell me, so I can learn something more :)

Clipping and sorting operations are done in object space, since this is meant to be a Vector renderer, I presume that traditional image space processing is not appropriate.

However, some processing in image space can be added in future, I think that merging polygons and generate paths when possible can lead to a better quality output.

The following diagram shows how the rendering pipeline of VRM works:

VRM rendering pipeline

The scene can be processes object by object if the user wants to keeps objects separate also in the final output.