POV-Ray : Newsgroups : povray.general : Combining meshes and isosurfaces : Combining meshes and isosurfaces Server Time
30 Jul 2024 00:20:50 EDT (-0400)
  Combining meshes and isosurfaces  
From: Lukas Winter
Date: 3 Apr 2010 06:00:54
Message: <4bb711d6@news.povray.org>
Hi there,

Isosurfaces and meshes are the two objects that currently offer the most 
advanced modelling techniques in POV-Ray. Meshes are easily modified 
using free and commercial modelling programs and great to model organic 
structures. However they require lots of triangles and excellent 
materials to look good in close-ups. Otherwise they often look too smooth 
(especially because POV doesn't support deplacement maps). With 
isosurfaces it is easy to create small semirandom detail using POV's 
inbuilt functions like noise but keeping control of the overall shape is 
difficult. Wouldn't it be nice to be able to combine the strengths of 
isosurfaces and meshes into one kind of object?

The object type I imagine would do the following:
In meshes there's "zero"-dimensional vertices, one-dimensional edges and 
zwo-dimensional faces. Let's add three-dimensional structures as well, 
I'll call them strata. They are just 3D-cells whose boundaries are faces. 
Of course we can assign texture-coordinates (called uv-coordinates in 
POV, but that term is a bit misleading) to vertices and interpolate them 
not just on faces but also inside strata. I called the term uv-
coordinates misleading because we can have any number of texture 
coordinates, not just two (u and v) but any number.
Now let's put an isosurface into each stratum. Each may - but needn't - 
have the same function and threshold. We feed texture coordinates (which 
may now be three-dimensional and named for example u, v and w) instead of 
x, y and z to the function, which makes the isosurfaces "stick" to the 
mesh even if the vertices are moved around.

With this object type we could control the overall shape using the mesh 
but the small details using isosurface functions. We could model rust on 
surfaces, that's really three-dimensional. Create landscapes with certain 
features at a large scale but let noise-like functions handle the rocky 
ground.

Of course there are certain problems to overcome. At the moment I'm 
trying to find these problems before I start messing with the POV-Ray 
source.
- Memory consumption could be a problem. A mesh that's not just a thin 
shell but has depth needs about 7 times as many triangles. Solution: Buy 
more RAM ;)
- Speed will never be better than that of meshes or isosurfaces. In fact 
the times needed to calculate an intersection will add up! Fortunately 
isosurface functions may become simpler because they needn't model the 
object's shape but only the details of the surface. Solution: Buy a new 
CPU ;)
- Perhaps we'll need to look into more complex interpolation schemes for 
texture coordinates than just linear interpolation. There may be non-
linear transformations involved!?
- There are be no graphical editors for this kind of object so we're 
still stuck with trial and error.

I'd be glad to hear what problems and chances you see with this idea!


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.