-
Notifications
You must be signed in to change notification settings - Fork 203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Coordinate the physics and visualization of the wave field #23
Comments
Original comment by Brian Bingham (Bitbucket: brian_bingham).
|
Original comment by Brian Bingham (Bitbucket: brian_bingham). Rhys provided a very interesting solution in the asv_wave_sim project. Going through that project, there are two significant innovations:
The WAM-V geometry (twin cylindrical hulls) is sufficiently simple that, as a first step, we might consider Rhys's synchronization of the visual and physical (1) without adding the complexity of mesh-based buoyancy (2). This might also allow us to avoid licensing issues associated with using CGAL. Here is my notes from going through the code... asv_wave_sim ExplanationModel: ocean_wavesThe
WavefieldModelPlugin, OnUpdateThe update is throttled to a nominal 30 Hz. The WavefieldEntity is updated, which calls the Wavefield Update and UpdateGerstnerWave methods. The Wavfield UpdateGerstnerWave method modifies the underlying CGAL Surface_mesh object based on the Gerstner wave model for the water surface. Model: boxFor objects within the wave field, the HydrodynamicsPlugin, a ModelPlugin, connects the object to the wave field. The HydrodynamicsPlugin, InitCalls InitPhysics() which retrieves the specified ModelPtr by name, which then gets the a pointer to a WavefieldEntity object from within the WavefieldModelPlugin. Finally calls the WavefieldEntity GetWaveField method to return a shared pointer to the Wavefield object. Creates a vector of HydrodynamicsLinkData objects, one for each link in the model. Each HydrodynamicsLinkData objects includes...
HydrodynamicsPlugin, OnUpdateCalls UpdatePhysics(), which again retrieves the Wavefield object pointer (why do this again?). Then loops through the vector of HydrodynamicsLinkData objects to...
The above explanation is limited - I may be missing some of the implementation. |
Original comment by Brian Bingham (Bitbucket: brian_bingham). PR #78 looks like a good solution moving forward. We need to update the wave-visualization branch and start working integrating into default. |
Original comment by Carlos Agüero (Bitbucket: caguero, GitHub: caguero).
See pull request #107. |
Original report (archived issue) by Brian Bingham (Bitbucket: brian_bingham).
Currently the visualization of the surface waves is independent of the wave displacements that affect the vessel motion. We have them setup to use the same wave parameters (amplitude, direction, etc.), but they are not synchronized in time.
See a demo of the effect: https://vimeo.com/253718860 And here is what happens if you have large wave in the physics, but the same small waves in the rendering: https://vimeo.com/253842494
The text was updated successfully, but these errors were encountered: