val[8] are the isovalues of your surface at the eight vertices in a grid cube.
I'm not familiar with voxel terrain, however, in 3D animation and medical imaging your isovalues come from Metaball/Blobby algorithms and CT/MRI machines respectively. In other words, there's a computational step / algorithm you compute prior to marching cubes which generates a nice block of 3D data for you. This data becomes your isovalues in your grid of cubes. Then, you pick a target isovalue, run marching cubes against that target value, and it will generate a surface corresponding to that value from your data block.
The isovalue is what the value should stand for and I believe the Algorithm details (second paragraph) later on in the page describe what they are trying do in the example
I'm trying to do the same sort of thing, but I'm getting a bit confused by the terminology. What exactly is an isovalue?
I currently have a cloud of points and a bounding box containing them. I intend to divide the bounding box into equal sized cubes, loop through the lot of them, eliminate the ones that don't contain any points and use the rest as input for the Polygonise function. Unfortunately, that only gives me input for XYZ p[8] in the GridCell and I don't know where to get the rest of the input.
EDIT: I should probably explain that I'm attempting to get an approximation of a convex hull that surrounds the cloud of points. I realise I won't get a perfect convex hull, but my goal is to get as close as I can. I'm hoping to get something like the nearest point on a grid to where the convex hull would be. Something that would be acceptable as a collision mesh.