Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Managed Direct3D or XNA for non-game related 3D graphics programming?

Which is the preferred approach for doing .NET 3D graphics programming: Direct3D or XNA seem to be the current technologies, but which is best for non-game related programming?

Also, has Managed Direct 3D been discontinued? XNA doesn't really seem to be appropriate for non-game development.

like image 281
Thomas Bratt Avatar asked Jan 23 '23 22:01

Thomas Bratt


2 Answers

Yap, too bad MS discontinued MDX. I'm currently using SlimDX for our non-game development. It's not a drop-in replacement for MDX, but at least the API design is quite intuitive compare to MDX v1.1's API. I've used MDX v1.1 + .Net v1.1 for version 1 of our product. As for version 2, we're migrating over to .Net 2.0. MDX v1.1 doesn't works well with .Net 2.0, plus it has quite a bit of other inherent problem. Thus we had to scout for alternative.

Initially XNA was our best choice. Then, because it target gaming market and compatibility with xbox 360, we found that we need to write a lot of workaround/hacks to make it works for us. The worse is interoperability with DirectShow, which we use extensively in our product. MS created a huge gap in between existing and the new technology, where the latest replacement for MDX and DirectShow is not powerful enough to replace the old ones at the moment, and we can't afford wait for the next version.

I wouldn't say SlimDX is the best for non-gaming development. But for my case, it is. And since it's OpenSource, we can always make changes to places where we see fit. There exist quite a will glitches when we use SlimxDX + DirectShow.Net. These glitches doesn't exist when we're using MDX 1.1 + DirectShow.Net. My guess is, internally, MS put in quite a bit of hacks to make it work.

Anyway, if you're not using DirectShow at all, do consider Ogre3D/MOgre3D. MOgre3D is a manged wrapper for Ogre3D, a well built 3D engine. It was our first choice, but we can't use it because it doesn't support DirectShow well.

like image 193
faulty Avatar answered Jan 26 '23 13:01

faulty


Managed DirectX wasn't so much abandoned as it was rewritten as XNA. True, XNA was designed with the Xbox 360 in mind, but XNA is as appropriate to use for non-game 3D programming as is any other 3D framework I've used. Don't overlook XNA's enormously convenient content importing pipeline... You can get your models and shaders onto the card and rendering with great ease.

As stated above, the Creaters Club community is very rich, and their Winforms tutorials will likely be of interest to you.

like image 20
bojolais Avatar answered Jan 26 '23 11:01

bojolais