I have a data set that is sparse and not organized in any way. I have tried ordering the data based on the X and Z axes. This works, but the surface isn't very useful due to the fact that the data is so sparse it has very sharp peaks and valleys, where I am looking for a nice smooth surface.

The type of data I have is in X, Y, Z format. In my case the ranges for the data along each axis are vastly different. For example the x-axis may be Engine RPM which could go from 1000-8000, where the z-axis could be Pressure Ratio, and be 0.5 - 3. The y-axis, the data I'm interested in plotting, can be any range of number based on what the user selected. What I have decided to do is simply ignore the actual values for the x and z axis, and give them a range from 0 to max and just plot the actual y values. Then I figure I can just draw axes to represent the actual range. That should solve my problem of the chart being unreadable due to differences in range.

I have been doing a lot of reading and keep coming across posts where people mention "Delaunay Triangulation". I've also seen some posts referring to hulls. I have been researching those two concepts, but I'm having trouble understanding how I would go about running the triangulation, what that would output and how I would ultimately render it. I looked into things like MeshLab, Point Cloud Library and various other projects, but those seem to provide far more functionality than I need. What I'm looking for is a way to perform the Delaunay Triangulation on my data, and then display it so the user can pan, tilt and zoom the surface. Any help would be appreciated.