How to enable Arnold contour_filter

33 views
Skip to first unread message

Cesar Velazquez

unread,
Oct 11, 2025, 5:29:32 PM (11 days ago) Oct 11
to gaffer-dev
Hello!

I'm trying to test the Arnold toon shader in Gaffer. The documentation states that in order to use the toon shader:

To view the toon edge you must change the Filter Type (sampling settings) to Contour. Note that increasing the Contour Filter Width (Sampling settings) value will increase render times.

I checked the ArnoldOptions node and didn't see the filter option there.

Another post had said we could use the CustomOptions node. Does anyone know how to set this? I've tried searching the Arnold documentation for the name of the option to set and can't find it.

I generated a .ass file from houdini with the option set and this is what I found in the file:

contour_filter
{
 name /out/arnold1:contour_filter
 width 2
}

I tried this in the CustomOptions node, but I'm not sure if this is correct:

ai:contour_filter      {width 2}

Is there a way to generate a .ass file to see what output?

thanks!

John Haddon

unread,
Oct 13, 2025, 7:27:25 AM (9 days ago) Oct 13
to gaffe...@googlegroups.com
Hi Cesar,

You can set the filter using the Outputs node, as in the screenshot below (click the plus button to add the new fields) :

image.png

I've attached a file with a very minimal working setup.

Writing to an `.ass` file can be really useful for debugging - you can do that using a Render node set to SceneDescription mode. I've included such a node in the example too...

Cheers...
John

--
You received this message because you are subscribed to the Google Groups "gaffer-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gaffer-dev+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/gaffer-dev/7393171c-dcb1-4b62-a643-c7922df94f1an%40googlegroups.com.
toon.gfr

Cesar Velazquez

unread,
Oct 15, 2025, 4:12:12 AM (8 days ago) Oct 15
to gaffer-dev
Hey John!

Thanks for putting that example together. I really appreciate it. That worked perfectly, and was a lot simpler than the attempts I had made. 

I initially could not get the filterwidth to show up. I had thought it was an int type. When I switched it to a float, then it showed up.

Just curious, is there a way in the gui to query a parameter type?

Are the "filter" and "filterwidth" keys recognized by the underlying Arnold scene generator, and just not added by default? Is that how the scene
generator knew how to format the output to something like:

countour_filter
{
 name ieCoreArnold:filter:Interactive/Beauty
 width 2
}


Thanks again, John!

John Haddon

unread,
Oct 15, 2025, 4:38:32 AM (8 days ago) Oct 15
to gaffe...@googlegroups.com
On Wed, Oct 15, 2025 at 9:12 AM Cesar Velazquez <ces...@gmail.com> wrote:

Are the "filter" and "filterwidth" keys recognized by the underlying Arnold scene generator, and just not added by default? Is that how the scene
generator knew how to format the output to something like:

Yes, that's correct. There's not as much consistency as we'd like in how our renderer backends interpret extra parameters on outputs, so the standard outputs are a bit bare bones. One thing worth knowing about for Arnold in particular is that we pass any extra parameters to Arnold driver node. You can query the possible types for these from Arnold itself with `kick -info`. For example :

```
gaffer env kick -info driver_exr
node:             driver_exr
type:             driver
implicit output:  (null)
parameters:       12
multioutputs:     0
filename:         <built-in>
version:          7.4.2.1

Type       Name      Unlinkable  Default     Bounds  
---------  --------------------  ----------  ------
Inputs                          
 NODE      input                 null        
 STRING    filename              output.exr  
 ENUM      compression           zip        
 BOOL      half_precision        false      
 BOOL      tiled                 true        
 BOOL      multipart             false      
 STRING    color_space           auto        
 BOOL      preserve_layer_name   false      
 BOOL      autocrop              false      
 BOOL      append                false      
 STRING[]  custom_attributes     (empty)    
 STRING    name
```

Knowing that for example, you could add a `half_precision` or `tiled` boolean parameter in Gaffer to give finer control over the EXR driver.

Cheers...
John


 
Reply all
Reply to author
Forward
0 new messages