Announcement

Collapse
No announcement yet.

Serious issues with liquid animation - Phoenix 2.1

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Serious issues with liquid animation - Phoenix 2.1

    Hello all,

    For a project, we need to simulate a liquid spill (water and something like olive oil) on a sheet of paper.
    I took several screen captures to illustrate the many problems I have. I will attach the max scene in a reply - limited to 5 uploads per post.
    Btw, I use 3DSMax 2014 and one of the latest nightly builds of Phoenix FD.

    Issue nr 1 :
    When a glass filled with liquid is knocked off and falls on the ground, the liquid has a weird behaviour and disappears through the glass's bottom.
    Click image for larger version

Name:	Liquid spill 1a.jpg
Views:	1
Size:	127.5 KB
ID:	878806
    Click image for larger version

Name:	Liquid spill 2a.jpg
Views:	1
Size:	116.3 KB
ID:	878807

    Issue nr 2 :
    Now have a look at the grey plane at 45°, the liquid is supposed to flow over it, which it does but I have problems as soon as I set anything above 0 in the viscosity and in the surface tension parameters. The liquid then behaves weirdly. Water does have a certain surface tension which I would like to reproduce to some extent.

    For this simulation, I set both viscosity and surface tension to 0. This leads us to Issue 3, yay !

    Issue nr 3:
    The grey plane is supposed to be wet by the liquid and it's then animated as if you pull it out of the liquid. In the following screen captures, you'll see that the plane just goes through the liquid and comes out dry.
    Click image for larger version

Name:	Liquid spill 3.jpg
Views:	1
Size:	68.8 KB
ID:	878808
    Click image for larger version

Name:	Liquid spill 4a.jpg
Views:	1
Size:	118.1 KB
ID:	878809
    Click image for larger version

Name:	Liquid spill 5a.jpg
Views:	1
Size:	117.4 KB
ID:	878810

    I'd really appreciate some help !

  • #2
    Here's the max file.
    Attached Files

    Comment


    • #3
      The first issue is easy to handle, it's described here in the help.
      The wetting paper however is not a simple case. The first problem is that by default the geometry voxelization is set to inscribed mode, that means it must be at least 2 cells wide. But the bigger problem here is the fact that you need to move the liquid over the paper, this is the same case as the moving glass, and even if you succeed, it just will look not like wet paper. It's not just water over paper, the wet paper has completely different visual properties, at first place it's darker.
      My suggestion is to fake the wetting. Use the phoenix texture to export the liquid channel and use it to prepare good locking material for wet paper.
      ______________________________________________
      VRScans developer

      Comment


      • #4
        Hello Ivaylo,

        Thanks for your help. It seems I had not properly bound the simulator to the cylinder. Now that I did, the result remains unchanged.
        Is the binding param under Hierarchy > IK > Bind (I enabled position + rotation binding) or am I missing something ?


        I see your point for the wetting and you're right. Moreover, the paper would react differently if soaked, it would loose its rigidity for instance.

        In our case, the scenario is a bit different. The paper is not the average paper, it's got a strong coating so water doesn't penetrate the substrate (you'd have to wait a long while for that). I need the particles of water to remain on top of the sheet of paper. As rotation is applied onto the sheet, water falls down.

        I have two ideas as to what I should do :
        a. Create an invisible thicker box that is at least one cell thick in order to "transport" the particles and make them look as if they're on the sheet of paper
        or
        b. Create a second simulator the same size as the sheet of paper with Grid minus Y jammed and link it to the sheet of paper so that when they move, the liquid remains where it should be.

        What do you recommend ?

        Comment


        • #5
          It seems I had not properly bound the simulator to the cylinder. Now that I did, the result remains unchanged.
          there is no matter who is the parent, the point is to make the glass geometry not moving relatively to the grid in order to avoid the penetration in/through the walls
          there is one more option - your walls are too thin, remember they must be at least two cells wide. Increase the resolution or the gasses bottom.
          About the liquid pieces, now i see what you are trying to do. Sounds hard, because the transportation of the liquid pieces hits the same liquid-in-geometry problem, and here your second idea sounds better.
          You can use one technique that allows to transfer liquid from one simulator to another. First i have to say, when you have two simulators in one scene, beware of the interaction, by default phoenix uses everything in the scene, and this leads to confusing situations. I recommend to change the interaction mode to "include list", that means you have to specify explicitly every object that you wish to affect the simulation.
          So, create second simulator, and one liquid source. Put in the liquid source the first simulator as target object. Animate the discharge from 200 to 0 for the first 2 frames. Put the source into include list of the second simulator. Put the paper too. DO NOT put the first simulator, it must remain invisible for the second one. Set the simulation start two frames before the starto of the paper's movement.
          What is the idea? The first simulator is set to be a brush painting over the second simulator, thus making a copy of the liquid in the second simulator. Of course the original pieces of liquid will remain in the first simulator, but you can clear them later, there are many possible methods.
          ______________________________________________
          VRScans developer

          Comment


          • #6
            I see ! So the most important thing is to make the simulator move with the object so that from its standpoint, the moving object is still. Binding or linking, whatever the mean, this is critical to make Phoenix FD work. Thank you !

            From that grid perspective, I see why we need at least 2 cells wide objects for particle interaction. I could lower the cell size too, knowing it'd take more time to calculate.

            I tried doing as you said but the second simulator doesn't seem to pick up the particles, it seems to influence them and a small wave forms where the last part of the sheet lifts. I do not know if that's as a result of the first simulator or the second one. I included the file if you want to have a look at it.

            Do you have to "start" every simulator one after the other or when you hit "start" in a simulator, it'll start the others when needed too ?

            If all this works, I have another question. How do you make it so that the sheet of paper, when lifted, leaves a track in the water ? I wish that the lifted particles leave no particles in the first simulator where the sheet laid before...
            Attached Files
            Last edited by Antyler; 11-11-2013, 10:18 AM.

            Comment


            • #7
              Binding or linking, whatever the mean, this is critical to make Phoenix FD work. Thank you !
              Yes, for the cases when the liquid is carried by a geometry. For just disturbing the water you don't need to bind them, for example a car falling in a lake you can simulate directly.
              Do you have to "start" every simulator one after the other or when you hit "start" in a simulator, it'll start the others when needed too ?
              One after other. The second simulator needs already calculated liquid in the first one.
              If all this works, I have another question. How do you make it so that the sheet of paper, when lifted, leaves a track in the water ? I wish that the lifted particles leave no particles in the first simulator where the sheet stood before...
              Yes, this is a bit tricky. I suggest to make the following. Let say the second simulation starts at frame X. It needs two frames to transfer the liquid, and then it begins to move. So, create an animated source, that changes the discharge from zero to 100 at this frame, and set in the temperature channel zero. Phoenix uses the same channel for liquid that is used for temperature in the fire animations. This source will be able to clear the liquid. You have to put as target of this source some invisible for the simulator (the first one) geometry, that is copy of the paper. Why a copy? Because if you put the paper itself, the source will release air from the paper's surface, we do not need this we need the paper to work in brush mode, i.e. to replace the liquid with air in all the occupied cells. Phoenix does this when the target geometry is not reacting with the simulation, but we need to have interacting with the original sheet, so we have to make a second sheet that is not reacting to use it as brush.
              Unfortunately we do not have a liquid cleaner, and this tricky method have to be used.
              ______________________________________________
              VRScans developer

              Comment


              • #8
                I can't make the two simulators work though. I tried running the simulators one after the other but the particles stay in the first simulator, there is no replication. I think I followed your instructions but I may have made a mistake somewhere. Could you please have a look at the max file I attached and tell me what's wrong ?

                Interesting trick. I'll try it to clear the liquid, thanks.

                Comment


                • #9
                  ok, i will have a look tomorrow, today is too late here.
                  ______________________________________________
                  VRScans developer

                  Comment


                  • #10
                    The particles are now properly cloned and transfered to the second simulator. The problem was that the sheet of paper was too thin to hold particles so I jammed the grid at -y and adjusted it to the sheet of paper. The trick you specified for clearing liquid works like a charm too.

                    I learnt a great deal thanks to you Ivaylo.
                    I'll attach the scene to this post so that other beginners like me benefit from it.

                    Cheers.

                    Comment


                    • #11
                      well, congrats, because i tried to make your scene and got an epic fail, it's really hard
                      i even abandoned the idea to use two simulators, and moved to one. FT advection have better physical correctness and can relatively successful transport the liquid placed over the sheet, however i hit a bug that first have to be fixed to make possible the setup.
                      ______________________________________________
                      VRScans developer

                      Comment


                      • #12
                        The current solution is noticeably slower than using one simulator so I'll probably try that method too.
                        I'll do a render of the animation overnight and see if it looks believable 'cos I see some weird things in my viewport when I clear part of the liquid.
                        Last edited by Antyler; 13-11-2013, 01:33 AM.

                        Comment


                        • #13
                          here is the result after the bug fix. definitively when the paper is rotating the voxelisation is clearly visible, the solution with two simulators and liquid transfer must be better
                          Attached Files
                          ______________________________________________
                          VRScans developer

                          Comment


                          • #14
                            Ugh...my result is awful. You'll see in the video that the liquid is flickering. Have you seen that before ?
                            The way I set up the two simulators works partly. The particles are brushed to the 2nd simulator and I forgot to put the 2nd simulator's ground above the sheet of paper so the water just falls through it (or I could set a lower cell size). That aside, the water follows the inertia of the sheet too much, your example is better. Could you share your max file ? I'll install the latest nightly build.

                            I attached the video and the max file which I slightly modified, it is set to use Forward Transfer (Classic was set by default before) but I'm not sure if that gives a better result or not.

                            I'll try to create a single-simulator system and see if I get a similar result as yours.
                            Attached Files

                            Comment

                            Working...
                            X