POV-Ray : Newsgroups : povray.binaries.images : Isosurface doodle : Re: Isosurface doodle Server Time
21 May 2024 11:07:23 EDT (-0400)
  Re: Isosurface doodle  
From: clipka
Date: 18 Jul 2016 16:57:54
Message: <578d42d2$1@news.povray.org>
Am 18.07.2016 um 21:16 schrieb Bald Eagle:
> clipka <ano### [at] anonymousorg> wrote:
> 
>> I can imagine what patterns you have in mind, but I still only have a
>> vague idea what "direct access" you envision for them.
> 
> As you say below, POV-Ray has internal methods of computing pattern values
> computed from individual points.  I would guess that there may be a way to -
> compute the 2nd derivative of such a function to get maxima/minima as inflection
> points, and perhaps provide a general means for "pulling out" those values - so
> that the user doesn't have to do a loop with sufficient fineness to test for a 0
> or  1 ....

The 2nd derivative /per se/ doesn't help you much -- you'd need to solve
for its "roots", i.e. the locations where that function happens to
evaluate to 0. That's quite trivial for polynomials, but only few of
POV-Ray's patterns are polynomial functions.

Also, as mentioned before, the set of "roots" may actually be a
contiguous set of points, such as a line or surface. How would you even
convey the result of such a test?


>> And even when patterns do exhibit point-like nodes, any application of
>> even the slightest turbulence would make it impossible to identify their
>> effective resulting location: "backtracking" POV-Ray's turbulence warp
>> is, to my knowledge, not feasible.
> 
> You're working backwards in that case.  If there's a way to replicate the means
> by which POV-Ray creates the pattern and applies the turbulence, then the user
> could do that in a forward-fashion, which must be feasible since POV-Ray already
> does it..

No, it's really not possible.

Whith POV-Ray's raytracing and pattern evaluation, you take a point in
3D space (typically on the surface of an object), P, shove it into a
turbulence function, Q=f_turb(P), which returns another point, Q, which
is then shoved into a pattern function (or algorithm), V=f_pat(Q),
returning a scalar value V. There are points where that resulting value
changes significantly even with small changes in Q -- those are the ones
that you're interested in.

Suppose you could actually identify one such points: You get a point Q.
To know where that point ends up in true 3D space, you'd have to shove
it into the _inverse_ of the turbulence function, P=f_turb_inv(Q).

But the turbulence function isn't easily invertible.


Post a reply to this message

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