Jump to content

Sea anemones


Recommended Posts

hi,

I try to do a field of sea anemones. I use a wire capture then wire deform to animate the anemon. I want to know if there are a better way to do that (like shave and haircut geometry instancer or other ...). The ultimate goal is trying to render at least 5000-10000 sea anemons

here my current workflow

Thank you,

Papi

Link to comment
Share on other sites

Actually, doing this example scene a very interesting problem has turned up!

How can we prevent intersecting geometry?

Here is a simple idea, and I hope that somebody will tell me how this could be modified to make it faster or better.

We can turn objects into volumes and use them to drive a displacement. See attached image and file.

The main problem with this, it appears, is getting the correct strength of displacement.

I thought that the Laplacian could be useful, but I seem to confuse it with Divergence. Can anybody explain to me exactly what it does? My idea is to measure the density of the field, if it is positive or negative, and what direction (ideally!) it flows and how strongly, and then that could be used as a displacement scale.

untitled.hip

post-4013-130266592167_thumb.jpg

Edited by Macha
Link to comment
Share on other sites

using vopsop and lines creates the movement that you want, but the main problem is the way you wanna render it.

If you use polywire sop, with 5000-10000 sea anemones, I'm not sure if your machine can handle it. but maybe it can, I did the same thing, but not with that many, and it's still slow!

Link to comment
Share on other sites

Maybe I misread the above numbers, but I rendered these 7000 "anemones" in less than 2 minutes, with DOF.

That doesn't seem too bad?

It actually looks good, how did you define the thickness of your geometry? how did u turn the lines to geometry? I suppose you're not using the polywire sop.

Edited by ehsan parizi
Link to comment
Share on other sites

Depth-of-Field, so that not all of the image is in focus.

You can do it with a Polywire SOP, you just need to create a "width" point attribute beforehand ($BBY?),

and define the Wire Radius as $WIDTH.

Link to comment
Share on other sites

Depth-of-Field, so that not all of the image is in focus.

You can do it with a Polywire SOP, you just need to create a "width" point attribute beforehand ($BBY?),

and define the Wire Radius as $WIDTH.

oh! I thought he's talking about a new feature in hou.

anyway, the problem with polywire is that it makes the scene pretty heavy! specially if you want a smooth geometry, I have a similar scene, and even with roping out the geo., it's still very slow!

Link to comment
Share on other sites

hi,

Thank for yours replies, I did a rendering test with 10 000 sea anemones in fullHD sample 6x6, dof, subsurface, and area light (shadow map 1024), It took 30 min/frame.

I change the way to generate geometry by using a foreach node. The rop baking geometry took 30s/frame and 65mo/frame on dd.

With this method i can't use custom geometry unlike before, but is more stable and fast.

As you said Macha,it still remains the problem of collisions, I try to do a dop wire simulation by passing width attribute of anemon into the dop but I still can not get a good simulation and it tends to "explode".

Macha how you create yours geometries ? with Polywire SOP as say Eshan

post-3679-130276665203_thumb.jpg

anemone_v03.hip

thank you,

Thomas

Edited by papicrunch
Link to comment
Share on other sites

Thomas, I only had a quick glance at that file but a few things come to mind.

You probably don't need that foreach. I'm pretty sure you can skin (or at least polywire) all in one go. In fact, since you turn it into subdivided polygons anyway I'd think polywire may just be fine. Ramp the uv's or use a chop to get shape.

About the intersections, here is one idea: Rather than apply the motion before you skin it you could do it afterwards via a vopsop. If the frequency of the noise is big enough then close parts should move in unison. To get better control over the motion you could probably animate the wires first and then transfer their velocities to a volume and use that to drive the displacement. With a bit of work and some extra ideas I think this could be done nicely and efficently. You could roughly space the scatter points with their individual widths to start with. Maybe raysop and attributetransfer (P) could also be useful here to avoid or correct intersections.

And about the render, 30 mins does definitely sound way way too long for this. I haven't looked at your render setup yet but I'm positive that could be optimized.

Edited by Macha
Link to comment
Share on other sites

it seems like an instancing system would be good here, you could then do the wire simulation/animation and just interpolate the values for each tendril at render time / similar to a fur system i imagine, too bad we cant pull instance point attributes in sops

Edited by ikarus
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...