Hi, There is a water simulation demo with CUDA installation package. I wonder about which method is better if we compare the vertex shader program or a Cuda program for vertex displacement?

For simple vertex displacement you should use vertex programs, as it saves you a lot of hassle and copying stuff around.

If it gets into the ‘simulation’ area, and you cannot do it anymore using vertex shaders, CUDA starts to become interesting.

In theory CUDA can actually provide higher performance for these kind of applications, since in Compute mode the whole GPU is dedicated to running the CUDA kernel, whereas vertex shaders only utilize a fixed maximum fraction of the machine.

Using CUDA for geometry-shader like applications can also be faster than using actual geometry shaders. See the marching cubes sample in the SDK for an example.

So you are basically claiming that CUDA is always faster than geometry and vertex programs? Very interesting. But won’t rendered vertices always go through at least a minimal vertex shader? So you can’t completely replace it.