POV-Ray : Newsgroups : povray.binaries.images : Proof of concept: The wind in the reeds Server Time
5 Jul 2024 07:45:00 EDT (-0400)
  Proof of concept: The wind in the reeds (Message 11 to 20 of 42)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: MichaelJF
Subject: Re: Proof of concept: The wind in the reeds
Date: 17 Sep 2014 16:35:01
Message: <web.5419f038efc7654280290e640@news.povray.org>
Thomas de Groot <tho### [at] degrootorg> wrote:
> That back bending is simply unrealistic. Just changing the bending
> direction already improves things. What I did was add 180 degrees to all
> negative rotations.
>
> Thanks for all the suggestions.
>
> @ Bald Eagle: I do indeed use the image_map as a kind of force map,
> through the height_field stage and then using the properties of the
> normals. Basically, I think that is identical to what you suggest? The
> rate of bending is proportional to the normal: pointing upward => no
> bending; increased bending with increasing normal angle towards the
> horizontal.
>
> @ MichaelJF: Yes, that parting was killing the effect and came from my
> concept of rebounding of the stalks. In any case, this was far to strong
> here. I presently dropped this effect for the time being.
>
> @ clipka: the bending angle is uniform over the whole length as a first
> approximation. In reality, I expect bending to increase towards the top,
> due to the different effects already mentioned by Alain and Bald Eagle.
> Most important in my view are the thickness/rigidity of the stalks
> towards the base and the damping effect of surrounding stalks. The
> former is easy to implement, the latter is more difficult, especially if
> one also wants to consider collision effects. At present, I do not know
> how to tread that path.
>
> Something I still believe not right is the wave length of the effect. I
> think it should be larger.
>
> Also note in the present image that all stalks start from the same
> initial orientation/scale. I need to introduce more randomness /and/ add
> different types of stalks.
>
> Thomas

Looks very much better in my eyes. In fact I'm working on a somewhat similiar
issue at the moment. That is why I came up with suggestions to control the
bending and length of the straws depending on the position (and the normal
provided by the trace()-command). I'm trying to give a certain model a special
hair-style. (Stephen will recognize the source of my inspiration most likely.) I
admit, there is room to improvement...

Best regards,
Michael


Post a reply to this message


Attachments:
Download 'mudmaid_veryfirstwip.jpg' (11 KB)

Preview of image 'mudmaid_veryfirstwip.jpg'
mudmaid_veryfirstwip.jpg


 

From: Jörg 'Yadgar' Bleimann
Subject: Re: Proof of concept: The wind in the reeds
Date: 17 Sep 2014 19:42:36
Message: <541a1c6c$1@news.povray.org>
Hi(gh)!

On 17.09.2014 13:30, Thomas de Groot wrote:
> Thanks Paolo.
>
> As a bonus, this image with randomisation of scale and initial vertical
> rotation. Also, bending diminishes downwards.
>
> Thomas

And they do not intersect each other? That in fact would be stunning!

See you in Khyberspace!

Yadgar

Now playing: Hearts (Jon Anderson)


Post a reply to this message

From: And
Subject: Re: Proof of concept: The wind in the reeds
Date: 18 Sep 2014 01:30:00
Message: <web.541a6ce7efc7654257a8c4650@news.povray.org>
Thomas de Groot <tho### [at] degrootorg> wrote:
> Well, I am interested in modelling wind patterns over a reed field, or a
> corn field. What I seem to observe are turbulent wave patterns moving
> the stalks back and forward while going over the field.
>
> This is a first approximation. I am not really satisfied yet with the
> pattern. What I did is:
>
> 1) Make an image_map with a more or less turbulent ripple pattern.
> 2) Make a height_field based on that image_map.
> 3) Build a reed stalk with Inverse Kinematic properties (macro with Bend
> parameter).
> 4) Select random locations on the height_field;
> 4a) calculate the vertical angle between the normal at that location and
> a horizontal plane (using: VAngleD(V1,V2));
> 4b) calculate the horizontal angle between (arbitrarily) the +z-axis
> direction (direction of primary bending of the reed stalks) and the
> normal of the random location point (using: VRotationD(V1,V2,axis)).
> 5a) bend the stalk with a proportion of the vertical angle (4a);
> 5b) orient the bended stalk by rotating through the horizontal angle (4b);
> 5c) place the reed stalks at the random locations on a flat surface.
>
> The image shows 15000 reed stalks. About 4.5 minutes render time.
>
> suggestions are more than welcome of course.
>
> Thomas

Wow, like a painting.

What are the povray objects you use?


Post a reply to this message

From: Thomas de Groot
Subject: Re: Proof of concept: The wind in the reeds
Date: 18 Sep 2014 03:25:57
Message: <541a8905@news.povray.org>
On 17-9-2014 22:34, MichaelJF wrote:
> Looks very much better in my eyes. In fact I'm working on a somewhat similiar
> issue at the moment. That is why I came up with suggestions to control the
> bending and length of the straws depending on the position (and the normal
> provided by the trace()-command). I'm trying to give a certain model a special
> hair-style. (Stephen will recognize the source of my inspiration most likely.) I
> admit, there is room to improvement...

Ah yes, I can see the similarities indeed. Interesting hair model!

There is great potential in using the normal. In my case length control 
does not make really sense, derived from the normal - except if I were 
using /another/ image_map for controlling reed height in determined 
areas; evalpig would be my friend in that case.

Thomas


Post a reply to this message

From: Thomas de Groot
Subject: Re: Proof of concept: The wind in the reeds
Date: 18 Sep 2014 03:28:40
Message: <541a89a8@news.povray.org>
On 18-9-2014 1:43, Jörg 'Yadgar' Bleimann wrote:
> And they do not intersect each other? That in fact would be stunning!

Alas! There is no collision control available. However, intersections 
are probably only visible to the really discerning eye ;-)

Thomas


Post a reply to this message

From: Thomas de Groot
Subject: Re: Proof of concept: The wind in the reeds
Date: 18 Sep 2014 03:34:11
Message: <541a8af3@news.povray.org>
On 18-9-2014 7:25, And wrote:
> Wow, like a painting.
>
> What are the povray objects you use?
>

Thanks. Mesh2 objects, modelled in Silo. This one still has a couple of 
small issues that need correction. When finished, I shall upload 
everything to p.b.s-f.

Thomas


Post a reply to this message

From: s day
Subject: Re: Proof of concept: The wind in the reeds
Date: 18 Sep 2014 04:10:00
Message: <web.541a9306efc7654234a6c6f50@news.povray.org>
Hi Thomas,

This is looking really great, I pobably am missing some step but how exactly can
you bend a mesh2 object in pov?

Thanks

Sean


Post a reply to this message

From: Thomas de Groot
Subject: Re: Proof of concept: The wind in the reeds
Date: 18 Sep 2014 07:27:15
Message: <541ac193$1@news.povray.org>
On 18-9-2014 10:08, s.day wrote:
> Hi Thomas,
>
> This is looking really great, I pobably am missing some step but how exactly can
> you bend a mesh2 object in pov?
>

I shall upload the model soon, when I have finished some corrections.

In the mean time, you need to build the model following inverse 
kinematic principles. This means that the model subdivided in discrete 
elements and articulated at their juncture, but not in a haphazardly 
way. Here follows the construction of the reed stalk as I use it. You 
can already study its inner workings:

#macro Reed(Bend)

//random rotation for the whole stalk:
#local Rot = RRand(-180, 180, R);

//construction of the Inverse kinematic stalk:
#local Bend1 = Bend+((2*Bend)/10);
#local Plume =
union {
   object {ReedMesh_03_ik_Reed01_plume_ material{Reed01_plume_} hollow 
translate -10.40*y rotate Rot*y rotate Bend1*x translate (10.40-10.18)*y }
   object {ReedMesh_03_ik_Reed01_11_  material{Reed01_11_} hollow 
translate -10.18*y rotate Rot*y}
}

#local Bend2 = Bend+(Bend/10);
#local Top =
union {
   object {Plume rotate Bend2*x translate (10.18-9.86)*y}
   object {ReedMesh_03_ik_Reed01_10_  material{Reed01_10_} hollow 
translate -9.86*y rotate Rot*y}
}

#local Stem9 =
union {
   object {Top rotate Bend*x translate (9.86-9.54)*y}
   object{ReedMesh_03_ik_Reed01_9_  material{Reed01_9_} hollow translate 
-9.54*y rotate Rot*y}
}

#local Bend = Bend-(Bend/20);
#local Stem8 =
union {
   object {Stem9 rotate Bend*x translate (9.54-9.165)*y}
   object{ReedMesh_03_ik_Reed01_8_  material{Reed01_8_} hollow translate 
-9.165*y rotate Rot*y}
}

#local Bend = Bend-(Bend/20);
#local Stem7 =
union {
   object {Stem8 rotate Bend*x translate (9.165-8.79)*y}
   object{ReedMesh_03_ik_Reed01_7_  material{Reed01_7_} hollow translate 
-8.79*y rotate Rot*y}
}

#local Bend = Bend-(Bend/20);
#local Stem6 =
union {
   object {Stem7 rotate Bend*x translate (8.79-7.72)*y}
   object{ReedMesh_03_ik_Reed01_6_  material{Reed01_6_} hollow translate 
-7.72*y rotate Rot*y}
}

#local Bend = Bend-(Bend/20);
#local Stem5 =
union {
   object {Stem6 rotate Bend*x translate (7.72-6.20)*y}
   object{ReedMesh_03_ik_Reed01_5_  material{Reed01_5_} hollow translate 
-6.20*y rotate Rot*y}
}

#local Bend = Bend-(Bend/20);
#local Stem4 =
union {
   object {Stem5 rotate Bend*x translate (6.20-4.65)*y}
   object{ReedMesh_03_ik_Reed01_4_  material{Reed01_4_} hollow translate 
-4.65*y rotate Rot*y}
}

#local Bend = Bend-(Bend/20);
#local Stem3 =
union {
   object {Stem4 rotate Bend*x translate (4.65-3.10)*y}
   object{ReedMesh_03_ik_Reed01_3_  material{Reed01_3_} hollow translate 
-3.10*y rotate Rot*y}
}

#local Bend = Bend-(Bend/20);
#local Stem2 =
union {
   object {Stem3 rotate Bend*x translate (3.10-1.55)*y}
   object{ReedMesh_03_ik_Reed01_2_  material{Reed01_2_} hollow translate 
-1.55*y rotate Rot*y}
}

#local Bend = Bend-(Bend/20);
#declare ReedMesh_03 =
union {
   object {Stem2 rotate Bend*x translate 1.55*y}
   object{ReedMesh_03_ik_Reed01_1_  material{Reed01_1_} hollow rotate Rot*y}
}

#end  //macro

As you can see, the construction starts at the top of the stalk and 
gradually incorporates adjacent elements until the base is reached. Note 
that /only/ rotations can be used as transformations inside the IK 
model. All other transformations must be applied to the /complete/ model 
or not at all. Note also that /all/ internal rotations of the model are 
applied *at the origin*.

Thomas


Post a reply to this message

From: s day
Subject: Re: Proof of concept: The wind in the reeds
Date: 18 Sep 2014 17:05:00
Message: <web.541b48eaefc7654234a6c6f50@news.povray.org>
Thomas de Groot <tho### [at] degrootorg> wrote:
> I shall upload the model soon, when I have finished some corrections.
>
> In the mean time, you need to build the model following inverse
> kinematic principles. This means that the model subdivided in discrete
> elements and articulated at their juncture, but not in a haphazardly
> way. Here follows the construction of the reed stalk as I use it. You
> can already study its inner workings:
>

Thanks Thomas,

I hadn't thought about having separate sections, I thought you were somehow
bending the acutal mesh (doh!).

Sean


Post a reply to this message

From: Thomas de Groot
Subject: Re: Proof of concept: The wind in the reeds
Date: 19 Sep 2014 08:19:18
Message: <541c1f46@news.povray.org>
I have attached my code and the used reed stalk, in p.b.s-f.

Explore and enjoy!

Thomas


Post a reply to this message


Attachments:
Download 'wind_pattern.png' (662 KB)

Preview of image 'wind_pattern.png'
wind_pattern.png


 

<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>

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