|
|
On Wed, 05 Jun 2013 21:59:23 +0200, s.day <s.d### [at] uelacuk> wrote:
> "Trevor G Quayle" <Tin### [at] hotmailcom> wrote:
>>
>> Since you want to basaltic columns, if you want to randomize them a bit
>> more,
>> you probably still want a general six-sidded shape.
>
> Well from looking at images some are less but I think that would just
> over
> complicate things so six sides are fine ;-)
>
>>
>> One way you can do this is:
>> 1. Generate a hexagonal array of points at the average offset/size you
>> want
>> 2. Apply a random small x and y offset to each
>> 3. creat prisms based on a voronoi tesselation of the points
>> - for each point, find the distance and direction to each of its 6
>> neighbours
>> - for each of these pairs, create a plane at the exact midpoint, and
>> perpendicular to the direction vector
>> - you will have 6 vertical planes for each point, create a CSG
>> intersection of
>> the 6 planes (plus a top height plane).
>> - this should result in having a six sided array with no gaps, bu the
>> hexagons
>> won't be perfect hexagons
>
> Hmm, not sure if my math skills are up to this, I am sure it is not that
> complicated but I never paid enough attention in this subject, if only
> they had
> used POV back then to make it more interesting..
>
>>
>> The next difficult step is determining hor to make rounded or chamfered
>> edges to
>> these shapes if you want.
>
> The current columns are made from intersecting 7 height fields (one for
> the top)
> so similar to what you are referring to above with planes but with the
> obvious
> advantages. I am rounding/beveling the edges by combining the
> granite/wrinkles
> pigments with a gradient pattern to raise the edges of the hieght fields
> then
> sizing them appropriately so the raised edges meet up. The top one has a
> granite
> and sperical pattern to get the raised or sunk look for the puddles.
>
> I will have to have a go at this but fear it may take me the 70 odd days
> to the
> deadline to work it out ;-)
>
Try adding a small random component to the rotation of each plane.
For instance if you have the following:
plane{z, 0 rotate y*60}
first declare a seed
#declare RandSeed=97531;
change your plane as follows
plane{z, 0 rotate y*(60+5*rand(RandSeed))
--
-Nekar Xenos-
Post a reply to this message
|
|