newbie question possible to use cuda for 3d visualization?

Hi Guys!

It’s my first day here and spent the last 12 hours reading as many topics as possible. I’m studying 3d Animation and I’m working on my degree dissertation which is going in the direction of interactive visualization - the idea is to have a model (done in Maya or Mudbox) and be able to interact with it like changing shader and move the camera. Now, would something like that be possible to do in Cuda?

Sorry if it seems to be a stupid question but I havent touched C+ for about 13 years and would need to know it before I start to waste too much time in this idea.

Thanks
Daniel

Im not sure how much of this would be useful in CUDA.
Shaders are essentialy “CUDA” applications, or the other way around… cuda applications are essentialy shaders.

Moving the camera and loading shaders is what OpenGL is there for. Im not sure you need anything else if thats the kind of interaction you want.
On the other hand, if you want ot interact with your models through, say, rigid body dynamics, then yes, using CUDA would be fruitful.

Hope this helps.

Yes, this helps already! As I said, I’m totally new to CUDA and surely would have to look again for my old C+ books…so everything that avoids me waisting my time on something that can’t be done or at least faster with something like opengl, is a great help for me

So you are saying that cuda would give me better results if there would be some sort of change in the model structure instead just pure visualization? Hmmm, the only deformation I have will be controlled and not changable by the user.

CUDA is used for processing data, not displaying them… sure, a 3d-engine does the same, but i think ure dont want to create one of them. to display data, especially 3D models&co, u should use DirectX or OpenGL

but maby u can find some good cuda-samples in the sdk, that does both

If your primary interests are interacting with a model visually (moving camera, changing appearance, etc), OpenGL is probably what you want. (Or perhaps DirectX if you are in a Windows-only environment.)

On Siggraph 2008 ID software have demo’ed a 3D Voxel visualization based on Octree data structures that allows one to move the camera freely in a static (non-animated) environment that is streamed in from the hard drive (as you go closer to an object, more data is streamed in to increase the resolution). The amount of detail is amazing ;)

This is available on youtube. [url=“Sparse Voxel Octree (SVO) Demo by Jon Olick - YouTube”]Sparse Voxel Octree (SVO) Demo by Jon Olick - YouTube

As far as I know they have done their demo rendering with CUDA and get 60 FPS on a GTX 280.

Christian

I’m totally pulling this out of nowhere, but if you’re doing interactive simulations, why not take a look at using CUDA to do some kind of photorealistic real-time rendering. It seems like you could take one of those wireframe deals you animators use, add a LOT more points to it (to get more realistic textures/shapes) and then use CUDA to speed the whole thing up to real-time…kind of like an n-body simulation.

Well, that is not far from my idea at all! Actually that is my idea :) The only problem is that realtime isn’t really easy to achieve (mainly hardware issues) or am I wrong? So, would it be best to use Opengl or CUDA for realtime? If you guys can point me in the best direction (maybe also the easiest to learn because still got to produce a short in the same time) I would really appreciate it and I would take it from there then.

Thanks to all,

Daniel

Realtime should be easy to achieve with CUDA, depending on how many points you want to use for the wireframe. If you have access to a machine with a CUDA-enabled card, download and install the latest driver, toolkit, and SDK. Then you can check out some of the projects (for example, the n-body simulation) to see what kind of speed is available for your project.

For comparison, the Core 2 Duo CPU in my development machine is rated at 19.2 GFLOPs, while the 8800GT GPU in my machine is rated at just over 500 GFLOPs (and that is sort of mid-range for CUDA). That should give you some idea of what you’re looking at in terms of speedup.

I can’t give you any advice on the OpenGL vs. CUDA question though. If you’re looking to do more of a simulation-type program, I think you would want to go with CUDA. If you’re leaning more towards just rendering a semi-static setting and shifting camera or lighting angles around, then go with OpenGL. Maybe someone else can chime in with more info about them.

How many points? Hehehehe, as many as I can :) Obviously I’m used to model efficiently so that really shouldn’t be an issue. It’s more the light effects like refraction and so on.

Well, it would be a mix between simulation (due to the interactivity) and visualization…