I want to develop a portable C# API for 3D rendering to use with XAML control. ( 3D host between UWP control)
To which 3D engine should I use ?
I already learn OpenGL but i don't know if more High Level API are available.
The idea of the program is to have a 3D Scene builder with some object to add with drag and drop.
Using xaml for the interface is a constraint.
Do you have any recommendations or advice?
Thank's a lot !
Related
I wrote an WPF app using all the 3D stuff of WPF which contains several Views displaying 3D data. IMHO WPF is not the platform for further development of the app so I am searching for some ways to port it to a Universal App/Windows Store App/UWP.
The way, Microsoft is promoting, is to use Unity meaning a complete redevelopment and complicated workflows because it should be a 2D-App with some 3D views.
The other way I was looking at way using Helix-Toolkit, because it does not just offer the WPF-way of displaying 3D but also the DirectX way using SharpDX. Unfortunately the progress concerning UWP is pretty low and not currently usable in the extend I need (like displaying custom geometries etc.).
Is anybody out there who got the same problem and found a workaround?
TY!
You may also like to consider Monogame. Like Helix-Toolkit it's based on SharpDX (when it's on Windows anyway). It's not quite as "componentised" as Helix-Toolkit but it's possible to make your app UWP-first and Monogame-second.
I created a WPF project in Visual studio. The XAML markup is managed by C# code-behind. What i want to do is create a component on the user interface, which will show a 3D scene. I would like this 3D scene to be managed by Unity, because i need to take advantage of Unity's physics engine. The user must be able to interact with this 3D scene via gestures, recognized by Kinect (for example toss a ball).
Is there any way I can connect WPF, Unity3D and Kinect, so that the user will be able to manipulate 3D scene in such manner? If so, could you provide me with some examples/tutorials? If not, what is the best approach for letting user manipulate 3D scene with Kinect gestures?
I would see How get the Unity3D View In wpf winform as for using Unity3d with wpf. The tricky part will be the Kinect interaction.
You can interface with Kinect through WPF, and use Zigfu for unity. The downside to using WPF for the Kinect interaction is that you won't be able to send data to unity unless you use the new Kinect Client Server System and send all of your information to a webserver, then retrieve it in unity. That is a very bad idea, and will probably not be fast enough and experience serious lag.
The second option, using ZigFu in unity for the Kinect support, is to be considered. The issue with it is if you want to use the Kinect in WPF, then you would have to disconnect from unity. This is the only possible way I see being able to implement
Overall, this is achievable, but will be very difficult. I suggest you use ZigFu, but there are drawbacks to both methods.
This is quite a big and generic question. But I will suggest you to use a web deployment of your unity project and, on your project/References/COM there is a UnityWebPlayerAXLib Control that will help you a lot.
I am new to wpf. I have created a 3D animation in Maya Auto Desk. SO can i Embed it in WPF . is it possible ? Please help ?
There is an older open source project to create a DirectX control for use in WPF at http://sharpdxwpf.codeplex.com/ However you'd need to convert the maya file to .x format for directX -- there used to be an exporter in the DirectX SDK but I don't know if it's been maintained.
This project offers a 3D component for wpf and also includes links to other 3d-wpf format: http://helixtoolkit.codeplex.com/ A quick look suggests it might not support animation right now (OBJ, for example, is not an animated format) but maybe the links will help.
The standard way to develop with Unity 3D is to develop in the Unity 3D IDE and have it generated Xcode projects when necessary. If we need UIKit support or other Cocoa-Touch features, we need to write pluggins or wrappers for bridging.
Is it possible that we build the overall structure with Cocoa-Touch and Objective-C and only leverage the 3D capabilities of Unity 3D in some certain occasions?
If Unity automatically wraps your entire 3D project inside an Obj-C project, then no, it's not possible.
Why not just accomplish what you're trying to do within the game? Unity supports a lot of various .NET libraries - surely you could just accomplish what you need within Unity itself?
I agree, just use Unity , or don't use unity, its very complex to mix SDKs together
I created a Game in C# (Multi-player Tanks Game) using Windows Forms Tools (Panels, shapes, buttons, etc...) but the Animation and Graphics are just so poor, so is there any Type of simple Graphics or Animation to use in C# to make this game a little better, can I use flash in C#, anything?!!!
XNA is great, its a completely different technology to Windows Forms as its based on DirectX.
Another idea is to check out silverlight or WPF depending on how complex your game is. For simple 2D games with not too busy screens it might be a lot easier than XNA.
I found a great example of building a multiplayer game in WPF.
I would recommend having a look at Microsoft XNA.
I'm pretty sure if you want to improve the graphics of your game you're going to have to use design software or hire someone to do it for you. A simple look up on Google will direct you to model development software.
A good place to start is the microsoft XNA framework.
I also recommend using Blender: http://www.blender.org/
It's a completely free open source 3D model creation program.
There are many librarys and ways for game development in C#.
I prefer to use XNA, which is based on DirectX and developed by Microsoft itself.
But there are also many other wrapper like OpenGL wrapper SharpGL, a custom DirectX wrapper SlimDX or using the plain DirectX SDK.
Some time ago I was looking for libraries or frameworks to improve winforms experience with nice animations. My best options were XNA or OpenTK (OpenGL) and SDL.Net.