Monday, November 22, 2010

Unexpected progress

This post is quite unexpected, as is the development progress that is reported in it. In the last two weekends I had "a few" hours to spend, which of course I spent chatting up a C++ compiler. I am utterly amazed at how fast things have progressed since the previous post: at the time I had only the intentions to start rewriting the GUI of my 3d tool (using Qt this time), but now I can report some real, actual ~progress~. Below is one of those "pictures that says a thousand words".


Basically, I have the following features working:

  • Configuration of options, such as which render system to use (DirectX or OpenGL). This is not shown in the screenshot.
  • Logging subsystem, shown in the screenshot.
  • Resource inspector, this static list shows which resources (textures, shaders and so on) are currently in use.
  • Parameter editor, each parameter in this list can be edited using an appropriate editing widget. So if you click on a texture parameter, you will see a list of textures. If you click on a Vector3, you can edit its 3 values. And so on, but you get the idea.
  • Minor features that have been implemented: load/save dialog, playback controls, texture browser

I expected that it would take me weeks (!) to get to this point, in reality it took me 'a few' hours (meaning, I didn't get much sleep in the last two weekends). I got really lucky that I managed to find some really useful programming examples of how to "get things done" using the Qt framework :-)

Next on the todo list is to start working on the timeline-based sequencer/editor (which allows you to place modules, that draw 3d scenes, on different layers of the timeline), followed by the 'node based compositing' part.

(Note: an example of a timeline based sequencer can be found in my November 5th post, in the screenshots for Version 3. Here are two reference screenshots, one of node based compositing in Blender 2.5. I am aiming for something similar. The other screenshot is from ShaderFX and shows how node-based compositing can be used to replace low-level shader programming. In this way you don't need to be a programmer to create 3d animations and/or shaders)


There is a small chance that I will reverse this order, as I have some example code that may help tremendously with creating the node based compositing GUI, and I may be able to use this tool for next semester's 'principles of biological modeling' class. However, I will definitely not be able to work on this in the next 3 weeks, as I am ~swamped~ with end-of-semester work for my graduate study at Brandeis University.

... to be continued!

No comments:

Post a Comment