This project was a voyage into replacing Maya’s Viewport 2.0 renderer with a custom-built external rendering system. This sort of setup is ideal for games development, as artists can see and edit final-quality art assets directly within the viewport without having to repeatedly export their scene. Technical limitations of the built-in viewport, such as the number of active sources being restricted, can be overcome due to being in full control of the rendering pipeline.
The renderer and Maya plugin for this project were written entirely from the ground-up with no external libraries other than GLEW. The renderer in Maya is fully real-time. Materials, lights, meshes, and so on, all update in the viewport as they are edited. This is achieved by mirroring Maya’s DAG and connecting mirrored nodes to the external renderer appropriately. If you would like to build a system like this yourself, you can read my other article in which I discuss lessons learned from this implementation.
Please note that this project is no more than a test and is not a polished product.
Below are a number of snapshots from various tests of the renderer running in Maya’s viewport throughout development of the plugin. All are using my own custom viewport renderer plugin and run in real-time. Not all models are my own.