Announcement

Collapse
No announcement yet.

Physical Water Surface

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

  • replied
    I have been providing the documentation for Physical Water Surface on a page in the Epic Wiki. Today the Epic Wiki was disabled. I will need a few days to figure out a new way how to distribute my documentation. In the meantime, an archived version of the wiki page is available at archive.org.

    Leave a comment:


  • replied
    Originally posted by iPX Co Ltd View Post
    In our current project, we are trying to move a ship with a set amount of force in a way that represents reality as closely as possible. For this we are using values for LinearDamping, AngularDamping, DragMultiplier, FloatFactor, etc. that are slightly below the defaults.

    However, when running the same project on mulitple PCs the behavior of the ship differs wildly between systems. This is despite each computer running the same project files on the same OS with the same version of UE4 (4.21.2). (The hardware is similar between PCs, but not identical)

    To be more specific, for example: A simulation is set up on System A and runs successfully in a realistic manner. When that simulation and its parameters are moved to System B, the simulation results are so completely different that the two results can hardly be compared (with the bow of the ship flying off the surface and swinging like a pendulum in one example).


    When using this plugin, are there any effects which are affected by the system hardware that could result in what I have described above? Is there anyway to mitigate these problems and create a simulation project that will produce the same results regardless of hardware (within obvious limits)?
    My first guess would be that the result of the buoyancy physics simulation depends on the framerate (which is slightly different on the two systems), which could cause your issue. This is a know effect, see this article that also provides a solution for framerate independent physics. See also the documentation about physics substepping. My first recommendation is that you try to achieve framerate independent physics by following the advice in this article.

    You should also be aware of the N Points Per Frame and N Frames Pause parameters of the Buoyancy Blueprint. These improve the CPU performance by reducing the number of frames that update the Water Depth for each Point. However if these two settings are the same on both systems, this should not result in the observed behavior.

    Does your application require that a real-time simulation of buoyancy is performed? Would it be an option to prerecord the motion of the floating ship? The water motion in Physical Water Surface is always exactly the same when the game is started (it just depends on the game time). So if the simulation is always the same this would be an elegant solution.

    Leave a comment:


  • replied
    In our current project, we are trying to move a ship with a set amount of force in a way that represents reality as closely as possible. For this we are using values for LinearDamping, AngularDamping, DragMultiplier, FloatFactor, etc. that are slightly below the defaults.

    However, when running the same project on mulitple PCs the behavior of the ship differs wildly between systems. This is despite each computer running the same project files on the same OS with the same version of UE4 (4.21.2). (The hardware is similar between PCs, but not identical)

    To be more specific, for example: A simulation is set up on System A and runs successfully in a realistic manner. When that simulation and its parameters are moved to System B, the simulation results are so completely different that the two results can hardly be compared (with the bow of the ship flying off the surface and swinging like a pendulum in one example).


    When using this plugin, are there any effects which are affected by the system hardware that could result in what I have described above? Is there anyway to mitigate these problems and create a simulation project that will produce the same results regardless of hardware (within obvious limits)?

    Leave a comment:


  • replied
    Originally posted by Theokoles View Post

    It is a known issue that this artifact appears with Raytracing. I will investigate if I can make Physical Water Surface work with Raytracing.
    I've tried to replicate this problem, but I couldn't. Maybe I couldn't see this artifact because my GPU is too old and doesn't support raytracing (I have a GTX 980 Ti).
    Could you please let me know exactly which steps you made in the engine, then I'll try to reproduce them. You're welcome to contact me at therealtheokoles@gmail.com

    Leave a comment:


  • replied
    Originally posted by Zipker View Post

    Thanks, Theo! Your advice was very helpful!
    I decided my issue in this way:
    I animated Time in GerstnerWaveCum via Scalar Parameter in sequencer and than record movement of boat via Take Recorder in run-time. This setup allowed control and observe movement of the boat in the editor(not in simulation). Also this is useful for camera animation for previs.

    But I have one more question:
    when I ran my project with RTX, waves have strange noise mask effect . I think it happens inside "WaterMotion" node, but I don't know how can I fix it.
    Could you tell me please, is it possible to fix this noise on the water if RTX on?
    I use UE4_4.24.3
    Click image for larger version Name:	Annotation-20200312-001159.png Views:	0 Size:	288.2 KB ID:	1731746
    It is a known issue that this artifact appears with Raytracing. I will investigate if I can make Physical Water Surface work with Raytracing.

    Leave a comment:


  • replied
    Originally posted by Theokoles View Post

    In my experience, the wave motion is exactly the same each time the game is started. I've noticed this when I produced the videos of Physical Water Surface for my YouTube channel.
    The explanation is this: The wave motion depends on the Game Time. The Game Time starts always with the same value when the game is started.
    Please try this (with an unmodified version of Physical Water Surface): Load the DemoMap Level. Click "Play" to start the game and observe the motion of the boat, then stop the game after a few seconds. Then start the game again and observe again the motion of the boat. You will see that the motion is exactly the same.
    So I think you don't need to do anything, the waves are already the same each time the game is started.
    Thanks, Theo! Your advice was very helpful!
    I decided my issue in this way:
    I animated Time in GerstnerWaveCum via Scalar Parameter in sequencer and than record movement of boat via Take Recorder in run-time. This setup allowed control and observe movement of the boat in the editor(not in simulation). Also this is useful for camera animation for previs.

    But I have one more question:
    when I ran my project with RTX, waves have strange noise mask effect . I think it happens inside "WaterMotion" node, but I don't know how can I fix it.
    Could you tell me please, is it possible to fix this noise on the water if RTX on?
    I use UE4_4.24.3
    Click image for larger version  Name:	Annotation-20200312-001159.png Views:	0 Size:	288.2 KB ID:	1731746
    Last edited by Zipker; 03-11-2020, 05:46 PM.

    Leave a comment:


  • replied
    Originally posted by Zipker View Post
    Hi,
    Could you help me please? I'm making a previs and want to animate waves via sequencer, because I need to have similar waves each time when I start the play. This is necessary in order to record some cameras from boat, for example.

    I already tried to replace node "Time" with Scalar Parameter in GerstnerWaveCum. And when I did it - waves really changed via sequencer, but buoyancy of the boat controlled via second invisible wave.

    How can I animate waves which include buoyancy effect via sequencer?
    In my experience, the wave motion is exactly the same each time the game is started. I've noticed this when I produced the videos of Physical Water Surface for my YouTube channel.
    The explanation is this: The wave motion depends on the Game Time. The Game Time starts always with the same value when the game is started.
    Please try this (with an unmodified version of Physical Water Surface): Load the DemoMap Level. Click "Play" to start the game and observe the motion of the boat, then stop the game after a few seconds. Then start the game again and observe again the motion of the boat. You will see that the motion is exactly the same.
    So I think you don't need to do anything, the waves are already the same each time the game is started.

    Leave a comment:


  • replied
    Hi,
    Could you help me please? I'm making a previs and want to animate waves via sequencer, because I need to have similar waves each time when I start the play. This is necessary in order to record some cameras from boat, for example.

    I already tried to replace node "Time" with Scalar Parameter in GerstnerWaveCum. And when I did it - waves really changed via sequencer, but buoyancy of the boat controlled via second invisible wave.

    How can I animate waves which include buoyancy effect via sequencer?

    Leave a comment:


  • replied
    Check out these videos by Scorpion Venom Studio Games about using Physical Water Surface!

    Note: During most of these videos the water looks a bit strange. As far as I can tell, this happens because two water planes exist in the level at the same time. At some point in both videos the additional water plane is deleted, making the water surface appear normal again.




    Leave a comment:


  • replied
    Originally posted by Theokoles View Post

    With your source code build, please open each blueprint and click compile to check if any error or warning messages appear. Please also open the water material to see if there are any warning messages when you click apply. If there are no warning messages, then please click build in the editor and try again.

    If the problem persists, please send me the log from building from source and the Output Log from running the game (after trying to use Buoyancy) as text files via email to therealtheokoles@gmail.com.
    So... I accidentally broke the for each loop node.
    Sorry, Theo. Thank you for all your help. This is a wonderful plugin.

    Leave a comment:


  • replied
    Originally posted by Tycox94 View Post

    Hey Theo, I'm not see anything. Only the Physical Water Surface plugin is installed in this game. I'm currently loading the "SteerableBoat" map. When I click to play the boat falls through the map. No changes were made to this project at all.

    With your source code build, please open each blueprint and click compile to check if any error or warning messages appear. Please also open the water material to see if there are any warning messages when you click apply. If there are no warning messages, then please click build in the editor and try again.

    If the problem persists, please send me the log from building from source and the Output Log from running the game (after trying to use Buoyancy) as text files via email to therealtheokoles@gmail.com.

    Leave a comment:


  • replied
    Originally posted by Theokoles View Post

    Do you get any error or warning messages during the build process or when you try to use Physical Water Surface with the engine source build?
    Hey Theo, I'm not see anything. Only the Physical Water Surface plugin is installed in this game. I'm currently loading the "SteerableBoat" map. When I click to play the boat falls through the map. No changes were made to this project at all.

    Leave a comment:


  • replied
    Originally posted by Tycox94 View Post

    Yes, Physical Water Surface works great with the launcher engine version. I have networking plugins that require the source engine build, so I need to get Physical Water Surface working on the source build.
    Do you get any error or warning messages during the build process or when you try to use Physical Water Surface with the engine source build?

    Leave a comment:


  • replied
    Originally posted by Theokoles View Post

    Did you try to use Physical Water Surface with the engine version from the launcher? Did it work?
    Yes, Physical Water Surface works great with the launcher engine version. I have networking plugins that require the source engine build, so I need to get Physical Water Surface working on the source build.

    Leave a comment:


  • replied
    Originally posted by Tycox94 View Post

    The project icons show 4.24, but the actual engine I'm using from the launcher is UE 4.24.2.
    Did you try to use Physical Water Surface with the engine version from the launcher? Did it work?

    Leave a comment:

Working...
X