diff --git a/Changes.md b/Changes.md
index bc4b51bf7e8..da57768a087 100644
--- a/Changes.md
+++ b/Changes.md
@@ -8,7 +8,9 @@ Improvements
- USD : Added automatic render-time translation of UsdPreviewSurface shaders to Cycles.
- SetEditor : Added support for dragging a set name onto a node in the Graph Editor to create or modify a connected `SetFilter` node. Holding Shift while dragging will add to the set expression. Holding Control will remove from the set expression. Only set expressions with a simple list of sets are supported. Expressions with boolean or hierarchy operators are not supported.
- GraphEditor : Improved pointer used to indicate when dropping a location would find the source node.
-- RenderPassEditor : Added "Camera Inclusions" and "Camera Exclusions" columns, providing control over the camera visibility of scene locations in each render pass.
+- RenderPassEditor :
+ - Added "Camera Inclusions" and "Camera Exclusions" columns, providing control over the camera visibility of scene locations in each render pass.
+ - Added "Matte Inclusions" and "Matte Exclusions" columns, providing control over the scene locations used as holdout mattes in each render pass.
Fixes
-----
diff --git a/startup/GafferScene/standardOptions.py b/startup/GafferScene/standardOptions.py
index 8ed308a977f..125af0187f7 100644
--- a/startup/GafferScene/standardOptions.py
+++ b/startup/GafferScene/standardOptions.py
@@ -180,3 +180,27 @@
over this option.
"""
)
+
+Gaffer.Metadata.registerValue( "option:render:matteInclusions", "label", "Matte Inclusions" )
+Gaffer.Metadata.registerValue( "option:render:matteInclusions", "defaultValue", IECore.StringData( "" ) )
+Gaffer.Metadata.registerValue(
+ "option:render:matteInclusions",
+ "description",
+ """
+ A set expression that specifies objects that should be treated as matte (holdout)
+ objects along with their descendants. Matte attributes authored in the scene take
+ precedence over this option.
+ """
+)
+
+Gaffer.Metadata.registerValue( "option:render:matteExclusions", "label", "Matte Exclusions" )
+Gaffer.Metadata.registerValue( "option:render:matteExclusions", "defaultValue", IECore.StringData( "" ) )
+Gaffer.Metadata.registerValue(
+ "option:render:matteExclusions",
+ "description",
+ """
+ A set expression that excludes the matched objects and their descendants from being
+ treated as matte (holdout) objects. Matte attributes authored in the scene take
+ precedence over this option.
+ """
+)
diff --git a/startup/gui/renderPassEditor.py b/startup/gui/renderPassEditor.py
index bf62014cc23..2ab396d22da 100644
--- a/startup/gui/renderPassEditor.py
+++ b/startup/gui/renderPassEditor.py
@@ -46,6 +46,8 @@
GafferSceneUI.RenderPassEditor.registerOption( "*", "render:additionalLights" )
GafferSceneUI.RenderPassEditor.registerOption( "*", "render:cameraInclusions" )
GafferSceneUI.RenderPassEditor.registerOption( "*", "render:cameraExclusions" )
+GafferSceneUI.RenderPassEditor.registerOption( "*", "render:matteInclusions" )
+GafferSceneUI.RenderPassEditor.registerOption( "*", "render:matteExclusions" )
GafferSceneUI.RenderPassEditor.registerOption( "*", "render:defaultRenderer", "Render" )
GafferSceneUI.RenderPassEditor.registerOption( "*", "render:camera", "Render" )