Softimage Forum (Read Only)
Welcome to Autodesk’s Softimage Forums. Share your knowledge, ask questions, and explore popular Softimage topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

ICE Workshop: Cobwebs

38 REPLIES 38
Reply
Message 1 of 39
Anonymous
1549 Views, 38 Replies

ICE Workshop: Cobwebs

Hey all,

so this workshop is going to be split into three main stages:

1. create the main strands
2. create the secondary strands
3. add dynamics etc

For the first stage the goal is to choose a central position (center of the web) and shoot rays onto a surrounding surface. Afterwards strands should be created, which connect the hit location of the ray and the center of the web.

Wanted controls for the compound are:
a) number of the strands
b) center position
c) random angle for the strands
d) subdivision (as we want to deform the strands lateron)



Here's the scene I started with:

217.160.138.15/helge/ice/cob_web_start.scn

As usual: Ask your question in this thread, and feel free to comment or post ideas.

I'll try to answer question without presenting the final compound...

Good luck! 🙂
38 REPLIES 38
Message 21 of 39
Anonymous
in reply to: Anonymous

Heh, have to figure basics first before even trying to do anything natural.
Also, I might have had bit wrong approach previously. If I use one strand per segment instead of strand per entire circle, everything should be much simpler.


Yep. That's a better approach. It allows you to have per segment subdivision (for later deform) and also it makes it quite simple to create missing lines, by just deleting particles lateron.
Message 22 of 39
Anonymous
in reply to: Anonymous

by the way I would like to get this workflow to produce results similar to this:

www.flickr.com/photos/rosina/261261094/
Message 23 of 39
Anonymous
in reply to: Anonymous

here's another take on branching out one of the major diffuclties in this workshop (which is: putting a point on a strand)

217.160.138.15/helge/ice/position_on_strand.mov

and here's the basic scene for the mini-exercise
217.160.138.15/helge/ice/position_on_strand_start.scn

(without the compound in question 🙂 )
Message 24 of 39
Anonymous
in reply to: Anonymous

Another update

Revamped the thing and used strand per segment. Indeed it was awfully lot easier. Now I have settings for uniform and non uniform variance in ring density and distribution falloff for the randomness, random particle deletion and small occasional shifts in the lines so it breaks the continuity. Subdivisions were quite trivial to implement actually.

Also stored attach locations neatly. I'm all set for dynamics :).

Message 25 of 39
Anonymous
in reply to: Anonymous

Very Nice. But you are a pro, Haamu. Let's give the others some time before we dive into dynamics. 🙂
Message 26 of 39
Anonymous
in reply to: Anonymous

Hi,
today I managed to get the connection between the main strand working - at least in a basic fashion. I had to use a second ICE cloud or is it possible to do it all in one system?
I'm looking forward to suggestions how to improve my solution.

04148a081a2c734e3f8821cb04365cab.zip

Message 27 of 39
Anonymous
in reply to: Anonymous

It is possible to do it in one cloud, but I have them separated as well. It makes it a whole lot easier. Good progress, Corny.

Btw I recommend to have each segment of the cobweb as a separate particle.
Also Corny you might want to have the "ratio" be dependant on the length of the main strand, so that you create circular pattern vs. the absolute patterns you have right now.

I'll post some details on the further development sometime today, so that we can move into the field of deformation.
Message 28 of 39
Anonymous
in reply to: Anonymous

allright. so what I want to add is the gravity arch. basically every strandsegment will be pulled down by the gravity, based on the distance to the connection point.

this means we need to calculate a ratio along the strand, which is the max in the middle and min at the start and the end, and then use that to drive a deformation along the cobweb for every strand.

go go go! 🙂
Message 29 of 39
Anonymous
in reply to: Anonymous

This is a great exercise Helge, thanks for setting it up. I know it's a bit late to the party but here's where I am so far - lots more randomisation to add before even thinking about the dynamics/deformation..

Message 30 of 39
Anonymous
in reply to: Anonymous

This is a great exercise Helge, thanks for setting it up. I know it's a bit late to the party but here's where I am so far - lots more randomisation to add before even thinking about the dynamics/deformation..


Well I'll still say: "Welcome to the party!" 🙂

Looks good so far. As soon as you start randomization you might discover additional problems, so what I'd like to see additionally is the gravity "hanging" deform on the connecting segments.

cheers!
Message 31 of 39
Anonymous
in reply to: Anonymous

allright. so what I want to add is the gravity arch. basically every strandsegment will be pulled down by the gravity, based on the distance to the connection point.

this means we need to calculate a ratio along the strand, which is the max in the middle and min at the start and the end, and then use that to drive a deformation along the cobweb for every strand.

go go go! 🙂

Ah, but that's so boring, I want real dynamics :p.

Like so...
www.vimeo.com/2552475 (bit poor quality video)
Well yes, I had real kickstart for this since I made that basic hair simulator while back. The same setup worked real nicely for this ones too, and without the need for bend constraints it was much easier. Verlet simulation of course.

I already had almost all needed parts, but I also tried something new. Phil Taylor had this awesome method for doing the length constraint with just some dozen nodes and without using loops, and it still amuses me how much more complicated my own implementation was originally. The logic is about the same but uses only few calculations directly with arrays. I recreated it from scratch just to make sure I understood it right, and also included the particle itself in the constraint. Finally added constraints for strand tips and the center particles.
Message 32 of 39
Anonymous
in reply to: Anonymous

looks awesome. now we want to see it moving with the connecting segments in 🙂

anyways, I think we will keep it a little simpler for the workshop, as not everybody has done their own verlet integration. nice solution however. 🙂
Message 33 of 39
Anonymous
in reply to: Anonymous

Here's current progress with the 'gravity' effect:

www.exch.demon.co.uk/xsi/files/web_02.avi

It needs the TechSmith codec. Helge - you were right that randomisation introduces a whole host of new problems :-). Not sure that I've got the most appropriate 'connection' algorithm to link up the radial webs. Same for randomising the points along the main strands. Might be time for a rethink :-(.

Looking forward to seeing your final solution!
Message 34 of 39
Anonymous
in reply to: Anonymous

That looks really nice too.

My method to do that was to premake one array with needed distances and randomized each element a bit (the uniform variance), then it's given to each base point and converted to strand ratio values and again randomized (non uniform). Thought it was very clear way to do it.

Each base caches integer for itself and the "next" one, and later I clone the bases to make the rings (clones inherit all attributes). Each ring particle queries correct array entry from its parent and interpolates the strand for position. Same for strand, but use the "next". Right before interpolating the point, give random chance to shift the ratio slightly.

Here's my next step, shaken in a box.
www.vimeo.com/2558744
Same methods extended, although I did it in 2 branches to make it simpler. First base strands get simulated fully, as if there were no connecting strands, then the segments use them as frame for their own simulation. I think it's sufficient for now. It runs very nicely in real time.

I think I still want to add feature for the "support" strand that's in helge's example picture. Meaning the one that goes horizontally across the Y-shaped branch on top, where the base strands connect to.
Message 35 of 39
Anonymous
in reply to: Anonymous

My method to do that was to premake one array with needed distances and randomized each element a bit (the uniform variance), then it's given to each base point and converted to strand ratio values and again randomized (non uniform). Thought it was very clear way to do it.

Each base caches integer for itself and the "next" one, and later I clone the bases to make the rings (clones inherit all attributes). Each ring particle queries correct array entry from its parent and interpolates the strand for position. Same for strand, but use the "next". Right before interpolating the point, give random chance to shift the ratio slightly.



Thanks for the insight Haamu :-). That's a really clever way to do it....
Message 36 of 39
Anonymous
in reply to: Anonymous

Hi Helge.

i completed first stage... (started yesterday)
Attached my scene.

I´m trying to keep code clean, and simple.

🙂

15192586d3eccaed6d381fe35d46b1ae.zip

Message 37 of 39
Anonymous
in reply to: Anonymous

Just finished the final stage. Strands now hang from support line if the first ray misses.

I just learned a new trick to get all point locations in array using "id to location" and array of integers as id input. I've never thought of that before. Used that to make the web actually pull down the support with its weight, although the effect is so subtle in the ends that I don't think it was worth the trouble. That also forced me to snap the base strands on the support points insead of interpolating.

I also made a useful lowlevel math compound to get the shortest segment between 2 lines. It's in spawn->cast from null->strandcreationlogic, in case you're interested. I'll upload it to download section later.

Here's the final version.
www.vimeo.com/2576909

Scene in attachment. Might look messy inside, but should be stable to play with 🙂

c9e82c65587ceabb5d8a5e675b1aeec5.zip

Message 38 of 39
Anonymous
in reply to: Anonymous

Very nice Haamu, I'm so gonna dissect this scene
Message 39 of 39
Anonymous
in reply to: Anonymous

Really nice stuff there guys! I should try and have a go at this, bit busy this time of year 🙂

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report