|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hi I'm new to POV-Ray.
How do I arrange object in space so that they form a plane which normal wobbles
in a random fashion, while the objects them self still is connected smoothly?
the situations is a little bit like rendering spheres floating in a wavy sea
Thanks
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
en ce 2008/04/18 08:31 :) ->
> Hi I'm new to POV-Ray.
>
> How do I arrange object in space so that they form a plane which normal wobbles
> in a random fashion, while the objects them self still is connected smoothly?
>
> the situations is a little bit like rendering spheres floating in a wavy sea
>
> Thanks
>
>
>
>
Just start with evenly spaced points in an array. Now, apply some vturbulence to
each point.
Now that your points are shifted from ther original locations, just use loops to
place and connect them. Your objects will be moved on all 3 axis from ther
original locations.
--
Alain
-------------------------------------------------
You know you've been raytracing too long when a co-worker nearly kills himself
over losing an hour's worth of work after a computer crash, and you just calmly
shrug your shoulders and say, "Is that all?"
Taps a.k.a. Tapio Vocadlo
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
atomman wrote:
>
> How do I arrange object in space so that they form a plane which normal wobbles
> in a random fashion, while the objects them self still is connected smoothly?
>
> the situations is a little bit like rendering spheres floating in a wavy sea
>
I was just looking at http://www.f-lohmueller.de/pov_tut/pov__eng.htm in
reference to the previous thread, and I think some of the material there
might be similar to what you're looking for (especially tutorial number
X, which involves using the trig functions to place spheres in wavy
patterns).
Hope this helps,
--Sherry Shaw
--
#macro T(E,N)sphere{x,.4rotate z*E*60translate y*N pigment{wrinkles scale
.3}finish{ambient 1}}#end#local I=0;#while(I<5)T(I,1)T(1-I,-1)#local I=I+
1;#end camera{location-5*z}plane{z,37 pigment{granite color_map{[.7rgb 0]
[1rgb 1]}}finish{ambient 2}}// TenMoons
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Sherry Shaw wrote:
> atomman wrote:
>
>>
>> How do I arrange object in space so that they form a plane which
>> normal wobbles
>> in a random fashion, while the objects them self still is connected
>> smoothly?
>>
>> the situations is a little bit like rendering spheres floating in a
>> wavy sea
>>
>
> I was just looking at http://www.f-lohmueller.de/pov_tut/pov__eng.htm in
> reference to the previous thread, and I think some of the material there
> might be similar to what you're looking for (especially tutorial number
> X, which involves using the trig functions to place spheres in wavy
> patterns).
>
> Hope this helps,
>
> --Sherry Shaw
>
Hmmm... I read atomman's question to mean he wants to use normals to
the plane to create "wobbles" or undulations and have the objects remain
in contact with these undulations. The problem is that normals don't
create real displacements to the surface, so the plane actually remains
a totally flat plane, it just has the visual appearance of
displacements. So I don't think he can do what he wants by simply using
normals and this will have to be approached differently -- isosurfaces
perhaps?
OTOH, maybe I'm the one misreading his question... ;-)
-=- Larry -=-
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wasn't it Larry Hudson who wrote:
>Hmmm... I read atomman's question to mean he wants to use normals to
>the plane to create "wobbles" or undulations and have the objects
>remain in contact with these undulations. The problem is that normals
>don't create real displacements to the surface, so the plane actually
>remains a totally flat plane, it just has the visual appearance of
>displacements. So I don't think he can do what he wants by simply
>using normals and this will have to be approached differently --
>isosurfaces perhaps?
With isosurfaces you can do this:
#version 3.6;
global_settings {assumed_gamma 1.0}
camera {location <4,4,-10> look_at <0,0,0> angle 20}
background {rgb 1}
light_source {<-30, 100, -30> color rgb 1}
#include "functions.inc"
#declare Scale=0.5;
#declare Height=0.5;
#declare Floor = isosurface {
function { y - f_waves(x/Scale,y,z/Scale)*Height }
max_gradient 1.1
contained_by{sphere{0,5}}
pigment {rgb <.5,.5,1>}
}
object{Floor}
#declare X=-3;
#while (X<3)
#declare Z=-3;
#while (Z<3)
#declare A=<X,10,Z>;
#declare N=<0,0,0>;
#declare P=trace(Floor,A,-y,N);
cylinder {P, P+N*0.2, 0.02 pigment {rgb <1,1,0>}}
#declare Z=Z+0.5;
#end
#declare X=X+0.5;
#end
--
Mike Williams
Gentleman of Leisure
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hi,
Thanks for all the nice suggestions.
> Just start with evenly spaced points in an array. Now, apply some vturbulence to
> each point.
> Now that your points are shifted from ther original locations, just use loops to
> place and connect them. Your objects will be moved on all 3 axis from ther
> original locations.
I think the turbulence option fits my need the best. But I'm not quite there
yet. Hers my preliminary code:
#############################################################################
#include "colors.inc"
#include "shapes.inc"
#include "math.inc"
#include "transforms.inc"
#include "analytical_g.inc"
camera {
location <-20, 20, -12>
look_at <15,0,15>
}
light_source{<2500,2500,-1500> color White}
sky_sphere{ pigment{ gradient <0,1,0>
color_map{ [0 color rgb<1,1,1> ]//White
[0.4 color rgb<1,1,1>]//~Navy
[0.6 color rgb<1,1,1>]//<0.14,0.14,0.56>]//~Navy
[1.0 color rgb<1,1,1> ]//White
}
scale 2 }
}
#declare Thicknes =6;
#declare molecule =
union{
sphere{<0,0,0>,1
texture{
pigment{color Red}
finish {diffuse 0.9 phong 1}
}// end of texture
no_shadow
}// end of sphere
cylinder{<0.2,0,0.2>,
<0.2,-Thicknes/2.2,0.2>,
0.1
texture{
pigment{color rgb<1,0.65,0.0>}
}
no_shadow
}
cylinder{<-0.2,0,-0.2>,
<0.2,-Thicknes/2.2,0.2>,
0.1
texture{
pigment{color rgb<1,0.65,0.0>}
}
no_shadow
}
}
#declare bi_molecule =
union{
object{
molecule}
object{ molecule
rotate <0,0,180>
translate < 0, -Thicknes,0>}
}
#declare S = 50;
#declare Z = 0;
#declare EndZ = S;
#declare Step = 1;
#while ( Z < EndZ + Step)
#declare X = 0;
#declare EndX = S;
#while ( X < EndX + Step)
#declare R = 0;
//vturbulence(Lambda, Omega, Octaves, A)
#declare A = <X,R,Z> + 1.5*vturbulence(0, 0, 1,<X,R,Z>)*<0,1,0>;
object{ bi_molecule
translate A}
#declare X = X+Step;
#end
#declare Z = Z+Step;
#end
############################################################################
Maybe I don't get the parameters for vturbulence because I can't get the surface
to be random at larger distances while being less random at shorter distances.
Any thoughts?
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
en ce 2008/04/19 08:21 :) ->
> Hi,
> Thanks for all the nice suggestions.
>
>> Just start with evenly spaced points in an array. Now, apply some vturbulence to
>> each point.
>> Now that your points are shifted from ther original locations, just use loops to
>> place and connect them. Your objects will be moved on all 3 axis from ther
>> original locations.
>
> I think the turbulence option fits my need the best. But I'm not quite there
> yet. Hers my preliminary code:
>
>
> ############################################################################
>
> Maybe I don't get the parameters for vturbulence because I can't get the surface
> to be random at larger distances while being less random at shorter distances.
>
> Any thoughts?
>
>
>
>
>
>
Try this:
#declare A = <X,R,Z> + 1.5*vturbulence(1.5, 0.45, 2,<X/5,R,Z/5>)*<0,1,0>;
The first argument (lambda) determine the randommness of the steps. Usual values
range from 1 to 2. Small values mean that the steps tend to be in the same
direction. Large values mean that the direction of a step depends less on the
direction of the preceding setp. Float larged than zero.
The second argument (omega) determine the relative weight of a step compared to
the preceding one. Start with 0.5. Reduce for a smoother result. Float larger
than zero up to 1.
The third argument (octaves) determine how many steps are used to perturb the
positions. Increase to get more small scale perturbation. Integer values only.
By dividine X and Z by 5, I effectively spreaded the perturbations, equivalent
to scaling the pattern by 5 horizontaly.
Now, it makes smooth, irregular, ondulations.
Unless you use all those includes elsewhere, you realy only use colors.inc. You
can remove all other includes.
--
Alain
-------------------------------------------------
You know you've been raytracing too long when you've gained twenty pounds
sitting at the computer, but can't tell because your beard covers your stomach.
Taps a.k.a. Tapio Vocadlo
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Alain <ele### [at] netscapenet> wrote:
> en ce 2008/04/19 08:21 :) ->
> > Hi,
> > Thanks for all the nice suggestions.
> >
> >> Just start with evenly spaced points in an array. Now, apply some vturbulence to
> >> each point.
> >> Now that your points are shifted from ther original locations, just use loops to
> >> place and connect them. Your objects will be moved on all 3 axis from ther
> >> original locations.
> >
> > I think the turbulence option fits my need the best. But I'm not quite there
> > yet. Hers my preliminary code:
> >
> >
> > ############################################################################
> >
> > Maybe I don't get the parameters for vturbulence because I can't get the surface
> > to be random at larger distances while being less random at shorter distances.
> >
> > Any thoughts?
> >
> >
> >
> >
> >
> >
> Try this:
> #declare A = <X,R,Z> + 1.5*vturbulence(1.5, 0.45, 2,<X/5,R,Z/5>)*<0,1,0>;
>
> The first argument (lambda) determine the randommness of the steps. Usual values
> range from 1 to 2. Small values mean that the steps tend to be in the same
> direction. Large values mean that the direction of a step depends less on the
> direction of the preceding setp. Float larged than zero.
>
> The second argument (omega) determine the relative weight of a step compared to
> the preceding one. Start with 0.5. Reduce for a smoother result. Float larger
> than zero up to 1.
>
> The third argument (octaves) determine how many steps are used to perturb the
> positions. Increase to get more small scale perturbation. Integer values only.
>
> By dividine X and Z by 5, I effectively spreaded the perturbations, equivalent
> to scaling the pattern by 5 horizontaly.
>
> Now, it makes smooth, irregular, ondulations.
>
> Unless you use all those includes elsewhere, you realy only use colors.inc. You
> can remove all other includes.
>
> --
> Alain
> -------------------------------------------------
> You know you've been raytracing too long when you've gained twenty pounds
> sitting at the computer, but can't tell because your beard covers your stomach.
> Taps a.k.a. Tapio Vocadlo
Thank you very much!
This is excatly what I am looking for.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Larry Hudson wrote:
>
> Hmmm... I read atomman's question to mean he wants to use normals to
> the plane to create "wobbles" or undulations and have the objects remain
> in contact with these undulations. The problem is that normals don't
> create real displacements to the surface, so the plane actually remains
> a totally flat plane, it just has the visual appearance of
> displacements. So I don't think he can do what he wants by simply using
> normals and this will have to be approached differently -- isosurfaces
> perhaps?
>
> OTOH, maybe I'm the one misreading his question... ;-)
>
> -=- Larry -=-
Well, I took it as a wobbling surface, not necessarily a plane, which
could be simulated by placing many objects (spheres or boxes, maybe)
close together, or else built as an isosurface. In either case, I think
the Lohmueller site might be useful (either for the surface or for
placing the other objects)...but, at the very least, it's got some
really nice pictures. ;) And you can always learn stuff there.
--Sherry Shaw
--
#macro T(E,N)sphere{x,.4rotate z*E*60translate y*N pigment{wrinkles scale
.3}finish{ambient 1}}#end#local I=0;#while(I<5)T(I,1)T(1-I,-1)#local I=I+
1;#end camera{location-5*z}plane{z,37 pigment{granite color_map{[.7rgb 0]
[1rgb 1]}}finish{ambient 2}}// TenMoons
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|