Gnuplot and pm3d output
Gnuplot can produce some pretty 3D output. As an example:
set ticslevel 0 set pm3d set palette defined (-3 "blue", 0 "white", 1 "red") splot [-10:10][0:5] (2*sin(x)-1)*exp(-y) with pm3d
produces

This is a fair start, but a little coarse. Fortunately this is easy to improve, one just needs to add
set isosamples 400,400 set samples 400,400
before the splot line. Then one sees the rather better

Finally one might want this output for inclusion in another document. This is where things start getting awkward. Gnuplot will either include every element of the surface in vector form, producing a rather large file which takes a long time to display, or it will rasterise everything, producing poor quality axis labels.
There is a script in TCM which attempts to take Gnuplot's output, and rasterise just the surface, leaving the labels untouched. So a gnuplot command file of
set ticslevel 0 set pm3d set palette defined (-3 "blue", 0 "white", 1 "red") set isosamples 400,400 set samples 400,400 set term post eps enhanced set output "t.eps" splot [-10:10][0:5] (2*sin(x)-1)*exp(-y) with pm3d
produces an output file of over 5MB which takes 7.5 seconds to render on the (slow) computer in front of me using
pc0:~$ time gs -dNOPAUSE t.eps -c quit
However, passing the gnuplot output through
pc0:~$ pm3d-shrink -t t.eps u.eps
results in a 145KB file which takes under 0.5 seconds to render. The quality loss (usually insignificant) can be adjusted by adding -r 2000 to set the horizontal resolution of the bitmap region (the default is 1000), and the above treats white as transparent, which is usually wanted, but one can turn this off by omitting the -t.
Whether one desires EPS or PDF output, this approach of mixing bitmapped surfaces with vector text is often optimal, and is remarkably hard to achieve with Gnuplot, Matlab and Mathematica. However, with a good knowledge of PostScript one can often achieve the ideal. Of course for figures which are to be used with a projector, there is no point and it is quicker just to rasterise everything. This approach may be worthwhile for documents which will be printed or distributed as PDFs.