Tsunami on bridge. Looking for suggestion on a 4 months WIP

Hi everyone. I am not entirely sure how to ask help for this. This is a work I’ve been doing for too long, about 4 months, and I have already lost track of what am I doing, why and how. This was supposed to take only 1 month but I refuse to give up or accept a crap result.

It has become VERY complicated, because I don’t know everything about blender and nothing about scripts. I guess it has come the time to ask for help. I will never finish it if it continues like this.

Well… what to say? I put together a compilation of some of the previews I made, I guess it will become self explanatory what I want (kind of):

(the first video is my current camera/animation, the second is an old test with cycles and the other another old test with the particles in the viewport)

It’s a bridge of my city https://www.google.com/search?q=jk%20bridge&um=1&ie=UTF-8&hl=en&tbm=isch&source=og&sa=N&tab=wi&authuser=0&ei=uG1cUMGaM4H68gTfwoHIDg&biw=1920&bih=915&sei=u21cUJvMK-L00gHJvoDADw
The idea to justify the wave is that a meteor will fall down on the lake. It is still to be made. It will be another scene before the wave. I guess it will be much easier to do, since it will be an aerial shot.

Since it is a lake, there should not be a lot of foam (not even that much I put). And the meteor will justify the water’s level being in the bridge’s feet. (an ocean tsunami would suck up the water and empty the beach before coming).

Since there is a limit here of 3 images per post, I will post the rest of the explanation in coming posts.

These 3 images are
background: a quick preview with the reference image (the final shot might not be that one)
comp: the composite result of the cycles render
diffcol: the diffuse color pass, i.e, the foam

I will also post the modifiers and the mesh system. In a short (there is a lot more) description, this is a mesh with more poligons close to the camera, with subdivision displacement from the baked ocean modifier, together with many “vertex weight proximity” and uv project in a correct sequence controlling the deform modifiers (like bend) and so on.

There is also a bridge serving as collision for many things, including a displacement on the mesh to simulate the water collision.

I am not sure what to explain, because there is a lot. I would bore you all and this might not be necessary for someone to give me ideas.

MY DIFFICULTIES:

Many, but I guess the biggest one is:
-DISPLACEMENT - I initially intended to do it on vray, but, on the time of my attempt, there was no support from vrayblender on the uv project modifier, essential to me. But vray has an amazing on render displacement system, that allows me to get incredible details without killing the memory or render times. So easy…
On cycles I have to do real mesh displacement. This is one freaking detailed displacement I need here, so I am having constant crashes and difficulties to manage the scene. I tried many ways to better control the poligons amount. The best one is the one I will show in the next posts. Is there some secret way I don’t know about?

-SHAPE/DYNAMIC OF THE WAVE - This took me months to create. I did a very complicated system of displacement/ bend/ vertex weight proximity, mix and edit/ lattices and so on. but it is very hard to control, specially bcause I need a big subdivision to see what is happening and all those modifiers make it very slow.
My dream was to replicate this guys workflow
http://florianwitzel.com/films/milk/
He does it through bending modifier and it’s very procedural. Very different from surfs up system, wich I tried in the beginning to replicate surf’s up method:


with path follow and blend shapes, since blender does not have a good nurbs system. But I did not like that method nor the result

-PARTICLE RENDER - How am I to render them well? I tested them on a still with some voxel tricks, but that won’t work with animation. Is there a way to use billions of particles? I have already fractioned the particles in many emitters, but that won’t be enough.

And… any idea anyone have. I will post more problems as I think of them, and I will also post my advances in this thing.

Following up, the other images in the next posts

Attachments




foamold - the first successful attempt to make the foam with voxels. But the simulation is very old and the wave was very different. There was just the emitter of the tip of the wave back then

mesh - a preview of the mesh and bridge involved in the render. The other layers are related to the particles or controllers (bend, lattice and so on)

modifiers - a glimpse of the modifiers in the rendered wave alone. Quite complicated to explain. If anyone feel this would help you understand the project, I will do my best to explain them all.

Basically, there are masks to help me see the mesh subdivided, uv projects before the bend and lattice modifiers (everything has to be dynamic here, since I had to change the mesh many times, I can’t just apply uv manually). then there are the proximity weights (dynamic as well), the displacements in x,y and z based on the ocean bake, some lattices, displacements and that is it.

More images to come

Attachments




old - the old wave (still done in vray with path follow instead of bend modifiers, kind of following surf’s up from dreamwork method, wich I droped later) with the old foam on it

reflect - the reflection (direct, indirect and color) pass from cycles

refract - the transmission pass from cycles. I don’t know what that white line is in the bottom. I want to correct it later.

Attachments




specular normal - I tried to create more specularity from the sun, since cycles did not give me much, and the reference picture has a lot. So I used the normal pass and gradients to do it.

sssinternal - a separated render from blender to simulate the scattering of the light inside the water, from algae and other things in it. This lake here has a lot of turbidity. But just the raylength node alone (I used it as well) would not work. The water don’t just ABSORB light, it REFLECTS it as well through its particles. It is a very noticeable effect and makes a lot of difference. But I am having trouble finding a way to do it (if cycles already had voxels…oh… my life would be so easier…)

Attachments



Maybe I should post it in the WIP forum?
Maybe this focused critiques is not ideal.

No, it’s just that you’ve overwhelmed us … all in one day. A lot to assimilate here. Might take a few days to get good responses to this.

Ok, thanks. Maybe I should have called for help earlier. Now there is too much to explain and I don’t think anyone will be able to follow everything…

I will wait though.

I think that developer should look into this and have it add to ocean simulation as a feature like fire and smoke in chicken fry project.

Well… I don’t really see how could the developers help in something like this.
It would be a very complex thing that would fit very few users needs and one way of making it might not work for another (like surf’s up method did not work for me)

No help so far, but I keep going.

I have a question I hope someone can help. I am trying to make the simulation of the foam, wich will be very big. Many emitters with millions of particles each. For that I need disk cache. For some reason, nothing is showing in the viewport.

When I simulate without disk cache, everything works fine, though limited by memory. When I turn on disk cache, either compressed or not, it DOES simulate. It DOES creates big files of the frames, but it does not shows anything.

When I set it as “external” it does say to have found 4 million particles, but does not shows anything.

When creating a test file, it seems to work perfectly with few particles. With more, 1 million, it works, but in a very strange way. It loads the many particles, but then they die as I play the animation

Anyone has any idea?

Well I think you’re pushing blender to its limits. I’d say wait. Cycles is going to have sss implemented which looks that it could help you with some effects in the water. Also one day cycles will have render time displacement. It all looks quite complicated. Maybe you should make something smaller to test your workflow. Just a thought - couldn’t it be done with water simulation?

But the particle problem has no relation to cycles. As for the shader… I am kind of happy with it right now. I wish it could be better and I welcome suggestions, but it is not a big problem anymore.

About fluid simulations, I knew it could not be done this way, but in the very beginning I did several simulations just to be sure.

I got some cool results, but nothing close to what I need

wow. cant help with the particles issue but tagging this to track as this really looks good so far

I was going to post asking another question, but I solved it myself while preparing the render (curious, considering that I spent many hours before trying the same thing). But since this may be a great solution, I will post it anyway.

I said I was happy about the shader, but I had an idea of using the volumetrics in blender internal instead of the subsurface pass. It does work great by it self, as you can see in the volume.jpg render. But when I duplicate the mesh and displace it a little to use it as the refraction of water, all light information and shadows are gone, as you can see in the volumerefracttraceable.jpg.

The solution was to simply disable the “treaceable” option. I don’t know why. You can see the result in volumerefract.jpg.

I haven’t tested it with the real render. Let’see if it works later.

Attachments




Can you post some images showing how you rigged the wave and your particle system settings? It’s difficult to give feedback without knowing what you’re working with.
Your dedication is admirable, and it looks like this will be a nice piece.

Regards,
Voo

Wow. Very nicely implemented. The main part to work on seems to be when the wave hits level surface again; it just kind of sinks and we see masses of overlap. In reality there would be a lot of particle spray at this splashpoint which would hide the akward surface interaction. What you have here is a very big / slow mo wave, so when it collapses you could have it suddenly speed up and then explode with a white out of spray. Even fake water on the lens with some camera shake if you must.

A very nicely done effect.

@voodoc

And its difficult for me to show what I am doing. It is a little too complex right now.

Is there something specific you want to know?

The rig… lets see if I can explain

First, I tried MANY ways of doing it. Using blend shapes, path follow, simulations and so on.

I found out I need the rig to be mesh independent. Meaning that I could change the mesh (specially because I need a HD with level of detail relative to the camera, so the higher resolution part must move if the camera move) but the animation would not change. That would also allow me to have different meshes for the emitters and coliders.

So, as you can see in my modifiers, there are a lot of “vertex weight proximity” and vertex weight mix to control dynamically the influences (thanks the gods for this, now if I could just create vertex groups WITHOUT having to manually assign them…)

They control all modifiers. Including the displacement from the bake of the ocean modifier (displacing just the center/wave), a bend modifier to make the wave… bend and… that´s most of all. There are the displacements from the baked sim and there is the bending. All rest is optional (for instance, there is a displacement with a weight proximity to interact with the bridge to simulate water displacement from the impact).

Oh, there is also a compression of the mesh in the center (the wave) by a lattice. The bending is also applied trough another lattice (the lattice is the one suffering the bend, since, unfortunately, if I applied the bend to the mesh, it would change completely if I changed the shape of the object).

Then there are some drivers to control some of the modifiers from another object. That way, for instance, if I change the bending, it will happen in all emitters and colliders.

Now… the particle systems in themselves have nothing special. Just normal. But the emitters have all sorts of trickery to react and recocgnize collisions with the bridge. This… god… this is complicated. If you want to know about them I will explain. For now I won´t. It would make the post too big and I doubt anyone would read it.

Long story short, I kind of solved the emitters (the meshes emitting, specifically). They are kind of like I want. My problem now is with the particle systems. I need them to be BIG. Many millions (billions if I can) particles. I need the illusion of foam and that is hard.
But the cache system is not playing well. And I think I will have to divide this in many emiters. Right now I have 4 and I think I will have to save one file for each, since the cache is not working.
-One for the top (I called it crista)
-One for the splash in the water
-One for the splash in the base of the bridge
-One for the splashes of the collision on the bridge elsewhere.

And… I don´t know what to say. I hope you have some specific questions.

Yup, that is my current headache.
I am slowly working on the 4 emitters to get them working kind of like I want, even if with fewer particles.

After that I will find some way to render them with more.
I hope…

Hi Guismo,

I can bake and display 1 billion particles without any issues (I haven’t tried more), so perhaps the issue is hardware related…

I will have time to look into this during the weekend, but I am currently finishing up two client projects so I can’t spend time on this tonight. On a side note, are you using the algorithms described by Tessendorf?

Regards,
Voo

You mean the ocean modifier? I am using the baked textures from it, with displacements in x, y and z controlled by 3 modifiers.

As far as I know, I could not use the modifier itself.

1 billion particles? But do you mean the total on viewport or the expected number? I mean, you set an expected number but depending on your emitter and textures of density and time, you might get a much smaller number in the viewport.

Using cache disk alone I am getting close to the limit of memory I have in the main machine, 12 giga. That is a problema I can not solve right now, because it uses ecc memory and I can’t get more.