ue5.8.3 When I assign a MediaPlayer‑based material as a mask to a Plane, two Planes on the same dimension produce z‑fighting occlusion artifacts.

The media texture is not what is fighting. Two planes in the same plane, at the same size, z-fight no matter which material is on them. A masked material still writes depth, so the mask plane and the plane under it swap which one wins every frame. The video makes that swap obvious because the pixels change and TSR smears it.

Use one of these:

  • Do not stack two coplanar planes. Put the image and the mask in one material on one plane. Sample the media texture, multiply RGB by the mask, and drive a single Opacity or Opacity Mask.
  • If they have to be two meshes, move the front one toward the camera along its normal by a few millimeters. Coplanar means the depth values are equal, so any real separation stops the fight. A full Unreal unit is a lot if the planes are small.
  • If the front card is only an overlay, set that material to Translucent so it does not write depth. Masked and Opaque keep writing depth and keep fighting. Translucency Sort Priority on the mesh can then force the overlay in front. Turn Two Sided off unless you need the back; it doubles the surfaces that fight.

A different flicker shows up only after the planes are separated: the video crawling under TSR. For a screen, use an unlit material, or Default Lit with no normal map. That crawl is the video plus anti-aliasing, not z-fight. The coplanar pair is the z-fight.