Skip to content

ZFighter Settings

There are many settings that can be modified when using ZFighter. There are two groupings of settings:

Detection Settings

Detection Settings are used to determine what is calculated in the Scene to test for z-fighting. These settings are scene-specific.

Exclusions

The Exclusions section sets what items are or are not included when processing based on specific properties of the object. You may change these settings between Process Scene operations. Issues that were found previously but subject to exclusions in the next process remain, but will be marked as Outdated. Outdated Issues are hidden by default in the Issues List. This can be changed in the Show/Hide Properties Section.

Ignored Items

  • Ignore Materials
    • Any Renderer that uses a Material in this list is not processed. For Meshes with multiple Materials, only the sub-mesh with the ignored Material is ignored.
  • Ignore Meshes
    • Any specific Meshes to be excluded from processing. This is useful for Meshes used by many GameObjects in the scene.
  • Ignore GameObjects
    • Any specific GameObjects to be excluded from processing. The children of these GameObjects are also ignored.

LOD Groups

  • Only Consider LOD0 Intersections
    • When enabled, only the Renderers included in LOD 0 of LOD Groups are checked. Use this to prevent LOD Groups from generating redundant issues per LOD level. When disabled, all LOD level Renderers in LOD Groups are processed.
  • Ignore LOD Self Intersections
    • When enabled, z-fighting is ignored between different LOD level Renderers in a LOD Group. This is used to prevent false positives between different levels of the same LOD Group.

Tags and Layers

  • Exclude Editor Only
    • When enabled, GameObjects tagged EditorOnly are ignored from processing. Children of EditorOnly GameObjects are also ignored. EditorOnly GameObjects are not included in builds and may not be important to process.
  • Layers
    • Only GameObjects with a Layer included in this list are processed. GameObjects on unchecked Layers are ignored.

Renderers

What type of Renderers are included when looking for z-fighting. Note that non-static and animated meshes will only be calculated in the position they are in Editor view of the scene.

  • Mesh Renderer
    • Find all Mesh Renderers and use the Mesh set in the Mesh Filter. Mesh Renderers set to Shadows Only will be ignored.
  • Skinned Mesh Renderer
    • Find all Skinned Mesh Renderers and use the Mesh in it's current bone position and blend shape values. Skinned Mesh Renderers set to Shadows Only will be ignored.
  • Sprite Renderer
    • Find all Sprite Renderers and use the mesh generated for the included Sprite.
    • Note that Sprite Renderers cannot z-fight with other Sprite-based rendering, including Canvases or other Sprite Renderers, but can z-fight with other mesh types.
  • Canvas
    • Find all root World Space Canvases and use the bounds as the Mesh.
    • Note that a Canvas cannot z-fight with other Sprite-based rendering, including other Canvases or Sprite Renderers, but can z-fight with other mesh types.

Sensitivity

Use these values to adjust the sensitivity in determining what is considered as z-fighting. The sensitivity settings have 3 preset options for processing the scene: Broad, Balanced, and Narrow. A custom option is also provided to input specific a value.

  • Z-fighting Distance
    • The maximum distance between two meshes to be considered as z-fighting.
    • Minimum is 1e-7. Maximum is 0.1. Recommended value is 2e-5 for desktop graphics.
    • Broad: 0.001, Balanced: 2e-5, Narrow: 1e-7
  • Z-fighting Angle
    • The maximum angle in degrees between two meshes to be considered as z-fighting. Note that the higher this value, the more time it takes to complete processing!
    • Minimum is 0. Maximum is 30. Recommended value is 0.01 for desktop graphics.
    • Broad: 0.05, Balanced: 0.01, Narrow: 0.005

Note that these presets are intended for desktop graphics. The Custom option allows for larger sensitivity values to search for z-fighting for mobile graphics at the cost of much longer processing time. See Mobile for more details.

Volumes

Volumes allow defining a limited space to check for z-fighting.

  • Process Only Volumes
    • Use Volumes to process a section of the scene. When enabled, only Renderers and Triangles within the active Volumes are checked during processing. When disabled, Volumes are ignored and the entire scene is processed.
  • Volume List
    • List of all Volumes in the scene. The checkbox represents that Volume's active status. Multiple Volumes can be active at a time. Click on the GameObject name to highlight it in the hierarchy to edit or delete the Volume.
  • Add Volume
    • Add a new GameObject to the scene with the ZFighter Volume component. Turn on Gizmos to view and edit the Volume. Delete the GameObject to delete the Volume.
  • Select All
    • Set All Volumes active
  • Deselect All
    • Set All Volumes inactive

View Options

View Options are used to change how Issues are visualized in the Scene, and represented in the Issue List.

Overlap Visuals

Settings for how Issue Overlap for potential z-fighting is visualized in the Scene View.

  • Show All Overlap Button
    • Show all Issue Overlap in the Scene view.
  • Hide All Overlap Button
    • Hide all Issue Overlap from the Scene view.
  • Frontface Color
    • Color used for the Front-face of Overlap visual for potential z-fighting.
  • Backface Color
    • Color used for the Back-face of Overlap visual for potential z-fighting.
  • Blink Enabled
    • When enabled, Overlap visuals transition between the color alpha and the blink alpha. This improves visibility of the Overlap visuals in the Scene View. When disabled, Overlap visuals use the Frontface and Backface Color. To ensure Blink is visible in the Scene view, enable the "Always Refresh" toggle in the Unity Editor window.
  • Blink Alpha
    • Alpha value that the blink cycles between. Only available when Blink is enabled.
  • Blink Speed
    • Speed at which the color cycles. Only available when Blink is enabled.
  • Click to Select Issues
    • Clicking an Overlap visual in the scene view also selects the issue in the Issues list. Note that this is based on selection and you must select a GameObject with a Renderer involved with the Issue. If a parent GameObject is selected, click again until the child is properly selected.

Column View

  • Sort Column
    • The column used to sort the Issues in the Issues List.
    • Clicking the up-arrow and down-arrow changes between sorting ascending or descending respectively.
    • Left-clicking a column in the Issues List column header sorts using that column. Click again to toggle between sort by ascending or descending.
  • Visible Columns
    • Which columns are visible in the Issues list. Right-clicking in the Issues List column headings allows for selecting individual columns.

Show/Hide Properties

  • Visible Priorities
    • Filter by Issue Priority. Only Issues with the selected Priorities are shown in the Issues List. Priority is an optional property set by the user to determine the importance of an Issue. Issues are assigned None when they are created.
    • None, Low, Medium, High
  • Visible Statuses
    • Filter by Issue Status. Only Issues with the selected Statuses are shown in the Issues List. Issues are set to Open when they are created. Only Active Issues are shown by default (any status not Won't Fix or Dismissed).
    • Open, Needs Fix, Scene Issue, Prefab Issue, Mesh Issue, Verify, Won't Fix, Dismissed
  • Visible Issue Types
    • Filter by Issue Type. Only Issues with the selected Types are shown in the Issues List.
    • Self or Self Intersection Overlap issues are when an object has potential z-fighting within itself.
    • Pair or Mesh Pair Overlap issues are when two different objects have potential z-fighting with each other.
  • Visible Data Status
    • Filter by Issue Data Status. Only Issues with the selected Data Statuses are shown in the Issues List. If an Issue was fully included in the last Process or the Issue Re-Check was performed, it is marked Current. If an Issue was not fully included in the last Process, it is marked Partial or Outdated. By default, only Issues marked as Current and Partial are shown in the Issues List. Only Current Issues are included in Auto Dismiss actions. To set an Issue to Current, either perform an Issue Re-Check, or change Detection Settings to make sure it is included, and Process Scene.

Auto Dismiss

  • Include Hidden Issues
    • Auto Dismiss actions only consider the Issues currently listed in the Issue list. When enabled, all Issues are considered, even if they are not shown in the Issues List due to filter settings.
  • Dismiss Issues Smaller Than
    • Issues with an area less than the specified value are set to the Dismissed status. Only Issues marked as Current Data Status are dismissed.
  • Dismiss Issues with deleted or missing objects
    • Issues that involve deleted or missing objects are set to the Dismissed status. Only Issues marked as Current Data Status are dismissed.