PyVista is a powerful Python front-end to VTK and allows plotting flow on 3D topography. The topography can be colored by elevation, or an image or map can be added as a texture.
We are developing tools to more easily use this with GeoClaw, in particular for visualizing 2D depth-averaged tsunami simulations, but it may also be useful for many other applications.