Click here to Skip to main content
13,195,026 members (86,820 online)
Rate this:
Please Sign up or sign in to vote.
See more:
I am developed a software in WPF in which
-user's image are wrapped in an 3d objects.
-contains a static background which just fits with the 3d object.
-the light, texture are added manually.

My problem is that the 3d object does not appear appealing enough.So, my senior suggested to look into XNA, but i donot know if XNA would be good enough for me...

So, should i choose XNA for all the above work with great , appealing final graphics
should i try some 3rd party 3D rendering engine?
Please explain me what should i do or is there any other option?
Posted 22-Feb-12 3:58am
Updated 22-Feb-12 4:56am
SAKryukov 22-Feb-12 15:12pm
It's pretty difficult question and also not clear. When you say "not appear appealing enough", you don't explain what features would you hope to look more appealing. I would advise to look into features, not a new framework. You can just waste time on having the same features rendered using different technical means. So, I would think about staying with WPF as much as possible and think about rendering detail themselves; try to realize what is missing. In may require some artistic feeling. Do you have any good experience is drawing or painting? Industrial design? Any graphical arts? This experience might be critical.

I mean my own experience: I once dramatically improved the visibility and human recognition of 3D picture (a surface) by adding of just three features, most primitive technically: 1) different colors for two different sides of the surface, 2) primitive sharp shade depending on a very primitive source of light, 3) ability to turn coordinate system interactively. It immediately made the picture looking "life". (It was scientific graphics.)

Anyway, don't follow your your senior until she/he explains very clearly what is her/his positive experience with XNA, exactly. (It could be just familiarity with some good presentations is some application, but it should be something essential; I know those "seniors" -- sometimes they could easily distract you, and the real responsibility would be put on you -- be careful with such things... :-)

CDP1802 29-Mar-12 8:05am
How true. XNA and WPF don't go together well at all. It may be a bit late, but I have written another answer below why those two things are not meant to work together. It can be done, but it's always a bit of a sinister hack which I would not want to have in a serious application.
SAKryukov 29-Mar-12 12:49pm
And that was a good reply, I up-voted it.
Rate this: bad
Please Sign up or sign in to vote.

Solution 2

XNA will not help very much if you have a WPF application. There are two problems which are not easy to overcome

1) WPF applications are event driven while XNA applications run in a continuous rendering loop. Getting those two worlds together does not work out of the box. You will have to write a bit of your own code to provide a class that acts like XNA's Game class (the main runtime object of an XNA application) that is encapsulated in a WPF control and runs in a separate thread.

2) XNA, which is based on DirectX, needs a Win32 window as rendering target. WPF controls are not based on Win32 windows, so they cannot be used for that purpose. The only solution to that has up to now been opening a separate Win32 window and keeping it aligned with the WPF control, so that it at least appears as if the content is rendered into that control. This of course is a hack and not what I would like to see in a serious application.

I have a little project of my own which used to be WPF and also needed a little more 3D than what WPF had to offer. In the end I went into the opposite direction. It's now a pure XNA application and I have written my own GUI for XNA. Now I have both things at once, at the price of having to write a own GUI. Bottom line: No matter how you look at it: 3D and WPF don't come together easily.
SAKryukov 29-Mar-12 12:48pm
I think these are very essential warnings against WPF, especially #1. My 5.
Just a little note: actually, WPF application is based on a Win32 window which is uses only as a top-level container for the application, but dependency on this is done nearly as little as possible. To me, the main drive of WPF is going away from Windows.
Rate this: bad
Please Sign up or sign in to vote.

Solution 1

If you just want to show user's image on surface of another 3D object then WPF if enough but if you want the user to be able to rotate 3D object or play with 3D object then you need XNA.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy |
Web03 | 2.8.171018.2 | Last Updated 29 Mar 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100