What is the easiest/best way to develop 3D graphics in C#

My requirements:
--The program must be able to visually rotate a figure to veiw all possible angles of
   the displayed 3-D structure by clicking on the figure and draging it
--The program must be able to read in a complex 3-D figure and try to
   associate (as close as possible) that figure with some common shapes in a database that I would create (such as
   cylinder, cube,  cone, boxes, sphere, etc.) so that I can calculate
   the volume of the 3-D figure by calculating the volume of the shape that resemble the
   complex 3-D figure

If possible, I would like to avoid the complexity of getting into graphics that require manipulating C++ code
VWrestle97Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Mohammed NasmanSoftware DeveloperCommented:
Hello

  There are many 3D engine that help you to do and more complex 3d graphics and games, here some of them

http://www.3dstate.com/
http://axiomengine.sourceforge.net/
http://www.exocortex.org/3dengine/

also you could use DirectX 9, which add managed wrapper to allow developing using .net languages without requiring COM InterOp

here's you can download DirectX SDK for C#
http://www.microsoft.com/downloads/details.aspx?FamilyID=592393a7-c677-4023-8b27-94e61141e9c6&displaylang=en

http://www.c-sharpcorner.com/Directx.asp

other way to use OpenGL
http://www.codeproject.com/csharp/SharpGL.asp

this engine based on OpenGL http://www.exocortex.org/3dengine/

HTH
0
VWrestle97Author Commented:
HTH,

From your opinion, which one do you think is the easiest to implement for my purpose?

VWrestle97
0
Mohammed NasmanSoftware DeveloperCommented:
it's depend on the complexity

if you would like to build a game or complex 3D graphics, go with engines, they do many work for you

I think if you go with DirectX track will be good, you can read the SDK documentation to help you, and you can find few C# books for DirectX in amazon

OpenGL is widely used for 3D games and applications, but most of code you will see is c++
0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

VWrestle97Author Commented:
HTH,

If I use DirectX, do you know if the level of complexity is the same as OpenGL, that is if I wanted to visually rotate simple figures (consisting of bundled 3D cylinders, cubes, cones, boxes, and spheres) by clicking on the figure and draging the mouse?

Also, if I did choose OpenGL, does that mean that I still would have to understand pointer?

VWrestle97
0
armoghanCommented:
Here are few artciles on what can be done using DIrectX and C#
http://www.c-sharpcorner.com/Directx.asp
0
armoghanCommented:
Sorry.........
the link has already been given
0
Mohammed NasmanSoftware DeveloperCommented:
Hello

 I think going with DirectX is easier track, specially it doesn't support only graphics, but sound, inputs and more
you can start with simple tutorials, once you learnd how to do simple things in c#, then you can read anybook about directX for more advanced things, you can start with these site to learn from start

http://users.pandora.be/riemer/
http://www.gotdotnet.com/team/directx/learn/
http://www.c-sharpcorner.com/directx.asp
http://www.winternet.com/~wingnut/html/mokk.htm
http://www.drunkenhyena.com/cgi-bin/dx9.pl


  Here's a comment I saw in the newsgroups about DirectX and OpenGl
"Direct 3D is an object orientated 3d graphics library.  OpenGL is a
structured ("C style") API.  They both have their own pros and cons.  Most
people will choose OpenGL because it is available on non-Microsoft
platforms.  The other people will choose Direct X (Not just Direct3D)
because they are only interested in Windows and DirectX is a "gaming SDK"
(sound, video, input, etc...) where OpenGL is just a "graphics SDK".
DirectX is built upon COM and OpenGL is built upon plain old C code.  Since
you are a C# developer you can get up and going with DirectX much quicker
than OpenGL.  Microsoft has recently released a managed DirectX 9 which can
be used in C# without all of the COM interop stuff.  AFAIK the only support
for OpenGL in C# is all third party and involves extensive use of P/Invoke
to call the OpenGL.dll API calls.  I gave you all of the info I have on the
two technologies.  Which one is better (for your needs) is up to you to
decide.  You can search Google for more arguments like this - I'm sure you
aren't the first who tried to compare the two technologies."
====

Regards
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
VWrestle97Author Commented:
mnasman,

Great stuff, but I was also wanted to know more about skinned meshes.  
how they are generated and exported using Maya or 3D-Studio-Max.
how they are imported and how the scaling, global locations and rotations are manipulated in C# and in Direct3D.

p.s.  I know that I am asking a lot, which is why I plan on increasing the points

thanks,

VWrestle97
0
VWrestle97Author Commented:
oh.. and you give me those examples in managed DirectX code..

VWrestle97
0
Mohammed NasmanSoftware DeveloperCommented:
VWrestle97

I gave you mosted of example for C#
if you would C++ and unmanaged code, I can give a lot more

I'm nto familiar with Maya or 3DS and not a good in game and graphics programming

also it's better to ask only one question per a thread and give low points for each
better than to ask many with high points in single thread, this will prevent many of experts who can help in some question to answer you

0
VWrestle97Author Commented:
>> unmanaged code

does that mean that I would not need to know C++, but instead focus on C# when dealing with DirectX?
0
Mohammed NasmanSoftware DeveloperCommented:
yes

you can develop using C# only without needing the C++, you can also write managed code using C++ but still not easy like C#

what you need now developing using C# with managed directx 9
0
VWrestle97Author Commented:
mnasman,

what happened to this webpage... there are not links to a tutorial.?

http://www.winternet.com/~wingnut/html/mokk.htm
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C#

From novice to tech pro — start learning today.