No, VTK does not have general 3D meshing capabilities. vtkDelaunay3D can fill the volume but it will output the convex hull of your input. You may look at CGAL ( or a python wrapper of CGAL), Gmsh (or a python wrapper of Gmsh) or TetGen (or PyVista Wrapper of TetGen) for more general mesh generation capabilities. All three can output to VTK formats.
Yes, you can store a vtkUnstructuredGrid (which can be used to represent a 3D mesh) into a vtu file.
I actually wrote a small function (for vedo) where the vtkDelaunay3D alone seems to do a very good job! (not sure how it compares to tetgen)
"""Tetralize a closed surface mesh
Click on the mesh and press ↓ or x to toggle a piece"""
from vedo import *
surf = Mesh(dataurl+'bunny.obj', c='g3').cap().smooth()
tmesh = surf.tetralize(side=0.015)
# Assign an id to each tetrahedron to visualize regions
seeds = surf.clone().subsample(0.3)
cids = []
for p in tmesh.cellCenters():
cid = seeds.closestPoint(p, returnPointId=True)
cids.append(cid)
tmesh.celldata["fragments"] = cids
pieces = []
for i in range(seeds.NPoints()):
tc = tmesh.clone().threshold("fragments", above=i-0.1, below=i+0.1)
mc = tc.tomesh().color(i)
pieces.append(mc)
show(__doc__, pieces, axes=1)
# tmesh.write('mytetmesh.vtu') # save to disk