![](/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) |
> > Do I look like a programmer? ;) Those are fakes.
Christoph Hormann wrote:
> Ohhh!
> And how did you do them?
Mesh pyramids, randomly placed, variously pigmented: gradient z
for "color", slope for "normal", rgb <rand()...> for "solid".
finish { ambient 1 }
camera { orthographic }
> I really wonder if the actual implementation would look the same...
I'd expect some difference because I only rotated the pyramids on z --
and because I've no idea how crackle places the nuclei.
... Meanwhile, another idea: if (dx,dy,dz) were replaced with
(dx+dy,dx+dz,dy+dz), the `crystal' would be a rhombic dodecahedron.
Maybe I can get Grimbert interested. ;)
Is there a "So You Want To Patch Povray" faq somewhere?
--
Anton Sherwood -- br0### [at] p0b0x com -- http://ogre.nu/
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) |
Anton Sherwood wrote:
> theta = rx*2*pi;
> phi = acos(2*ry-1);
> v0 = sphere_to_xyz(theta,phi); /* uniform by Archimedean theorem */
> vtemp = one of the axis vectors,
> corresponding to the smallest component of v0;
> v1 = vaxis_rotate(vtemp,v0,rz*360);
> v2 = vcross(v0,v1);
> v0 = vcross(v1,v2);
oops, make that last line v1=vcross(v2,v0).
> v0,v1,v2 are the new basis.
--
Anton Sherwood -- br0### [at] p0b0x com -- http://ogre.nu/
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) |
> Christoph Hormann wrote:
> > I really wonder if the actual implementation would look the same...
Anton Sherwood wrote:
> I'd expect some difference because I only rotated the pyramids on z --
> and because I've no idea how crackle places the nuclei.
And (oops) some of the pyramids ought to have flat peaks.
--
Anton Sherwood -- br0### [at] p0b0x com -- http://ogre.nu/
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) |
Ron Parker wrote:
> Do you happen to have a formula that will translate a random vector in
> the unit cube between <0,0,0> and <1,1,1> into a set of basis vectors
> and give uniform coverage of the space of all possible basis vectors?
> I seem to have left mine in my other coat.
I forgot to ask: are the noise-vector's components independent?
--
Anton Sherwood -- br0### [at] p0b0x com -- http://ogre.nu/
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) |
On Mon, 21 May 2001 16:42:15 -0700, Anton Sherwood wrote:
>Ron Parker wrote:
>> Do you happen to have a formula that will translate a random vector in
>> the unit cube between <0,0,0> and <1,1,1> into a set of basis vectors
>> and give uniform coverage of the space of all possible basis vectors?
>> I seem to have left mine in my other coat.
>
>I forgot to ask: are the noise-vector's components independent?
They should be. If they aren't, we have a bigger problem. :)
--
#macro R(L P)sphere{L F}cylinder{L P F}#end#macro P(V)merge{R(z+a z)R(-z a-z)R(a
-z-z-z a+z)torus{1F clipped_by{plane{a 0}}}translate V}#end#macro Z(a F T)merge{
P(z+a)P(z-a)R(-z-z-x a)pigment{rgbt 1}hollow interior{media{emission T}}finish{
reflection.1}}#end Z(-x-x.2y)Z(-x-x.4x)camera{location z*-10rotate x*90}
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) |
(Will anyone ever read this?)
> > Ron Parker wrote:
> > > Do you happen to have a formula that will translate a random
> > > vector in the unit cube between <0,0,0> and <1,1,1> into a set
> > > of basis vectors and give uniform coverage of the space of all
> > > possible basis vectors? I seem to have left mine in my other
> > > coat.
>
> Anton Sherwood wrote:
> > I'll think about it some more, and come up with a dumb idea.
Anton Sherwood wrote:
> Got it. (I'll call your random vector <rx,ry,rz>)
> [...code...]
A year later, it hits me that this ought to work just as well:
rotate <360*rx, degrees(asin(1-2*ry)), 360*rz>
(though of course one wouldn't really use degrees arithmetic)
Choosing a basis is equivalent to choosing a point on the sphere and a
rotation around it. My first code essentially did it in that order.
The reverse looks more efficient.
--
Anton Sherwood, http://www.ogre.nu/
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) |
On Thu, 06 Jun 2002 19:21:01 -0700, Anton Sherwood wrote:
> (Will anyone ever read this?)
No.
Now I have to go back and find the articles it's referring 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 2001-5-15 22:40, Anton Sherwood wrote:
> ... Meanwhile, another idea: if (dx,dy,dz) were replaced with
> (dx+dy,dx+dz,dy+dz), the `crystal' would be a rhombic dodecahedron.
Or not. Less than 13 years later, as I was thinking about something
unrelated to ray-tracing, it hit me that it would have to be
(dx+dy, dx-dy, dx+dz, dx-dz, dy+dz, dy-dz).
--
*\\* Anton Sherwood *\\* www.bendwavy.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) |
> On 2001-5-15 22:40, Anton Sherwood wrote:
>> ... Meanwhile, another idea: if (dx,dy,dz) were replaced with
>> (dx+dy,dx+dz,dy+dz), the `crystal' would be a rhombic dodecahedron.
On 2014-2-07 20:45, Anton Sherwood wrote:
> Or not. Less than 13 years later, as I was thinking about something
> unrelated to ray-tracing, it hit me that it would have to be
> (dx+dy, dx-dy, dx+dz, dx-dz, dy+dz, dy-dz).
Or ( abs(dx)+abs(dy), abs(dx)+abs(dz), abs(dy)+abs(dz) ),
which is probably what I meant in the first place.
--
*\\* Anton Sherwood *\\* www.bendwavy.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) |
Anton Sherwood <bro### [at] pobox com> wrote:
> On 2001-5-15 22:40, Anton Sherwood wrote:
> > ... Meanwhile, another idea: if (dx,dy,dz) were replaced with
> > (dx+dy,dx+dz,dy+dz), the `crystal' would be a rhombic dodecahedron.
>
> Or not. Less than 13 years later, as I was thinking about something
> unrelated to ray-tracing, it hit me that it would have to be
> (dx+dy, dx-dy, dx+dz, dx-dz, dy+dz, dy-dz).
>
> --
> *\\* Anton Sherwood *\\* www.bendwavy.org
You persevere I'll say that for you. :-)
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) |