|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hello everyone, foudn the world of ISO surfaces
they are nice.. I am getting to the point where I understand them, however there is a
modifier that I can't quite get. it's tne Noise3d. I'm having just a little bit a
hard time trying this one out.. does anyone know of a link that has a "good"
explination or tutorial of the Noise3d function.
I'm using a ISO Surface like:
isosurface {
function { x }
contained_by { box { <-1, -3, -1>, <1,3,1> } }
}
When I through the Noise Modifier in the function it does some ODD stuff..
So I was just looking for a good explination of the noise3d function
Thanks
Dave
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
dav### [at] intrepidvoygrcom wrote:
>
> Hello everyone, foudn the world of ISO surfaces
>
This is *NOT* 'ISO surface' but 'isosurface'. It has nothing to do with
the International Organization for Standardization.
> they are nice.. I am getting to the point where I understand them, however there is
a modifier that I can't quite get. it's tne Noise3d. I'm having just a little bit a
hard time trying this one out.. does anyone know of a link that has a "good"
explination or tutorial of the Noise3d function.
>
BTW, could you tell your newsreader to add line breaks? These overlong
lines are quite irritating.
> I'm using a ISO Surface like:
>
> isosurface {
> function { x }
> contained_by { box { <-1, -3, -1>, <1,3,1> } }
> }
>
> When I through the Noise Modifier in the function it does some ODD stuff..
> So I was just looking for a good explination of the noise3d function
>
The Povray 3.5 isosurface tutorial explains this in detail (if you use
megapov you will have to convert the syntax to megapov style of course).
See:
http://www.povray.org/working-docs/id000051.html#3_4_4
In short, what you probably want is:
function { x - noise3d(0, y, z) }
Christoph
--
Christoph Hormann <chr### [at] gmxde>
IsoWood include, radiosity tutorial, TransSkin and other
things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Christoph Hormann wrote:
> This is *NOT* 'ISO surface' but 'isosurface'. It has nothing to do with
> the International Organization for Standardization.
A pity, in a way. If they were ISO 9001-compliant, the documentation would be much
better; the downside, of course, is that said documentation would onlybe good for one
business day ; }
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Sorry about the long lines, my news reader is TIN via a linux chui..
Thank's for the link tho.. I appreciate that.
And once again, sorry about my bad typing.. I'm so used to typing ISO
as it's own word.
Dave
Christoph Hormann <chr### [at] gmxde> wrote:
> dav### [at] intrepidvoygrcom wrote:
>>
>> Hello everyone, foudn the world of ISO surfaces
>>
> This is *NOT* 'ISO surface' but 'isosurface'. It has nothing to do with
> the International Organization for Standardization.
>> they are nice.. I am getting to the point where I understand them, however there is
a modifier that I can't quite get. it's tne Noise3d. I'm having just a little bit a
hard time trying this one out.. does anyone know of a link that has a "good"
explination or tutorial of the Noise3d function.
>>
> BTW, could you tell your newsreader to add line breaks? These overlong
> lines are quite irritating.
>> I'm using a ISO Surface like:
>>
>> isosurface {
>> function { x }
>> contained_by { box { <-1, -3, -1>, <1,3,1> } }
>> }
>>
>> When I through the Noise Modifier in the function it does some ODD stuff..
>> So I was just looking for a good explination of the noise3d function
>>
> The Povray 3.5 isosurface tutorial explains this in detail (if you use
> megapov you will have to convert the syntax to megapov style of course).
> See:
> http://www.povray.org/working-docs/id000051.html#3_4_4
> In short, what you probably want is:
> function { x - noise3d(0, y, z) }
> Christoph
> --
> Christoph Hormann <chr### [at] gmxde>
> IsoWood include, radiosity tutorial, TransSkin and other
> things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
You can think about f_noise3d() (let's start speaking pov3.5, shall we?-) )
as a "random" number generator which returns values between 0 and 1, inclusive.
Of course it's not a random number generator, but you can think about it
as if it was.
This can be used, for example, to "randomly" vary the surface of your
function. For example suppose that you have a sphere of radius 10 defined
like this:
#declare MySphere = function { x^2+y^2+z^2-10^2 }
Now if you want to displace the surface of the sphere randomly you can
add noise to the radius:
#declare MySphere = function { x^2+y^2+z^2-(10+f_noise3d(x,y,z))^2 }
This will cause the radius to vary between 10 and 11 in different parts
of the sphere.
Of course the term "noise" is a bit misleading because it gives you smooth
transitions, not random noise, but you got the idea, didn't you?
You can adjust the frequency of this "noise" about any axis by modifying
the three parameters given to it. For example if you want noise that is
twice as dense in all directions, you can do it like:
#declare MySphere = function { x^2+y^2+z^2-(10+f_noise3d(x*2,y*2,z*2))^2 }
If you want less or more noise, you can multiply the return value of the
noise function. For example if you want half of the displacement, you can
do:
#declare MySphere = function { x^2+y^2+z^2-(10+0.5*f_noise3d(x*2,y*2,z*2))^2 }
--
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Warp,
I'm glad you threw in your 2cents.. I appreciate you taking time to comment.
Here's the problem I have.. I, after the converstaion today, am fully lucid on the
noise3d function. (Of course I'm using MegaPov, so who knows). I understand how it
randomly
puts or removes a surface to make it look like noise. And I understand the function
part
of isosurfaces. The problem I'm having now is, when I bound my isosurface to a box {}
it only does the noise on one side of teh box.. is there a way to make it round the y
axis?
And Not really round I guess, I'm doing:
function { x - noise3d(x,y,z) }
And I just want to do the same thing but ont he opposite side..
Now would I have to do something like:
function { x, sqrt(y^2+z^2), z - noise3d(x,y,z) }
Now, I'm still learning, so be gental.
Dave
Warp <war### [at] tagpovrayorg> wrote:
> You can think about f_noise3d() (let's start speaking pov3.5, shall we?-) )
> as a "random" number generator which returns values between 0 and 1, inclusive.
> Of course it's not a random number generator, but you can think about it
> as if it was.
> This can be used, for example, to "randomly" vary the surface of your
> function. For example suppose that you have a sphere of radius 10 defined
> like this:
> #declare MySphere = function { x^2+y^2+z^2-10^2 }
> Now if you want to displace the surface of the sphere randomly you can
> add noise to the radius:
> #declare MySphere = function { x^2+y^2+z^2-(10+f_noise3d(x,y,z))^2 }
> This will cause the radius to vary between 10 and 11 in different parts
> of the sphere.
> Of course the term "noise" is a bit misleading because it gives you smooth
> transitions, not random noise, but you got the idea, didn't you?
> You can adjust the frequency of this "noise" about any axis by modifying
> the three parameters given to it. For example if you want noise that is
> twice as dense in all directions, you can do it like:
> #declare MySphere = function { x^2+y^2+z^2-(10+f_noise3d(x*2,y*2,z*2))^2 }
> If you want less or more noise, you can multiply the return value of the
> noise function. For example if you want half of the displacement, you can
> do:
> #declare MySphere = function { x^2+y^2+z^2-(10+0.5*f_noise3d(x*2,y*2,z*2))^2 }
> --
> #macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
> rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
> ],13),8)-3,10>#end blob{N(array[6]{11117333955,
> 7382340,3358,3900569407,970,4254934330},0)}// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 3 Oct 2001 15:17:11 -0400, dav### [at] intrepidvoygrcom wrote:
>And Not really round I guess, I'm doing:
> function { x - noise3d(x,y,z) }
>And I just want to do the same thing but ont he opposite side..
I think what we have here is a misunderstanding of how isosurfaces work.
The function you give first is a plane displaced by a noise value. That
it happens to resemble a box with noise on one side is an artifact of
MegaPOV: it renders the edges of the bounding box as solid if they would
fall "inside" the function. I think you'll find that POV 3.5 doesn't do
that by default (and by the way, if you're using Windows or MacOS and
starting to learn Isosurfaces, might I suggest that you use the POV 3.5
beta so you don't have to relearn the parts that are different?)
To get a proper noisy box, I think what you want is
function { (x-.5-.1*noise3d(x,y,z)) &
(-x+.5-.1*noise3d(x,y,z)) &
(y-.5-.1*noise3d(x,y,z)) &
(-y+.5-.1*noise3d(x,y,z)) &
(z-.5-.1*noise3d(x,y,z)) &
(-z+.5-.1*noise3d(x,y,z)) }
bounded by a box that's at least as big as box {-.6,.6} and maybe a little
bigger in case noise3d gets outside the 0..1 range a little.
The .1's here are the amount of noise; more will make more noise, as in
Warp's example. The .5's are half the edge of the box.
Disclaimer: I haven't tested any of this. It might not really work. I
don't even have MegaPOV anymore, so I couldn't test it if I wanted to.
--
#local R=rgb 99;#local P=R-R;#local F=pigment{gradient x}box{0,1pigment{gradient
y pigment_map{[.5F pigment_map{[.3R][.3F color_map{[.15red 99][.15P]}rotate z*45
translate x]}]#local H=pigment{gradient y color_map{[.5P][.5R]}scale 1/3}[.5F
pigment_map{[.3R][.3H][.7H][.7R]}]}}}camera{location.5-3*z}//only my opinions
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Ron,
So I've been playign with the pigment maps and got a nice looking rock/stone pillar
type of thing.. Now I think I will try to convert it on over to a isosurface and see
if I can get the edges less sharp... That's the only cavet I have right now.
Think I should use a isosurface or use something like a superellipsoid for the
rounding
Is there signifigant gains on use the Isosurface?
Thanks
D
Ron Parker <ron### [at] povrayorg> wrote:
> I think what we have here is a misunderstanding of how isosurfaces work.
> The function you give first is a plane displaced by a noise value. That
> it happens to resemble a box with noise on one side is an artifact of
> MegaPOV: it renders the edges of the bounding box as solid if they would
> fall "inside" the function. I think you'll find that POV 3.5 doesn't do
> that by default (and by the way, if you're using Windows or MacOS and
> starting to learn Isosurfaces, might I suggest that you use the POV 3.5
> beta so you don't have to relearn the parts that are different?)
> To get a proper noisy box, I think what you want is
<<< Function Snipped >>>
> bounded by a box that's at least as big as box {-.6,.6} and maybe a little
> bigger in case noise3d gets outside the 0..1 range a little.
> The .1's here are the amount of noise; more will make more noise, as in
> Warp's example. The .5's are half the edge of the box.
> Disclaimer: I haven't tested any of this. It might not really work. I
> don't even have MegaPOV anymore, so I couldn't test it if I wanted to.
> --
> #local R=rgb 99;#local P=R-R;#local F=pigment{gradient x}box{0,1pigment{gradient
> y pigment_map{[.5F pigment_map{[.3R][.3F color_map{[.15red 99][.15P]}rotate z*45
> translate x]}]#local H=pigment{gradient y color_map{[.5P][.5R]}scale 1/3}[.5F
> pigment_map{[.3R][.3H][.7H][.7R]}]}}}camera{location.5-3*z}//only my opinions
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|