 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
I just *had* to try to make my own greeble-macro :)
here's a first result, rendertime: 3'48" on a Sempron 2400+ with 768MB RAM,
running Windows XP SP2
comments are more than welcome !
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
Attachments:
Download 'greebles.jpg' (73 KB)
Preview of image 'greebles.jpg'

|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Zeger Knaepen wrote:
> I just *had* to try to make my own greeble-macro :)
>
> here's a first result, rendertime: 3'48" on a Sempron 2400+ with 768MB RAM,
> running Windows XP SP2
>
> comments are more than welcome !
>
> cu!
>
I think it is a bit of a stylistic departure from the usual but the
result is attractive, even gorgeous, and useful I think.
The obvious problem with this and the other attempts at an automated
generator is the lack of averarching elements that would span "cells"
Simply varying the scale of the cells does not get that effect.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hmmm...
It is looking gorgeous, for my eyes! It is a good combination of greebles
and metallic texture.
I also like that cell structure which reminds me for a large town full of
huge buildings. Here, in this case, it ensures that the shown ship section
indicates its huge size. Your design is actually better than my greebles I
use for the Imperial Carrier SENECA. Actually, I would like to climb my
X-Wing, and dive down into these artificial ravines hunting some imperial
fighters..!
An additional idea: add a few very fine (very thin) antennas randomly, maybe
with having a few anti-collision lights on them (no light but ambient 1.0).
Probably, the tiny antennas would be recognizable from this distance.
Another idea: Build a macro which can be applied to cylindrical objects,
which will have a fluid move from surface structures (as seen here) to side
structures and (maybe) bottom structures. Wow!
Last idea: The borders of these ravines shouldn't be too straight like cut
by a knife - let these ravines have slightly different diameters (just
slightly, not more).
This here seems to be a surface macro. I would be veeery interested now to
see a side macro (different shapes and structure) and a front macro (again
different structures, I guess, and kind of symetrical).
Again: it looks damn good! This macro will become the stuff many of us will
want for our future armadas of starships!!!
Greetings,
Sven
"Zeger Knaepen" <zeg### [at] povplace com> schrieb im Newsbeitrag
news:446764f4@news.povray.org...
>I just *had* to try to make my own greeble-macro :)
>
> here's a first result, rendertime: 3'48" on a Sempron 2400+ with 768MB
> RAM, running Windows XP SP2
>
> comments are more than welcome !
>
> 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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Zeger Knaepen" <zeg### [at] povplace com> wrote:
> I just *had* to try to make my own greeble-macro :)
>
> here's a first result, rendertime: 3'48" on a Sempron 2400+ with 768MB RAM,
> running Windows XP SP2
>
> comments are more than welcome !
>
> 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
Nice, I like it! Never mind the fact that i didn't know what a greeble was
and had to google it to find out!! Are they difficult to do?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Jim Charter" <jrc### [at] msn com> wrote in message
news:44676e44$1@news.povray.org...
> I think it is a bit of a stylistic departure from the usual but the
> result is attractive, even gorgeous, and useful I think.
thanks :)
> The obvious problem with this and the other attempts at an automated
> generator is the lack of averarching elements that would span "cells"
> Simply varying the scale of the cells does not get that effect.
true, but I'll try to work on that :)
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> Nice, I like it!
thank you :)
> Never mind the fact that i didn't know what a greeble was
> and had to google it to find out!! Are they difficult to do?
depends on how detailed it needs to be. For long shots, my macros might
be good enough, but in close-up they'll look kind of lame :)
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Sven Littkowski" <sve### [at] jamaica-focus com> wrote in message
news:4467bd36@news.povray.org...
> Hmmm...
>
> It is looking gorgeous, for my eyes! It is a good combination of
greebles
> and metallic texture.
thanks :)
> I also like that cell structure which reminds me for a large town full
of
> huge buildings. Here, in this case, it ensures that the shown ship
section
> indicates its huge size. Your design is actually better than my
greebles I
> use for the Imperial Carrier SENECA. Actually, I would like to climb
my
> X-Wing, and dive down into these artificial ravines hunting some
imperial
> fighters..!
hehe :)
I was just trying to create a city-macro based on this greeble-macro :)
> An additional idea: add a few very fine (very thin) antennas randomly,
maybe
> with having a few anti-collision lights on them (no light but ambient
1.0).
> Probably, the tiny antennas would be recognizable from this distance.
good idea! I'll try that !
> Another idea: Build a macro which can be applied to cylindrical
objects,
> which will have a fluid move from surface structures (as seen here) to
side
> structures and (maybe) bottom structures. Wow!
sounds difficult, but not impossible :)
> Last idea: The borders of these ravines shouldn't be too straight like
cut
> by a knife - let these ravines have slightly different diameters (just
> slightly, not more).
well, for the city-macro I just made, I made it possible to have streets
between the buildings (kind of obvious, no? :)), so it shouldn't be any
problem to do that also with the greeble-macro :)
> This here seems to be a surface macro. I would be veeery interested
now to
> see a side macro (different shapes and structure) and a front macro
(again
> different structures, I guess, and kind of symetrical).
first I'll try to finish this, with more interesting greeble-objects
than just superellipsoids
then I'm going to try to make a triangular version of this macro...
don't know how exactly yet though :-/
after that's done, I'll try to make that side- (with windows), front-
(maybe with extra weapons?), back- (possibly with engines?), ... -macros
:)
> Again: it looks damn good! This macro will become the stuff many of us
will
> want for our future armadas of starships!!!
:)
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Zeger Knaepen" <zeg### [at] povplace com> schreef in bericht
news:446764f4@news.povray.org...
> I just *had* to try to make my own greeble-macro :)
>
This is the kind of greeble I like very much: not too intrusive, but subtly
guiding the eyes over the surface. Good work Zeger! Could be used
architecturally, on a curtain wall.
Thomas
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
You will be assimilated! Resistance is futile!
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Wasn't it Zeger Knaepen who wrote:
>I was just trying to create a city-macro based on this greeble-macro :)
I went the other way. I based my Greeble code on the macro that I used
to generate this city:
http://www.econym.demon.co.uk/pictures/cityscape.jpg
--
Mike Williams
Gentleman of Leisure
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> This is the kind of greeble I like very much: not too intrusive, but
subtly
> guiding the eyes over the surface. Good work Zeger!
thank you! :)
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Be careful, Borg! We otherwise will get support from our captain who will
come back to us from the near future! With nano viruses which will destroy
you Borg from within, as soon as you assimilate!
:-) ;-) :-D
Sven
"Warp" <war### [at] tag povray org> schrieb im Newsbeitrag
news:4468580f$1@news.povray.org...
> You will be assimilated! Resistance is futile!
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hi!
Will it be able to use different textures for vertical and for surface
areas? That would allow the usage of windows for all side areas of your very
useful and breathtaking macro! Best would be, one texture for front and
back, one for left and right, and one for surface (and bottom).
Respect,
Sven
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Sven Littkowski" <sve### [at] jamaica-focus com> wrote in message
news:4468cc1b$1@news.povray.org...
> Hi!
>
> Will it be able to use different textures for vertical and for surface
> areas? That would allow the usage of windows for all side areas of
your very
> useful and breathtaking macro! Best would be, one texture for front
and
> back, one for left and right, and one for surface (and bottom).
as it is now, the texture has nothing to do with the macro, the macro
only handles the geometry, so yes, you can define different textures for
any part :)
btw, has anyone got any idea on how to subdivide a triangle to make the
"greeble-cells" ? :-/
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Zeger Knaepen wrote:
> I just *had* to try to make my own greeble-macro :)
>
> here's a first result, rendertime: 3'48" on a Sempron 2400+ with 768MB RAM,
> running Windows XP SP2
>
> comments are more than welcome !
>
> cu!
This one's actually quite good. A nice metallic texture, instead of
polished marble.
Regards,
John
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Jim Charter wrote:
> Zeger Knaepen wrote:
>
>> I just *had* to try to make my own greeble-macro :)
>>
>> here's a first result, rendertime: 3'48" on a Sempron 2400+ with 768MB
>> RAM, running Windows XP SP2
>>
>> comments are more than welcome !
>>
>> cu!
>>
> I think it is a bit of a stylistic departure from the usual but the
> result is attractive, even gorgeous, and useful I think.
>
> The obvious problem with this and the other attempts at an automated
> generator is the lack of averarching elements that would span "cells"
> Simply varying the scale of the cells does not get that effect.
One way is to give cells borders, and require that two cell types cannot
meet unless their typing along that border matches. Then you can
sprinkle some stand-alone cells in with larger pieces, and even
irregular pieces. The tricky part is to make sure that the surface can
be completely tiled in this way.
Or you can have multiple layers of greebling, in which the higher level
has tubes and stuff that traverse the lower-level tiles.
Regards,
John
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Zeger Knaepen wrote:
> btw, has anyone got any idea on how to subdivide a triangle to make the
"greeble-cells" ? :-/
Depends on the proportions of the triangle. An equilateral is best
subdivided into smaller equilaterals. A triangle with the golden ratio
between its sides is best divided with a Penrose tiling.
Regards,
John
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> This one's actually quite good. A nice metallic texture, instead of
> polished marble.
thanks :)
it's the same texture I use for almost all of my scifi-images actually
:)
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"John VanSickle" <evi### [at] hotmail com> wrote in message
news:4469595e$1@news.povray.org...
> Zeger Knaepen wrote:
>
> > btw, has anyone got any idea on how to subdivide a triangle to make
the "greeble-cells" ? :-/
>
> Depends on the proportions of the triangle. An equilateral is best
> subdivided into smaller equilaterals. A triangle with the golden
ratio
> between its sides is best divided with a Penrose tiling.
I'll have to look that up !
Right now I'm trying a "universal 4-sided polygon greeble-cell
generator", with 2 points at the same location. Looks useful imho.
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
Attachments:
Download 'vierhoekgreeble.jpg' (51 KB)
Preview of image 'vierhoekgreeble.jpg'

|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Zeger Knaepen" <zeg### [at] povplace com> wrote in message
news:4469bfe2@news.povray.org...
> Right now I'm trying a "universal 4-sided polygon greeble-cell generator",
> with 2 points at the same location. Looks useful imho.
Wow, this is really nice. What more can you share about this technique?
- How
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"How Camp" <hac### [at] gmail com> wrote in message
news:4469c8f4$1@news.povray.org...
> "Zeger Knaepen" <zeg### [at] povplace com> wrote in message
> news:4469bfe2@news.povray.org...
>
> > Right now I'm trying a "universal 4-sided polygon greeble-cell
generator",
> > with 2 points at the same location. Looks useful imho.
>
>
> Wow, this is really nice. What more can you share about this
technique?
here's some code:
-- start code --
camera {
location <-2,5,-5>/3
look_at <-.5,.5,0>
}
light_source {<750,180,750> rgb 1+<.5,.4,.3>}
light_source {<-150,180,-75> rgb <.3,.4,.5> }//shadowless}
light_source {<750,80,-500> rgb <.4,.5,.9>/4 shadowless}
light_source {<-75,80,500> rgb 1+<.4,.5,.9>/4}
#declare Seed=seed(4);
#macro Verlaag4(X)
#local R=X-(1+rand(Seed)*.25);
R
#end
#macro PointAt(H1,H2,P)
#local R=H1+(H2-H1)*P;
R
#end
#macro VerdeelVierhoek(H1,H2,H3,H4,Diepte,Seed)
#local H1=H1*<1,1>;
#local H2=H2*<1,1>;
#local H3=H3*<1,1>;
#local H4=H4*<1,1>;
#if (Diepte<0)
#local R=.002;
#local R2=R*(3+rand(Seed)*0);
#local M=(H1+H2+H3+H4)/4;
#local NH1=H1+vnormalize(M-H1)*R2;
#local NH2=H2+vnormalize(M-H2)*R2;
#local NH3=H3+vnormalize(M-H3)*R2;
#local NH4=H4+vnormalize(M-H4)*R2;
#local NH1=<NH1.u,NH1.v>;
#local NH2=<NH2.u,NH2.v>;
#local NH3=<NH3.u,NH3.v>;
#local NH4=<NH4.u,NH4.v>;
union {
prism {
linear_spline
linear_sweep
-.0001,0,
5
H1,H2,H3,H4,H1
}
#if (vlength(NH1-NH2)!=0) cylinder
{<NH1.u,0,NH1.v>,<NH2.u,0,NH2.v>,R} #end
#if (vlength(NH2-NH3)!=0) cylinder
{<NH2.u,0,NH2.v>,<NH3.u,0,NH3.v>,R} #end
#if (vlength(NH3-NH4)!=0) cylinder
{<NH3.u,0,NH3.v>,<NH4.u,0,NH4.v>,R} #end
#if (vlength(NH4-NH1)!=0) cylinder
{<NH4.u,0,NH4.v>,<NH1.u,0,NH1.v>,R} #end
sphere {<NH1.u,0,NH1.v>,R}sphere {<NH2.u,0,NH2.v>,R}
sphere {<NH3.u,0,NH3.v>,R}sphere {<NH4.u,0,NH4.v>,R}
prism {
linear_spline
linear_sweep
0,R,
5
NH1,NH2,NH3,NH4,NH1
}
}
#else
#local Procent1=.5+(rand(Seed)-rand(Seed))*.3;
#local Procent2=.5+(rand(Seed)-rand(Seed))*.3;
#local H12=PointAt(H1,H2,Procent1);
#local H34=PointAt(H4,H3,Procent1);
#local H23=PointAt(H2,H3,Procent2);
#local H41=PointAt(H1,H4,Procent2);
#local HM=PointAt(H12,H34,Procent2);
VerdeelVierhoek(H1,H12,HM,H41,Verlaag4(Diepte),Seed)
VerdeelVierhoek(H12,H2,H23,HM,Verlaag4(Diepte),Seed)
VerdeelVierhoek(HM,H23,H3,H34,Verlaag4(Diepte),Seed)
VerdeelVierhoek(H41,HM,H34,H4,Verlaag4(Diepte),Seed)
#end
#end
#declare obj=
union {
#declare Depth=4;
union {
VerdeelVierhoek(<-1,0>,<-1,1>,<1,1>,<1,0>,Depth,Seed)
union {
VerdeelVierhoek(<-1,0>,<1,0>,<1,-1>,<1,-1>,Depth,Seed)
matrix <
1,0,0,
0,1,0,
0,.5,1,
0,0,0
>
}
translate -x+y
matrix <
1,.5,0,
0,1,0,
0,0,1,
0,0,0
>
}
union {
VerdeelVierhoek(<-1,0>,<-1,1>,<1,1>,<1,0>,Depth,Seed)
union {
VerdeelVierhoek(<-1,0>,<1,0>,<1,-1>,<1,-1>,Depth,Seed)
matrix <
1,0,0,
0,1,0,
0,.5,1,
0,0,0
>
}
scale <-1,1,1>
translate x+y
matrix <
1,-.5,0,
0,1,0,
0,0,1,
0,0,0
>
}
pigment {rgb 1}
finish {specular 1}
}
-- end code --
I still need to add the greebles themselves, but that shouldn't be too
much of a problem.
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hi Zeger,
you replied to John van Sickle that you did some SF images. Is it possible
to see them? Is there some website, or can you e-mail them to me?
I would be curious.
Thanks,
Sven
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Sven Littkowski" <sve### [at] jamaica-focus com> wrote in message
news:4469d23a$1@news.povray.org...
> Hi Zeger,
>
> you replied to John van Sickle that you did some SF images. Is it
possible
> to see them? Is there some website, or can you e-mail them to me?
>
> I would be curious.
see sig
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hmmm, it has been always there and I somehow managed to not to recognize it.
Sorry, and big thanks!
Sven
"Zeger Knaepen" <zeg### [at] povplace com> schrieb im Newsbeitrag
news:4469d35f$1@news.povray.org...
see sig
_(0x+y.5+y/2x)_(0x-y.5+y/2x) // ZK http://www.povplace.com
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Zeger Knaepen" <zeg### [at] povplace com> wrote in message
news:4469cf3a$1@news.povray.org...
> here's some code:
Thanks! This was a lot of fun to play with. It is surprisingly flexible,
too...
- How
Post a reply to this message
Attachments:
Download 'knaepen01.jpg' (97 KB)
Download 'knaepen02.jpg' (36 KB)
Preview of image 'knaepen01.jpg'

Preview of image 'knaepen02.jpg'

|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Greetings!
Zeger, I have there a starship I am developing, and would like to try out
your greebles macro for some parts of that ship. I want to ask you for the
code of the macro you have published in your posting here.
Another question: do you plan a macro which can automatically adjust to the
heights and surfaces of an object (union or difference or blob)? Maybe a
combination of surface greebles and a side greebles, which, depending on the
angle ration, decides how to keep the greebles of one kind (surface or
side), or to mix the two kinds of greebles.
But again: I would like to try out your macro, if it is okay for you.
Greetings,
Sven
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Sven Littkowski" <sve### [at] jamaica-focus com> wrote in message
news:446a8459@news.povray.org...
> Greetings!
>
> Zeger, I have there a starship I am developing, and would like to try
out
> your greebles macro for some parts of that ship. I want to ask you for
the
> code of the macro you have published in your posting here.
np, I'll send you the code for this image and for the latest image
I didn't clean the code though, don't have time now :-/
> Another question: do you plan a macro which can automatically adjust
to the
> heights and surfaces of an object (union or difference or blob)? Maybe
a
> combination of surface greebles and a side greebles, which, depending
on the
> angle ration, decides how to keep the greebles of one kind (surface or
> side), or to mix the two kinds of greebles.
I don't think I can
I was planning however to make greeble-macros for some primitives, like
cylinders, spheres, boxes, cones and torii
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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Zeger Knaepen" <zeg### [at] povplace com> schrieb im Newsbeitrag
news:446abc79$1@news.povray.org...
> np, I'll send you the code for this image and for the latest image
Thanks a lot, I have received them. I am checking them now. I appreciate it
a lot, and promise you to give you very well credits if I manage to use them
for the imperial carrier I am working on. Promised!
> I was planning however to make greeble-macros for some primitives, like
> cylinders, spheres, boxes, cones and torii
Yes! Go ahead with them! Tora! Tora! Tora!
Pleeeaaase, inform me (or all of us, here) somehow once you have them ready.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Ten years later. Any progress? Any news? :-D
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 1/30/2016 12:44 PM, Sven Littkowski wrote:
> Ten years later. Any progress? Any news? :-D
>
News of what, Sven?
None of your recent posts have quoted who or what you are replying to.
As you say it was 10 years ago and if you are using a newsreader, like
me. Your posts appear as orphaned posts.
--
Regards
Stephen
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 30.01.2016 um 14:10 schrieb Stephen:
> On 1/30/2016 12:44 PM, Sven Littkowski wrote:
>> Ten years later. Any progress? Any news? :-D
>>
>
> News of what, Sven?
>
> None of your recent posts have quoted who or what you are replying to.
> As you say it was 10 years ago and if you are using a newsreader, like
> me. Your posts appear as orphaned posts.
That certainly depends on your newsreader settings.
But I do agree that re-opening discussions from 10 years ago isn't
really a too promising idea.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 1/30/2016 3:15 PM, clipka wrote:
> Am 30.01.2016 um 14:10 schrieb Stephen:
>> On 1/30/2016 12:44 PM, Sven Littkowski wrote:
>>> Ten years later. Any progress? Any news? :-D
>>>
>>
>> News of what, Sven?
>>
>> None of your recent posts have quoted who or what you are replying to.
>> As you say it was 10 years ago and if you are using a newsreader, like
>> me. Your posts appear as orphaned posts.
>
> That certainly depends on your newsreader settings.
>
Yes, true. I probably stopped Thunderbird from downloading all the posts
in p.b.i. as they only go back to 2010. Whereas in p.b.sceen-files the
earliest is 1997.
> But I do agree that re-opening discussions from 10 years ago isn't
> really a too promising idea.
>
Especially when you think of the age of some of the posters. <Gulp!
--
Regards
Stephen
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
(smiling)
Yes, of course you all are right. My newsreader (Thunderbird) also never
showed these very old posts. But just by very lucky accident, I found
these threads with the Google search engine. I didn't like to open them
with my web browser, as I prefer their display in Thunderbird.
That is the reason, why I "marked" those ancient threads with some sort
of comment. Less for restarting any discussion, but more for the reason
to bring them up again inside my Thunderbird newsreader.
I am trying to find the source code, Zeger Knaepen had published within
one of his comments within these threads, as I need now that macro.
Easier to find (hopefully) in the better sorted view Thunderbird gives me.
With other words: unless you have that macro, there is no reason to
continue those old discussions (I agree fully). Unless, greebles
motivate the one or other of you, then a new discussion would make sense.
Since I have them back in my newsreader now, I am searching them now for
that macro. My apologies for bringing these old (but for me highly
interesting) discussion back. :-)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 1/30/2016 6:50 PM, Sven Littkowski wrote:
> (smiling)
> Yes, of course you all are right. My newsreader (Thunderbird) also never
> showed these very old posts. But just by very lucky accident, I found
> these threads with the Google search engine. I didn't like to open them
> with my web browser, as I prefer their display in Thunderbird.
>
> That is the reason, why I "marked" those ancient threads with some sort
> of comment. Less for restarting any discussion, but more for the reason
> to bring them up again inside my Thunderbird newsreader.
>
> I am trying to find the source code, Zeger Knaepen had published within
> one of his comments within these threads, as I need now that macro.
> Easier to find (hopefully) in the better sorted view Thunderbird gives me.
>
> With other words: unless you have that macro, there is no reason to
> continue those old discussions (I agree fully). Unless, greebles
> motivate the one or other of you, then a new discussion would make sense.
>
> Since I have them back in my newsreader now, I am searching them now for
> that macro. My apologies for bringing these old (but for me highly
> interesting) discussion back. :-)
>
Responding to an old post does not magically make the old post appear in
Thunderbird unless you also include the quoted text.
Mike
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 31-1-2016 0:50, Sven Littkowski wrote:
> I am trying to find the source code, Zeger Knaepen had published within
> one of his comments within these threads, as I need now that macro.
> Easier to find (hopefully) in the better sorted view Thunderbird gives me.
>
Well, as I tend to keep (almost) everything, here is the greebles macro
you mention.
--
Thomas
Post a reply to this message
Attachments:
Download 'greebles.inc.txt' (51 KB)
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Biiig thanks! Got it, Thomas!
Is it that version that can do boxes and cylinders, or is it the
previous version that does only boxes? Any idea?
---------------
Mike: yes, posting some little text did the trick for me in the
Thunderbird newsreader: I saw this thread, and it was right on top.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 31/01/2016 20:39, Sven Littkowski wrote:
> Biiig thanks! Got it, Thomas!
>
> Is it that version that can do boxes and cylinders, or is it the
> previous version that does only boxes? Any idea?
As far as I can tell, that's the version that does prisms.
There should be a parametric patch version somewhere
Ok, the attached zip-file may or may not contain all needed files, but
the code is not pretty..
at all.. :)
Post a reply to this message
Attachments:
Download 'parametric.zip' (9 KB)
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hey, welcome back, Zeger!
As you can see, your stuff is that good, that even after a decade it is
wanted!
Question:
What kind of metallic texture did you use for your two sample objects? I
really liked that texture.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Here a link to some areas of the spaceship v2:
https://www.facebook.com/media/set/?set=a.729262957088962.1073741832.100000157941289&type=3
(not at the begin or end of that photo album, more in the middle.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 1-2-2016 1:33, Zeger Knaepen wrote:
> On 31/01/2016 20:39, Sven Littkowski wrote:
>> Biiig thanks! Got it, Thomas!
>>
>> Is it that version that can do boxes and cylinders, or is it the
>> previous version that does only boxes? Any idea?
>
> As far as I can tell, that's the version that does prisms.
> There should be a parametric patch version somewhere
Yes, if I remember correctly, I used this for prisms and for spheres at
the time. I do not remember any parametric patch however.
>
> Ok, the attached zip-file may or may not contain all needed files, but
> the code is not pretty..
> at all.. :)
I shall add it to the collection ;-) Thanks!
--
Thomas
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Now we have here a thread that spans ten years. :-D
And we have some of the best greebles the universe ever has seen. Thanks
to Zeger!
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 1-2-2016 13:55, Sven Littkowski wrote:
> Now we have here a thread that spans ten years. :-D
>
> And we have some of the best greebles the universe ever has seen. Thanks
> to Zeger!
>
They were in the original posts however, weren't they? Because that is
were my copy came from. So, nothing really new.
--
Thomas
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
No, not new, indeed. But timeless. :-)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Zeger, problem:
I want to make a render with your CYLINDRIC GREEBLES. But a file that is
required ("macros.inc"), is missing. Can you post this file here?
Or, if anyone else has this file, too, please post it. Thanks.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
cylindergreebles.pov
------------
#default {pigment {rgb 1} finish {ambient .1 specular 1}}
camera {
location <2.8,-1,-3>
angle 80
look_at x
}
#declare Seed=seed(441);
light_source {<-750,500,-500> rgb 1} //<1.5,1.4,1.3>}
light_source {<-750,-500,-500> rgb <.5,.4,.3>}
light_source {<500,150,750> rgb <.5,.6,.7>}
#include "macros.inc"
#macro
RoundCilinderSegment(StartHeight,EindHeight,Radius,StartHoek,EindHoek,Bevel,BevelHeight,MaxLength)
#local Start=y*(StartHeight+Bevel);
#local Eind=y*(EindHeight-Bevel);
#local Start2=y*StartHeight;
#local Eind2=y*EindHeight;
#local StartHoek2=StartHoek+degrees(Bevel/Radius);
#local EindHoek2=EindHoek-degrees(Bevel/Radius);
#local TotaleLengte=radians(EindHoek-StartHoek)*(Radius+BevelHeight);
#local Aantal=max(int(TotaleLengte/MaxLength),1);
#local Tel=0;
mesh {
triangle {
vrotate(<Radius,StartHeight,0>,y*StartHoek),
vrotate(<Radius,EindHeight,0>,y*StartHoek),
vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*StartHoek2)
}
triangle {
vrotate(<Radius,EindHeight,0>,y*StartHoek),
vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*StartHoek2),
vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*StartHoek2)
}
triangle {
vrotate(<Radius,EindHeight,0>,y*StartHoek),
vrotate(<Radius,EindHeight,0>,y*StartHoek2),
vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*StartHoek2)
}
triangle {
vrotate(<Radius,StartHeight,0>,y*StartHoek),
vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*StartHoek2),
vrotate(<Radius,StartHeight,0>,y*StartHoek2)
}
triangle {
vrotate(<Radius,StartHeight,0>,y*EindHoek),
vrotate(<Radius,EindHeight,0>,y*EindHoek),
vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*EindHoek2)
}
triangle {
vrotate(<Radius,EindHeight,0>,y*EindHoek),
vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*EindHoek2),
vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*EindHoek2)
}
triangle {
vrotate(<Radius,EindHeight,0>,y*EindHoek),
vrotate(<Radius,EindHeight,0>,y*EindHoek2),
vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*EindHoek2)
}
triangle {
vrotate(<Radius,StartHeight,0>,y*EindHoek),
vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*EindHoek2),
vrotate(<Radius,StartHeight,0>,y*EindHoek2)
}
#while (Tel<Aantal)
#local H1=StartHoek2+(EindHoek2-StartHoek2)*(Tel/Aantal);
#local H2=StartHoek2+(EindHoek2-StartHoek2)*((Tel+1)/Aantal);
#local P1=vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*H1);
#local P2=vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*H1);
#local P3=vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*H2);
#local P4=vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*H2);
#local N1=vrotate(x,y*H1);
#local N2=vrotate(x,y*H2);
smooth_triangle {P1,N1,P2,N1,P4,N2}
smooth_triangle {P2,N1,P3,N2,P4,N2}
//triangle {P1,P2,P4}
//triangle {P2,P3,P4}
#local P2B=vrotate(<Radius,EindHeight,0>,y*H1);
#local P3B=vrotate(<Radius,EindHeight,0>,y*H2);
triangle {P2,P2B,P3}
triangle {P2B,P3B,P3}
#local P2B=vrotate(<Radius,StartHeight,0>,y*H2);
#local P3B=vrotate(<Radius,StartHeight,0>,y*H1);
triangle {P2B,P1,P3B}
triangle {P1,P4,P2B}
#local Tel=Tel+1;
#end
}
#end
#macro Verlaag(X)
#local R=X-(1+rand(Seed)*2.5);
R
#end
#macro
CilinderGreeble(StartHeight,EindHeight,Radius,StartHoek,EindHoek,Bevel,BevelHeight,MaxLength,Detail)
#local Start=(StartHeight+Bevel);
#local Eind=(EindHeight-Bevel);
#local StartH=StartHoek+degrees(Bevel/Radius);
#local EindH=EindHoek-degrees(Bevel/Radius);
//cilindertjes:
#local Aantal=rand(Seed)*Detail;
#while (Aantal>0)
#local Size=(Bevel*.01)+rand(Seed)*Bevel*.99*2;
#local Hoek=StartH+(EindH-StartH)*rand(Seed);
#local Hoogte=Start+(Eind-Start)*rand(Seed);
#local Depth=BevelHeight/2+rand(Seed)*BevelHeight/2;
superellipsoid {<1,.1+rand(Seed)*.3> rotate y*90 scale
<Depth,Size,Size> translate x*Radius rotate y*Hoek translate y*Hoogte}
#local Aantal=Aantal-1;
#end
//vakjes:
#local Aantal=rand(Seed)*Detail;
#while (Aantal>0)
#local S=Start+(Eind-Start)*rand(Seed);
#local E=S+(Eind-S)*rand(Seed);
#local SH=StartH+(EindH-StartH)*rand(Seed);
#local EH=SH+(EindH-SH)*rand(Seed);
#local H=BevelHeight/2+rand(Seed)*BevelHeight/2;
RoundCilinderSegment(S,E,Radius,SH,EH,Bevel/2,H,AantalStapjes)
#local Aantal=Aantal-1;
#end
//verticale buisjes
#local Aantal=rand(Seed)*Detail;
#while (Aantal>0)
#local S=Start+(Eind-Start)*rand(Seed);
#local E=S+(Eind-S)*rand(Seed);
#local SH=StartH+(EindH-StartH)*rand(Seed);
//#local EH=SH+(EindH-SH)*rand(Seed);
#local H=(BevelHeight/2+rand(Seed)*BevelHeight/2)/2;
//RoundCilinderSegment(S,E,Radius,SH,EH,Bevel/2,H,AantalStapjes)
cylinder {y*S,y*E,H translate x*Radius rotate y*SH}
sphere {y*S,H translate x*Radius rotate y*SH}
sphere {y*E,H translate x*Radius rotate y*SH}
#local Aantal=Aantal-1;
#end
//horizontale buisjes simuleren, toruskes zouden wsl te traag gaan
#local Aantal=rand(Seed)*Detail;
#while (Aantal>0)
#local S=Start+(Eind-Start)*rand(Seed);
#local H=BevelHeight/2+rand(Seed)*BevelHeight/2;
#local H=min((Eind-S),H*2)/2;
#local E=S+H*2;
#local SH=StartH+(EindH-StartH)*rand(Seed);
#local EH=SH+(EindH-SH)*rand(Seed);
RoundCilinderSegment(S,E,Radius,SH,EH,H,H,AantalStapjes)
#local Aantal=Aantal-1;
#end
#end
#macro
VerdeelCilinder(StartHeight,EindHeight,Radius,StartHoek,EindHoek,Diepte,Bevel,BevelHeight)
#local Start=y*(StartHeight+Bevel);
#local Eind=y*(EindHeight-Bevel);
#local Start2=y*StartHeight;
#local Eind2=y*EindHeight;
#if (Diepte<0)
#ifndef(Detail) #local Detail=5; #end
#local H=rand(Seed)*BevelHeight;
#ifndef(MaxSegmentLength) #local AantalStapjes=Bevel; //(eigenlijk de
maximale lengte van een segment)
#else #local AantalStapjes= MaxSegmentLength; #end
RoundCilinderSegment(StartHeight,EindHeight,Radius,StartHoek,EindHoek,Bevel,H,AantalStapjes)
CilinderGreeble(StartHeight,EindHeight,Radius+H,StartHoek,EindHoek,Bevel,H,AantalStapjes,Detail)
#else
// eerst es checken of 't nie onvoorstelbaar ongelijk verdeeld is:
#local Lengte=radians(EindHoek-StartHoek)*Radius;
#local Hoogte=EindHeight-StartHeight;
#local PercentageU=.5+(rand(Seed)-rand(Seed))*.5*.9;
#local PercentageV=.5+(rand(Seed)-rand(Seed))*.5*.9;
#local MidHeight=StartHeight+(EindHeight-StartHeight)*PercentageU;
#local MidHoek=StartHoek+(EindHoek-StartHoek)*PercentageV;
// als't 2 keer zo hoog als breed is (of nog hoger), dan ff enkel in
de hoogte bijsnijden:
#if ((Hoogte>(Lengte*2))&(rand(Seed)>.125))
VerdeelCilinder(StartHeight,MidHeight,Radius,StartHoek,EindHoek,Verlaag(Diepte),Bevel,BevelHeight)
VerdeelCilinder(MidHeight,EindHeight,Radius,StartHoek,EindHoek,Verlaag(Diepte),Bevel,BevelHeight)
// als't 2 keer lager dan breed is (of nog lager), dan ff enkel in de
breedte bijsnijden:
#else
#if (((Hoogte*2)<Lengte)&(rand(Seed)>.125))
VerdeelCilinder(StartHeight,EindHeight,Radius,StartHoek,MidHoek,Verlaag(Diepte),Bevel,BevelHeight)
VerdeelCilinder(StartHeight,EindHeight,Radius,MidHoek,EindHoek,Verlaag(Diepte),Bevel,BevelHeight)
#else
VerdeelCilinder(StartHeight,MidHeight,Radius,StartHoek,MidHoek,Verlaag(Diepte),Bevel,BevelHeight)
VerdeelCilinder(MidHeight,EindHeight,Radius,StartHoek,MidHoek,Verlaag(Diepte),Bevel,BevelHeight)
VerdeelCilinder(StartHeight,MidHeight,Radius,MidHoek,EindHoek,Verlaag(Diepte),Bevel,BevelHeight)
VerdeelCilinder(MidHeight,EindHeight,Radius,MidHoek,EindHoek,Verlaag(Diepte),Bevel,BevelHeight)
#end
#end
#end
#end
//#include "textures.inc"
union {
#declare Detail=5;
#declare MaxSegmentLength=.1;
VerdeelCilinder(-3,3,1,0,360,10,.002,.0075)
cylinder {-3*y,3*y,1}
//Metaal()
rotate z*90
}
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
I found that file in another posting of Zeger, dating back to 2002! :-D
Here it is, for all those who need it for Zeger's formidable greebles.
------------------------
//Een afgeronde kader, zoals box{}, maar dan afgerond, en enkel de randen.
#macro Kader (Begin,Eind,Straal)
#local Begin=Begin*<1,1,1>;
#local Eind=Eind*<1,1,1>;
#local R=Straal;
#local B=<min(Begin.x,Eind.x),min(Begin.y,Eind.y),min(Begin.z,Eind.z)>+R;
#local E=<max(Begin.x,Eind.x),max(Begin.y,Eind.y),max(Begin.z,Eind.z)>-R;
merge { //merge, zodat het ook voor transparante materialen werkt.
#if (R > 0)
//Onderste rij
sphere {
B,R
}
sphere {
<E.x,B.y,B.z>,R
}
sphere {
<E.x,B.y,E.z>,R
}
sphere {
<B.x,B.y,E.z>,R
}
//Bovenste rij
sphere {
E,R
}
sphere {
<E.x,E.y,B.z>,R
}
sphere {
<B.x,E.y,E.z>,R
}
sphere {
<B.x,E.y,B.z>,R
}
//Onderste cilinders
cylinder {
B,<E.x,B.y,B.z>,R
}
cylinder {
B,<B.x,B.y,E.z>,R
}
cylinder {
<E.x,B.y,B.z>,<E.x,B.y,E.z>,R
}
cylinder {
<E.x,B.y,E.z>,<B.x,B.y,E.z>,R
}
//Bovenste cilinders
cylinder {
<B.x,E.y,B.z>,<E.x,E.y,B.z>,R
}
cylinder {
<B.x,E.y,B.z>,<B.x,E.y,E.z>,R
}
cylinder {
<E.x,E.y,B.z>,<E.x,E.y,E.z>,R
}
cylinder {
<E.x,E.y,E.z>,<B.x,E.y,E.z>,R
}
//Verticale cilinders
cylinder {
B,<B.x,E.y,B.z>,R
}
cylinder {
<E.x,B.y,B.z>,<E.x,E.y,B.z>,R
}
cylinder {
<B.x,B.y,E.z>,<B.x,E.y,E.z>,R
}
cylinder {
<E.x,B.y,E.z>,<E.x,E.y,E.z>,R
}
#end
}
#end
//Zoals box{}, maar dan afgerond. Gebruikt Kader()!
#macro Ronddoos(Begin,Eind,Straal)
#local Begin=Begin*<1,1,1>;
#local Eind=Eind*<1,1,1>;
#local R=Straal;
#local B=<min(Begin.x,Eind.x),min(Begin.y,Eind.y),min(Begin.z,Eind.z)>+R;
#local E=<max(Begin.x,Eind.x),max(Begin.y,Eind.y),max(Begin.z,Eind.z)>-R;
merge {
object {Kader (Begin,Eind,Straal)}
box {
B,E
}
box {
<B.x,B.y,B.z-R>,<E.x,E.y,E.z+R>
}
box {
<B.x-R,B.y,B.z>,<E.x+R,E.y,E.z>
}
box {
<B.x,B.y-R,B.z>,<E.x,E.y+R,E.z>
}
}
#end
//Beveled tekst. Geeft als resultaat een afgeronde tekst met instelbare
resolutie (bestaat uit blobs)
#macro Text (Lettertype, Tkst, R, P, T)
#local Tekst=
text {
ttf Lettertype //"starwars.ttf"
Tkst,.01,0
}
#declare Min=min_extent(Tekst);
#declare Max=max_extent(Tekst);
#local Telx=0;
#local Tely=0;
blob {
threshold T
#while (Telx<ResX)
#declare Tely=0;
#while (Tely<ResY)
#local PlaatsX=(Min.x+(Max.x-Min.x)*(Telx/ResX));
#local PlaatsY=(Min.y+(Max.y-Min.y)*(Tely/ResY));
#local Norm=<0,0,0>;
#local Loc=trace(Tekst,<PlaatsX,PlaatsY,-10>,z,Norm);
#if ((Norm.x*Norm.y*Norm.z)!=0)
sphere {
Loc,R,P
}
#end
#local Tely=Tely+1;
#end
#local Telx=Telx+1;
#end
}
#end
//Een alternatieve versie voor Atan2. Werkt ook met beiden nul.
#macro Atan (arg1,arg2)
#if (arg1=0 & arg2=0)
0
#else
atan2(arg1,arg2)
#end
#end
//Geeft het punt op plaats T van de bezier-kromme met controlepunten P1,
P2, P3 en P4
#macro Bezier (P1,P2,P3,P4,T)
#local beziera=pow(1-T,3);
#local bezierb=3*pow(1-T,2)*T;
#local bezierc=3*(1-T)*pow(T,2);
#local bezierd=pow(T,3);
#local beziere=pow(T,2);
#local bezierf=pow(1-T,2);
#local bezierg=2*(1-T)*T;
#local bezierh=bezierf-bezierg;
#local bezieri=bezierg-beziere;
#local bezierx=(beziera*P1.x + bezierb*P2.x + bezierc*P3.x + bezierd*P4.x);
#local beziery=(beziera*P1.y + bezierb*P2.y + bezierc*P3.y +
bezierd*P4.y);
#local bezierz=(beziera*P1.z + bezierb*P2.z + bezierc*P3.z + bezierd*P4.z);
<bezierx,beziery,bezierz>
#end
//De rotatie rond X en Z berekenen voor een bepaald punt op een
bezierkromme met controlepunten P1, P2, P3 en P4 op plaats T
//Ik haal deze formules van een INC-file van Michael D Johnson. Er
stond bij dat hij niet zeker is van deze formules.
//Ik dus ook niet... :-)
#macro BezierRot(P1,P2,P3,P4,T)
#local beziera=pow(1-T,3);
#local bezierb=3*pow(1-T,2)*T;
#local bezierc=3*(1-T)*pow(T,2);
#local bezierd=pow(T,3);
#local beziere=pow(T,2)
#local bezierf=pow(1-T,2);
#local bezierg=2*(1-T)*T;
#local bezierh=bezierf-bezierg;
#local bezieri=bezierg-beziere;
#local bezierx=(beziera*P1.x + bezierb*P2.x + bezierc*P3.x + bezierd*P4.x);
#local beziery=(beziera*P1.y + bezierb*P2.y + bezierc*P3.y +
bezierd*P4.y);
#local bezierz=(beziera*P1.z + bezierb*P2.z + bezierc*P3.z + bezierd*P4.z);
#local bezierdx=(-bezierf*P1.x + bezierh*P2.x + bezieri*P3.x +
beziere*P4.x);
#local bezierdy=(-bezierf*P1.y + bezierh*P2.y + bezieri*P3.y +
beziere*P4.y);
#local bezierdz=(-bezierf*P1.z + bezierh*P2.z + bezieri*P3.z +
beziere*P4.z);
#local A2=degrees(Atan(bezierdy,bezierdz));
#local A=degrees (Atan(bezierdy,bezierdx));
<A2,0,A>
#end
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hi(gh)!
On 30.01.2016 16:15, clipka wrote:
> But I do agree that re-opening discussions from 10 years ago isn't
> really a too promising idea.
Not necessarily... I'm on this group since 2000 (which now is more than
three quarters of my entire Internet life!), keeping track of all image
postings since then - and I would be ready to participate if you comment
on something I wrote here in 2006!
On a German Commodore 64 forum, in 2010 I dug out a thread from 1999
(!), when the original poster was only 12 years old... "thread
necromancing" can be enlightening!
See you in Khyberspace!
Yadgar
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |