POV-Ray : Newsgroups : povray.unofficial.patches : pattern ideas : pattern ideas Server Time
28 Sep 2024 16:48:38 EDT (-0400)
  pattern ideas  
From: ingo
Date: 28 Oct 2003 13:58:36
Message: <Xns9422CB3635056seed7@netplex.aussie.org>
Two ideas for patterns.

In another tread Mael pointed me to this old thread:
http://news.povray.org/povray.binaries.programming/14477/ 

Somewhere along the discussion Ron Parker explains:
"You might find how the crackle function works interesting. [...]
What isn't so obvious on casual examination is that the centroids are
not really as random as they appear.  All of space is divided into
1x1x1 cubes, and each cube contains exactly one centroid.  The location
of each centroid is determined by the values of the Noise3D function at
some fixed point within its enclosing cube, allowing it to be
reproducibly calculated as needed." 

To understand this I started drawing. A box, a point, more boxes and
points. At a certain moment a made a circle around a point. Mmmm ...
that could give an interesting pattern. 

Use each centeroid as the center of a spherical gradient, the radius of
the gradient should be equal to the minimum distance from centeroid to
containing cube. 

Why only minimum distance? Because I couldn't figure out what the
gradient of two overlapping spherical gradient should look like ... but
then I remebered Chris' blob pattern. Now that could be a nice pattern_
modifier and you could also use the second minimum distance etc. 

pigment {
  random_leopard [RADIUS]
  [blob threshold]
  [PIGMENT_ITEMS ...]
}
RADIUS = 1 to 6 (default is 1 = minimum distance)

One use that come to mind, craters on asteroids.

... and why only use spherical, what about boxed or the object pattern?



A bit later Ron Parker also says:
"So, here is my thought:  Pick your seed points the same way crackle
picks its centroids [...] make the seed point draw a [...] line."

Lines. I realy would like to have a pattern that generates more or less
parallel lines with more or less random lengths and radi. 

An idea could be to use each centeroid as the starting point of a line
that takes of in the direction of a given vector. A second, optional,
vector could be used to add some randomness / turbulence to the
direction per line. 

The endpoint of the line could be determined by the amount of
containing cube boundaries it has crossed, this to add some
'uniformness' to the lengths. I've been drawing this, a one or two
boundary length looks boring, a three boundary length starts to look
very interesting. I.M.O total randomness does not work well here. Maybe
better even, specify a length in pov-units and give a standard
deviation. 

The last aspect is the diameter of the line, a 'line' being a non
infinite cylindrical pattern with a given radius (plus standard
deviation). 

pigment {
  lines <direction vector> <direction turbulence vector> <length,
  deviation> <radius, deviation>
 [PIGMENT_ITEMS ...]
}

An application, scratches.


Now I can only hope this is remotely possible and sombody is intersed
and willing to program these. My 'fear' is that somebody will pop up
and shows that it can be done now already with a hand full of simple
functions. 

Ingo


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.