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

Yea it’s baking to disk with all particles displayed…I’ve only got 16g on this machine and it takes 20 sec or so to begin, but its baking…slowly. As for the Tessendorf algorithms, I haven’t looked too closely but it seems like an efficient way to control the resolution of the waves…I will check it out tomorrow though, I’ve been up all night :confused:

Regards,
Voo

How are you going in the process of creating the disk cache?
Can you move the files between folders and it would still be visible in the viewport when you reloaded?

As for the ocean modifier, it would be my best choice if there was some way of creating vertex groups on the fly, like 3ds max does. But blender painfully requires me to assign some value to all vertex manually in edit mode. Only then I can control them dinamically with vertex weigh proximity.

The ocean modifier would throw away the vertex groups previously created. Like many other modifiers do, like remesh, decimator and so on.

And how do you render this many particles?

Have you any render I could see?

I’m using 25+gigs on an SSD as virtual memory. If you cant get any more of that ECC memory, virtual memory might be your best option. I am using a cache step of 1 and no compression. I just maxed out all of my processors at 4.5ghz, was bleeding about 5 gigs into virtual memory, and it took about a minute to render 1 frame with 100mil visible, I am rendering 1bil now and I will do some other tests and post them.

Here is the rendering of 100mil. I will set up a more illustrative example for the following test renders, but I wanted to see how my system resources held up.


To be perfectly honest, this setup seems to be overkill for what you are doing. I haven’t spent much time reviewing the code behind the particle system in blender, but as you know they are very taxing systems. I use similar (albeit more complex) Verlet physics/particle systems in real-time applications that I make. Whenever possible, I minimize the use of particles and only use them as references/controllers for a much larger set of vectors. I would imagine that the “child” particle system in blender act in the same manner as this.

I will run a couple of tests and post the results/renders.

Also, I am able to reload old cache files by selecting External then selecting the cache folder. A small note under the filepath confirms the load and says “1000000000 points found!” and the points are visible in the viewport. I know that doesn’t help, but I will try to see what’s happening.

“To be perfectly honest, this setup seems to be overkill for what you are doing.”
What do you mean? The wave rig or particles or emitters?

You rendered them as halos right? but I need to have shadows and shading.
The best solution I found was using volume shading with noise in its properties. As you can see in this image. They work great, having shadows and good shading, but they won´t work well in the animation because of the nature of the procedural noise.

With that, I don´t need so many particles. I guess I used some 10 million. But if I render with particles themselves, I need a LOT. Probably much more then some billions because of how close the camera is to the foam.

How would you render that? I could not find some way for halos to work. Anything else except volumes becomes impossible in very big quantities.

The child option is one choice… but not a good one. Each particle will simply control “neighbours”. But I have to test it more throughly. And I will.

The cache system is working now. I don´t know why it was not working but one of the reasons was using cache steps bigger then 1. But still, I had to delete them and redo to make them… kind of… work.
Somethings misteriously stopped working, like the texture I was using for density. Now it only work if I use lifetime. Sometimes this happens and I don´t know why. Some textures simply stop affecting the simulation out of the blue, with no changes.

And you seem to know how to code. I know nothing, not even scripting.

Attachments


Hi Guismo,

I was referring to the particle system.

If I knew what you were trying to achieve with this project and had more information outlining the parameters of the final product it would be easier to make some suggestions.

If you are going for scientific accuracy (which seems unlikely) then I would recommend strict adherence to the proven algorithms. If you are going for realism, then there are ways of optimizing (cheating) to get the desired results. You don’t need to make foam…you need to make the effect of foam. There are a lot of things to take advantage of here…motion blur, ppi, etc… I just need to know where you’re going with the project to give you some ideas.

You were probably headed in the right direction with your voxel/volume rendering, but I don’t have any experience with those. I know it is a very efficient way of rendering, but I also know there are some major drawbacks to the method. Perhaps a better description of your goals would get you some other people’s ideas on this…

Here is a slightly better render with 100 million particles…as you can see, the vast majority of them have been occluded by other particles and offer an opportunity to cheat :slight_smile: My apologies if I have been less than helpful, I haven’t gotten much sleep this week.


Regards,
Voo

I am going for disaster movie. something like this

I wish to be as accurate as possible, but ignoring what might make the work impossible, like the correct movement of the wave, for instance. (I did what I could, but this is where most of the months were spent. I am not trying any harder for that or the work will never be finished)

The difference is that, in this case, the wave will be generated by a falling meteor.
I am planning 3 or 4 shots. One very calm from a pier, seeing the meteor fall, another aerial, seeing the impact, this shot and maybe some last destruction results…

The other shots are very simple compared to this.

How do you propose I should do this? I know I don’t have to do real floam, but all possible sollutions failed me (and I tried many)
I tried facing particles textures of many particles, they would not have shading and occlusion and shadow or they would do it in strange ways, and this is slow or just crashed with too many

I tried an object with many cubes, also very slow and crashing even more.

I tried halos, they would not have shadow or shading, and I need those on the bridge. But they are very fast and I can render a huge amount of them.

Volume by itself did not work well. But when I created a noise field in its properties, it became very good. But the noise work like a displacement procedural. It will act strangely in motion.

As for your render, that is very good. How did you render it? Are those meshes?
There is just that I would need a LOT more then that. Compare it to the foam I showed previously. That amount look like a little part of that big foam.

But anyway your idea would be to make just a "shell’ of particles with an object inside them? Is it how you did it?

That seems like good idea, but I don’t see how I could make this mesh dinamically in the wave.

But it is something to think about… there might be some way to use this…

And you are being very helpful. Thanks for your time

For that rendering I instanced a triangle for every particle. Maybe a combination of a few different systems would produce the best results. From watching that video, my first instinct is to break it into three parts: a smoke system and two particle systems.

The smoke would simulate the gas cloud that is generated right at impact.
One particle system for the droplets that quickly launch vertically and diagonally, then drop due to gravity.
The other particle system for the more horizontal droplets that seem to just dissipate into gas.

I think the smoke system would allow you to use a simpler particle system, and if the motion of the particles is right, motion blur can make up for some lack of detail. I will put together one of these three part systems to see how it works…I’ve been coding a highly modified physics-based system the past few months, so its nice to get back to Blender for a bit and see the systems they use :wink:

While researching Blender’s smoke system, I came across this description of wavelets. This might be an excellent way of adding in the particle detail without eating too many system resources:
http://www.cs.cornell.edu/~tedkim/wturb/wavelet_turbulence.pdf

Regards,
Voo

I created a large answer and it simply vanished…

Let me try again.

The smoke was the first thing I tried many months ago. Both in blender and phoenix fd on max. I don’t remember why but it did not even get close to what I wanted.
I should try again. But I am finishing the particles dynamics in my 4 emitters and in a few days I will begin testing the render. If that work, I won’t need other things (though I think I might add some smoke sim just for richness sake). If they don’t work, I will have to start the smoke sim from the beginning. I hope I don’t have to.

The 2 emitters you mention I am not sure I understood. But is it not close to my 4 emitters system?

As for the wavelets, in my past experiences,it did put a lot of strain in the simulation but never got to good results, so I used to disable it. But, again, this was a while ago. I must test it again.

here is a very rough mix of the splashes previews (I made many mistakes, like selecting one of them). I am not even sure if it is comprehensible. I will work some more on it until tomorrow of after tomorrow, trying to make it more like the footages I have. But the way it is I guess I could start the render tests.

But it is good to be careful. So… any critics?

I want to get the dynamics better, but not if I will have to spend another month fixing it.
There are things, like the wave dynamic and time, that I don’t think I will change. That could destroy all the particle dynamics

That is looking great, especially the first 4-4.5 seconds where particle system settings are really dialed in. Having one of the systems selected actually helps me see a little more of what’s happening. What are the specifics of the particle systems here? You mentioned 4 particle systems, and I think I can see where each one takes effect, but how many particles are you using in this video, and did you use any child particles?

I made a system yesterday and rendered a 30second animation…unfortunately I had to leave town for work on short notice and forgot to bring the files >.< I used a particle system of 1 million particles and 100 child particles and tested different child radius values. The effect was convincing and took far less time to cache. With the right balance between the child radius and quantity of child particles, the lack of collision detection isn’t an issue and it adds a massive amount of detail to the rendering. While this wouldn’t work well for simulating solid objects, I think it’s perfectly suited for a water simulation.

Also don’t forget that you can always add in some more particle animations later on while you are compositing if it doesn’t turn out exactly how you want.

Regards,
Voo

I tested it with child particles, instancing cubes, and accidentally did it with the wave itself. And it rendered!

50 minutes for that.

I will test with more particles without child. I am impressed that I can really render them, but I don’t know if I can use it. First, I will need a lot more particles. And they will have to have transparency controlled by age.

This will make everything a LOT more stressfull to render.

Attachments


This will make everything a LOT more stressfull to render.

Yes, but it is very impressive. I hate rendering on my old computer. My last major project took a whole 24 hours to render a still image (there was a lot of mesh particles as well). It certainly sucked, but if the result is rewarding it is worth it IMO.

Try instancing a triangular plane instead of a cube to cut down on render times. At that scale you shouldn’t notice a difference, but if you really want them to have depth, I would use a tetrahedron (triangular pyramid).

I really think the quantity of particles shown in that image is sufficient. A still frame rendering isn’t a great representation of how the animation will look. Unless you are planning on showing it in slow motion, the movement of the particles and motion blur will make it appear very different. It’s really looking great though, I can’t wait to see it in motion!

If you need any help with anything let me know,
Voo

Excellent posts, guismo! Very promising!

Could you summarize the suggestions or features you need to finish this shot in a well-organized list? It will be a good reference for developers, if a certain necessary feature has not been introduced into the lastest build yet.

@jonathan L
the problem is that I have to do an animation of that. I can’t in the universe take 1 day for each frame.
The way it is I am already thinking that I will have to pay a renderfarm… IF I there is a renderfarm that can take the many gigas of particles I have

@voodoc the problem with that is that I lose shading. Right now, they are cubes with smooth normal. Meaning that all of them see the sun light. Triangles or tetrahedron would make it look a lot worse, that could only be compensated with a bigger number of instances. In my tests, there is barely any difference in render efficiency with WHAT I am instancing. The problem is how MANY instances there are.

But I will test it further too.

Ow, and I need a good still. That is what would justify the time I am spending in the company I work for with this. They don’t do animations.
But for the still, I may use the volume, that gets much better then anything I can do with particles alone.
For now, I am testing.
Just don’t know how I will test the animation. It will take a while to render tests

@georg
Thanks. Do you think they would hear? I have things I think are VERY important. If this projects help me get heard, by itself it would be worthy.
I have many requests, right now, here are the 2 most important ones I can remember (besides many problems of the particle system they are very aware of, or things very difficult to do, like on render displacement) :

*DYNAMIC VERTEX GROUP CREATION - This may be the most important thing. There are many things you just can’t do without it, while the other problems you can have a workaround.
Right now, if I want to create a “vertex weight proximity” controlled by an outside object, for instance, I have to enter edit mode and MANUALLY assign some value (say, 0,6, it won’t matter much, because the control will be dynamic with the proximity), and only then the modifier can influence the vertex group. That limits a lot this otherwise great modifier. There are many modifiers that destroy the vertex group information (ocean, decimator, remesh, fluid simulator, etc), but there is no reason why they should not be able to be dynamically recreated after them. We can modify the vertex group in any time now, why not modify the values from 0 to something? My suggestion would be a new modifier “CREATE VERTEX GROUP MODIFIER”, for instance. With it, you could assign a value to all vertex in the object, that would be later controlled by the other modifiers.
This would allow me to do so much more, so easily… If you want, I can name a few hundred great functions it could have.

*INSTANCING MODIFIERS - The way it is now, I have to create drivers if I want to share a value betwen modifiers of many objects. A node system would be ideal, but if they could just be instanced, like in 3ds max it would be such a BIIIIG HELP. I can stress how easier my life would be.
I understand that many modifiers depends on the object or the order of modifiers, but maybe blender could auto detect what modifiers we KNOW have no need for order of object specifics. Like the subdivision surface. Imagine how wonderfull would it be to be able to control the subdivision of a number of objects in your scene, all in the same time, without drivers, simply instancing the modifiers? Like the “ctrl L”, but they would be really linked.
I mean, come on, we can have the mesh linked (change one, change the other), the material linked (change one, change the other), why not the modifiers? Why can’t I change one and change other?

This is the attempt with children particles. It does not work like I wanted. It may work, but I still have to see how.

It looks really nice now. Try to check this. http://www.itsartmag.com/features/making-a-breaking-wave-in-naiad/#.UHRuKUbh72w although it’s not blender maybe you can pick something from that.

Looks like those child particles need to explode more. Perhaps you could hide some dynamite (force) at the wave contact points? Also, for a CPU / RAM intensive shot like this, are you trying separate passes and comping them together?