|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hey, i had an idea for something pretty interesting but I am having problems
implementing it. What i did was create a sphere with object media at the
origin with a radius of five. That part was easy enough, but placing the
lights is troubling me. I need the placement to be random, but at the same
time the lights need to be on the inside of the sphere. If they go outside,
they light the sphere itself and that destroys the scene. So can anyone help
me?
Thanks in advance.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wesley Parker <wes### [at] verizonnet> wrote:
> Hey, i had an idea for something pretty interesting but I am having problems
> implementing it. What i did was create a sphere with object media at the
> origin with a radius of five. That part was easy enough, but placing the
> lights is troubling me. I need the placement to be random, but at the same
> time the lights need to be on the inside of the sphere.
#declare Seed = seed(0);
#declare LightLocation = 10*<rand(Seed), rand(Seed), rand(Seed)>-5;
#while(vlength(LightLocation) > 5)
#declare LightLocation = 10*<rand(Seed), rand(Seed), rand(Seed)>-5;
#end
After the loop ends you will have a random point inside the sphere
of radius 5 in 'LightLocation'.
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Ok, cool. It works great now. Can you explain how that works?
"Warp" <war### [at] tagpovrayorg> wrote in message
news:3fa850c0@news.povray.org...
> Wesley Parker <wes### [at] verizonnet> wrote:
> > Hey, i had an idea for something pretty interesting but I am having
problems
> > implementing it. What i did was create a sphere with object media at
the
> > origin with a radius of five. That part was easy enough, but placing the
> > lights is troubling me. I need the placement to be random, but at the
same
> > time the lights need to be on the inside of the sphere.
>
> #declare Seed = seed(0);
>
> #declare LightLocation = 10*<rand(Seed), rand(Seed), rand(Seed)>-5;
> #while(vlength(LightLocation) > 5)
> #declare LightLocation = 10*<rand(Seed), rand(Seed), rand(Seed)>-5;
> #end
>
> After the loop ends you will have a random point inside the sphere
> of radius 5 in 'LightLocation'.
>
> --
> #macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb
M()}}
> N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
> N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// -
Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <3fa850c0@news.povray.org>, Warp <war### [at] tagpovrayorg>
wrote:
> #declare LightLocation = 10*<rand(Seed), rand(Seed), rand(Seed)>-5;
> #while(vlength(LightLocation) > 5)
> #declare LightLocation = 10*<rand(Seed), rand(Seed), rand(Seed)>-5;
> #end
Or you could just use VRand_In_Sphere() in rand.inc.
--
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <3fa85372$1@news.povray.org>,
"Wesley Parker" <wes### [at] verizonnet> wrote:
> Ok, cool. It works great now. Can you explain how that works?
Find a random point in a 10x10x10 box. If the point is outside the
radius-5 sphere, find another random point in the box. Repeat until you
have a random point in the sphere.
The method the include file uses is a bit more complex, but is overall a
bit faster...the loop method can require several attempts before it
turns up a useable point.
--
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Christopher James Huff <cja### [at] earthlinknet> wrote:
> The method the include file uses is a bit more complex, but is overall a
> bit faster...the loop method can require several attempts before it
> turns up a useable point.
This is true, but relevant only if you are going to place hundreds or
thousands of points inside the sphere... :)
Honestly, I didn't remember the macro in the standard include file.
If I had, I would have suggested it.
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
this is kinda funny, i changed the amount of lights im going to use from 25
to 250 (and increased the radius to 500) and its been parsing for the last
15 minutes o.O
im just going to go ahead and stop it now and try the function in the
standard include.
"Warp" <war### [at] tagpovrayorg> wrote in message
news:3fa850c0@news.povray.org...
> Wesley Parker <wes### [at] verizonnet> wrote:
> > Hey, i had an idea for something pretty interesting but I am having
problems
> > implementing it. What i did was create a sphere with object media at
the
> > origin with a radius of five. That part was easy enough, but placing the
> > lights is troubling me. I need the placement to be random, but at the
same
> > time the lights need to be on the inside of the sphere.
>
> #declare Seed = seed(0);
>
> #declare LightLocation = 10*<rand(Seed), rand(Seed), rand(Seed)>-5;
> #while(vlength(LightLocation) > 5)
> #declare LightLocation = 10*<rand(Seed), rand(Seed), rand(Seed)>-5;
> #end
>
> After the loop ends you will have a random point inside the sphere
> of radius 5 in 'LightLocation'.
>
> --
> #macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb
M()}}
> N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
> N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// -
Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
nah, i cant resist the urge to see how long it takes.
20 minutes and counting...
"Wesley Parker" <wes### [at] verizonnet> wrote in message
news:3fa85b32$1@news.povray.org...
> this is kinda funny, i changed the amount of lights im going to use from
25
> to 250 (and increased the radius to 500) and its been parsing for the last
> 15 minutes o.O
>
> im just going to go ahead and stop it now and try the function in the
> standard include.
> "Warp" <war### [at] tagpovrayorg> wrote in message
> news:3fa850c0@news.povray.org...
> > Wesley Parker <wes### [at] verizonnet> wrote:
> > > Hey, i had an idea for something pretty interesting but I am having
> problems
> > > implementing it. What i did was create a sphere with object media at
> the
> > > origin with a radius of five. That part was easy enough, but placing
the
> > > lights is troubling me. I need the placement to be random, but at the
> same
> > > time the lights need to be on the inside of the sphere.
> >
> > #declare Seed = seed(0);
> >
> > #declare LightLocation = 10*<rand(Seed), rand(Seed), rand(Seed)>-5;
> > #while(vlength(LightLocation) > 5)
> > #declare LightLocation = 10*<rand(Seed), rand(Seed), rand(Seed)>-5;
> > #end
> >
> > After the loop ends you will have a random point inside the sphere
> > of radius 5 in 'LightLocation'.
> >
> > --
> > #macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb
> M()}}
> > N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
> > N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// -
> Warp -
>
>
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <3fa85b32$1@news.povray.org>,
"Wesley Parker" <wes### [at] verizonnet> wrote:
> this is kinda funny, i changed the amount of lights im going to use from 25
> to 250 (and increased the radius to 500) and its been parsing for the last
> 15 minutes o.O
It shouldn't take *that* long to parse, it may actually be done parsing
and busy working on light buffers. If it takes too long or runs out of
memory, try turning off light buffers. Or maybe you made a mistake in
modifying the code...it will take a very long time to find random points
in a 5-unit sphere when you use random points from a 1000-unit box.
--
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <3fa8468e@news.povray.org>, "Wesley Parker" <wes### [at] verizonnet>
wrote:
> Hey, i had an idea for something pretty interesting but I am having problems
> implementing it. What i did was create a sphere with object media at the
> origin with a radius of five. That part was easy enough, but placing the
> lights is troubling me. I need the placement to be random, but at the same
> time the lights need to be on the inside of the sphere. If they go outside,
> they light the sphere itself and that destroys the scene. So can anyone help
> me?
>
> Thanks in advance.
>
>
hi,
you can about that :
take a rayon
take a random number from 0 to 360
take an other random number from +90 to -90
then just convert polar coordonates from this 3 number to rectangular <x,y,z>
pretty simply
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|