|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |