Nov 17, 2012

My Vision for a Successor to RenderMonkey and FX Composer

AMD RenderMonkey has always been my favorite shader prototyping tool. I've done tons of rendering experiments with it. Only weeks ago RenderMoney offered me a great helping hand when I did my research work on the topic of cel-shading. Unfortunately, AMD decided to discontinue the development of RenderMonkey in 2009, leaving us with a legacy version - v1.82, which is pretty stable, but only supports DirectX 9.0c and Shader Model 3.0. A Q&A here addresses that the main reason for this is RM's lack of ability to program CPU. Nvidia's counterpart to RM, FX Composer, though not officially announced, seems to be sharing the same fate of abandonment, as the latest version was released back in 2009, with only DX10 support.

Therefore some people demand a successor to these tools, with the latest technologies integrated (namely DirectX 11 and OpenGL 4). I am now seriously considering "go ahead and do it". In my vision, this new tool should:

1) Support the latest generation of graphics API: DirectX 11 and OpenGL 4.0. These standards have been out for years and are being put into practical use in real-world games and applications. There is simply no reason not to support them.

2) Add new shader stages (geometry shader, tessellation shaders). Not so long ago, when we say "shaders", we mean the pair of vertex shader and pixel (fragment) shader. But the world has changed now. DX 10 and OpenGL 3 introduced the concept of geometry shader, and we had tessellation shaders in DX11 and OpenGL 4. The new tool has got to embrace them if it wants to stay relevant.

3) Be able to expose its inner data structures and routines to user-created extensions. Both RenderMonkey and FX Composer suffered from the inability to write CPU code because not all effects can be done exclusively on GPU. If we can employ some mechanics to give users full control over its rendering pipeline by writing their own C++ plug-ins, like what you can do to 3ds Max with Max SDK, it will be a whole different world.

4) Have a friendly and powerful UI. IMHO RenderMoney has over-simplified UI and FX Composer has an overcomplicated one. A mixture of the two might be just right.

5) Build a platform for the users to share and showcase their works. This idea is inspired by the Shader Library shipped with FX Composer and the model of Unity's Asset Store. Package all your source materials of an effect (code, plug-ins, models, textures or even papers and docs), and share your brilliant work with the rest of the world. Wow, that'd be real cool...