Skip to content

Dithering

Object

Player Character

The Dithering system allows objects between the camera and the character to fade out smoothly instead of fully blocking the view.

This improves visibility and prevents situations where the character is completely obscured by walls, foliage, or other geometry.


How It Works

The system detects objects between the camera pivot and the camera position.

When an object blocks the view:

  • it is detected using collision traces
  • a dithering effect is applied to its material
  • the object smoothly fades to a lower opacity

When the object is no longer blocking the view, it fades back to its original state.


Setup

Dithering requires both material setup and correct collision configuration.

Step 1 - Locate the Material Function

The plugin provides a required material function:

  • MF_CameraDithering

You can find it in the plugin content:


Step 2 - Prepare the Material

Open the material you want to support dithering.

Make sure the material uses:

  • Blend Mode = Masked

Step 3 - Add the Dithering Function

Drag MF_CameraDithering into the material graph and connect it to:

  • Opacity Mask

Step 4 - Optional Mask Texture

If your material uses a texture mask (for example foliage or patterned opacity):

  • plug the texture into the OpacityMask (S) input of the function

This allows dithering to work correctly with existing masked materials.


Step 5 - Configure Collision

For dithering to work, the object must have correct collision settings.

Open the mesh/component and configure:

  • Collision Enabled = Query (or Query and Physics)
  • Visibility = Block
  • Camera = Ignore

Step 6 - Configure Dither Tags

Objects must have a matching tag to be affected by the dithering system.

Add Tag to Actor

  1. Select the Actor in the level
  2. In the Details panel, find Actor → Tags
  3. Click + and add a tag (for example: Dither)

Add Tag to Camera Settings

  1. Select the Third Person Camera Component
  2. Find the Dithering section
  3. Add the same tag to Dither Tags

Only actors with matching tags will be affected by dithering.


Step 7 - Enable Dithering

Finally, make sure the system is enabled:

  • Enable Dithering must be checked on the camera component

If this option is disabled, the dithering system will not run.


Settings

  • Enable Dithering - enables the dithering system
  • Dither Owner - allows the character to fade when the camera is very close
  • Dither Attached Actors - allows actors attached to the owner, such as weapons or equipment, to fade together with the character
  • Dither Tags - only actors with these tags will be affected
  • Dither Min Opacity - minimum opacity applied during dithering
  • Dither Speed - controls how quickly objects fade in and out
  • Dither Sweep Radius - radius used to detect blocking objects
  • Dither Overlap Radius - radius used for close-range detection around the camera

Behavior

Dithering is applied automatically during camera updates.

  • no manual calls are required
  • only objects between the camera and the character are affected
  • multiple objects can be faded at the same time
  • multi-component actors fade as a single visual object
  • owner dithering supports characters made from multiple mesh components
  • attached actors, such as weapons or equipment, can fade together with the owner

The system restores objects to their original appearance when they are no longer blocking the view.


Manual Reset

In most cases, dithering is restored automatically.

For custom gameplay flows, you can manually reset the current dithering state using:

  • Reset Dithering

This immediately restores all currently dithered components back to full opacity and clears the internal dithering state.

This can be useful when using custom camera transitions, vehicle enter/exit logic, attach/detach flows, or direct view target changes outside the camera component.


Notes

  • Dithering requires materials to include MF_CameraDithering
  • Objects without the material setup will not be affected
  • Actors with multiple mesh components fade as a single object when they use a matching Dither Tag
  • If your object uses a separate invisible collision proxy, the Actor still needs a matching Dither Tag
  • The system is fully automatic and runs at runtime
  • Useful for improving visibility in dense environments such as foliage or tight spaces