POV-Ray : Newsgroups : povray.advanced-users : Question1. Blobs/Metaballs : Re: Question1. Blobs/Metaballs Server Time
28 Jul 2024 20:21:46 EDT (-0400)
  Re: Question1. Blobs/Metaballs  
From: Christopher James Huff
Date: 20 Apr 2004 22:21:08
Message: <cjameshuff-731669.22221620042004@news.povray.org>
In article <4084a421$1@news.povray.org>, Gena <gen### [at] yahoocom> 
wrote:

> So, my first question is - which additional attribute(s) I should
> include to the Blob object so that it would work like POV-Ray blob?
> What kind of attributes are used for POV-Ray's blob object. Does
> every blob keep own transformation matrix?

That depends on what you need. If you need each component to have its 
own arbitrary scaling, rotation, etc, then you need a transformation 
matrix for each component. If you just have unscaled cylinders and 
spheres, it is not necessary.


> Next question is about algorithm used in POV-Ray to construct
> blob's isosurface. Where can I get a reference to it? Is it marching
> cubes?

POV-Ray solves for intersections with the blob itself, it does not 
tessellate the blob. It does so by generating quadrics to match portions 
of the surface...the algorithm is pretty complicated, and I don't 
understand it fully. You could also use an iterative root solver of the 
type the isosurface primitive uses...look up things like "root solver", 
"bisection method", "newton's method", and "regula falsi", and some of 
the previous messages in these groups on the subject (I recall there 
being a recent one in *.programming).

Tessellation algorithms are even more complex. The marching cubes 
algorithm is patented, using it may create legal problems, but there are 
other variations such as marching tetrahedrons that can give superior 
results. There was a tessellation patch that implemented several of 
these methods.


> As far as I understand I need one algorithm/formula for making
> isosurface itself and another one for polygonizing that surface.
> Is it so?

The "isosurface itself" is a function: in this case, the blob data 
together with the code that gives a field value for a point. You will 
need a root solver algorithm to find points on the surface, polygonizing 
is only necessary if you need a mesh.

-- 
Christopher James Huff <cja### [at] earthlinknet>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tagpovrayorg>
http://tag.povray.org/


Post a reply to this message

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