Configuring the Scene View Inspector

Gaffer 0.58 introduced a new Inspector in the Scene View. It allows you to quickly view – and in many cases – edit the selected location’s shader parameters.

We attempted to select a sensible set of parameters to display by default, but in keeping with Gaffer tradition, you can configure what is shown to suit your needs.

Continue reading “Configuring the Scene View Inspector”

Gaffer 0.58.0 : We’re going on a bug hunt

Gaffer 0.58 contains a caching optimisation that can significantly improve interactive performance in many cases. But this optimisation can also reveal subtle bugs in Nodes that may have gone unnoticed until now. In this post we’ll explore why that is the case, and outline some useful strategies for catching and eradicating such bugs from your custom nodes.

Continue reading “Gaffer 0.58.0 : We’re going on a bug hunt”

Context Variable cheat sheet

Contexts are an essential part of Gaffer. We’re working on some more structured documentation about them. In the mean time, here is a list of common Context Variables set by Gaffer as part of the compute process. Amongst other things, they can be used in expressions or via ${variables} in string plug values.

Continue reading “Context Variable cheat sheet”

Labelled menu dividers

From 0.55.0.0 onwards, you can now label menu dividers. You can see an examples of this in the Editor Focus menu, which has both a title (in black) and two labelled dividers (dark grey).

To create these, simply add a label to your item when setting "divider" : True:

menu.append( "/Follow Divider",
  { "divider" : True, "label" : "Follow" }
)

G4P – part 6 – Node defaults

For this instalment in our ground-up series about integrating Gaffer into a pipeline, we cover how to change node defaults.

All Gaffer nodes have plugs, whether they are visible in the Graph Editor for easy connection, or in the Node Editor as settings. These plugs have default values defined by the node’s programming. It may be the case however, that these defaults aren’t the most useful values for your use. To help with this, Gaffer allows you to provide your own, “user” defaults.

Continue reading “G4P – part 6 – Node defaults”

Gaffer for pipeline – part 4 – which version?

When writing pipeline tools, it’s often useful to know which Gaffer version you are running in. In python, the Gaffer.About module is your friend:

import Gaffer
print( Gaffer.About.versionString() )
print( Gaffer.About.majorVersion(), Gaffer.About.minorVersion() )

We also define a (script + ABI) ‘compatibility’ version, that, as we use SemVer – is effectively tied to the milestone + major version:

print( Gaffer.About.compatibilityVersion() )

Gaffer for pipeline – part 3 – Compute cache size

Like many other applications that calculate data on-demand, Gaffer has a memory cache that can increase performance in UI sessions if you have RAM to spare.

The default size (1GB) is somewhat conservative as to ensure we don’t use up all the resources of more modest machines when Gaffer is used out-the-box. It is easy to increase the limit though, which can bring performance gains in real-world production scenarios.

Continue reading “Gaffer for pipeline – part 3 – Compute cache size”