How to convert density function to hermite data?

135 Views Asked by At

[Apologies for any mistakes in tagging, I'm new to this site and topic]

I'm rendering a procedural surface in a game engine. A method returns density for a particular point in space. Density is a combination of forced values and multiple octaves of noise. A density of zero or less indicates air.

Using a simple marching cubes implementation, I can generate meshes and see an interesting (but slightly blocky) surface.

I'd like to try using dual contouring to improve the surface quality, however, that apparently requires hermite data.

Unfortunately, I don't really understand what hermite data is. As far as I can tell, it's density values stored at various levels of precision for a given volume?

Is it as simple as building something like an octree and recursively calling my density method until I get to a certain depth?

What is a computationally cheap method of generating hermite data from my density data? (In case it's a trade-off, speed is more important than precision)