Gaffer 1.0.0.0 #4746
johnhaddon
started this conversation in
General
Gaffer 1.0.0.0
#4746
Replies: 1 comment 2 replies
-
Hi john, I'm not sure to understand the "versioning" system used on Gaffer is this explained somewhere? |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Features
channelInterpretation
plug controls the naming of channels loaded from multi-part files.layout
plug. This includes presets for standard conforming single-part and multi-part files, and several presets that match Nuke's behaviour.image:viewName
context variable specifies which view is currently being processed. This can be used to process each view with different settings, for instance via an Expression or Spreadsheet.Improvements
layerName
string parameter, which can be used to customise the naming of channels in EXR outputs. Currently only supported for Arnold renders.layerPerLightGroup
boolean parameter, which automatically splits the outputs into separate layers, one for each light group..jp2
) images.activeRowIndex
plug, which outputs the index of the currently active row.updateInteractively
bool parameter for render outputs. This can be used to request more frequent updates for AOVs other than the beauty image.ramp_rgb
andramp_float
. The OSLColorSpline
andFloatSpline
shaders should be used instead.Fixes
callback( Completed )
calls fromupdateInBackground()
when priority paths are specified.assertImagesEqual()
where bad pixel data could go undetected when usingignoreDataWindow
.rootNameVariable
value no longer causes the creation of a context variable named""
. Instead, no context variable is created (but the scenes are still collected).setCamera()
to emitcameraChangedSignal()
even when the camera was unchanged.setCenterOfInterest()
so that it doesn't emitcameraChangedSignal()
if the center of interest is unchanged.setViewport()
Python bindings.ai:autobump_visibility
attributes to be inadvertently modified.gaffer.plugType
metadata.removeOutputs()
method now also removes any outputs from child plugs. This is consistent with thesetInput()
method, which has always managed child plug inputs.float|int|uint <name>
syntax. Outputs specified using Arnold's<name> FLOAT|INT|UINT
syntax will now issue a warning, and should be updated to use the generic syntax.targetVertex
to positive integers.typeName()
, which was omitting theGaffer::
prefix.<UDIM>
tokens.API
hashViewNames()
andcomputeViewNames()
methods which must be implemented by derived classes (unless an input connection is made forout.viewNames
).viewNames
plug for outputting the names of the views in an image.image:viewName
context variable.viewName
arguments to the convenience accessors such aschannelNames()
andchannelData()
.viewName
arguments toimage()
,imageHash()
andtiles()
.viewIsValid()
function.sortedChannelNames()
function.value
argument tocanSetValueFromData()
.callback
argument toupdate()
andupdateMatchingPaths()
.updateInBackground()
.pathForID()
,pathsForIDs()
,idForPath()
andidsForPaths()
methods. These make it possible to identify an object in the scene from auint id
AOV.assertNodeIsDocumented()
method.metadataBlacklist
argument toassertImagesEqual()
.setErrored()
andgetErrored()
methods.registerRenderer()
andregisteredRenderers()
methods. These allow any suitableIECoreScenePreview::Renderer
to be used to draw the scene.renderer.name
plug to control which renderer is used.renderer.arnold
plug to control Arnold render settings.layout:activator
andlayout:visibilityActivator
metadata may now take boolean values to control activation directly. This is useful when an activator only applies to one plug, or it applies to several but depends on properties of each plug. String values are treated as before, referring to a predefined activator.CameraFlags
enum, which is used incameraChangedSignal()
to specify what aspects of the camera have changed.applyPreset( parent, preset )
will apply it to all the children.boost::signals
library.boost::signals::detail::unusable
as a substitute for thevoid
return type in the Signal bindings. Custom SlotCallers may now use a standardvoid
return type.CatchingCombiner
so that exceptions in one slot will not interfere with calls to other slots :mightForceMonitoring()
andforceMonitoring()
in order to ensure the monitored processes always run, instead of being skipped when they are cached.hashCacheTotalUsage()
function.versionString()
function.Breaking Changes
image:viewName
context variable must now be set when evaluating plugs other thanviewNamesPlug()
. Thegui
app provides a default, but standalone scripts may need to be adjusted to specifyimage:viewName
explicitly.protected
rather thanpublic
. Use theTaskPlug
API instead.addQuery()
now createsquery
andout
plugs with numeric suffixes starting at 0 (rather than 1).Gaffer
module..gfr
files.rootNameVariable
is empty.sizeMode
andcloseOnLeave
constructor arguments.changes
argument to CameraChangedSignal.channelInterpretation
plug toLegacy
to preserve the old behaviour.layout
plug toSingle Part
to write a single-part file instead./
root location from generated sets, because root membership is unsupported elsewhere in Gaffer.prepareSplineCVsForOSL()
method. UseIECoreScene::ShaderNetworkAlgo::expandSplineParameters()
instead.ai:autobump_visibility
attributes are no longer modified. Use a separate ArnoldAttributes node if necessary.activeRowNames
plug toenabledRowNames
. Backwards compatibility is provided when loading old.gfr
files.ui:spreadsheet:activeRowNamesConnection
metadata toui:spreadsheet:enabledRowNamesConnection
.boost::signals
withGaffer::Signals
. These are largely source-compatible, with the following changes :snake_case
naming has been replaced withCamelCase
.connectFront()
to connect in front of existing slots.setBlocked()/getBlocked()
accessors, rather thanblock()/unblock()/blocked()
methods.Gaffer/BlockedConnection.h
header file. BlockedConnection can now be found in the Signals namespace provided byGaffer/Signals.h
.Gaffer/CatchingSignalCombiner.h
header file. CatchingSignalCombiner can now be found asSignals::CatchingCombiner
inGaffer/Signals.h
.Gaffer.Signals
submodule.scoped
argument toSignal.connect()
. Passscoped = True
to maintain the previous behaviour, or consider using an unscoped connection.RenderRequestSignal
type. Use the identicalUnarySignal
instead.boost::optional
withstd::optional
.contextEntry
plug toseedVariable
. Old.gfr
files will be converted automatically on loading.historyIDContextName()
function.history()
no longer uses an ID in the context to ensure fresh evaluations, it instead usesMonitor::forceMonitoring()
to temporarily disable caching.Build
.egg
package.This discussion was created from the release Gaffer 1.0.0.0.
Beta Was this translation helpful? Give feedback.
All reactions