|
|
I think that one of the next useful POV-Tree features could be
polygonized/tesselated blob model.
A tree generated by TOMTREE macro is a blob tree. The whole
tree is just one blob. As a result all roots, trunk, branches and
twigs have smooth transition from one element to another. The
idea is to generate POV-Ray mesh object which could look the
same way as blob tree - with smooth transitions between elements.
Changing mesh accuracy it would be possible to define how close
mesh mimics its blob counterpart.
POV-Tree uses the same algorithm as TOMTREE to generate
tree model. The whole tree is represented in POV-Tree as an array
of Blob objects. Blob object in turn has three attributes:
blob center - x, y, z coordinates
blob radius
blob strength (not used in POV-Tree)
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?
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?
As far as I understand I need one algorithm/formula for making
isosurface itself and another one for polygonizing that surface.
Is it so?
I'm not familiar with POV-Ray source files and I appreciate any
additional info regarding this subject (preferably on-line).
Googling gave me the following pages:
http://www.cfxweb.net/~aggrav8d/tutorials/metaballs.html
http://astronomy.swin.edu.au/~pbourke/modelling/polygonise/
http://astronomy.swin.edu.au/~pbourke/modelling/implicitsurf/
http://www.geisswerks.com/ryan/BLOBS/blobs.html
http://www.niksula.cs.hut.fi/~hkankaan/Homepages/metaballs.html
Just in case it's not clear what I need here are some pretty Java
applets demonstrating what I want to achieve:
http://www.srcf.ucam.org/~gw235/main.php
http://v3ga.free.fr/Java/Metaballs_2D/index.htm
Thanks in advance!
Gena.
Post a reply to this message
|
|
|
|
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
|
|