My proposal, Viewport FX, for Google Summer of Code was accepted this year. The goal of Viewport FX is to improve the performance and flexibility of the 3D viewport drawing code in Blender. This is known as the “3D view” internally.
The first goal, performance, is not meant to provide any additional end-user features. Which makes it difficult to figure out what I should tell you guys since you are mostly end-users and you want features Performance is a nice feature to have though.
The second goal is more interesting from an end-user perspective because the idea is to make the 3D view configurable. By configurable I mean that instead of “wire”, “solid”, “texture”, etc. that you more modes could be added without having to learn C. Also, the existing modes would be built by using the basic features of the new system.
There are actually many more modes for the viewport than you can select because the different editing modes in Blender interact with the different drawing modes to produce quite a few different possible rendering paths.
To understand where I am going with this, it may be helpful to look at some previous examples of the kind of system I am looking to create:
Direct3D .fx Files
Quake 3 Shader Manual
I’d like to stress that a full end-user usable system is probably out of reach for one SoC. Refactoring the code for performance is the #1 priority. However I’d still like to have a discussion about the potential uses of a more flexible and configurable viewport. Beyond the editor this work has implications for the game engine or a fancy OpenGL renderer.
My personal motivation is that I wanted to add additional “visualization” modes to sculpt and paint, but I found the task of extending the current viewport to be too ad hoc. You guys might be able to think of other uses, and that would help me make sure I make the right decisions this summer so that I do this correctly.