![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Actually, I think that this is what povray does:
if I say, noise3d (x^a , y,z)
it processes noise3d (sign(x)*pow(abs(x),a), y,z)
I will try to prove this tonight.
[I thought someone had asked what SHOULD it do--was that note deleted?] If
povray processes the formula above as I described, there's no problem--it was
just a mystery to be solved . . .
david sharp wrote:
> > function {noise3d(x^3.0, y, z)}, I will bet, behaves correctly, and has
> > a kind of symmetry like the curve y=x^3.
>
> Because x^3.0 actually does x*x*x
>
> > There is something "more wrong" here. If Ron were correct, then x^3
> > would also be symmetric about x=0.
>
> Ron didn't claim x^3 was (abs(x))^3. I prematurely did claim that, and
> I was horribly, sorrowfully, and disgustingly mistaken.
>
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Ron Parker
Subject: Re: Square roots of negative numbers in isosurfaces?
Date: 11 Jan 2000 15:38:34
Message: <387b94ca@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Tue, 11 Jan 2000 15:23:26 -0500, Greg M. Johnson wrote:
>Actually, I think that this is what povray does:
>
>if I say, noise3d (x^a , y,z)
>it processes noise3d (sign(x)*pow(abs(x),a), y,z)
>
>I will try to prove this tonight.
>[I thought someone had asked what SHOULD it do--was that note deleted?] If
>povray processes the formula above as I described, there's no problem--it was
>just a mystery to be solved . . .
Well, there's that little problem of x^2+y^2+z^2-1 (threshold 0) not being a
sphere anymore, but other than that...
--
These are my opinions. I do NOT speak for the POV-Team.
The superpatch: http://www2.fwi.com/~parkerr/superpatch/
My other stuff: http://www2.fwi.com/~parkerr/traces.html
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Okay, how about:
x^a = sign(x)^int(a) * pow(abs(x), a) ?
Povray is doing SOMETHING, as it gives me a picture in a mathematically undefined
region of space! It was driving me crazy to figure out what it was doing . . .
Ron Parker wrote:
> Well, there's that little problem of x^2+y^2+z^2-1 (threshold 0) not being a
> sphere anymore, but other than that...
>
> --
> These are my opinions. I do NOT speak for the POV-Team.
> The superpatch: http://www2.fwi.com/~parkerr/superpatch/
> My other stuff: http://www2.fwi.com/~parkerr/traces.html
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
What I think POV *should* do is not include these areas in the graph. Say I
want to graph a hemisphere on my TI-89, I do x^2+y^2+z^2=1, z^2=-x^2-y^2+1,
z=sqrt(1-x^2-y^2), and graph it and it gives me my hemisphere, and the area
*outside* the hemisphere is ignored (not rendered) because it is sqrt(neg).
Because if people want it to work the other way they can always just make
it sqrt(abs(x)) instead of sqrt(x).
--
Homepage: http://www.faricy.net/~davidf/
___ ______________________________
| \ |_ <dav### [at] faricy net>
|_/avid |ontaine <ICQ 55354965>
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <387EA67E.7CE91E84@faricy.net>, David Fontaine
<dav### [at] faricy net> wrote:
> What I think POV *should* do is not include these areas in the graph. Say
> I
> want to graph a hemisphere on my TI-89, I do x^2+y^2+z^2=1,
> z^2=-x^2-y^2+1,
> z=sqrt(1-x^2-y^2), and graph it and it gives me my hemisphere, and the
> area
> *outside* the hemisphere is ignored (not rendered) because it is
> sqrt(neg).
> Because if people want it to work the other way they can always just make
> it sqrt(abs(x)) instead of sqrt(x).
I think this might be difficult to do, because the isosurface is solved
by sampling the function at different points. I don't see how it could
be done.
Then again, it is after midnight now, it is probably just that I am
tired and not thinking straight.
--
Chris Huff
e-mail: chr### [at] yahoo com
Web page: http://chrishuff.dhs.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
But the point is that pov is doing SOMETHING. If it finds a definite
isosurface for a mathematically undefined region of space, then povray is in
reality not computing the given function, but converting it to some defined
function. Or there is an error in how it has defined some functions.
perhaps
x^a = sign(x)^int(a) * abs(x)^a
because
noise3d(x^3.1, y, z)
gives "something" for negative values of x !
I'm not complaining as much as striving to solve the mystery . . .
Chris Huff wrote:
> In article <387EA67E.7CE91E84@faricy.net>, David Fontaine
> <dav### [at] faricy net> wrote:
>
> > What I think POV *should* do is not include these areas in the graph. Say
> > I
> > want to graph a hemisphere on my TI-89, I do x^2+y^2+z^2=1,
> > z^2=-x^2-y^2+1,
> > z=sqrt(1-x^2-y^2), and graph it and it gives me my hemisphere, and the
> > area
> > *outside* the hemisphere is ignored (not rendered) because it is
> > sqrt(neg).
> > Because if people want it to work the other way they can always just make
> > it sqrt(abs(x)) instead of sqrt(x).
>
> I think this might be difficult to do, because the isosurface is solved
> by sampling the function at different points. I don't see how it could
> be done.
> Then again, it is after midnight now, it is probably just that I am
> tired and not thinking straight.
>
> --
> Chris Huff
> e-mail: chr### [at] yahoo com
> Web page: http://chrishuff.dhs.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Yet another possibility, as I jokingly suggested, is that pov has "discovered"
solutions to these functions, and mathematicians and programs like Lotus 123 are
"wussies" for refusing to give an answer to these unorthodox
questions..............
Greg M. Johnson wrote:
> But the point is that pov is doing SOMETHING. If it finds a definite
> isosurface for a mathematically undefined region of space, then povray is in
> reality not computing the given function, but converting it to some defined
> function. Or there is an error in how it has defined some functions.
>
> perhaps
> x^a = sign(x)^int(a) * abs(x)^a
>
> because
> noise3d(x^3.1, y, z)
> gives "something" for negative values of x !
>
> I'm not complaining as much as striving to solve the mystery . . .
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <387F9E1B.F3DF1811@my-dejanews.com>,
gre### [at] my-dejanews com wrote:
> But the point is that pov is doing SOMETHING. If it finds a definite
> isosurface for a mathematically undefined region of space, then povray is
> in reality not computing the given function, but converting it to some
> defined
> function. Or there is an error in how it has defined some functions.
But if it stops when it attempts to sample at an undefined spot, there
could be defined areas that would be missed or rendered incorrectly.
Maybe there should be a "strict_math" option. If strict_math is on, then
it will perform the solving operation as it usually does, and then test
the function at that point using standard math to see if it is defined
at that point. If it is defined, then count it as an intersection,
otherwise skip it. That way, the undefined areas would be removed(by a
kind of customized clipping). And older isosurfaces would still work
properly, either with the addition of "strict_math off" or by having
strict_math default to off.
--
Chris Huff
e-mail: chr### [at] yahoo com
Web page: http://chrishuff.dhs.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Wasn't it David Fontaine who wrote:
>What I think POV *should* do is not include these areas in the graph. Say I
>want to graph a hemisphere on my TI-89, I do x^2+y^2+z^2=1, z^2=-x^2-y^2+1,
>z=sqrt(1-x^2-y^2), and graph it and it gives me my hemisphere, and the area
>*outside* the hemisphere is ignored (not rendered) because it is sqrt(neg).
>Because if people want it to work the other way they can always just make
>it sqrt(abs(x)) instead of sqrt(x).
That might be possible when using the function as an isosurface, but
such a function can also be used as a pattern for a pigment or normal.
When a function has no solution in a region of space you could ignore it
if you're using that function to define a surface, but what could you do
if there's a point where the surface exists but the pigment and/or
normal doesn't. E.g.
sphere {0,1
pigment {
function {noise3d(x^0.5/K, y/K, z/K)}
colour_map{[0 rgb <1,0,0>][1 rgb <1,1,0>]}
}
normal {
function {noise3d(x^0.5/K, y/K, z/K)}
}
}
--
Mike Williams + #
Gentleman of Leisure
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> That might be possible when using the function as an isosurface, but
> such a function can also be used as a pattern for a pigment or normal.
> When a function has no solution in a region of space you could ignore it
> if you're using that function to define a surface, but what could you do
> if there's a point where the surface exists but the pigment and/or
> normal doesn't. E.g.
>
> sphere {0,1
> pigment {
> function {noise3d(x^0.5/K, y/K, z/K)}
> colour_map{[0 rgb <1,0,0>][1 rgb <1,1,0>]}
> }
> normal {
> function {noise3d(x^0.5/K, y/K, z/K)}
> }
> }
Well it's up to the user to make a function that doesn't do that. It could issue
a warning and replace it with zero or something.
--
Homepage: http://www.faricy.net/~davidf/
___ ______________________________
| \ |_ <dav### [at] faricy net>
|_/avid |ontaine <ICQ 55354965>
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |