POV-Ray : Newsgroups : povray.general : Feature Request: Easy Iso : Re: Feature Request: Easy Iso Server Time
9 Aug 2024 09:03:06 EDT (-0400)
  Re: Feature Request: Easy Iso  
From: Warp
Date: 9 Aug 2000 05:26:13
Message: <399123b5@news.povray.org>
Rune <run### [at] inamecom> wrote:
: I think one powerful feature of isosurfaces are the ability to add actual
: bumps etc. to an object instead of faking it with normals.

  I wouldn't say that isosurfaces ADD bumps to ANY object. You can't add
bumps to a sphere using an isosurface. What you can do is make an isosurface
with the shape of a sphere and then modify the surface.

: However, you need to know the function of the object. While this can be easy
: with very simple objects, it can be very complicated with more complicated
: objects.

  There are named functions already (like "sphere", "torus" and so on). Of
course the list could be bigger.

: I think it would be really handy if POV-Ray could automatically convert
: regular objects into isosurface functions. Like this:

: function {
:    cone { x, 0.3, <1,2,0>, 0.2 translate z }
: }

  Yes, it could be handy, but how easy?
  How do you convert a julia_fractal to an isosurface? What about 'text'?
Bicubic patches? Meshes? Polygons?
  What about infinite surfaces like planes and polys? An isosurface can't be
infinite since it has to be contained by a finite object.

: If it worked with CSG objects too, it would be *really* handy!

  Most CSG is easy. However, I don't know how easy is to make a (true) union
of shapes with isosurfaces (the union has the peculiar feature that it has
inner surfaces which are not removed like in merge).

: Another and completely different idea would be to add an "iso_normal"
: feature to regular objects. Like this:

: cone {
:    x, 0.3, <1,2,0>, 0.2
:    iso_normal { bumps 0.2 scale 0.3 turbulence 0.2 }
:    translate z
: }

: Using an iso_normal would then convert the object to an iso_surface with a
: function according to the mother object, and then it would also add the
: iso_normal function to the object function.

  This can be hard for many objects, as described above. And there's also one
problem: How to calculate the contained_by object? Some objects do not have
even bounding boxes (not even finite ones, like polys, quartics or quadrics
with proper parameters).

  You ideas are very good, though.

-- 
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/


Post a reply to this message

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