Designing and Developing a WPF application
Just to get out of the ‘Hello World’-mode I decided to write a real application using Windows Presentation Framework (WPF). So what kind of application to make? Years of programming graphic intensive applications (otherwise known as games) for a hobby have shown me that more than 50% of the time is spend on tools. Importers, exporters, leveldesigners, compilers, scripting engines and so on, and so on… One of the tools that set me on an ever continuing quest was the 3D model designer. Of course one could go for the cool tools like 3D Studio Max and sorts but I prefer a more cheap AND legal way. Besides in the end I always ended up writing custom exporters or converters from file format to file format. So why not write one myself?
Here’s my wishlist (in no particular order):
- Saves all data (optionally) in XML to allow ‘simple’ xslt transformations to other formats.
- Targeted at 3D polygon editing (no raytracing engine).
- Intuitive user interface.
- Skeletal animation.
- Texture mapping
- Import MD3 (Quake) format.
- … (more will be added to simulate scope creep)
And by the way: I want to learn Windows Presentation Foundation…
Update january 30th 2006
Coding for several nights (I work during the day) resulted in (no particular order):
- A basic layout.
- A basic design.
- Some cool (if I may say so) icons (scalable, vector based)
- MD3 import!
- Saving in XML of all settings.
- Zooming.
- Default texturing.
- A snap cursor.
- Here is a screenshot.
Update february 2nd 2006
Some more work has been done:
- Zoom in and zoom out buttons on the views (working!) scrolling the mousewheel also works.
- Cleaned up loads of code.
- The toolbars are now completely styled: when hovering the mouse over an icon it lights up and no more ugly border around the buttons.
- Re-aligned the views (hardly noticeable (look at the vertical area between the two columns of views in both screenshots))
- Added mouse cursors.
- The Select, Pan, Move and Rotate button now actually send signals to the views.
- Read this post explaining som of its highlevel design features.
- Screenshot