views:

110

answers:

3

Hello,

I want to implement a paint-like application, which will enable kids to create and work with 3 dimensional objects.

How can I start? What is the right approach? WPF, OpenGL, or Direct3D? (I prefer C# solutions, but C++ is OK also).

Thank you all in advance!

--NewB

+1  A: 

Just as a note, you may wish to take a look at XNA too - it's a nice API that wraps up a lot of the more complex Direct3D bits and bobs and allows you to jump right in there, it's also for use with C#

Daniel Frear
Thank you very much!
NewB
riemers.net has some of the best freely available online tutorials on xna that I know.
Dave
+2  A: 

Here is an excellent example using WPF you could start with:

http://www.codeproject.com/KB/WPF/Wpf3DPrimer.aspx

However, you should definitely keep an open mind and consider some other possibilities. Because there are actually lots of different ways of doing this sort of thing, all of them with their own relative costs and benefits. It's kind of like ice cream - WPF is probably like chocolate, although that might be too strong a statement.

MusiGenesis
+1  A: 

I'd skip all of the above, and use a higher-level API like MOGRE or osgDotNet. These will let you switch between DirectX and OpenGL relatively painlessly, and semi-automatically optimize the drawing, as well as supporting quite a few features that will be quite a bit of work to do entirely on your own. You may never need the extra features, but then again you might -- and with these they're more or less thrown in for free.

Jerry Coffin
"semi-automatically optimize"? That sounds semi-good. :)
MusiGenesis
@MusicGenesis:yes, the idea is that they build a graph (DAG) of the scene, with the necessary state changes reflected in the graph structure, so they (mostly) minimize the state changes necessary for the geometry you've defined.
Jerry Coffin