As the title states, I have a small rowboat "floating" on water... I'm trying to keyframe the floating animation, but the water level keeps clipping through the bottom of my boat. I don't know how to fix this, as I've tried a boolean modifier on the water, but it doesn't seem to work (presumably because it's low poly and it looks bad?)

Any advice?

I'll upload my .blend file so you can take a look.


2 Answers 2


(Blend file below)

The problem with boats is that they sit down in the water and require the water's mesh to be displaced or booleaned which doesn't always work as planned. An alternative is to apply a simple mask.

This was first done as an experiment ages ago using OpenGL masking, and yesterday using Blender's internal masking system to confirm that it works just as well.

The details -

For the experiment the water is a plane textured with a water movie. The boat is sunk down fairly low into this.

Without a mask the water naturally swamps the boat so a mask (another plane) shaped as a lid that sits on the open area of the boat and down a little from the top, cuts a hole in the water when rendered in OpenGL, or if using Blender's masking, cuts a hole through everything, the water and boat.

For Blender's render, two videos are produced and later mixed in the VSE.

The 1st, the entire scene with the mask active, so when rendered, the scene will have a hole cut into it.

The 2nd, rendered without the water or mask so we have the boat and nothing else.

With the mask...

. .

Without it...

The masked version needs Blender's "Shading" in the Output properties to be set to "Transparent" and the rendered output set to a series of .png images with their alpha layer included.

The lone boat version (no mask) doesn't need an alpha layer, but DOES need the shading returned to "Sky". This is also rendered as an image series and with the same .png format as before.


Shaping the mask is best done in Ortho View so you're looking straight down without parallax error.

Drag the masking plane's edges out to match the boat's open top and lower it a little below the boat's upper surfaces.

Expand the edges enough to be inserted just inside the boat's thickened sides and dashboard.
This will ensure there are no gaps. Nor should it be protruding beyond the boat's exterior.

Parent the mask to the boat so they move in synch. (child = mask)

Armed with the two videos, the 1st version is simply laid over the 2nd in the VSE. The holed version (top strip) has to be set to "Alpha Over" in it's properties panel at right. (press N) It's best to fire up a new instance of Blender for this.

When mixed, the masking cuts the hole but under that and showing through is a perfectly matched and synch'd boat, with a dry floor.

Blender file Notes -

...has been set up for Blender Rendering. (F12 for preview snap)

For masking methods see here - Masking

  • $\begingroup$ I love the bubbles. $\endgroup$
    – no-can-do
    Sep 11, 2020 at 4:06
  • $\begingroup$ ha ha........... $\endgroup$
    – Edgel3D
    Sep 11, 2020 at 4:13

There was no boolean attempt in your file, so it's hard to guess why you failed, I've created a boolean object for the boat and it seems to work fine...

file here:

without the boolean:

enter image description here

with the boolean:

enter image description here


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .