|
![](/i/fill.gif) |
"Bruno Cabasson" <bru### [at] alcatelaleniaspace fr> wrote:
> Here is a try for a well in the water for bringing soil. Usually, it is the
> contrary :)
>
> Bruno
Nice scene so far. A couple pointers for you:
1) add some radial ripples from the well to the water surface to give a
better wave interference look
2) the problem with the brick pattern is that it really only works well with
planar objects not with cylinders as you may notice. There are a few ways
to get the look you want. The best way is to individually model the bricks
and mortar obviously, but if you want to make it simpler there are a few
options. The following simple scene shows two methods, one using
texture_map and the other using the object pattern. I have implemented
them both as full textures, but they can be demoted to pigments only by
altering the appropriate keywords. (It may also be done using the brick
pattern with a cylindrical warp, but I was having difficulty getting the
control I wanted on it)
-tgq
SCENE FOLLOWS:
//start
camera {
location 0
look_at <0,600,-600>
angle 50
}
light_source{0
rgb 1
fade_power 2
fade_distance 1500
translate <0,800,-500>
}
#declare BHt=20; //brick height
#declare BTh=20; //brick thickness
#declare MSz=5; //mortar thickness
#declare THt=BHt+MSz;
#declare NBrick=12;//number bricks around circumference
#declare WellDia=200;//well ouside diameter
#declare BLn=WellDia*pi/NBrick;//calculated length of brick
#declare TBrick= //brick texture
texture{
pigment{rgb<1,0,0>}
finish{ambient 0 diffuse 0.7}
normal{granite .5 scale .25}
}
#declare TMort= //mortar texture
texture{
pigment{rgb 1}
finish{ambient 0 diffuse 0.7}
normal{bumps .5 scale .01}
}
#declare TRBrick1= //radial brick texture using texture_map
texture{
gradient y
texture_map{
[0 TMort]
[(MSz/THt)/2 TMort]
[(MSz/THt)/2 radial texture_map{[(MSz/BLn) TMort] [(MSz/BLn)
TBrick]} frequency NBrick]
[1/2 radial texture_map{[(MSz/BLn) TMort] [(MSz/BLn)
TBrick]} frequency NBrick]
[1/2 TMort]
[(1+MSz/THt)/2 TMort]
[(1+MSz/THt)/2 radial texture_map{[(MSz/BLn) TMort] [(MSz/BLn)
TBrick]} frequency NBrick rotate y*(360/NBrick/2)]
[1 radial texture_map{[(MSz/BLn) TMort] [(MSz/BLn)
TBrick]} frequency NBrick rotate y*(360/NBrick/2)]
}
scale THt*2
}
#declare RBrickOb=
intersection{
union{
#local j=0;#while(j<2)
intersection{
plane{ y, MSz}
plane{-y, 0}
translate y*(BHt+MSz)*j
}
#local i=0;#while(i<NBrick)
intersection{
plane{-y, -MSz/2}
plane{ y, (BHt+MSz+MSz/2)}
plane{ z, 0}
plane{ x, MSz/2}
plane{-x, MSz/2}
rotate y*(i+j/2)*360/NBrick
translate y*(BHt+MSz)*j
}
#local i=i+1;#end
#local j=j+1;#end
}
}
#declare TRBrick2= //radial brick texture using object pattern
texture{
object{
RBrickOb
texture{TBrick}
texture{TMort}
}
warp{repeat y*(BHt+MSz)*2}
}
difference{
cylinder{<0,-100,0> <0,150,0> WellDia/2}
cylinder{<0,-300,0> <0,300,0> WellDia/2-BTh}
texture{TRBrick1 translate y*150.001}
translate <-WellDia*0.6,0,0>
}
difference{
cylinder{<0,-100,0> <0,150,0> WellDia/2}
cylinder{<0,-300,0> <0,300,0> WellDia/2-BTh}
texture{TRBrick2 translate y*150.001}
translate <WellDia*0.6,0,0>
}
//end
Post a reply to this message
|
![](/i/fill.gif) |