POV-Ray : Newsgroups : povray.general : Isosurfaces, deforming with pigment patterns, speed, internal algorithms Server Time
16 Nov 2024 03:23:06 EST (-0500)
  Isosurfaces, deforming with pigment patterns, speed, internal algorithms (Message 1 to 4 of 4)  
From: James Bulgin
Subject: Isosurfaces, deforming with pigment patterns, speed, internal algorithms
Date: 10 Apr 2004 13:08:21
Message: <40782a05$1@news.povray.org>
After fooling around with isosurfaces for the first time a couple weeks ago,
I realized how much better they can be for making something look
realistically bumpy, as opposed to a normal pattern. (I know this is pretty
common knowledge, but I hadn't actually experimented with it myself until
then) However, the rendering speed is amazingly slow for some of them. I
think a single frame of one crystal formation (a sphere with crackle added
with a translucent texture containing some emitting media) took something
like 20 minutes to render. Is there any way to achieve this sort of effect
faster?

Moreover, I was curious about the internal processes behind isosurfaces and
why it sometimes takes so long to calculate them. I do know the general
thoery, but is there anywhere that I can find a more detailed account of how
the pov-ray does these things internally? I did download the source code,
but I havn't really had the time to have a good look at it yet (and given
the size of it, it's a bit of a task just to figure out where to begin as I
have little knowledge of the internal organization of the renderer)

I do program myself, so I'm sure that given enough time I could figure out
how it works, but I was just wondering if there is some place where the
internals are already explained a little, to give me a head start perhaps?


Post a reply to this message

From: Micha Riser
Subject: Re: Isosurfaces, deforming with pigment patterns, speed, internal algorithms
Date: 10 Apr 2004 15:47:49
Message: <40784f64@news.povray.org>
James Bulgin wrote:
> 
> Moreover, I was curious about the internal processes behind isosurfaces
> and why it sometimes takes so long to calculate them. I do know the
> general thoery, but is there anywhere that I can find a more detailed
> account of how the pov-ray does these things internally? I did download
> the source code, but I havn't really had the time to have a good look at
> it yet (and given the size of it, it's a bit of a task just to figure out
> where to begin as I have little knowledge of the internal organization of
> the renderer)

Principally it is very simple:
Given the isosurface function f: (x,y,z) -> R, put in the ray equation r: t
-> x0 + t* v0, i.e. f(r(t)) which is a 1dimensional function t -> R. Now if
the surface is at f(x,y,z)=0 all you have to do is to find the roots of the
function, i.e. the smallest t for which f(r(t))=0. POV-Ray does this with
the constant slope method starting from the first intersection with the
container. The used slope is the max gradient.

Hope that helps.
- Micha

-- 
POV-Ray Objects Collection: http://objects.povworld.org


Post a reply to this message

From: Ross Litscher
Subject: Re: Isosurfaces, deforming with pigment patterns, speed, internal algorithms
Date: 12 Apr 2004 11:44:03
Message: <407ab943$1@news.povray.org>
"James Bulgin" <jam### [at] nfsympaticoca> wrote in message
news:40782a05$1@news.povray.org...
> After fooling around with isosurfaces for the first time a couple weeks
ago,
> I realized how much better they can be for making something look
> realistically bumpy, as opposed to a normal pattern. (I know this is
pretty
> common knowledge, but I hadn't actually experimented with it myself until
> then) However, the rendering speed is amazingly slow for some of them. I
> think a single frame of one crystal formation (a sphere with crackle added
> with a translucent texture containing some emitting media) took something
> like 20 minutes to render. Is there any way to achieve this sort of effect
> faster?
>

I seem to recall hearing that povray's built in pigment functions (like
crackle, bozo, etc...) take a long time in generating isosurfaces. I am not
an isosurface pro though, i've only started playing with them recently like
you. I could be wrong, and the exact opposite could be true about pigment
functions! It would be nice to here someone else say what the story is.
Someone like Tor Olav, with his amazing isosurface experience, would
probably know.

sorry i couldn't be any real help.


Post a reply to this message

From: Christopher James Huff
Subject: Re: Isosurfaces, deforming with pigment patterns, speed, internal algorithms
Date: 13 Apr 2004 08:17:26
Message: <cjameshuff-043B99.08182013042004@news.povray.org>
In article <40784f64@news.povray.org>, Micha Riser <mri### [at] gmxnet> 
wrote:

> Principally it is very simple:
> Given the isosurface function f: (x,y,z) -> R, put in the ray equation r: t
> -> x0 + t* v0, i.e. f(r(t)) which is a 1dimensional function t -> R. Now if
> the surface is at f(x,y,z)=0 all you have to do is to find the roots of the
> function, i.e. the smallest t for which f(r(t))=0. POV-Ray does this with
> the constant slope method starting from the first intersection with the
> container. The used slope is the max gradient.

I think you are mistaken, unless you mean something by "constant slope 
method" other than what I think you do (something like Newton's method 
with a constant "derivative", using the function value and max gradient 
to estimate the minimum possible distance to a root). POV uses a 
variation of the bisection algorithm, using the maximum gradient to 
decide if it is possible for a root to exist in an interval. The 
starting interval is defined by the first and last hits of the container.

-- 
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.