views:

161

answers:

2

I'm building an application and I'd like its User Interface to be 3D, most probably a cylinder. The user would see the cylinder[Horizontally laid] and the cylinder's curved surface would have the buttons and any other controls that need to be placed. The cylinder needs to rotate and later, I'd like to add some other effects to the cylinder too.

Someone told me that such a UI can be modelled using Maya or Blender and exported to openGL and then I could use C/C++ (with Qt) to carry out the actions. How can this be done??

Is there any other way to build the UI and do all the other things that I need ?? I really need some help because I have the UI in mind, but no idea on how to implement it.

Thanks

A: 

You can do this with WPF, it's pretty cool.

There is a whole section on skinning 3D objects with WPF UI's in this book if you can get hold of it.

Amazon

DrLazer
I don't know C# very well. Is there any other way I could do that? Is the method that I was suggested [Blender+OpenGL] feasible ??
Saurabh Manchanda
Ish ... it would be pretty difficult using only QT. There is a whole framework in place for you to do this in WPF and if you can write C++ then c# really is simple.
DrLazer
+1  A: 

You can render your UI into an offscreen buffer (render to texture). Then, just map the cylinder with that texture.

I like using Crazy Eddie's GUI for my opengl UI but any UI system should work.

I just realized that you might be talking about actually using 3D models for the buttons and other controls. If that's the case, the above solution isn't going to work. I wouldn't bother trying to force a gui framework to handle this, I'd just create a custom solution specifically for this.

Jose
The main concern is creating a window that is not rectangular; instead, it's a cylinder.
Saurabh Manchanda
I get it. You actually want a cylinder as the app.I would also recommend that you use WPF with XNA interop. That's probably the easiest to get what you want.XNA will give you the ability to render the cylinder with the gui textured on it.WPF will give you the ability alpha out the edges of the window to have only the cylinder showing. It will also make sure it blends correctly with the other windows on your desktop.
Jose
Are you sure XNA would be necessary and after integrating it with WPF, the application window would be smooth ? Could you also recommend some book for XNA ?
Saurabh Manchanda
XNA isn't necessary but it gives you a lot more control over what you can do to that cylinder. Microsoft has a ton of tutorials and examples on their XNA site and there are dedicated tutorial sites on the net. Just search for XNA.
Jose