|
![](/i/fill.gif) |
"Tim Nikias" <JUS### [at] gmx netWARE> wrote in
message news:452fe9da@news.povray.org...
> Looks nice, especially that fiery animation is great, care to share
the
> particle's setup (I'm guessing discs with a neatly animated pigment)?
tnx :)
yes, the fire and smoke are just discs using these macros as a pigment:
-- begin code --
//Slime's code :)
#macro Additive_Blend(Color)
#local Additiveness=1.00001;
#local Color = <1,1,1> * Color / (1 - Additiveness);
rgbt <Color.x, Color.y, Color.z, Additiveness> //Transparency + (1 -
Transparency) * Additiveness>
#end
//smoke
#macro RookPigment(T,TR)
pigment_pattern {
function {max(min(x,1),0)}
translate -x*.5
scale sqrt(2)
rotate y*45
}
color_map {
[0 rgb .0125 transmit T]
[1 rgb .5 transmit T]
}
translate -TR
warp {turbulence .25 lambda 3}
translate TR
#end
//fire
#macro VuurPigment(T,TR)
pigment_pattern {
granite
scale 16
color_map {[0 rgb 0][1 rgb 1-T]}
warp {turbulence 1.5}
translate y*clock*2
}
color_map {
[0 Additive_Blend(0)]
[.5 Additive_Blend(<1,.45,.2>*.5)]
[1 Additive_Blend(<1,.65,.4>*2)]
}
translate -TR
warp {turbulence 1.5}
translate TR
#end
//a macro for animating 'flashes'
#macro flash(T,P,Grens)
#if (T<Grens)
#local T=1-(T*(1/Grens));
#else
#local T=(T-Grens)/(1-Grens);
#end
#local R=pow(T,P);
R
#end
#declare Seed2=seed(pID+10);
//a firey disc,
// pStatus is the status of the particle, where pStatus=0 at it's
birth and 1 when it dies
// pLocation is the location of the particle
disc {
0,y,1
#local Translate=rand(Seed2)*500;
pigment {
pigment_pattern {spherical poly_wave 2}
pigment_map {
[0 VuurPigment(1,Translate+z*clock*.5)]
[1 VuurPigment(flash(pStatus,2,.0625),Translate+z*clock*.5)]
}
}
finish {ambient 1}
Point_At_Trans(Camera_Lookat-Camera_Location)
scale (3-2*pStatus)/15
translate pLocation
no_shadow
}
//and a smokey disc
// pStatus is the status of the particle, where pStatus=0 at it's
birth and 1 when it dies
// pLocation is the location of the particle
disc {
0,y,1.5
#local Translate=rand(Seed2)*500;
pigment {
pigment_pattern {spherical poly_wave 1}
pigment_map {
[0 RookPigment(1,Translate+z*clock*.5)]// scale .5]
[1 RookPigment(flash(pStatus,1,.3),Translate+z*clock*.5)]// scale
.5]
}
translate Translate
warp {turbulence .5 lambda 3}
translate -Translate
}
finish {ambient 1}
Point_At_Trans(Camera_Lookat-Camera_Location)
scale (3+4*pStatus)/20
translate pLocation
no_shadow
}
-- end code --
(something like that :))
> But, I also have to admit that I'm a little sad that you overlooked my
> particle-system. It's entirely flexible, you can add as many objects
as
> you like for interaction, there's no particle-particle-interaction,
but
> hey, you can call macros for when objects get hit, you can add your
own
> variables to attach to the macros in case you want to animate them in
> some special way with your own macros...
hmm, sounds interesting and worth checking out !
let's see :p
hmm, looks good! I like the particle-splitting-on-collision-feature :)
I'm thinking about how to add that to my system :p
> I guess I have to be more offensive about my Include-Files. I need a
> better marketing concept...
hmm, dunno
but, let's do some google-testing:
searching for: povray "particle system"
gives Rune's website before your site :-/ Even Chris Colefax's website
comes before yours, and he doesn't seem to have made anything new in 2
years :(
however, searching for: povray particles
gives first Colefax's site, then, at the bottom of the first page, your
page directly followed by Rune's page
if I search for: povray particle
then Rune's site is the first hit, Colefax's site the second, and you're
not even on the first page (????)
so, for some reason, google likes Rune's site more than your site, which
is why I overlooked your site. My apologies :)
(but I would have made my own system anyway, it's just too fun to do
things yourself imho :))
(btw, I just noticed: all these searches are apparently done while being
signed in to Google, so they might be personalised search-results)
cu!
--
#macro G(b,e)b+(e-b)*C/50#end#macro _(b,e,k,l)#local C=0;#while(C<50)
sphere{G(b,e)+3*z.1pigment{rgb G(k,l)}finish{ambient 1}}#local C=C+1;
#end#end _(y-x,y,x,x+y)_(y,-x-y,x+y,y)_(-x-y,-y,y,y+z)_(-y,y,y+z,x+y)
_(0x+y.5+y/2x)_(0x-y.5+y/2x) // ZK http://www.povplace.com
Post a reply to this message
|
![](/i/fill.gif) |