diff --git a/1.4.6.0/.buildinfo b/1.4.6.0/.buildinfo new file mode 100644 index 000000000..851c5c6e0 --- /dev/null +++ b/1.4.6.0/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: f1ffbb3283c1cff54275378991642d0e +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/1.4.6.0/.doctrees/Appendices/License/index.doctree b/1.4.6.0/.doctrees/Appendices/License/index.doctree new file mode 100644 index 000000000..a2d7792bd Binary files /dev/null and b/1.4.6.0/.doctrees/Appendices/License/index.doctree differ diff --git a/1.4.6.0/.doctrees/Appendices/index.doctree b/1.4.6.0/.doctrees/Appendices/index.doctree new file mode 100644 index 000000000..761520f9b Binary files /dev/null and b/1.4.6.0/.doctrees/Appendices/index.doctree differ diff --git a/1.4.6.0/.doctrees/GettingStarted/ConfiguringGafferForThirdPartyTools/index.doctree b/1.4.6.0/.doctrees/GettingStarted/ConfiguringGafferForThirdPartyTools/index.doctree new file mode 100644 index 000000000..2377f5c65 Binary files /dev/null and b/1.4.6.0/.doctrees/GettingStarted/ConfiguringGafferForThirdPartyTools/index.doctree differ diff --git a/1.4.6.0/.doctrees/GettingStarted/InstallingGaffer/index.doctree b/1.4.6.0/.doctrees/GettingStarted/InstallingGaffer/index.doctree new file mode 100644 index 000000000..1341e983d Binary files /dev/null and b/1.4.6.0/.doctrees/GettingStarted/InstallingGaffer/index.doctree differ diff --git a/1.4.6.0/.doctrees/GettingStarted/LaunchingGafferFirstTime/index.doctree b/1.4.6.0/.doctrees/GettingStarted/LaunchingGafferFirstTime/index.doctree new file mode 100644 index 000000000..00602ae19 Binary files /dev/null and b/1.4.6.0/.doctrees/GettingStarted/LaunchingGafferFirstTime/index.doctree differ diff --git a/1.4.6.0/.doctrees/GettingStarted/SettingUpGafferCommand/index.doctree b/1.4.6.0/.doctrees/GettingStarted/SettingUpGafferCommand/index.doctree new file mode 100644 index 000000000..cc21e2e34 Binary files /dev/null and b/1.4.6.0/.doctrees/GettingStarted/SettingUpGafferCommand/index.doctree differ diff --git a/1.4.6.0/.doctrees/GettingStarted/TutorialAssemblingTheGafferBot/index.doctree b/1.4.6.0/.doctrees/GettingStarted/TutorialAssemblingTheGafferBot/index.doctree new file mode 100644 index 000000000..72bd10822 Binary files /dev/null and b/1.4.6.0/.doctrees/GettingStarted/TutorialAssemblingTheGafferBot/index.doctree differ diff --git a/1.4.6.0/.doctrees/GettingStarted/index.doctree b/1.4.6.0/.doctrees/GettingStarted/index.doctree new file mode 100644 index 000000000..9676ad85e Binary files /dev/null and b/1.4.6.0/.doctrees/GettingStarted/index.doctree differ diff --git a/1.4.6.0/.doctrees/Interface/ControlsAndShortcuts/index.doctree b/1.4.6.0/.doctrees/Interface/ControlsAndShortcuts/index.doctree new file mode 100644 index 000000000..5696097b4 Binary files /dev/null and b/1.4.6.0/.doctrees/Interface/ControlsAndShortcuts/index.doctree differ diff --git a/1.4.6.0/.doctrees/Interface/index.doctree b/1.4.6.0/.doctrees/Interface/index.doctree new file mode 100644 index 000000000..c1b79a2de Binary files /dev/null and b/1.4.6.0/.doctrees/Interface/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/browser.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/browser.doctree new file mode 100644 index 000000000..ca6c03623 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/browser.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/cli.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/cli.doctree new file mode 100644 index 000000000..581734e77 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/cli.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/dispatch.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/dispatch.doctree new file mode 100644 index 000000000..6ca83fd0e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/dispatch.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/env.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/env.doctree new file mode 100644 index 000000000..56c00f068 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/env.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/execute.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/execute.doctree new file mode 100644 index 000000000..c62c1a67b Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/execute.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/gui.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/gui.doctree new file mode 100644 index 000000000..ac83ded6b Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/gui.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/index.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/index.doctree new file mode 100644 index 000000000..dd380bd0b Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/license.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/license.doctree new file mode 100644 index 000000000..1b899d5a7 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/license.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/python.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/python.doctree new file mode 100644 index 000000000..bf7af4c70 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/python.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/screengrab.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/screengrab.doctree new file mode 100644 index 000000000..ca8318ed9 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/screengrab.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/stats.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/stats.doctree new file mode 100644 index 000000000..a2ad48269 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/stats.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/test.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/test.doctree new file mode 100644 index 000000000..9e69ad425 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/test.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/CommandLineReference/view.doctree b/1.4.6.0/.doctrees/Reference/CommandLineReference/view.doctree new file mode 100644 index 000000000..5dde3ec69 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/CommandLineReference/view.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/ContextVariables/index.doctree b/1.4.6.0/.doctrees/Reference/ContextVariables/index.doctree new file mode 100644 index 000000000..e5b6ba09c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/ContextVariables/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Animation.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Animation.doctree new file mode 100644 index 000000000..73a1de1e1 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Animation.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Backdrop.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Backdrop.doctree new file mode 100644 index 000000000..192b8391a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Backdrop.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Box.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Box.doctree new file mode 100644 index 000000000..26766e7b3 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Box.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/BoxIn.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/BoxIn.doctree new file mode 100644 index 000000000..9e1fe9f9a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/BoxIn.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/BoxOut.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/BoxOut.doctree new file mode 100644 index 000000000..4da062db1 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/BoxOut.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Collect.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Collect.doctree new file mode 100644 index 000000000..2f27cd25f Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Collect.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ComputeNode.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ComputeNode.doctree new file mode 100644 index 000000000..55cd5c347 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ComputeNode.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ContextQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ContextQuery.doctree new file mode 100644 index 000000000..23bf7be32 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ContextQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ContextVariableTweaks.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ContextVariableTweaks.doctree new file mode 100644 index 000000000..3a2cc9a0e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ContextVariableTweaks.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ContextVariables.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ContextVariables.doctree new file mode 100644 index 000000000..5402a1c53 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ContextVariables.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/DeleteContextVariables.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/DeleteContextVariables.doctree new file mode 100644 index 000000000..b8fcd36cd Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/DeleteContextVariables.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/DependencyNode.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/DependencyNode.doctree new file mode 100644 index 000000000..50a9000ba Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/DependencyNode.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Dot.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Dot.doctree new file mode 100644 index 000000000..a469ff774 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Dot.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/EditScope.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/EditScope.doctree new file mode 100644 index 000000000..1b5842a77 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/EditScope.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Expression.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Expression.doctree new file mode 100644 index 000000000..79ba8a398 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Expression.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Loop.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Loop.doctree new file mode 100644 index 000000000..0e4523fdf Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Loop.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/NameSwitch.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/NameSwitch.doctree new file mode 100644 index 000000000..536b03e10 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/NameSwitch.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Node.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Node.doctree new file mode 100644 index 000000000..b88300770 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Node.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Preferences.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Preferences.doctree new file mode 100644 index 000000000..6abd382d2 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Preferences.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Random.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Random.doctree new file mode 100644 index 000000000..0ddf8d9bf Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Random.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/RandomChoice.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/RandomChoice.doctree new file mode 100644 index 000000000..5cbcb1173 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/RandomChoice.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Reference.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Reference.doctree new file mode 100644 index 000000000..4b81bca28 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Reference.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ScriptNode.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ScriptNode.doctree new file mode 100644 index 000000000..b8f110e45 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/ScriptNode.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Spreadsheet.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Spreadsheet.doctree new file mode 100644 index 000000000..6e9671315 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Spreadsheet.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/SubGraph.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/SubGraph.doctree new file mode 100644 index 000000000..59deb92fe Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/SubGraph.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Switch.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Switch.doctree new file mode 100644 index 000000000..518893ae2 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/Switch.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/TimeWarp.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/TimeWarp.doctree new file mode 100644 index 000000000..ae1fb7c5b Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/TimeWarp.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/index.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/index.doctree new file mode 100644 index 000000000..b236b1c6a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/Gaffer/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldAOVShader.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldAOVShader.doctree new file mode 100644 index 000000000..37972c641 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldAOVShader.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldAtmosphere.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldAtmosphere.doctree new file mode 100644 index 000000000..eb741da72 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldAtmosphere.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldAttributes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldAttributes.doctree new file mode 100644 index 000000000..9e8098b0a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldAttributes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldBackground.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldBackground.doctree new file mode 100644 index 000000000..2f819bd34 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldBackground.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldCameraShaders.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldCameraShaders.doctree new file mode 100644 index 000000000..756f4a44d Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldCameraShaders.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldColorManager.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldColorManager.doctree new file mode 100644 index 000000000..d23a4332e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldColorManager.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldDisplacement.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldDisplacement.doctree new file mode 100644 index 000000000..c37e20591 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldDisplacement.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldImager.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldImager.doctree new file mode 100644 index 000000000..5decebf94 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldImager.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldLight.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldLight.doctree new file mode 100644 index 000000000..ed0282848 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldLight.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldLightFilter.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldLightFilter.doctree new file mode 100644 index 000000000..6a8b3f852 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldLightFilter.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldMeshLight.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldMeshLight.doctree new file mode 100644 index 000000000..96620dbea Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldMeshLight.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldOptions.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldOptions.doctree new file mode 100644 index 000000000..235a09262 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldOptions.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldRender.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldRender.doctree new file mode 100644 index 000000000..9a9623a52 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldRender.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldShader.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldShader.doctree new file mode 100644 index 000000000..b81d40e80 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldShader.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldShaderBall.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldShaderBall.doctree new file mode 100644 index 000000000..3c9a3f321 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldShaderBall.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldTextureBake.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldTextureBake.doctree new file mode 100644 index 000000000..5f352cd66 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldTextureBake.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldVDB.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldVDB.doctree new file mode 100644 index 000000000..bf7e7d439 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/ArnoldVDB.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/InteractiveArnoldRender.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/InteractiveArnoldRender.doctree new file mode 100644 index 000000000..81c2ad6e8 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/InteractiveArnoldRender.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/index.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/index.doctree new file mode 100644 index 000000000..ce37ba53d Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferArnold/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesAttributes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesAttributes.doctree new file mode 100644 index 000000000..4403bb925 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesAttributes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesBackground.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesBackground.doctree new file mode 100644 index 000000000..27e1cbded Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesBackground.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesLight.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesLight.doctree new file mode 100644 index 000000000..aaac669b6 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesLight.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesMeshLight.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesMeshLight.doctree new file mode 100644 index 000000000..699ca6ead Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesMeshLight.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesOptions.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesOptions.doctree new file mode 100644 index 000000000..4312b5a7c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesOptions.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesRender.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesRender.doctree new file mode 100644 index 000000000..f05d34966 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesRender.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesShader.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesShader.doctree new file mode 100644 index 000000000..0ea9d14aa Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesShader.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesShaderBall.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesShaderBall.doctree new file mode 100644 index 000000000..1931f63ba Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/CyclesShaderBall.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/InteractiveCyclesRender.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/InteractiveCyclesRender.doctree new file mode 100644 index 000000000..97573795f Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/InteractiveCyclesRender.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/index.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/index.doctree new file mode 100644 index 000000000..b25f8798f Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferCycles/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/Dispatcher.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/Dispatcher.doctree new file mode 100644 index 000000000..bd8819264 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/Dispatcher.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/FrameMask.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/FrameMask.doctree new file mode 100644 index 000000000..61442a943 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/FrameMask.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/LocalDispatcher.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/LocalDispatcher.doctree new file mode 100644 index 000000000..dd0f9aa75 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/LocalDispatcher.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/PythonCommand.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/PythonCommand.doctree new file mode 100644 index 000000000..33520f128 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/PythonCommand.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/SystemCommand.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/SystemCommand.doctree new file mode 100644 index 000000000..507779580 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/SystemCommand.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskContextProcessor.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskContextProcessor.doctree new file mode 100644 index 000000000..239345bf8 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskContextProcessor.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskContextVariables.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskContextVariables.doctree new file mode 100644 index 000000000..9c2274bb0 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskContextVariables.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskList.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskList.doctree new file mode 100644 index 000000000..279b89bef Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskList.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskNode.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskNode.doctree new file mode 100644 index 000000000..06c122cb3 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskNode.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskSwitch.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskSwitch.doctree new file mode 100644 index 000000000..7cb5fefc8 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/TaskSwitch.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/Wedge.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/Wedge.doctree new file mode 100644 index 000000000..e60a8785f Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/Wedge.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/index.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/index.doctree new file mode 100644 index 000000000..d2533619c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferDispatch/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Anaglyph.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Anaglyph.doctree new file mode 100644 index 000000000..310ddb526 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Anaglyph.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/BleedFill.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/BleedFill.doctree new file mode 100644 index 000000000..48227001a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/BleedFill.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Blur.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Blur.doctree new file mode 100644 index 000000000..f0ab756cb Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Blur.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CDL.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CDL.doctree new file mode 100644 index 000000000..814d765c9 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CDL.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Catalogue.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Catalogue.doctree new file mode 100644 index 000000000..c2eb4fbb1 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Catalogue.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CatalogueSelect.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CatalogueSelect.doctree new file mode 100644 index 000000000..4bf020101 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CatalogueSelect.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Checkerboard.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Checkerboard.doctree new file mode 100644 index 000000000..c7ddf1f05 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Checkerboard.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Clamp.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Clamp.doctree new file mode 100644 index 000000000..5ecd98365 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Clamp.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CollectImages.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CollectImages.doctree new file mode 100644 index 000000000..51fbebab8 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CollectImages.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ColorSpace.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ColorSpace.doctree new file mode 100644 index 000000000..1f5dba36e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ColorSpace.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Constant.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Constant.doctree new file mode 100644 index 000000000..0f50c585c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Constant.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ContactSheet.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ContactSheet.doctree new file mode 100644 index 000000000..cb44ec21c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ContactSheet.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ContactSheetCore.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ContactSheetCore.doctree new file mode 100644 index 000000000..0018eb4a2 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ContactSheetCore.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CopyChannels.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CopyChannels.doctree new file mode 100644 index 000000000..925b13cac Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CopyChannels.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CopyImageMetadata.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CopyImageMetadata.doctree new file mode 100644 index 000000000..3c3d537b5 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CopyImageMetadata.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CopyViews.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CopyViews.doctree new file mode 100644 index 000000000..53a387373 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CopyViews.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CreateViews.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CreateViews.doctree new file mode 100644 index 000000000..01964cb0a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/CreateViews.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Crop.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Crop.doctree new file mode 100644 index 000000000..bfab422c6 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Crop.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepHoldout.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepHoldout.doctree new file mode 100644 index 000000000..c7fd5dd0a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepHoldout.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepMerge.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepMerge.doctree new file mode 100644 index 000000000..5548abc14 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepMerge.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepRecolor.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepRecolor.doctree new file mode 100644 index 000000000..76dbbefb7 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepRecolor.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepSampleCounts.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepSampleCounts.doctree new file mode 100644 index 000000000..a6750de68 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepSampleCounts.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepSampler.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepSampler.doctree new file mode 100644 index 000000000..36118b193 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepSampler.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepSlice.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepSlice.doctree new file mode 100644 index 000000000..ad2095cd3 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepSlice.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepState.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepState.doctree new file mode 100644 index 000000000..489998c8c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepState.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepTidy.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepTidy.doctree new file mode 100644 index 000000000..137539d18 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepTidy.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepToFlat.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepToFlat.doctree new file mode 100644 index 000000000..e20aa22e4 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeepToFlat.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeleteChannels.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeleteChannels.doctree new file mode 100644 index 000000000..c8dbea1b5 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeleteChannels.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeleteImageMetadata.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeleteImageMetadata.doctree new file mode 100644 index 000000000..43db540b8 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeleteImageMetadata.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeleteViews.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeleteViews.doctree new file mode 100644 index 000000000..0872ddd4f Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DeleteViews.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Dilate.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Dilate.doctree new file mode 100644 index 000000000..bab0a104c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Dilate.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Display.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Display.doctree new file mode 100644 index 000000000..800c5aaaf Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Display.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DisplayTransform.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DisplayTransform.doctree new file mode 100644 index 000000000..d70ad3a91 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/DisplayTransform.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Empty.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Empty.doctree new file mode 100644 index 000000000..8e462aeae Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Empty.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Erode.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Erode.doctree new file mode 100644 index 000000000..dc09cc485 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Erode.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FlatImageProcessor.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FlatImageProcessor.doctree new file mode 100644 index 000000000..64cf07acd Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FlatImageProcessor.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FlatImageSource.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FlatImageSource.doctree new file mode 100644 index 000000000..9c9043798 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FlatImageSource.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FlatToDeep.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FlatToDeep.doctree new file mode 100644 index 000000000..95bdc8e51 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FlatToDeep.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FormatQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FormatQuery.doctree new file mode 100644 index 000000000..3852ecd4e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/FormatQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Grade.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Grade.doctree new file mode 100644 index 000000000..a71ce9947 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Grade.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageMetadata.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageMetadata.doctree new file mode 100644 index 000000000..2f0790416 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageMetadata.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageNode.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageNode.doctree new file mode 100644 index 000000000..845f9d383 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageNode.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageProcessor.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageProcessor.doctree new file mode 100644 index 000000000..d041b0291 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageProcessor.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageReader.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageReader.doctree new file mode 100644 index 000000000..ec3f2e880 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageReader.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageSampler.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageSampler.doctree new file mode 100644 index 000000000..a66e2159a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageSampler.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageStats.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageStats.doctree new file mode 100644 index 000000000..983c0d68d Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageStats.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageTransform.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageTransform.doctree new file mode 100644 index 000000000..9fc56c2eb Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageTransform.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageWriter.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageWriter.doctree new file mode 100644 index 000000000..9d2a137a9 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/ImageWriter.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/LUT.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/LUT.doctree new file mode 100644 index 000000000..563cd1f89 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/LUT.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/LookTransform.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/LookTransform.doctree new file mode 100644 index 000000000..7abc66823 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/LookTransform.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Median.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Median.doctree new file mode 100644 index 000000000..3e8ad15ec Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Median.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Merge.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Merge.doctree new file mode 100644 index 000000000..29bcb91d1 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Merge.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Mirror.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Mirror.doctree new file mode 100644 index 000000000..78b701ff1 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Mirror.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Mix.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Mix.doctree new file mode 100644 index 000000000..90a991387 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Mix.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Offset.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Offset.doctree new file mode 100644 index 000000000..bcce1d05a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Offset.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/OpenColorIOContext.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/OpenColorIOContext.doctree new file mode 100644 index 000000000..74427e407 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/OpenColorIOContext.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/OpenImageIOReader.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/OpenImageIOReader.doctree new file mode 100644 index 000000000..ce88dad9b Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/OpenImageIOReader.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Premultiply.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Premultiply.doctree new file mode 100644 index 000000000..3aafb6a81 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Premultiply.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Ramp.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Ramp.doctree new file mode 100644 index 000000000..7337af94e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Ramp.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Rectangle.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Rectangle.doctree new file mode 100644 index 000000000..88b82bc04 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Rectangle.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Resample.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Resample.doctree new file mode 100644 index 000000000..96529df12 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Resample.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Resize.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Resize.doctree new file mode 100644 index 000000000..2fe386c25 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Resize.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Saturation.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Saturation.doctree new file mode 100644 index 000000000..bf0380d1e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Saturation.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/SelectView.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/SelectView.doctree new file mode 100644 index 000000000..e3d98ffc5 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/SelectView.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Shuffle.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Shuffle.doctree new file mode 100644 index 000000000..ce113f3e4 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Shuffle.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Text.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Text.doctree new file mode 100644 index 000000000..86d9f20ee Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Text.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Unpremultiply.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Unpremultiply.doctree new file mode 100644 index 000000000..86cddfc42 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/Unpremultiply.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/VectorWarp.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/VectorWarp.doctree new file mode 100644 index 000000000..34089ab75 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/VectorWarp.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/index.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/index.doctree new file mode 100644 index 000000000..8faf9fdc8 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferImage/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLCode.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLCode.doctree new file mode 100644 index 000000000..8034846ca Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLCode.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLImage.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLImage.doctree new file mode 100644 index 000000000..33b20fcbf Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLImage.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLLight.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLLight.doctree new file mode 100644 index 000000000..4eed763df Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLLight.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLObject.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLObject.doctree new file mode 100644 index 000000000..ae60f5235 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLObject.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLShader.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLShader.doctree new file mode 100644 index 000000000..9b7f7f933 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/OSLShader.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/index.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/index.doctree new file mode 100644 index 000000000..353979d42 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferOSL/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AimConstraint.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AimConstraint.doctree new file mode 100644 index 000000000..73b51390d Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AimConstraint.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AttributeQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AttributeQuery.doctree new file mode 100644 index 000000000..a6fa7c317 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AttributeQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AttributeTweaks.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AttributeTweaks.doctree new file mode 100644 index 000000000..82310e3fb Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AttributeTweaks.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AttributeVisualiser.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AttributeVisualiser.doctree new file mode 100644 index 000000000..96638dfff Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/AttributeVisualiser.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Attributes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Attributes.doctree new file mode 100644 index 000000000..b7c98b4ce Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Attributes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/BoundQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/BoundQuery.doctree new file mode 100644 index 000000000..55727c96c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/BoundQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Camera.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Camera.doctree new file mode 100644 index 000000000..2c6ec4522 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Camera.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CameraTweaks.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CameraTweaks.doctree new file mode 100644 index 000000000..f7ba4d36f Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CameraTweaks.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ClippingPlane.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ClippingPlane.doctree new file mode 100644 index 000000000..7f87afc8c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ClippingPlane.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ClosestPointSampler.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ClosestPointSampler.doctree new file mode 100644 index 000000000..6de6e509f Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ClosestPointSampler.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CollectPrimitiveVariables.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CollectPrimitiveVariables.doctree new file mode 100644 index 000000000..83bbb408c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CollectPrimitiveVariables.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CollectScenes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CollectScenes.doctree new file mode 100644 index 000000000..4aaa85b72 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CollectScenes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CollectTransforms.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CollectTransforms.doctree new file mode 100644 index 000000000..d0e86782a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CollectTransforms.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CoordinateSystem.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CoordinateSystem.doctree new file mode 100644 index 000000000..28e9cc7ca Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CoordinateSystem.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CopyAttributes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CopyAttributes.doctree new file mode 100644 index 000000000..b7f732cc1 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CopyAttributes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CopyOptions.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CopyOptions.doctree new file mode 100644 index 000000000..68fe911c5 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CopyOptions.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CopyPrimitiveVariables.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CopyPrimitiveVariables.doctree new file mode 100644 index 000000000..a6a441345 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CopyPrimitiveVariables.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Cryptomatte.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Cryptomatte.doctree new file mode 100644 index 000000000..0f954d1c8 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Cryptomatte.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Cube.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Cube.doctree new file mode 100644 index 000000000..8477a95c0 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Cube.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CurveSampler.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CurveSampler.doctree new file mode 100644 index 000000000..4014e58e4 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CurveSampler.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CustomAttributes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CustomAttributes.doctree new file mode 100644 index 000000000..7764a4d33 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CustomAttributes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CustomOptions.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CustomOptions.doctree new file mode 100644 index 000000000..fea53e17a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/CustomOptions.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteAttributes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteAttributes.doctree new file mode 100644 index 000000000..1c1d8ccdd Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteAttributes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteCurves.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteCurves.doctree new file mode 100644 index 000000000..3d655187a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteCurves.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteFaces.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteFaces.doctree new file mode 100644 index 000000000..274f5f656 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteFaces.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteGlobals.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteGlobals.doctree new file mode 100644 index 000000000..a366c2cab Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteGlobals.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteObject.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteObject.doctree new file mode 100644 index 000000000..3dec2a166 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteObject.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteOptions.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteOptions.doctree new file mode 100644 index 000000000..aeae44e1c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteOptions.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteOutputs.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteOutputs.doctree new file mode 100644 index 000000000..aa81c5a84 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteOutputs.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeletePoints.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeletePoints.doctree new file mode 100644 index 000000000..6abf9c990 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeletePoints.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeletePrimitiveVariables.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeletePrimitiveVariables.doctree new file mode 100644 index 000000000..0b9bfcb18 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeletePrimitiveVariables.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteRenderPasses.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteRenderPasses.doctree new file mode 100644 index 000000000..9be0ded81 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteRenderPasses.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteSets.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteSets.doctree new file mode 100644 index 000000000..002f94a83 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/DeleteSets.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Duplicate.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Duplicate.doctree new file mode 100644 index 000000000..c7b531bec Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Duplicate.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Encapsulate.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Encapsulate.doctree new file mode 100644 index 000000000..3590789bf Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Encapsulate.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ExistenceQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ExistenceQuery.doctree new file mode 100644 index 000000000..59eece635 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ExistenceQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ExternalProcedural.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ExternalProcedural.doctree new file mode 100644 index 000000000..95b1beaed Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ExternalProcedural.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Filter.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Filter.doctree new file mode 100644 index 000000000..4554dc05c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Filter.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilterProcessor.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilterProcessor.doctree new file mode 100644 index 000000000..d6853b427 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilterProcessor.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilterQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilterQuery.doctree new file mode 100644 index 000000000..c687a3991 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilterQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilterResults.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilterResults.doctree new file mode 100644 index 000000000..7cc219dc9 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilterResults.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilteredSceneProcessor.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilteredSceneProcessor.doctree new file mode 100644 index 000000000..55db987ec Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FilteredSceneProcessor.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FramingConstraint.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FramingConstraint.doctree new file mode 100644 index 000000000..9775d21fb Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FramingConstraint.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FreezeTransform.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FreezeTransform.doctree new file mode 100644 index 000000000..66959ee27 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/FreezeTransform.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Grid.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Grid.doctree new file mode 100644 index 000000000..4e5a72a6c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Grid.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Group.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Group.doctree new file mode 100644 index 000000000..ed9b3579a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Group.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ImageScatter.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ImageScatter.doctree new file mode 100644 index 000000000..4cb56a7e3 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ImageScatter.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ImageToPoints.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ImageToPoints.doctree new file mode 100644 index 000000000..2b66338c7 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ImageToPoints.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Instancer.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Instancer.doctree new file mode 100644 index 000000000..3bdb1617f Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Instancer.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/InteractiveRender.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/InteractiveRender.doctree new file mode 100644 index 000000000..17621a270 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/InteractiveRender.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Isolate.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Isolate.doctree new file mode 100644 index 000000000..36129d887 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Isolate.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/LightToCamera.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/LightToCamera.doctree new file mode 100644 index 000000000..789df9b7f Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/LightToCamera.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/LocaliseAttributes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/LocaliseAttributes.doctree new file mode 100644 index 000000000..84d735b55 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/LocaliseAttributes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MapOffset.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MapOffset.doctree new file mode 100644 index 000000000..d7e52dcf4 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MapOffset.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MapProjection.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MapProjection.doctree new file mode 100644 index 000000000..13b320466 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MapProjection.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MergeScenes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MergeScenes.doctree new file mode 100644 index 000000000..3687a1490 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MergeScenes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshDistortion.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshDistortion.doctree new file mode 100644 index 000000000..6f636eeec Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshDistortion.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshNormals.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshNormals.doctree new file mode 100644 index 000000000..8dbd9819c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshNormals.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshSegments.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshSegments.doctree new file mode 100644 index 000000000..4fb29f8d3 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshSegments.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshSplit.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshSplit.doctree new file mode 100644 index 000000000..f85d77f59 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshSplit.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshTangents.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshTangents.doctree new file mode 100644 index 000000000..cb5a32555 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshTangents.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshTessellate.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshTessellate.doctree new file mode 100644 index 000000000..f46c34f56 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshTessellate.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshToPoints.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshToPoints.doctree new file mode 100644 index 000000000..f422067df Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshToPoints.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshType.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshType.doctree new file mode 100644 index 000000000..6b013a888 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MeshType.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MotionPath.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MotionPath.doctree new file mode 100644 index 000000000..174e3135c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/MotionPath.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ObjectToScene.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ObjectToScene.doctree new file mode 100644 index 000000000..19887032d Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ObjectToScene.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OpenGLAttributes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OpenGLAttributes.doctree new file mode 100644 index 000000000..0c3b0072f Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OpenGLAttributes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OpenGLRender.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OpenGLRender.doctree new file mode 100644 index 000000000..67e24ad3b Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OpenGLRender.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OpenGLShader.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OpenGLShader.doctree new file mode 100644 index 000000000..4f44ad6b4 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OpenGLShader.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OptionQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OptionQuery.doctree new file mode 100644 index 000000000..5d9cb3a43 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OptionQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OptionTweaks.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OptionTweaks.doctree new file mode 100644 index 000000000..0503e6608 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/OptionTweaks.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Options.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Options.doctree new file mode 100644 index 000000000..b1f3f2066 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Options.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Orientation.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Orientation.doctree new file mode 100644 index 000000000..50a26e0f1 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Orientation.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Outputs.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Outputs.doctree new file mode 100644 index 000000000..5e9cc8b6e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Outputs.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Parameters.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Parameters.doctree new file mode 100644 index 000000000..f767e1484 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Parameters.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Parent.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Parent.doctree new file mode 100644 index 000000000..eede90645 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Parent.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ParentConstraint.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ParentConstraint.doctree new file mode 100644 index 000000000..e5b567a4a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ParentConstraint.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PathFilter.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PathFilter.doctree new file mode 100644 index 000000000..dd7da41fd Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PathFilter.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Plane.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Plane.doctree new file mode 100644 index 000000000..5e69df15b Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Plane.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PointConstraint.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PointConstraint.doctree new file mode 100644 index 000000000..d2d2092f0 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PointConstraint.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PointsType.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PointsType.doctree new file mode 100644 index 000000000..2a0157345 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PointsType.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PrimitiveVariableExists.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PrimitiveVariableExists.doctree new file mode 100644 index 000000000..f31cbebe0 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PrimitiveVariableExists.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PrimitiveVariableQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PrimitiveVariableQuery.doctree new file mode 100644 index 000000000..b64601869 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PrimitiveVariableQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PrimitiveVariables.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PrimitiveVariables.doctree new file mode 100644 index 000000000..98ba184c0 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/PrimitiveVariables.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Prune.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Prune.doctree new file mode 100644 index 000000000..1747ca156 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Prune.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Rename.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Rename.doctree new file mode 100644 index 000000000..4e079702f Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Rename.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Render.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Render.doctree new file mode 100644 index 000000000..549ecd7db Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Render.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPassShader.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPassShader.doctree new file mode 100644 index 000000000..c5c5d03b2 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPassShader.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPassTypeAdaptor.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPassTypeAdaptor.doctree new file mode 100644 index 000000000..9fd8bb5fc Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPassTypeAdaptor.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPassWedge.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPassWedge.doctree new file mode 100644 index 000000000..3155d9fb0 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPassWedge.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPasses.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPasses.doctree new file mode 100644 index 000000000..a0900f683 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/RenderPasses.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ResamplePrimitiveVariables.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ResamplePrimitiveVariables.doctree new file mode 100644 index 000000000..ed3b02a3e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ResamplePrimitiveVariables.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ReverseWinding.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ReverseWinding.doctree new file mode 100644 index 000000000..950059ddc Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ReverseWinding.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Scatter.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Scatter.doctree new file mode 100644 index 000000000..5ff5119f8 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Scatter.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneElementProcessor.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneElementProcessor.doctree new file mode 100644 index 000000000..ffc7e5018 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneElementProcessor.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneNode.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneNode.doctree new file mode 100644 index 000000000..73c4b7e2e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneNode.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneProcessor.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneProcessor.doctree new file mode 100644 index 000000000..5bb8c36ab Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneProcessor.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneReader.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneReader.doctree new file mode 100644 index 000000000..571a7d416 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneReader.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneWriter.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneWriter.doctree new file mode 100644 index 000000000..6df7ce60a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SceneWriter.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Set.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Set.doctree new file mode 100644 index 000000000..acff042c2 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Set.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SetFilter.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SetFilter.doctree new file mode 100644 index 000000000..8fd498143 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SetFilter.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SetQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SetQuery.doctree new file mode 100644 index 000000000..0ff6a0137 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SetQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SetVisualiser.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SetVisualiser.doctree new file mode 100644 index 000000000..578053736 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SetVisualiser.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Shader.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Shader.doctree new file mode 100644 index 000000000..85e47dcd4 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Shader.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderAssignment.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderAssignment.doctree new file mode 100644 index 000000000..8a02d2f27 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderAssignment.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderBall.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderBall.doctree new file mode 100644 index 000000000..629a705e9 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderBall.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderQuery.doctree new file mode 100644 index 000000000..5bedeb00c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderTweakProxy.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderTweakProxy.doctree new file mode 100644 index 000000000..44135afe9 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderTweakProxy.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderTweaks.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderTweaks.doctree new file mode 100644 index 000000000..e1a8c8e45 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShaderTweaks.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShuffleAttributes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShuffleAttributes.doctree new file mode 100644 index 000000000..1aba04dac Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShuffleAttributes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShufflePrimitiveVariables.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShufflePrimitiveVariables.doctree new file mode 100644 index 000000000..e43e6956e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/ShufflePrimitiveVariables.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Sphere.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Sphere.doctree new file mode 100644 index 000000000..3352988df Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Sphere.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/StandardAttributes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/StandardAttributes.doctree new file mode 100644 index 000000000..a17b7aa53 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/StandardAttributes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/StandardOptions.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/StandardOptions.doctree new file mode 100644 index 000000000..a8657570e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/StandardOptions.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SubTree.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SubTree.doctree new file mode 100644 index 000000000..a7686a274 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/SubTree.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Text.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Text.doctree new file mode 100644 index 000000000..b44e37f53 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Text.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Transform.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Transform.doctree new file mode 100644 index 000000000..6ba40f728 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Transform.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/TransformQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/TransformQuery.doctree new file mode 100644 index 000000000..ea7e10442 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/TransformQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/UDIMQuery.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/UDIMQuery.doctree new file mode 100644 index 000000000..21a0054c3 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/UDIMQuery.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/UVSampler.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/UVSampler.doctree new file mode 100644 index 000000000..a3aaa0cc2 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/UVSampler.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Unencapsulate.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Unencapsulate.doctree new file mode 100644 index 000000000..df6e4af78 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Unencapsulate.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/UnionFilter.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/UnionFilter.doctree new file mode 100644 index 000000000..a9124cc2e Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/UnionFilter.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Wireframe.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Wireframe.doctree new file mode 100644 index 000000000..28843b061 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/Wireframe.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/index.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/index.doctree new file mode 100644 index 000000000..9be3c31ae Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferScene/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferTractor/TractorDispatcher.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferTractor/TractorDispatcher.doctree new file mode 100644 index 000000000..b6473039b Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferTractor/TractorDispatcher.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferTractor/index.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferTractor/index.doctree new file mode 100644 index 000000000..ea3c05fa4 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferTractor/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDAttributes.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDAttributes.doctree new file mode 100644 index 000000000..7560461c2 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDAttributes.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDLayerWriter.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDLayerWriter.doctree new file mode 100644 index 000000000..b52d0b3f1 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDLayerWriter.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDLight.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDLight.doctree new file mode 100644 index 000000000..b9284b69d Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDLight.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDShader.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDShader.doctree new file mode 100644 index 000000000..0b82e0930 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/USDShader.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/index.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/index.doctree new file mode 100644 index 000000000..f1348034c Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferUSD/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/LevelSetOffset.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/LevelSetOffset.doctree new file mode 100644 index 000000000..23dcafdf6 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/LevelSetOffset.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/LevelSetToMesh.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/LevelSetToMesh.doctree new file mode 100644 index 000000000..d9ca2eec1 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/LevelSetToMesh.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/MeshToLevelSet.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/MeshToLevelSet.doctree new file mode 100644 index 000000000..b466a3ffb Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/MeshToLevelSet.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/PointsGridToPoints.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/PointsGridToPoints.doctree new file mode 100644 index 000000000..2d3702be7 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/PointsGridToPoints.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/PointsToLevelSet.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/PointsToLevelSet.doctree new file mode 100644 index 000000000..bf9c26449 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/PointsToLevelSet.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/SphereLevelSet.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/SphereLevelSet.doctree new file mode 100644 index 000000000..42d1f8212 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/SphereLevelSet.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/VolumeScatter.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/VolumeScatter.doctree new file mode 100644 index 000000000..218cbe42a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/VolumeScatter.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/index.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/index.doctree new file mode 100644 index 000000000..b2044123d Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/GafferVDB/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/NodeReference/index.doctree b/1.4.6.0/.doctrees/Reference/NodeReference/index.doctree new file mode 100644 index 000000000..59bb88a4a Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/NodeReference/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/ScriptingReference/CommonOperations/index.doctree b/1.4.6.0/.doctrees/Reference/ScriptingReference/CommonOperations/index.doctree new file mode 100644 index 000000000..85b2454f4 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/ScriptingReference/CommonOperations/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/ScriptingReference/Expressions/index.doctree b/1.4.6.0/.doctrees/Reference/ScriptingReference/Expressions/index.doctree new file mode 100644 index 000000000..5403cd8f6 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/ScriptingReference/Expressions/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/ScriptingReference/Metadata/index.doctree b/1.4.6.0/.doctrees/Reference/ScriptingReference/Metadata/index.doctree new file mode 100644 index 000000000..5782e43b3 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/ScriptingReference/Metadata/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/ScriptingReference/SetExpressions/index.doctree b/1.4.6.0/.doctrees/Reference/ScriptingReference/SetExpressions/index.doctree new file mode 100644 index 000000000..6eb9318b1 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/ScriptingReference/SetExpressions/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/ScriptingReference/StringSubstitutionSyntax/index.doctree b/1.4.6.0/.doctrees/Reference/ScriptingReference/StringSubstitutionSyntax/index.doctree new file mode 100644 index 000000000..7e94e9fe9 Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/ScriptingReference/StringSubstitutionSyntax/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/ScriptingReference/index.doctree b/1.4.6.0/.doctrees/Reference/ScriptingReference/index.doctree new file mode 100644 index 000000000..a1da6bb1b Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/ScriptingReference/index.doctree differ diff --git a/1.4.6.0/.doctrees/Reference/index.doctree b/1.4.6.0/.doctrees/Reference/index.doctree new file mode 100644 index 000000000..c7c68976d Binary files /dev/null and b/1.4.6.0/.doctrees/Reference/index.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.0.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.0.0.doctree new file mode 100644 index 000000000..91a7c7625 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.0.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.1.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.1.0.doctree new file mode 100644 index 000000000..a50a10535 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.1.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.2.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.2.0.doctree new file mode 100644 index 000000000..ce01d8127 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.2.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.2.1.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.2.1.doctree new file mode 100644 index 000000000..2f7a6e8c3 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.2.1.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.3.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.3.0.doctree new file mode 100644 index 000000000..5a0fdf974 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.3.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.4.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.4.0.doctree new file mode 100644 index 000000000..3725dcfdd Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.4.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.5.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.5.0.doctree new file mode 100644 index 000000000..5f4d0053a Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.5.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.5.1.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.5.1.doctree new file mode 100644 index 000000000..4b0330171 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.5.1.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.0.doctree new file mode 100644 index 000000000..17fd41225 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.1.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.1.doctree new file mode 100644 index 000000000..c2cb83ef4 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.1.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.2.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.2.doctree new file mode 100644 index 000000000..b3cbcbf94 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.2.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.3.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.3.doctree new file mode 100644 index 000000000..951d6c132 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.3.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.4.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.4.doctree new file mode 100644 index 000000000..bbb33c572 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.4.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.5.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.5.doctree new file mode 100644 index 000000000..d592d9194 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.5.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.6.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.6.doctree new file mode 100644 index 000000000..163b50257 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.0.6.6.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.0.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.0.0.doctree new file mode 100644 index 000000000..01044bb8f Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.0.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.1.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.1.0.doctree new file mode 100644 index 000000000..e69c0f5b6 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.1.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.2.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.2.0.doctree new file mode 100644 index 000000000..183ef64c0 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.2.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.3.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.3.0.doctree new file mode 100644 index 000000000..ac948651c Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.3.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.4.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.4.0.doctree new file mode 100644 index 000000000..fe70f4ca9 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.4.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.5.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.5.0.doctree new file mode 100644 index 000000000..f5d490be2 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.5.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.6.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.6.0.doctree new file mode 100644 index 000000000..6338f5400 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.6.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.6.1.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.6.1.doctree new file mode 100644 index 000000000..6aa7eda4d Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.6.1.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.7.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.7.0.doctree new file mode 100644 index 000000000..a75672bb2 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.7.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.8.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.8.0.doctree new file mode 100644 index 000000000..0d61bc102 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.8.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.0.doctree new file mode 100644 index 000000000..ef26a2a87 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.1.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.1.doctree new file mode 100644 index 000000000..79cb8c364 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.1.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.2.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.2.doctree new file mode 100644 index 000000000..0af1d2e4e Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.2.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.3.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.3.doctree new file mode 100644 index 000000000..fc210a9b7 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.3.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.4.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.4.doctree new file mode 100644 index 000000000..35454e637 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.4.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.5.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.5.doctree new file mode 100644 index 000000000..f16448239 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.5.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.6.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.6.doctree new file mode 100644 index 000000000..99ebcfd33 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.6.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.7.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.7.doctree new file mode 100644 index 000000000..fcf4eda9f Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.1.9.7.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.0.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.0.0.doctree new file mode 100644 index 000000000..42ecad438 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.0.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.0.1.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.0.1.doctree new file mode 100644 index 000000000..1699df107 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.0.1.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.0.2.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.0.2.doctree new file mode 100644 index 000000000..e289903ca Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.0.2.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.1.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.1.0.doctree new file mode 100644 index 000000000..fa0a3e513 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.1.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.1.1.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.1.1.doctree new file mode 100644 index 000000000..a47356851 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.1.1.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.0.doctree new file mode 100644 index 000000000..088731aa1 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.1.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.1.doctree new file mode 100644 index 000000000..5a3ff318f Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.1.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.2.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.2.doctree new file mode 100644 index 000000000..bda665551 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.2.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.3.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.3.doctree new file mode 100644 index 000000000..1cef3dca3 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.3.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.4.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.4.doctree new file mode 100644 index 000000000..f89bbcf1f Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.4.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.5.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.5.doctree new file mode 100644 index 000000000..8e74a1ae8 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.5.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.6.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.6.doctree new file mode 100644 index 000000000..70dfed9a1 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.10.6.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.2.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.2.0.doctree new file mode 100644 index 000000000..50e48659f Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.2.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.3.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.3.0.doctree new file mode 100644 index 000000000..61deb6c26 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.3.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.4.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.4.0.doctree new file mode 100644 index 000000000..dde9fabcc Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.4.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.5.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.5.0.doctree new file mode 100644 index 000000000..9e466c426 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.5.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.6.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.6.0.doctree new file mode 100644 index 000000000..099afe7d4 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.6.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.7.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.7.0.doctree new file mode 100644 index 000000000..f395c2c01 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.7.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.8.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.8.0.doctree new file mode 100644 index 000000000..c91715ba3 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.8.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.2.9.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.2.9.0.doctree new file mode 100644 index 000000000..e86d96c1a Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.2.9.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.0.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.0.0.doctree new file mode 100644 index 000000000..cca59168d Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.0.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.1.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.1.0.doctree new file mode 100644 index 000000000..508a89750 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.1.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.10.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.10.0.doctree new file mode 100644 index 000000000..3e0a2dcb0 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.10.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.11.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.11.0.doctree new file mode 100644 index 000000000..2958d6a38 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.11.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.12.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.12.0.doctree new file mode 100644 index 000000000..9b35c809b Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.12.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.13.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.13.0.doctree new file mode 100644 index 000000000..0d789449f Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.13.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.13.1.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.13.1.doctree new file mode 100644 index 000000000..f55755242 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.13.1.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.14.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.14.0.doctree new file mode 100644 index 000000000..66753a180 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.14.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.15.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.15.0.doctree new file mode 100644 index 000000000..8ac4113ca Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.15.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.0.doctree new file mode 100644 index 000000000..875c4881f Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.1.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.1.doctree new file mode 100644 index 000000000..1f8d3272e Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.1.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.2.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.2.doctree new file mode 100644 index 000000000..f24fe7a41 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.2.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.3.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.3.doctree new file mode 100644 index 000000000..3a3244556 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.3.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.4.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.4.doctree new file mode 100644 index 000000000..00ca8134f Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.16.4.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.2.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.2.0.doctree new file mode 100644 index 000000000..3a7a799f9 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.2.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.3.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.3.0.doctree new file mode 100644 index 000000000..f45e3a83e Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.3.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.4.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.4.0.doctree new file mode 100644 index 000000000..f5e40d05d Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.4.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.5.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.5.0.doctree new file mode 100644 index 000000000..9cb694f2a Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.5.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.6.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.6.0.doctree new file mode 100644 index 000000000..9f53f503a Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.6.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.6.1.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.6.1.doctree new file mode 100644 index 000000000..f4e9b85c6 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.6.1.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.7.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.7.0.doctree new file mode 100644 index 000000000..e908123bb Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.7.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.8.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.8.0.doctree new file mode 100644 index 000000000..f96135209 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.8.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.3.9.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.3.9.0.doctree new file mode 100644 index 000000000..5b5b63522 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.3.9.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.4.0.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.4.0.0.doctree new file mode 100644 index 000000000..6523d1382 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.4.0.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.4.1.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.4.1.0.doctree new file mode 100644 index 000000000..cdf113c1b Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.4.1.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.4.2.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.4.2.0.doctree new file mode 100644 index 000000000..3e637a360 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.4.2.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.4.3.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.4.3.0.doctree new file mode 100644 index 000000000..154ba4997 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.4.3.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.4.4.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.4.4.0.doctree new file mode 100644 index 000000000..709a8511f Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.4.4.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.4.5.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.4.5.0.doctree new file mode 100644 index 000000000..9d3ed1d76 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.4.5.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/1.4.6.0.doctree b/1.4.6.0/.doctrees/ReleaseNotes/1.4.6.0.doctree new file mode 100644 index 000000000..f88094586 Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/1.4.6.0.doctree differ diff --git a/1.4.6.0/.doctrees/ReleaseNotes/index.doctree b/1.4.6.0/.doctrees/ReleaseNotes/index.doctree new file mode 100644 index 000000000..74b25ebfa Binary files /dev/null and b/1.4.6.0/.doctrees/ReleaseNotes/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithImages/AnatomyOfAnImage/index.doctree b/1.4.6.0/.doctrees/WorkingWithImages/AnatomyOfAnImage/index.doctree new file mode 100644 index 000000000..7be3e897a Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithImages/AnatomyOfAnImage/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithImages/index.doctree b/1.4.6.0/.doctrees/WorkingWithImages/index.doctree new file mode 100644 index 000000000..0ad2099fc Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithImages/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithScenes/AnatomyOfACamera/index.doctree b/1.4.6.0/.doctrees/WorkingWithScenes/AnatomyOfACamera/index.doctree new file mode 100644 index 000000000..09a77767a Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithScenes/AnatomyOfACamera/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithScenes/AnatomyOfAScene/index.doctree b/1.4.6.0/.doctrees/WorkingWithScenes/AnatomyOfAScene/index.doctree new file mode 100644 index 000000000..ec742fecd Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithScenes/AnatomyOfAScene/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithScenes/Camera/index.doctree b/1.4.6.0/.doctrees/WorkingWithScenes/Camera/index.doctree new file mode 100644 index 000000000..59fc74ed6 Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithScenes/Camera/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithScenes/LightLinking/index.doctree b/1.4.6.0/.doctrees/WorkingWithScenes/LightLinking/index.doctree new file mode 100644 index 000000000..b9cf8d4c6 Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithScenes/LightLinking/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithScenes/index.doctree b/1.4.6.0/.doctrees/WorkingWithScenes/index.doctree new file mode 100644 index 000000000..95e63069a Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithScenes/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/BoxNode/index.doctree b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/BoxNode/index.doctree new file mode 100644 index 000000000..49b0d4904 Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/BoxNode/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/Contexts/index.doctree b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/Contexts/index.doctree new file mode 100644 index 000000000..3e2a413a1 Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/Contexts/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/PerformanceBestPractices/index.doctree b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/PerformanceBestPractices/index.doctree new file mode 100644 index 000000000..b8a25e6db Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/PerformanceBestPractices/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/SpreadsheetNode/index.doctree b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/SpreadsheetNode/index.doctree new file mode 100644 index 000000000..d85435cb0 Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/SpreadsheetNode/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/TutorialSettingUpASpreadsheet/index.doctree b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/TutorialSettingUpASpreadsheet/index.doctree new file mode 100644 index 000000000..d15479c30 Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/TutorialSettingUpASpreadsheet/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/TutorialUsingTheOSLCodeNode/index.doctree b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/TutorialUsingTheOSLCodeNode/index.doctree new file mode 100644 index 000000000..3528e3b39 Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/TutorialUsingTheOSLCodeNode/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/UsingThePerformanceMonitor/index.doctree b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/UsingThePerformanceMonitor/index.doctree new file mode 100644 index 000000000..6aa58585e Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/UsingThePerformanceMonitor/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/index.doctree b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/index.doctree new file mode 100644 index 000000000..929e70935 Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithTheNodeGraph/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/ThePythonEditor/index.doctree b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/ThePythonEditor/index.doctree new file mode 100644 index 000000000..82fe06d6a Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/ThePythonEditor/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialNodeGraphEditingInPython/index.doctree b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialNodeGraphEditingInPython/index.doctree new file mode 100644 index 000000000..85603bbad Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialNodeGraphEditingInPython/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialQueryingAScene/index.doctree b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialQueryingAScene/index.doctree new file mode 100644 index 000000000..caa0deb7f Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialQueryingAScene/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialStartupConfig1/index.doctree b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialStartupConfig1/index.doctree new file mode 100644 index 000000000..b1adfed81 Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialStartupConfig1/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialStartupConfig2/index.doctree b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialStartupConfig2/index.doctree new file mode 100644 index 000000000..4607229a4 Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialStartupConfig2/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialStartupConfig3/index.doctree b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialStartupConfig3/index.doctree new file mode 100644 index 000000000..79c51aa3f Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/TutorialStartupConfig3/index.doctree differ diff --git a/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/index.doctree b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/index.doctree new file mode 100644 index 000000000..faa76ea03 Binary files /dev/null and b/1.4.6.0/.doctrees/WorkingWithThePythonScriptingAPI/index.doctree differ diff --git a/1.4.6.0/.doctrees/environment.pickle b/1.4.6.0/.doctrees/environment.pickle new file mode 100644 index 000000000..a74703f38 Binary files /dev/null and b/1.4.6.0/.doctrees/environment.pickle differ diff --git a/1.4.6.0/.doctrees/index.doctree b/1.4.6.0/.doctrees/index.doctree new file mode 100644 index 000000000..07b08ba9a Binary files /dev/null and b/1.4.6.0/.doctrees/index.doctree differ diff --git a/1.4.6.0/Appendices/License/index.html b/1.4.6.0/Appendices/License/index.html new file mode 100644 index 000000000..91f600144 --- /dev/null +++ b/1.4.6.0/Appendices/License/index.html @@ -0,0 +1,7028 @@ + + + + + + + License — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

License

+
Copyright (c) 2011-2019 John Haddon. All rights reserved.
+Copyright (c) 2011-2019 Image Engine Design Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above
+      copyright notice, this list of conditions and the following
+      disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided with
+      the distribution.
+
+    * Neither the name of John Haddon nor the names of
+      any other contributors to this software may be used to endorse or
+      promote products derived from this software without specific prior
+      written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

Dependencies

+

Gaffer includes code from several open source projects. Specific licensing information, credits, source downloads and URLs are provided for each project below.

+
+

Alembic

+

http://www.alembic.io

+
TM & © 2009-2015 Lucasfilm Entertainment Company Ltd. or Lucasfilm Ltd.
+All rights reserved.
+
+Industrial Light & Magic, ILM and the Bulb and Gear design logo are all
+registered trademarks or service marks of Lucasfilm Ltd.
+
+© 2009-2015 Sony Pictures Imageworks Inc.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+* Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+* Neither the name of Industrial Light & Magic nor the names of
+its contributors may be used to endorse or promote products derived
+from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+-------------------------------------------------------------------------------
+
+ALEMBIC ATTACHMENT A — 
+REQUIRED NOTICES FOR DISTRIBUTION
+
+The Alembic Software is distributed along with certain third party 
+components licensed under various open source software licenses ("Open 
+Source Components"). In addition to the warranty disclaimers contained 
+in the open source licenses found below, Industrial Light & Magic, a 
+division of Lucasfilm Entertainment Company Ltd. ("ILM") makes the 
+following disclaimers regarding the Open Source Components on behalf of 
+itself, the copyright holders, contributors, and licensors of such Open 
+Source Components: 
+
+TO THE FULLEST EXTENT PERMITTED UNDER APPLICABLE LAW, THE OPEN SOURCE 
+COMPONENTS ARE PROVIDED BY THE COPYRIGHT HOLDERS, CONTRIBUTORS, 
+LICENSORS, AND ILM "AS IS" AND ANY REPRESENTATIONS OR WARRANTIES OF ANY 
+KIND, WHETHER ORAL OR WRITTEN, WHETHER EXPRESS, IMPLIED, OR ARISING BY 
+STATUTE, CUSTOM, COURSE OF DEALING, OR TRADE USAGE, INCLUDING WITHOUT 
+LIMITATION THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR 
+A PARTICULAR PURPOSE, AND NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT 
+WILL THE COPYRIGHT OWNER, CONTRIBUTORS, LICENSORS, OR ILM AND/OR ITS 
+AFFILIATES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
+PROFITS; OR BUSINESS INTERRUPTION), HOWEVER CAUSED AND ON ANY THEORY OF 
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE OPEN 
+SOURCE COMPONENTS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+
+Boost C++ Libraries 
+------------------------------------------------------------------------ 
+
+Boost Software License – Version 1.0 August 17th, 2003 Permission is 
+hereby granted, free of charge, to any person or organization obtaining 
+a copy of the software and accompanying documentation covered by this 
+license (the "Software") to use, reproduce, display, distribute, 
+execute, and transmit the Software, and to prepare derivative works of 
+the Software, and to permit third-parties to whom the Software is 
+furnished to do so, all subject to the following: 
+
+The copyright notices in the Software and this entire statement, 
+including the above license grant, this restriction and the following 
+disclaimer, must be included in all copies of the Software, in whole or 
+in part, and all derivative works of the Software, unless such copies or 
+derivative works are solely in the form of machine-executable object 
+code generated by a source language processor. 
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND 
+NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE 
+DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, 
+WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
+SOFTWARE. 
+
+
+
+
+
+

BitstreamVera

+

https://www.gnome.org/fonts

+
Bitstream Vera Fonts Copyright
+
+The fonts have a generous copyright, allowing derivative works (as
+long as "Bitstream" or "Vera" are not in the names), and full
+redistribution (so long as they are not *sold* by themselves). They
+can be be bundled, redistributed and sold with any software.
+
+The fonts are distributed under the following copyright:
+
+Copyright
+=========
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream
+Vera is a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the fonts accompanying this license ("Fonts") and associated
+documentation files (the "Font Software"), to reproduce and distribute
+the Font Software, including without limitation the rights to use,
+copy, merge, publish, distribute, and/or sell copies of the Font
+Software, and to permit persons to whom the Font Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice
+shall be included in all copies of one or more of the Font Software
+typefaces.
+
+The Font Software may be modified, altered, or added to, and in
+particular the designs of glyphs or characters in the Fonts may be
+modified and additional glyphs or characters may be added to the
+Fonts, only if the fonts are renamed to names not containing either
+the words "Bitstream" or the word "Vera".
+
+This License becomes null and void to the extent applicable to Fonts
+or Font Software that has been modified and is distributed under the
+"Bitstream Vera" names.
+
+The Font Software may be sold as part of a larger software package but
+no copy of one or more of the Font Software typefaces may be sold by
+itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
+BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL,
+OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT
+SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome
+Foundation, and Bitstream Inc., shall not be used in advertising or
+otherwise to promote the sale, use or other dealings in this Font
+Software without prior written authorization from the Gnome Foundation
+or Bitstream Inc., respectively. For further information, contact:
+fonts at gnome dot org.
+
+Copyright FAQ
+=============
+
+   1. I don't understand the resale restriction... What gives?
+
+      Bitstream is giving away these fonts, but wishes to ensure its
+      competitors can't just drop the fonts as is into a font sale system
+      and sell them as is. It seems fair that if Bitstream can't make money
+      from the Bitstream Vera fonts, their competitors should not be able to
+      do so either. You can sell the fonts as part of any software package,
+      however.
+
+   2. I want to package these fonts separately for distribution and
+      sale as part of a larger software package or system.  Can I do so?
+
+      Yes. A RPM or Debian package is a "larger software package" to begin 
+      with, and you aren't selling them independently by themselves. 
+      See 1. above.
+
+   3. Are derivative works allowed?
+      Yes!
+
+   4. Can I change or add to the font(s)?
+      Yes, but you must change the name(s) of the font(s).
+
+   5. Under what terms are derivative works allowed?
+
+      You must change the name(s) of the fonts. This is to ensure the
+      quality of the fonts, both to protect Bitstream and Gnome. We want to
+      ensure that if an application has opened a font specifically of these
+      names, it gets what it expects (though of course, using fontconfig,
+      substitutions could still could have occurred during font
+      opening). You must include the Bitstream copyright. Additional
+      copyrights can be added, as per copyright law. Happy Font Hacking!
+
+   6. If I have improvements for Bitstream Vera, is it possible they might get 
+       adopted in future versions?
+
+      Yes. The contract between the Gnome Foundation and Bitstream has
+      provisions for working with Bitstream to ensure quality additions to
+      the Bitstream Vera font family. Please contact us if you have such
+      additions. Note, that in general, we will want such additions for the
+      entire family, not just a single font, and that you'll have to keep
+      both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add
+      glyphs to the font, they must be stylistically in keeping with Vera's
+      design. Vera cannot become a "ransom note" font. Jim Lyles will be
+      providing a document describing the design elements used in Vera, as a
+      guide and aid for people interested in contributing to Vera.
+
+   7. I want to sell a software package that uses these fonts: Can I do so?
+
+      Sure. Bundle the fonts with your software and sell your software
+      with the fonts. That is the intent of the copyright.
+
+   8. If applications have built the names "Bitstream Vera" into them, 
+      can I override this somehow to use fonts of my choosing?
+
+      This depends on exact details of the software. Most open source
+      systems and software (e.g., Gnome, KDE, etc.) are now converting to
+      use fontconfig (see www.fontconfig.org) to handle font configuration,
+      selection and substitution; it has provisions for overriding font
+      names and subsituting alternatives. An example is provided by the
+      supplied local.conf file, which chooses the family Bitstream Vera for
+      "sans", "serif" and "monospace".  Other software (e.g., the XFree86
+      core server) has other mechanisms for font substitution.
+
+
+
+
+
+
+

Blosc

+

https://blosc.org

+
+
+

Boost

+

http://www.boost.org

+
Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+
+
+
+
+

CMark

+

https://github.com/github/cmark

+
Copyright (c) 2014, John MacFarlane
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-----
+
+houdini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c
+
+derive from https://github.com/vmg/houdini (with some modifications)
+
+Copyright (C) 2012 Vicent Martí
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+-----
+
+buffer.h, buffer.c, chunk.h
+
+are derived from code (C) 2012 Github, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+-----
+
+utf8.c and utf8.c
+
+are derived from utf8proc
+(<http://www.public-software-group.org/utf8proc>),
+(C) 2009 Public Software Group e. V., Berlin, Germany.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+-----
+
+The normalization code in normalize.py was derived from the
+markdowntest project, Copyright 2013 Karl Dubost:
+
+The MIT License (MIT)
+
+Copyright (c) 2013 Karl Dubost
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+-----
+
+The CommonMark spec (test/spec.txt) is
+
+Copyright (C) 2014-15 John MacFarlane
+
+Released under the Creative Commons CC-BY-SA 4.0 license:
+<http://creativecommons.org/licenses/by-sa/4.0/>.
+
+-----
+
+The test software in test/ is
+
+Copyright (c) 2014, John MacFarlane
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

Cortex

+

https://github.com/ImageEngine/cortex

+
Copyright (c) 2007-2019, Image Engine Design Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+    3. Neither the name of Image Engine Design nor the names of any
+      other contributors to this software may be used to endorse or
+      promote products derived from this software without specific prior
+      written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

Cycles

+

https://www.cycles-renderer.org/

+

+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+
+
+
+

Embree

+

https://www.embree.org/

+

+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+
+
+

Expat

+

https://libexpat.github.io/

+
Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper
+Copyright (c) 2001-2022 Expat maintainers
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+
+
+
+

Fmt

+

https://fmt.dev

+
Copyright (c) 2012 - present, Victor Zverovich
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+--- Optional exception to the license ---
+
+As an exception, if, as a result of your compiling your source code, portions
+of this Software are embedded into a machine-executable object form of such
+source code, you may redistribute such embedded portions in such object form
+without including the above copyright and permission notices.
+
+
+
+
+
+

FreeType

+

Portions of this software are copyright (c) 2018 The FreeType Project (www.freetype.org). All rights reserved.

+

http://www.freetype.org

+
                    The FreeType Project LICENSE
+                    ----------------------------
+
+                            2006-Jan-27
+
+                    Copyright 1996-2002, 2006 by
+          David Turner, Robert Wilhelm, and Werner Lemberg
+
+
+
+Introduction
+============
+
+  The FreeType  Project is distributed in  several archive packages;
+  some of them may contain, in addition to the FreeType font engine,
+  various tools and  contributions which rely on, or  relate to, the
+  FreeType Project.
+
+  This  license applies  to all  files found  in such  packages, and
+  which do not  fall under their own explicit  license.  The license
+  affects  thus  the  FreeType   font  engine,  the  test  programs,
+  documentation and makefiles, at the very least.
+
+  This  license   was  inspired  by  the  BSD,   Artistic,  and  IJG
+  (Independent JPEG  Group) licenses, which  all encourage inclusion
+  and  use of  free  software in  commercial  and freeware  products
+  alike.  As a consequence, its main points are that:
+
+    o We don't promise that this software works. However, we will be
+      interested in any kind of bug reports. (`as is' distribution)
+
+    o You can  use this software for whatever you  want, in parts or
+      full form, without having to pay us. (`royalty-free' usage)
+
+    o You may not pretend that  you wrote this software.  If you use
+      it, or  only parts of it,  in a program,  you must acknowledge
+      somewhere  in  your  documentation  that  you  have  used  the
+      FreeType code. (`credits')
+
+  We  specifically  permit  and  encourage  the  inclusion  of  this
+  software, with  or without modifications,  in commercial products.
+  We  disclaim  all warranties  covering  The  FreeType Project  and
+  assume no liability related to The FreeType Project.
+
+
+  Finally,  many  people  asked  us  for  a  preferred  form  for  a
+  credit/disclaimer to use in compliance with this license.  We thus
+  encourage you to use the following text:
+
+   """
+    Portions of this software are copyright © <year> The FreeType
+    Project (www.freetype.org).  All rights reserved.
+   """
+
+  Please replace <year> with the value from the FreeType version you
+  actually use.
+
+
+Legal Terms
+===========
+
+0. Definitions
+--------------
+
+  Throughout this license,  the terms `package', `FreeType Project',
+  and  `FreeType  archive' refer  to  the  set  of files  originally
+  distributed  by the  authors  (David Turner,  Robert Wilhelm,  and
+  Werner Lemberg) as the `FreeType Project', be they named as alpha,
+  beta or final release.
+
+  `You' refers to  the licensee, or person using  the project, where
+  `using' is a generic term including compiling the project's source
+  code as  well as linking it  to form a  `program' or `executable'.
+  This  program is  referred to  as  `a program  using the  FreeType
+  engine'.
+
+  This  license applies  to all  files distributed  in  the original
+  FreeType  Project,   including  all  source   code,  binaries  and
+  documentation,  unless  otherwise  stated   in  the  file  in  its
+  original, unmodified form as  distributed in the original archive.
+  If you are  unsure whether or not a particular  file is covered by
+  this license, you must contact us to verify this.
+
+  The FreeType  Project is copyright (C) 1996-2000  by David Turner,
+  Robert Wilhelm, and Werner Lemberg.  All rights reserved except as
+  specified below.
+
+1. No Warranty
+--------------
+
+  THE FREETYPE PROJECT  IS PROVIDED `AS IS' WITHOUT  WARRANTY OF ANY
+  KIND, EITHER  EXPRESS OR IMPLIED,  INCLUDING, BUT NOT  LIMITED TO,
+  WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR
+  PURPOSE.  IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
+  BE LIABLE  FOR ANY DAMAGES CAUSED  BY THE USE OR  THE INABILITY TO
+  USE, OF THE FREETYPE PROJECT.
+
+2. Redistribution
+-----------------
+
+  This  license  grants  a  worldwide, royalty-free,  perpetual  and
+  irrevocable right  and license to use,  execute, perform, compile,
+  display,  copy,   create  derivative  works   of,  distribute  and
+  sublicense the  FreeType Project (in  both source and  object code
+  forms)  and  derivative works  thereof  for  any  purpose; and  to
+  authorize others  to exercise  some or all  of the  rights granted
+  herein, subject to the following conditions:
+
+    o Redistribution of  source code  must retain this  license file
+      (`FTL.TXT') unaltered; any  additions, deletions or changes to
+      the original  files must be clearly  indicated in accompanying
+      documentation.   The  copyright   notices  of  the  unaltered,
+      original  files must  be  preserved in  all  copies of  source
+      files.
+
+    o Redistribution in binary form must provide a  disclaimer  that
+      states  that  the software is based in part of the work of the
+      FreeType Team,  in  the  distribution  documentation.  We also
+      encourage you to put an URL to the FreeType web page  in  your
+      documentation, though this isn't mandatory.
+
+  These conditions  apply to any  software derived from or  based on
+  the FreeType Project,  not just the unmodified files.   If you use
+  our work, you  must acknowledge us.  However, no  fee need be paid
+  to us.
+
+3. Advertising
+--------------
+
+  Neither the  FreeType authors and  contributors nor you  shall use
+  the name of the  other for commercial, advertising, or promotional
+  purposes without specific prior written permission.
+
+  We suggest,  but do not require, that  you use one or  more of the
+  following phrases to refer  to this software in your documentation
+  or advertising  materials: `FreeType Project',  `FreeType Engine',
+  `FreeType library', or `FreeType Distribution'.
+
+  As  you have  not signed  this license,  you are  not  required to
+  accept  it.   However,  as  the FreeType  Project  is  copyrighted
+  material, only  this license, or  another one contracted  with the
+  authors, grants you  the right to use, distribute,  and modify it.
+  Therefore,  by  using,  distributing,  or modifying  the  FreeType
+  Project, you indicate that you understand and accept all the terms
+  of this license.
+
+4. Contacts
+-----------
+
+  There are two mailing lists related to FreeType:
+
+    o freetype@nongnu.org
+
+      Discusses general use and applications of FreeType, as well as
+      future and  wanted additions to the  library and distribution.
+      If  you are looking  for support,  start in  this list  if you
+      haven't found anything to help you in the documentation.
+
+    o freetype-devel@nongnu.org
+
+      Discusses bugs,  as well  as engine internals,  design issues,
+      specific licenses, porting, etc.
+
+  Our home page can be found at
+
+    https://www.freetype.org
+
+
+--- end of FTL.TXT ---
+
+
+
+
+
+

GLEW

+

http://glew.sourceforge.net

+
The OpenGL Extension Wrangler Library
+Copyright (C) 2002-2007, Milan Ikits <milan ikits[]ieee org>
+Copyright (C) 2002-2007, Marcelo E. Magallon <mmagallo[]debian org>
+Copyright (C) 2002, Lev Povalahev
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without 
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, 
+  this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, 
+  this list of conditions and the following disclaimer in the documentation 
+  and/or other materials provided with the distribution.
+* The name of the author may be used to endorse or promote products 
+  derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Mesa 3-D graphics library
+Version:  7.0
+
+Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright (c) 2007 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+
+
+
+
+

GafferResources

+

https://www.gafferhq.org

+
+
+

HDF5

+

http://www.hdfgroup.org

+
Copyright Notice and License Terms for 
+HDF5 (Hierarchical Data Format 5) Software Library and Utilities
+-----------------------------------------------------------------------------
+
+HDF5 (Hierarchical Data Format 5) Software Library and Utilities
+Copyright 2006 by The HDF Group. 
+
+NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities
+Copyright 1998-2006 by The Board of Trustees of the University of Illinois. 
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without 
+modification, are permitted for any purpose (including commercial purposes) 
+provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, 
+   this list of conditions, and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, 
+   this list of conditions, and the following disclaimer in the documentation 
+   and/or materials provided with the distribution.
+
+3. Neither the name of The HDF Group, the name of the University, nor the 
+   name of any Contributor may be used to endorse or promote products derived 
+   from this software without specific prior written permission from 
+   The HDF Group, the University, or the Contributor, respectively.
+
+DISCLAIMER: 
+THIS SOFTWARE IS PROVIDED BY THE HDF GROUP AND THE CONTRIBUTORS 
+"AS IS" WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. IN NO 
+EVENT SHALL THE HDF GROUP OR THE CONTRIBUTORS BE LIABLE FOR ANY DAMAGES 
+SUFFERED BY THE USERS ARISING OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 
+You are under no obligation whatsoever to provide any bug fixes, patches, or 
+upgrades to the features, functionality or performance of the source code 
+("Enhancements") to anyone; however, if you choose to make your Enhancements 
+available either publicly, or directly to The HDF Group, without imposing a 
+separate written license agreement for such Enhancements, then you hereby 
+grant the following license: a non-exclusive, royalty-free perpetual license 
+to install, use, modify, prepare derivative works, incorporate into other 
+computer software, distribute, and sublicense such enhancements or derivative 
+works thereof, in binary and source code form.
+
+-----------------------------------------------------------------------------
+-----------------------------------------------------------------------------
+
+Limited portions of HDF5 were developed by Lawrence Berkeley National 
+Laboratory (LBNL). LBNL's Copyright Notice and Licensing Terms can be
+found here: COPYING_LBNL_HDF5 file in this directory or at 
+http://support.hdfgroup.org/ftp/HDF5/releases/COPYING_LBNL_HDF5. 
+
+-----------------------------------------------------------------------------
+-----------------------------------------------------------------------------
+
+Contributors:   National Center for Supercomputing Applications (NCSA) at 
+the University of Illinois, Fortner Software, Unidata Program Center 
+(netCDF), The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark Adler 
+(gzip), and Digital Equipment Corporation (DEC).
+
+-----------------------------------------------------------------------------
+ 
+Portions of HDF5 were developed with support from the Lawrence Berkeley 
+National Laboratory (LBNL) and the United States Department of Energy 
+under Prime Contract No. DE-AC02-05CH11231.
+
+-----------------------------------------------------------------------------
+
+Portions of HDF5 were developed with support from the University of 
+California, Lawrence Livermore National Laboratory (UC LLNL).  
+The following statement applies to those portions of the product and must 
+be retained in any redistribution of source code, binaries, documentation, 
+and/or accompanying materials:
+
+   This work was partially produced at the University of California, 
+   Lawrence Livermore National Laboratory (UC LLNL) under contract 
+   no. W-7405-ENG-48 (Contract 48) between the U.S. Department of Energy 
+   (DOE) and The Regents of the University of California (University) 
+   for the operation of UC LLNL.
+
+   DISCLAIMER: 
+   THIS WORK WAS PREPARED AS AN ACCOUNT OF WORK SPONSORED BY AN AGENCY OF 
+   THE UNITED STATES GOVERNMENT. NEITHER THE UNITED STATES GOVERNMENT NOR 
+   THE UNIVERSITY OF CALIFORNIA NOR ANY OF THEIR EMPLOYEES, MAKES ANY 
+   WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY OR RESPONSIBILITY 
+   FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY INFORMATION, 
+   APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS THAT ITS USE 
+   WOULD NOT INFRINGE PRIVATELY- OWNED RIGHTS. REFERENCE HEREIN TO ANY 
+   SPECIFIC COMMERCIAL PRODUCTS, PROCESS, OR SERVICE BY TRADE NAME, 
+   TRADEMARK, MANUFACTURER, OR OTHERWISE, DOES NOT NECESSARILY CONSTITUTE 
+   OR IMPLY ITS ENDORSEMENT, RECOMMENDATION, OR FAVORING BY THE UNITED 
+   STATES GOVERNMENT OR THE UNIVERSITY OF CALIFORNIA. THE VIEWS AND 
+   OPINIONS OF AUTHORS EXPRESSED HEREIN DO NOT NECESSARILY STATE OR REFLECT 
+   THOSE OF THE UNITED STATES GOVERNMENT OR THE UNIVERSITY OF CALIFORNIA, 
+   AND SHALL NOT BE USED FOR ADVERTISING OR PRODUCT ENDORSEMENT PURPOSES.
+
+-----------------------------------------------------------------------------
+
+HDF5 is available with the SZIP compression library but SZIP is not part 
+of HDF5 and has separate copyright and license terms. See SZIP Compression 
+in HDF Products (www.hdfgroup.org/doc_resource/SZIP/) for further details.
+
+-----------------------------------------------------------------------------
+
+
+
+
+
+
+
+

Imath

+

http://www.openexr.com

+
Copyright Contributors to the OpenEXR Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

Jemalloc

+

http://jemalloc.net/

+
Unless otherwise specified, files in the jemalloc source distribution are
+subject to the following license:
+--------------------------------------------------------------------------------
+Copyright (C) 2002-2014 Jason Evans <jasone@canonware.com>.
+All rights reserved.
+Copyright (C) 2007-2012 Mozilla Foundation.  All rights reserved.
+Copyright (C) 2009-2014 Facebook, Inc.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+1. Redistributions of source code must retain the above copyright notice(s),
+   this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice(s),
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
+EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+
+
+
+
+
+

Jinja2

+

https://palletsprojects.com/p/jinja/

+
Copyright 2007 Pallets
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1.  Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+2.  Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+3.  Neither the name of the copyright holder nor the names of its
+    contributors may be used to endorse or promote products derived from
+    this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

LLVM

+

https://llvm.org

+
==============================================================================
+The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
+==============================================================================
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+    1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+    2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+    3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+    4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+    5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+    6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+    7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+    8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+    9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+    END OF TERMS AND CONDITIONS
+
+    APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+    Copyright [yyyy] [name of copyright owner]
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+
+---- LLVM Exceptions to the Apache 2.0 License ----
+
+As an exception, if, as a result of your compiling your source code, portions
+of this Software are embedded into an Object form of such source code, you
+may redistribute such embedded portions in such Object form without complying
+with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
+
+In addition, if you combine or link compiled forms of this Software with
+software that is licensed under the GPLv2 ("Combined Software") and if a
+court of competent jurisdiction determines that the patent provision (Section
+3), the indemnity provision (Section 9) or other Section of the License
+conflicts with the conditions of the GPLv2, you may retroactively and
+prospectively choose to deem waived or otherwise exclude such Section(s) of
+the License, but only in their entirety and only with respect to the Combined
+Software.
+
+==============================================================================
+Software from third parties included in the LLVM Project:
+==============================================================================
+The LLVM Project contains third party software which is under different license
+terms. All such code will be identified clearly using at least one of two
+mechanisms:
+1) It will be in a separate directory tree with its own `LICENSE.txt` or
+   `LICENSE` file at the top containing the specific license and restrictions
+   which apply to that software, or
+2) It will contain specific license and restriction terms at the top of every
+   file.
+
+==============================================================================
+Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
+==============================================================================
+University of Illinois/NCSA
+Open Source License
+
+Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign.
+All rights reserved.
+
+Developed by:
+
+    LLVM Team
+
+    University of Illinois at Urbana-Champaign
+
+    http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimers.
+
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimers in the
+      documentation and/or other materials provided with the distribution.
+
+    * Neither the names of the LLVM Team, University of Illinois at
+      Urbana-Champaign, nor the names of its contributors may be used to
+      endorse or promote products derived from this Software without specific
+      prior written permission.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+SOFTWARE.
+
+
+
+
+
+
+

LZ4

+

http://www.lz4.org

+
LZ4 Library
+Copyright (c) 2011-2016, Yann Collet
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

LibFFI

+

https://sourceware.org/libffi/

+
libffi - Copyright (c) 1996-2021  Anthony Green, Red Hat, Inc and others.
+See source files for details.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+``Software''), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+
+
+
+

LibJPEG-Turbo

+

https://libjpeg-turbo.org

+
libjpeg-turbo Licenses
+======================
+
+libjpeg-turbo is covered by three compatible BSD-style open source licenses:
+
+- The IJG (Independent JPEG Group) License, which is listed in
+  [README.ijg](README.ijg)
+
+  This license applies to the libjpeg API library and associated programs
+  (any code inherited from libjpeg, and any modifications to that code.)
+
+- The Modified (3-clause) BSD License, which is listed below
+
+  This license covers the TurboJPEG API library and associated programs.
+
+- The zlib License, which is listed below
+
+  This license is a subset of the other two, and it covers the libjpeg-turbo
+  SIMD extensions.
+
+
+Complying with the libjpeg-turbo Licenses
+=========================================
+
+This section provides a roll-up of the libjpeg-turbo licensing terms, to the
+best of our understanding.
+
+1.  If you are distributing a modified version of the libjpeg-turbo source,
+    then:
+
+    1.  You cannot alter or remove any existing copyright or license notices
+        from the source.
+
+        **Origin**
+        - Clause 1 of the IJG License
+        - Clause 1 of the Modified BSD License
+        - Clauses 1 and 3 of the zlib License
+
+    2.  You must add your own copyright notice to the header of each source
+        file you modified, so others can tell that you modified that file (if
+        there is not an existing copyright header in that file, then you can
+        simply add a notice stating that you modified the file.)
+
+        **Origin**
+        - Clause 1 of the IJG License
+        - Clause 2 of the zlib License
+
+    3.  You must include the IJG README file, and you must not alter any of the
+        copyright or license text in that file.
+
+        **Origin**
+        - Clause 1 of the IJG License
+
+2.  If you are distributing only libjpeg-turbo binaries without the source, or
+    if you are distributing an application that statically links with
+    libjpeg-turbo, then:
+
+    1.  Your product documentation must include a message stating:
+
+        This software is based in part on the work of the Independent JPEG
+        Group.
+
+        **Origin**
+        - Clause 2 of the IJG license
+
+    2.  If your binary distribution includes or uses the TurboJPEG API, then
+        your product documentation must include the text of the Modified BSD
+        License.
+
+        **Origin**
+        - Clause 2 of the Modified BSD License
+
+3.  You cannot use the name of the IJG or The libjpeg-turbo Project or the
+    contributors thereof in advertising, publicity, etc.
+
+    **Origin**
+    - IJG License
+    - Clause 3 of the Modified BSD License
+
+4.  The IJG and The libjpeg-turbo Project do not warrant libjpeg-turbo to be
+    free of defects, nor do we accept any liability for undesirable
+    consequences resulting from your use of the software.
+
+    **Origin**
+    - IJG License
+    - Modified BSD License
+    - zlib License
+
+
+The Modified (3-clause) BSD License
+===================================
+
+Copyright (C)\<YEAR\> \<AUTHOR\>.  All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+- Neither the name of the libjpeg-turbo Project nor the names of its
+  contributors may be used to endorse or promote products derived from this
+  software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+
+The zlib License
+================
+
+Copyright (C) \<YEAR\>, \<AUTHOR\>.
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+
+
+
+
+

LibPNG

+

http://www.libpng.org

+
COPYRIGHT NOTICE, DISCLAIMER, and LICENSE
+=========================================
+
+PNG Reference Library License version 2
+---------------------------------------
+
+ * Copyright (c) 1995-2019 The PNG Reference Library Authors.
+ * Copyright (c) 2018-2019 Cosmin Truta.
+ * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
+ * Copyright (c) 1996-1997 Andreas Dilger.
+ * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
+
+The software is supplied "as is", without warranty of any kind,
+express or implied, including, without limitation, the warranties
+of merchantability, fitness for a particular purpose, title, and
+non-infringement.  In no event shall the Copyright owners, or
+anyone distributing the software, be liable for any damages or
+other liability, whether in contract, tort or otherwise, arising
+from, out of, or in connection with the software, or the use or
+other dealings in the software, even if advised of the possibility
+of such damage.
+
+Permission is hereby granted to use, copy, modify, and distribute
+this software, or portions hereof, for any purpose, without fee,
+subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you
+    must not claim that you wrote the original software.  If you
+    use this software in a product, an acknowledgment in the product
+    documentation would be appreciated, but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must
+    not be misrepresented as being the original software.
+
+ 3. This Copyright notice may not be removed or altered from any
+    source or altered source distribution.
+
+
+PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35)
+-----------------------------------------------------------------------
+
+libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are
+Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are
+derived from libpng-1.0.6, and are distributed according to the same
+disclaimer and license as libpng-1.0.6 with the following individuals
+added to the list of Contributing Authors:
+
+    Simon-Pierre Cadieux
+    Eric S. Raymond
+    Mans Rullgard
+    Cosmin Truta
+    Gilles Vollant
+    James Yu
+    Mandar Sahastrabuddhe
+    Google Inc.
+    Vadim Barkov
+
+and with the following additions to the disclaimer:
+
+    There is no warranty against interference with your enjoyment of
+    the library or against infringement.  There is no warranty that our
+    efforts or the library will fulfill any of your particular purposes
+    or needs.  This library is provided with all faults, and the entire
+    risk of satisfactory quality, performance, accuracy, and effort is
+    with the user.
+
+Some files in the "contrib" directory and some configure-generated
+files that are distributed with libpng have other copyright owners, and
+are released under other open source licenses.
+
+libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
+Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
+libpng-0.96, and are distributed according to the same disclaimer and
+license as libpng-0.96, with the following individuals added to the
+list of Contributing Authors:
+
+    Tom Lane
+    Glenn Randers-Pehrson
+    Willem van Schaik
+
+libpng versions 0.89, June 1996, through 0.96, May 1997, are
+Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
+and are distributed according to the same disclaimer and license as
+libpng-0.88, with the following individuals added to the list of
+Contributing Authors:
+
+    John Bowler
+    Kevin Bracey
+    Sam Bushell
+    Magnus Holmgren
+    Greg Roelofs
+    Tom Tanner
+
+Some files in the "scripts" directory have other copyright owners,
+but are released under this license.
+
+libpng versions 0.5, May 1995, through 0.88, January 1996, are
+Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
+
+For the purposes of this copyright and license, "Contributing Authors"
+is defined as the following set of individuals:
+
+    Andreas Dilger
+    Dave Martindale
+    Guy Eric Schalnat
+    Paul Schmidt
+    Tim Wegner
+
+The PNG Reference Library is supplied "AS IS".  The Contributing
+Authors and Group 42, Inc. disclaim all warranties, expressed or
+implied, including, without limitation, the warranties of
+merchantability and of fitness for any purpose.  The Contributing
+Authors and Group 42, Inc. assume no liability for direct, indirect,
+incidental, special, exemplary, or consequential damages, which may
+result from the use of the PNG Reference Library, even if advised of
+the possibility of such damage.
+
+Permission is hereby granted to use, copy, modify, and distribute this
+source code, or portions hereof, for any purpose, without fee, subject
+to the following restrictions:
+
+ 1. The origin of this source code must not be misrepresented.
+
+ 2. Altered versions must be plainly marked as such and must not
+    be misrepresented as being the original source.
+
+ 3. This Copyright notice may not be removed or altered from any
+    source or altered source distribution.
+
+The Contributing Authors and Group 42, Inc. specifically permit,
+without fee, and encourage the use of this source code as a component
+to supporting the PNG file format in commercial products.  If you use
+this source code in a product, acknowledgment is not required but would
+be appreciated.
+
+
+
+
+
+

LibRaw

+

https://www.libraw.org/

+
		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+
+
+
+

LibTIFF

+

http://www.libtiff.org

+
Copyright (c) 1988-1997 Sam Leffler
+Copyright (c) 1991-1997 Silicon Graphics, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software and 
+its documentation for any purpose is hereby granted without fee, provided
+that (i) the above copyright notices and this permission notice appear in
+all copies of the software and related documentation, and (ii) the names of
+Sam Leffler and Silicon Graphics may not be used in any advertising or
+publicity relating to the software without the specific, prior written
+permission of Sam Leffler and Silicon Graphics.
+
+THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
+EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
+WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
+
+IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
+ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
+LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
+OF THIS SOFTWARE.
+
+
+
+
+
+

LibWebP

+

https://chromium.googlesource.com/webm/libwebp

+
Copyright (c) 2010, Google Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+  * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+
+  * Neither the name of Google nor the names of its contributors may
+    be used to endorse or promote products derived from this software
+    without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+
+

MarkupSafe

+

https://palletsprojects.com/p/markupsafe/

+
Copyright 2010 Pallets
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1.  Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+2.  Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+3.  Neither the name of the copyright holder nor the names of its
+    contributors may be used to endorse or promote products derived from
+    this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

MaterialX

+

http://www.materialx.org/

+
                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+
+
+
+

Minizip

+

https://github.com/zlib-ng/minizip-ng

+
Condition of use and distribution are the same as zlib:
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgement in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+
+
+
+
+

OpenColorIO

+

http://opencolorio.org

+
Copyright Contributors to the OpenColorIO Project.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+* Neither the name of the copyright holder nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

OpenEXR

+

http://www.openexr.com

+
<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright (c) Contributors to the OpenEXR Project -->
+
+Copyright (c) Contributors to the OpenEXR Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

OpenImageIO

+

http://www.openimageio.org

+
                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+
+
+

OpenJPEG

+

https://www.openjpeg.org/

+
/*
+ * The copyright in this software is being made available under the 2-clauses 
+ * BSD License, included below. This software may be subject to other third 
+ * party and contributor rights, including patent rights, and no such rights
+ * are granted under this license.
+ *
+ * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2014, Professor Benoit Macq
+ * Copyright (c) 2003-2014, Antonin Descampe
+ * Copyright (c) 2003-2009, Francois-Olivier Devaux
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2011-2012, Centre National d'Etudes Spatiales (CNES), France 
+ * Copyright (c) 2012, CS Systemes d'Information, France
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+
+
+
+

OpenPGL

+

https://github.com/OpenPathGuidingLibrary/openpgl

+

+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+
+
+

OpenShadingLanguage

+

https://github.com/imageworks/OpenShadingLanguage

+
Copyright (c) 2009-present Contributors to the Open Shading Language project.
+All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

OpenSubdiv

+

http://graphics.pixar.com/opensubdiv

+

+                               Modified Apache 2.0 License
+
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor
+      and its affiliates, except as required to comply with Section 4(c) of
+      the License and to reproduce the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+
+
+
+
+

OpenVDB

+

http://www.openvdb.org

+
Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+  This Source Code Form is "Incompatible With Secondary Licenses", as
+  defined by the Mozilla Public License, v. 2.0.
+
+
+
+
+
+

PCG

+

https://www.pcg-random.org

+
Copyright (c) 2014-2017 Melissa O'Neill and PCG Project contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
+
+
+

Partio

+

http://partio.us

+
PARTIO SOFTWARE
+
+Copyright 2018 Disney Enterprises, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+3. The names "Disney", "Walt Disney Pictures", "Walt Disney Animation Studios"
+or the names of its contributors may NOT be used to endorse or promote products
+derived from this software without specific prior written permission from Walt
+Disney Pictures.
+
+Disclaimer: THIS SOFTWARE IS PROVIDED BY WALT DISNEY PICTURES AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+NONINFRINGEMENT AND TITLE ARE DISCLAIMED. IN NO EVENT SHALL WALT DISNEY
+PICTURES, THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND BASED ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+
+
+
+
+

PsUtil

+

https://github.com/giampaolo/psutil

+
BSD 3-Clause License
+
+Copyright (c) 2009, Jay Loden, Dave Daeschler, Giampaolo Rodola
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+ * Neither the name of the psutil authors nor the names of its contributors
+   may be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

PugiXML

+

https://pugixml.org

+
MIT License
+
+Copyright (c) 2006-2020 Arseny Kapoulkine
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+
+
+
+
+

PyBind11

+

https://pybind11.readthedocs.io

+
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Please also refer to the file .github/CONTRIBUTING.md, which clarifies licensing of
+external contributions to this project including patches, pull requests, etc.
+
+
+
+
+
+

PyOpenGL

+

http://pyopengl.sourceforge.net

+
NOTE:
+
+    THIS SOFTWARE IS NOT FAULT TOLERANT AND SHOULD NOT BE USED IN ANY
+    SITUATION ENDANGERING HUMAN LIFE OR PROPERTY.
+    
+OpenGL-ctypes License
+
+    Copyright (c) 2005-2014, Michael C. Fletcher and Contributors
+    All rights reserved.
+    
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    
+        Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+    
+        Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials
+        provided with the distribution.
+    
+        The name of Michael C. Fletcher, or the name of any Contributor,
+        may not be used to endorse or promote products derived from this 
+        software without specific prior written permission.
+    
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+    FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+    COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+    STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+    OF THE POSSIBILITY OF SUCH DAMAGE. 
+
+OpenGL-ctypes includes code from the PyOpenGL 2.x series licensed under
+version 3 of the PyOpenGL License (BSD-style):
+
+    PyOpenGL License (v3)
+
+    PyOpenGL is based on PyOpenGL 1.5.5, Copyright &copy; 1997-1998 by
+    James Hugunin, Cambridge MA, USA, Thomas Schwaller, Munich, Germany
+    and David Ascher, San Francisco CA, USA.
+
+    Contributors to the PyOpenGL project in addition to those listed 
+    above include:
+        * David Konerding
+        * Soren Renner
+        * Rene Liebscher
+        * Randall Hopper
+        * Michael Fletcher
+        * Thomas Malik
+        * Thomas Hamelryck
+        * Jack Jansen
+        * Michel Sanner
+        * Tarn Weisner Burton
+        * Andrew Cox
+        * Rene Dudfield
+
+    PyOpenGL is Copyright (c) 1997-1998, 2000-2006 by the contributors.
+
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions are
+    met:
+    
+    * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+        notice, this list of conditions and the following disclaimer in
+        the documentation and/or other materials provided with the
+        distribution.
+    * The names of the contributors may not be used to endorse or
+        promote products derived from this software without specific prior
+        written permission.
+    
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+    INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+    BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+    OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+    USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+    DAMAGE.
+
+OpenGL-ctypes includes code from the Pyglet project, licensed under the 
+Pyglet License (BSD Style):
+
+    Copyright (c) 2006-2008 Alex Holkner
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions 
+    are met:
+    
+    * Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+     * Redistributions in binary form must reproduce the above copyright 
+       notice, this list of conditions and the following disclaimer in
+       the documentation and/or other materials provided with the
+       distribution.
+     * Neither the name of pyglet nor the names of its
+       contributors may be used to endorse or promote products
+       derived from this software without specific prior written
+       permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+    FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+    COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+    INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+    BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+    ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+    POSSIBILITY OF SUCH DAMAGE.
+
+OpenGL-ctypes may include source code from the GLE (GL Tubing and Extrusion) library, which is 
+licensed under the license declared in OpenGL/DLLS/gle_COPYING.src if GLE is included in this 
+distribution.  Copyright notice follows:
+
+    This software is owned by International Business Machines Corporation
+    ("IBM"), or its subsidiaries or IBM's suppliers, and is copyrighted and
+    licensed, not sold.  IBM retains title to the software, and grants you a
+    nonexclusive license for the software.
+
+OpenGL-ctypes may include source code from FreeGLUT (GL Utility Toolkit) library,
+which is licensed under the MIT/X-Consortium License, available in 
+OpenGL/DLLS/freeglut_COPYING.txt if FreeGLUT is included in this distribution:
+
+    Freeglut code without an explicit copyright is covered by the following 
+    copyright:
+
+    Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+    Permission is hereby granted, free of charge,  to any person obtaining a copy 
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction,  including without limitation the rights 
+    to use, copy,  modify, merge,  publish, distribute,  sublicense,  and/or sell 
+    copies or substantial portions of the Software.
+
+    The above  copyright notice  and this permission notice  shall be included in 
+    all copies or substantial portions of the Software.
+
+    THE SOFTWARE  IS PROVIDED "AS IS",  WITHOUT WARRANTY OF ANY KIND,  EXPRESS OR 
+    IMPLIED,  INCLUDING  BUT  NOT LIMITED  TO THE WARRANTIES  OF MERCHANTABILITY, 
+    FITNESS  FOR  A PARTICULAR PURPOSE  AND NONINFRINGEMENT.  IN  NO EVENT  SHALL 
+    PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM,  DAMAGES OR OTHER LIABILITY, WHETHER 
+    IN  AN ACTION  OF CONTRACT,  TORT OR OTHERWISE,  ARISING FROM,  OUT OF  OR IN 
+    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice,  the name of Pawel W. Olszta shall not be 
+    used  in advertising  or otherwise to promote the sale, use or other dealings 
+    in this Software without prior written authorization from Pawel W. Olszta.
+
+OpenGL-ctypes may include binary distributions of the Tk Togl widget, which is licensed under the 
+following license/copyright notice (available in OpenGL/Tk/*/LICENSE if Togl is included).
+
+    This software is copyrighted by Brian Paul (brian@mesa3d.org),
+    Benjamin Bederson (bederson@cs.umd.edu), and Greg Couch
+    (gregcouch@users.sourceforge.net).  The following terms apply to all
+    files associated with the software unless explicitly disclaimed in
+    individual files.
+
+    The authors hereby grant permission to use, copy, modify, distribute,
+    and license this software and its documentation for any purpose, provided
+    that existing copyright notices are retained in all copies and that this
+    notice is included verbatim in any distributions.  No written agreement,
+    license, or royalty fee is required for any of the authorized uses.
+    Modifications to this software may be copyrighted by their authors
+    and need not follow the licensing terms described here, provided that
+    the new terms are clearly indicated on the first page of each file where
+    they apply.
+
+    IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
+    FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+    ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
+    DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
+    POSSIBILITY OF SUCH DAMAGE.
+
+    THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
+    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
+    IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
+    NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
+    MODIFICATIONS.
+
+OpenGL-ctypes includes an OS-Mesa platform driver which is (MIT
+Licensed), Copyright (c) 2012 Xu, Yuan <xuyuan.cn@gmail.com>:
+
+    https://github.com/xuyuan/PyOSMesa
+    http://opensource.org/licenses/MIT
+
+OpenGL-ctypes uses a table from the Chromium Regal project to provide 
+constant:array-size mappings.  Regal is:
+
+    Copyright (c) 2011-2012 NVIDIA Corporation
+    Copyright (c) 2011-2012 Cass Everitt
+    Copyright (c) 2012 Scott Nations
+    Copyright (c) 2012 Mathias Schott
+    Copyright (c) 2012 Nigel Stewart
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without modification,
+    are permitted provided that the following conditions are met:
+
+    Redistributions of source code must retain the above copyright notice, this
+    list of conditions and the following disclaimer.
+
+    Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+    IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+    BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+    OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+    OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

PySide

+

http://www.pyside.org

+
            GNU LESSER GENERAL PUBLIC LICENSE
+
+ The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
+ Contact: http://www.qt.io/licensing/
+
+ You may use, distribute and copy the Qt Toolkit under the terms of
+ GNU Lesser General Public License version 3, which is displayed below.
+ This license makes reference to the version 3 of the GNU General
+ Public License, which you can find in the LICENSE.GPLv3 file.
+
+-------------------------------------------------------------------------
+
+                   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
+
+
+
+
+

PyString

+

https://github.com/imageworks/pystring

+
Copyright (c) 2008-present Contributors to the Pystring project.
+All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+

Python

+

https://www.python.org

+
A. HISTORY OF THE SOFTWARE
+==========================
+
+Python was created in the early 1990s by Guido van Rossum at Stichting
+Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands
+as a successor of a language called ABC.  Guido remains Python's
+principal author, although it includes many contributions from others.
+
+In 1995, Guido continued his work on Python at the Corporation for
+National Research Initiatives (CNRI, see https://www.cnri.reston.va.us)
+in Reston, Virginia where he released several versions of the
+software.
+
+In May 2000, Guido and the Python core development team moved to
+BeOpen.com to form the BeOpen PythonLabs team.  In October of the same
+year, the PythonLabs team moved to Digital Creations, which became
+Zope Corporation.  In 2001, the Python Software Foundation (PSF, see
+https://www.python.org/psf/) was formed, a non-profit organization
+created specifically to own Python-related Intellectual Property.
+Zope Corporation was a sponsoring member of the PSF.
+
+All Python releases are Open Source (see https://opensource.org for
+the Open Source Definition).  Historically, most, but not all, Python
+releases have also been GPL-compatible; the table below summarizes
+the various releases.
+
+    Release         Derived     Year        Owner       GPL-
+                    from                                compatible? (1)
+
+    0.9.0 thru 1.2              1991-1995   CWI         yes
+    1.3 thru 1.5.2  1.2         1995-1999   CNRI        yes
+    1.6             1.5.2       2000        CNRI        no
+    2.0             1.6         2000        BeOpen.com  no
+    1.6.1           1.6         2001        CNRI        yes (2)
+    2.1             2.0+1.6.1   2001        PSF         no
+    2.0.1           2.0+1.6.1   2001        PSF         yes
+    2.1.1           2.1+2.0.1   2001        PSF         yes
+    2.1.2           2.1.1       2002        PSF         yes
+    2.1.3           2.1.2       2002        PSF         yes
+    2.2 and above   2.1.1       2001-now    PSF         yes
+
+Footnotes:
+
+(1) GPL-compatible doesn't mean that we're distributing Python under
+    the GPL.  All Python licenses, unlike the GPL, let you distribute
+    a modified version without making your changes open source.  The
+    GPL-compatible licenses make it possible to combine Python with
+    other software that is released under the GPL; the others don't.
+
+(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
+    because its license has a choice of law clause.  According to
+    CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
+    is "not incompatible" with the GPL.
+
+Thanks to the many outside volunteers who have worked under Guido's
+direction to make these releases possible.
+
+
+B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
+===============================================================
+
+Python software and documentation are licensed under the
+Python Software Foundation License Version 2.
+
+Starting with Python 3.8.6, examples, recipes, and other code in
+the documentation are dual licensed under the PSF License Version 2
+and the Zero-Clause BSD license.
+
+Some software incorporated into Python is under different licenses.
+The licenses are listed with code falling under that license.
+
+
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF hereby
+grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
+analyze, test, perform and/or display publicly, prepare derivative works,
+distribute, and otherwise use Python alone or in any derivative version,
+provided, however, that PSF's License Agreement and PSF's notice of copyright,
+i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation;
+All Rights Reserved" are retained in Python alone or in any derivative version
+prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python.
+
+4. PSF is making Python available to Licensee on an "AS IS"
+basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee.  This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
+-------------------------------------------
+
+BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
+
+1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
+office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
+Individual or Organization ("Licensee") accessing and otherwise using
+this software in source or binary form and its associated
+documentation ("the Software").
+
+2. Subject to the terms and conditions of this BeOpen Python License
+Agreement, BeOpen hereby grants Licensee a non-exclusive,
+royalty-free, world-wide license to reproduce, analyze, test, perform
+and/or display publicly, prepare derivative works, distribute, and
+otherwise use the Software alone or in any derivative version,
+provided, however, that the BeOpen Python License is retained in the
+Software, alone or in any derivative version prepared by Licensee.
+
+3. BeOpen is making the Software available to Licensee on an "AS IS"
+basis.  BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
+SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
+AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
+DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+5. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+6. This License Agreement shall be governed by and interpreted in all
+respects by the law of the State of California, excluding conflict of
+law provisions.  Nothing in this License Agreement shall be deemed to
+create any relationship of agency, partnership, or joint venture
+between BeOpen and Licensee.  This License Agreement does not grant
+permission to use BeOpen trademarks or trade names in a trademark
+sense to endorse or promote products or services of Licensee, or any
+third party.  As an exception, the "BeOpen Python" logos available at
+http://www.pythonlabs.com/logos.html may be used according to the
+permissions granted on that web page.
+
+7. By copying, installing or otherwise using the software, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
+---------------------------------------
+
+1. This LICENSE AGREEMENT is between the Corporation for National
+Research Initiatives, having an office at 1895 Preston White Drive,
+Reston, VA 20191 ("CNRI"), and the Individual or Organization
+("Licensee") accessing and otherwise using Python 1.6.1 software in
+source or binary form and its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, CNRI
+hereby grants Licensee a nonexclusive, royalty-free, world-wide
+license to reproduce, analyze, test, perform and/or display publicly,
+prepare derivative works, distribute, and otherwise use Python 1.6.1
+alone or in any derivative version, provided, however, that CNRI's
+License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
+1995-2001 Corporation for National Research Initiatives; All Rights
+Reserved" are retained in Python 1.6.1 alone or in any derivative
+version prepared by Licensee.  Alternately, in lieu of CNRI's License
+Agreement, Licensee may substitute the following text (omitting the
+quotes): "Python 1.6.1 is made available subject to the terms and
+conditions in CNRI's License Agreement.  This Agreement together with
+Python 1.6.1 may be located on the internet using the following
+unique, persistent identifier (known as a handle): 1895.22/1013.  This
+Agreement may also be obtained from a proxy server on the internet
+using the following URL: http://hdl.handle.net/1895.22/1013".
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python 1.6.1 or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python 1.6.1.
+
+4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
+basis.  CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. This License Agreement shall be governed by the federal
+intellectual property law of the United States, including without
+limitation the federal copyright law, and, to the extent such
+U.S. federal law does not apply, by the law of the Commonwealth of
+Virginia, excluding Virginia's conflict of law provisions.
+Notwithstanding the foregoing, with regard to derivative works based
+on Python 1.6.1 that incorporate non-separable material that was
+previously distributed under the GNU General Public License (GPL), the
+law of the Commonwealth of Virginia shall govern this License
+Agreement only as to issues arising under or with respect to
+Paragraphs 4, 5, and 7 of this License Agreement.  Nothing in this
+License Agreement shall be deemed to create any relationship of
+agency, partnership, or joint venture between CNRI and Licensee.  This
+License Agreement does not grant permission to use CNRI trademarks or
+trade name in a trademark sense to endorse or promote products or
+services of Licensee, or any third party.
+
+8. By clicking on the "ACCEPT" button where indicated, or by copying,
+installing or otherwise using Python 1.6.1, Licensee agrees to be
+bound by the terms and conditions of this License Agreement.
+
+        ACCEPT
+
+
+CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
+--------------------------------------------------
+
+Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
+The Netherlands.  All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION
+----------------------------------------------------------------------
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+
+
+
+

Qt

+

https://www.qt.io

+
            GNU LESSER GENERAL PUBLIC LICENSE
+
+ The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
+ Contact: http://www.qt.io/licensing/
+
+ You may use, distribute and copy the Qt Toolkit under the terms of
+ GNU Lesser General Public License version 2.1, which is displayed below.
+
+-------------------------------------------------------------------------
+
+            GNU LESSER GENERAL PUBLIC LICENSE
+                Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+        GNU LESSER GENERAL PUBLIC LICENSE
+    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
+
+
+
+
+
+

Qt.py

+

https://github.com/mottosso/Qt.py

+
The MIT License (MIT)
+
+Copyright (c) 2016 Marcus Ottosson
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
+
+
+

TBB

+

http://threadingbuildingblocks.org/

+
                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+
+
+

USD

+

https://graphics.pixar.com/usd

+

+                               Modified Apache 2.0 License
+
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor
+      and its affiliates, except as required to comply with Section 4(c) of
+      the License and to reproduce the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+============================================================
+RapidJSON
+============================================================
+
+Tencent is pleased to support the open source community by making RapidJSON available. 
+ 
+Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.  All rights reserved.
+
+If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License.
+If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms.  Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. To avoid the problematic JSON license in your own projects, it's sufficient to exclude the bin/jsonchecker/ directory, as it's the only code under the JSON license.
+A copy of the MIT License is included in this file.
+
+Other dependencies and licenses:
+
+Open Source Software Licensed Under the BSD License:
+--------------------------------------------------------------------
+
+The msinttypes r29 
+Copyright (c) 2006-2013 Alexander Chemeris 
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
+* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+* Neither the name of  copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Open Source Software Licensed Under the JSON License:
+--------------------------------------------------------------------
+
+json.org 
+Copyright (c) 2002 JSON.org
+All Rights Reserved.
+
+JSON_checker
+Copyright (c) 2002 JSON.org
+All Rights Reserved.
+
+	
+Terms of the JSON License:
+---------------------------------------------------
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+The Software shall be used for Good, not Evil.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Terms of the MIT License:
+--------------------------------------------------------------------
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+============================================================
+double-conversion
+============================================================
+
+Copyright 2006-2011, the V8 project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+    * Neither the name of Google Inc. nor the names of its
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+============================================================
+OpenEXR/IlmBase/Half
+============================================================
+
+///////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2002, Industrial Light & Magic, a division of Lucas
+// Digital Ltd. LLC
+// 
+// All rights reserved.
+// 
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+// *       Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// *       Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// *       Neither the name of Industrial Light & Magic nor the names of
+// its contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission. 
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+///////////////////////////////////////////////////////////////////////////
+
+============================================================
+libdeflate
+============================================================
+
+Copyright 2016 Eric Biggers
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation files
+(the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+============================================================
+Apple Technical Q&A QA1361 - Detecting the Debugger
+https://developer.apple.com/library/content/qa/qa1361/_index.html
+============================================================
+
+Sample code project: Detecting the Debugger
+Version: 1.0
+
+Abstract: Shows how to determine if code is being run under the debugger.
+
+IMPORTANT:  This Apple software is supplied to you by Apple
+Inc. ("Apple") in consideration of your agreement to the following
+terms, and your use, installation, modification or redistribution of
+this Apple software constitutes acceptance of these terms.  If you do
+not agree with these terms, please do not use, install, modify or
+redistribute this Apple software.
+
+In consideration of your agreement to abide by the following terms, and
+subject to these terms, Apple grants you a personal, non-exclusive
+license, under Apple's copyrights in this original Apple software (the
+"Apple Software"), to use, reproduce, modify and redistribute the Apple
+Software, with or without modifications, in source and/or binary forms;
+provided that if you redistribute the Apple Software in its entirety and
+without modifications, you must retain this notice and the following
+text and disclaimers in all such redistributions of the Apple Software.
+Neither the name, trademarks, service marks or logos of Apple Inc. may
+be used to endorse or promote products derived from the Apple Software
+without specific prior written permission from Apple.  Except as
+expressly stated in this notice, no other rights or licenses, express or
+implied, are granted by Apple herein, including but not limited to any
+patent rights that may be infringed by your derivative works or by other
+works in which the Apple Software may be incorporated.
+ 
+The Apple Software is provided by Apple on an "AS IS" basis.  APPLE
+MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
+THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
+OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
+ 
+IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
+OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
+MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
+AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
+STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+============================================================
+LZ4
+============================================================
+
+LZ4 - Fast LZ compression algorithm
+Copyright (C) 2011-present, Yann Collet.
+
+BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+You can contact the author at :
+ - LZ4 homepage : http://www.lz4.org
+ - LZ4 source repository : https://github.com/lz4/lz4
+
+============================================================
+stb
+============================================================
+
+stb_image - v2.19 - public domain image loader - http://nothings.org/stb
+                                  no warranty implied; use at your own risk
+
+stb_image_resize - v0.95 - public domain image resizing
+   by Jorge L Rodriguez (@VinoBS) - 2014
+      http://github.com/nothings/stb
+
+stb_image_write - v1.09 - public domain - http://nothings.org/stb/stb_image_write.h
+   writes out PNG/BMP/TGA/JPEG/HDR images to C stdio - Sean Barrett 2010-2015
+                                        no warranty implied; use at your own risk
+
+ALTERNATIVE B - Public Domain (www.unlicense.org)                               
+This is free and unencumbered software released into the public domain.         
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute this 
+software, either in source code form or as a compiled binary, for any purpose,  
+commercial or non-commercial, and by any means.                                 
+In jurisdictions that recognize copyright laws, the author or authors of this   
+software dedicate any and all copyright interest in the software to the public  
+domain. We make this dedication for the benefit of the public at large and to   
+the detriment of our heirs and successors. We intend this dedication to be an   
+overt act of relinquishment in perpetuity of all present and future rights to   
+this software under copyright law.                                              
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR          
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,        
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE         
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN          
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION    
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                 
+
+============================================================
+pugixml
+============================================================
+
+MIT License
+
+Copyright (c) 2006-2019 Arseny Kapoulkine
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+============================================================
+Vulkan C++ examples and demos (dome light texture filtering)
+============================================================
+
+The MIT License (MIT)
+
+Copyright (c) 2016 Sascha Willems
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+============================================================
+pbrt (Hammersley Low-Discrepancy Sampling Sequence)
+============================================================
+
+Copyright (c) 1998-2015, Matt Pharr, Greg Humphreys, and Wenzel Jakob.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+============================================================
+Draco
+============================================================
+USD bundles Draco, which is available under the Apache 2.0 license. For details,
+see https://github.com/google/draco/blob/master/README.md.
+
+
+============================================================
+Roboto Fonts
+============================================================
+USD bundles Roboto fonts, which is available under the Apache 2.0 license. 
+For details, see https://fonts.google.com/specimen/Roboto#license
+
+
+============================================================
+Roboto Mono Fonts
+============================================================
+USD bundles Roboto Mono fonts, which is available under the Apache 2.0 license. 
+For details, see https://fonts.google.com/specimen/Roboto+Mono#license
+
+
+============================================================
+Vulkan Memory Allocator
+============================================================
+Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+============================================================
+Spirv Reflect
+============================================================
+Copyright 2017-2018 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+============================================================
+khrplatform.h
+============================================================
+Copyright (c) 2008-2018 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+
+============================================================
+surfgrad-bump-standalone-demo
+============================================================
+MIT License
+
+Copyright (c) 2020 mmikk
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+================================================================
+Tessil robin-map
+================================================================
+MIT License
+
+Copyright (c) 2017 Thibaut Goetghebuer-Planchon <tessil@gmx.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+=====
+CLI11
+=====
+
+CLI11 2.3.1 Copyright (c) 2017-2022 University of Cincinnati, developed by Henry
+Schreiner under NSF AWARD 1414736. All rights reserved.
+
+Redistribution and use in source and binary forms of CLI11, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+3. Neither the name of the copyright holder nor the names of its contributors
+   may be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+================================================================
+The Art of C++ : PEGTL (Parsing Expression Grammar Template Library)
+================================================================
+
+The MIT License (MIT)
+
+Copyright (c) 2007-2020 Dr. Colin Hirsch and Daniel Frey
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+================================================================
+invoke.hpp
+================================================================
+
+MIT License
+
+Copyright (C) 2018-2023, by Matvey Cherevko (blackmatov@gmail.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+================================================================
+Doxygen Awesome
+================================================================
+
+MIT License
+
+Copyright (c) 2021 - 2023 jothepro
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
+
+

YAML-CPP

+

https://github.com/jbeder/yaml-cpp

+
Copyright (c) 2008-2015 Jesse Beder.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+
+
+
+

ZLib

+

https://zlib.net/

+
Copyright notice:
+
+ (C) 1995-2022 Jean-loup Gailly and Mark Adler
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+
+  Jean-loup Gailly        Mark Adler
+  jloup@gzip.org          madler@alumni.caltech.edu
+
+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Appendices/index.html b/1.4.6.0/Appendices/index.html new file mode 100644 index 000000000..49d5b9960 --- /dev/null +++ b/1.4.6.0/Appendices/index.html @@ -0,0 +1,584 @@ + + + + + + + Appendices — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Appendices
  • +
  • +
  • +
+
+
+
+
+ + +
+

Appendices

+ +
+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/GettingStarted/ConfiguringGafferForThirdPartyTools/index.html b/1.4.6.0/GettingStarted/ConfiguringGafferForThirdPartyTools/index.html new file mode 100644 index 000000000..0bcf9f72b --- /dev/null +++ b/1.4.6.0/GettingStarted/ConfiguringGafferForThirdPartyTools/index.html @@ -0,0 +1,811 @@ + + + + + + + Configuring Gaffer for Third-Party Tools — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Getting Started »
  • +
  • Configuring Gaffer for Third-Party Tools
  • +
  • +
  • +
+
+
+
+
+ +
+

Configuring Gaffer for Third-Party Tools

+

Gaffer is compatible with the following commercial and open-source third-party tools:

+ +

Gaffer comes with Cycles, so it will require no additional configuration. For the rest of the tools in this list, you will need to set some additional environment variables.

+
+

Tip

+

+If you do not use Cycles in production, you can hide its nodes and presets from the UI by setting the GAFFERCYCLES_HIDE_UI environment variable to 1. Even when set, Cycles will still be available for OSL shader previews and example scenes.

+
+
+

Note

+

+For the following Linux instructions, we will assume you are using the bash shell and are familiar with terminal commands. Other shells will have comparable methods for setting environment variables.

+
+
+

Configuring Gaffer for Arnold

+

For Gaffer to load the GafferArnold module, an ARNOLD_ROOT environment variable must point to the Arnold installation directory. Before you begin, make sure that Arnold is correctly installed and configured, and close any open instances of Gaffer.

+
+

Arnold in Linux

+
+

Note

+

+For this instruction, we will assume you have Arnold 7.1.4.2 installed to /opt/solidangle/arnold-7.1.4.2.

+
+

To create the ARNOLD_ROOT environment variable in Linux:

+
    +
  1. Open ~/.bash_profile with a text editor.

  2. +
  3. Add the line export ARNOLD_ROOT=/opt/solidangle/arnold-7.1.4.2 and save.

  4. +
  5. In a terminal, test that the variable is set:

    +
    user@desktop ~ $ echo $ARNOLD_ROOT
    +# /opt/solidangle/arnold-7.1.4.2
    +
    +
    +
  6. +
+
+
+

Arnold in Windows

+
+

Note

+

+For this instruction, we will assume you have Arnold 7.1.4.2 installed to C:\software\arnold-7.1.4.2.

+
+

To create the ARNOLD_ROOT environment variable in Windows:

+
    +
  1. Open the Command Prompt (Start > Windows System > Command Prompt).

  2. +
  3. Run the command setx ARNOLD_ROOT "C:\software\arnold-7.1.4.2".

  4. +
  5. In a new Command Prompt window, test that the variable is set:

    +
    C:\Users\user> echo %ARNOLD_ROOT%
    +# C:\software\arnold-7.1.4.2
    +
    +
    +
  6. +
+
+
+

Arnold in macOS

+
+

Note

+

+For this instruction, we will assume you have Arnold 7.1.4.2 installed to /opt/solidangle/arnold-7.1.4.2.

+
+

To create the ARNOLD_ROOT environment variable in macOS:

+
    +
  1. Open ~/.bash_profile with a text editor.

  2. +
  3. Add the line export ARNOLD_ROOT=/opt/solidangle/arnold-7.1.4.2 and save.

  4. +
  5. Open a terminal (Finder > Go > Utilities > Terminal).

  6. +
  7. Test that the variable is set:

    +
    MacBook:~ user$ echo $ARNOLD_ROOT
    +# /opt/solidangle/arnold-7.1.4.2
    +
    +
    +
  8. +
+
+
+

Verifying Arnold is loaded

+

The next time you start Gaffer, the Arnold nodes will be available from the node creation menu (right-click inside the Graph Editor).

+ +
+
+
+

Configuring Gaffer for 3Delight

+

For Gaffer to load the GafferDelight module, a DELIGHT environment variable must point to the 3Delight installation directory. Before you begin, make sure that 3Delight is correctly installed and configured, and close any open instances of Gaffer.

+
+

3Delight in Linux

+
+

Note

+

+For this instruction, we will assume you have 3Delight 2.9.17 installed to /opt/3delight-2.9.17.

+
+

To create the DELIGHT environment variable in Linux:

+
    +
  1. Open ~/.bash_profile with a text editor.

  2. +
  3. Add the line export DELIGHT=/opt/3delight-2.9.17 and save.

  4. +
  5. In a terminal, test that the variable is set:

    +
    user@desktop ~ $ echo $DELIGHT
    +# /opt/3delight-2.9.17
    +
    +
    +
  6. +
+
+
+

3Delight in Windows

+
+

Important

+

+Gaffer currently requires 3Delight for Maya to be included as part of the 3Delight install for access to lights and shaders.

+
+
+

Tip

+

+The 3Delight installer typically configures the DELIGHT environment variable on Windows. So the steps below may not be required.

+
+
+

Note

+

+For this instruction, we will assume you have 3Delight 2.9.17 installed to C:\software\3delight-2.9.17.

+
+

To create the DELIGHT environment variable in Windows:

+
    +
  1. Open the Command Prompt (Start > Windows System > Command Prompt).

  2. +
  3. Run the command setx DELIGHT "C:\software\3delight-2.9.17".

  4. +
  5. In a new Command Prompt window, test that the variable is set:

    +
    C:\Users\user> echo %DELIGHT%
    +# C:\software\3delight-2.9.17
    +
    +
    +
  6. +
+
+
+

3Delight in macOS

+
+

Note

+

+For this instruction, we will assume you have 3Delight 2.9.17 installed to /opt/3delight-2.9.17.

+
+

To create the DELIGHT environment variable in macOS:

+
    +
  1. Open ~/.bash_profile with a text editor.

  2. +
  3. Add the line export DELIGHT=/opt/3delight-2.9.17 and save.

  4. +
  5. Open a terminal (Finder > Go > Utilities > Terminal).

  6. +
  7. Test that the variable is set:

    +
    MacBook:~ user$ echo $DELIGHT
    +# /opt/3delight-2.9.17
    +
    +
    +
  8. +
+
+
+

Verifying 3Delight is loaded

+

The next time you start Gaffer, the 3Delight nodes will be available from the node creation menu (right-click inside the Graph Editor).

+ +
+
+
+

Configuring Gaffer for Tractor

+

For Gaffer to interface with Tractor, the PYTHONPATH environment variable must contain the path to the Tractor python module. Before you begin, make sure that Tractor is correctly installed and configured, and close any open instances of Gaffer.

+
+

Tractor in Linux

+
+

Note

+

+For this instruction, we will assume you have Tractor 2.2 installed to /opt/pixar/Tractor-2.2.

+
+

To add the Tractor python module to the PYTHONPATH environment variable in Linux:

+
    +
  1. Open ~/.bash_profile with a text editor.

  2. +
  3. Add the line export PYTHONPATH=$PYTHONPATH\:/opt/pixar/Tractor-2.2/lib/python2.7/site-packages and save.

  4. +
  5. In a terminal, test that the variable is set:

    +
    user@desktop ~ $ echo $PYTHONPATH
    +# /usr/bin/python2.7:/usr/lib/python2.7:/opt/pixar/Tractor-2.2/lib/python2.7/site-packages
    +
    +
    +
  6. +
+
+

Note

+

+Depending on your system’s configuration, your PYTHONPATH variable might not appear exactly as above. What’s important is whether :/opt/pixar/Tractor-2.2/lib/python2.7/site-packages appears in the path.

+
+
+
+

Tractor in macOS

+
+

Note

+

+For this instruction, we will assume you have Tractor 2.2 installed to /Applications/pixar/Tractor-2.2.

+
+

To add the Tractor python module to the PYTHONPATH environment variable in macOS:

+
    +
  1. Open ~/.bash_profile with a text editor.

  2. +
  3. Add the line export PYTHONPATH=$PYTHONPATH\:/Applications/pixar/Tractor-2.2/lib/python2.7/site-packages and save.

  4. +
  5. Open a terminal (Finder > Go > Utilities > Terminal).

  6. +
  7. Test that the variable is set:

    +
    MacBook:~ user$ echo $PYTHONPATH
    +# /Library/Frameworks/Python.framework/Versions/2.7/bin:/Applications/pixar/Tractor-2.2/lib/python2.7/site-packages
    +
    +
    +
  8. +
+
+

Note

+

+Depending on your system’s configuration, your PYTHONPATH variable might not appear exactly as above. What’s important is whether :/Applications/pixar/Tractor-2.2/lib/python2.7/site-packages appears in the path.

+
+
+
+

Verifying Tractor is loaded

+

Once the tractor folder has been added to your PYTHONPATH, you can then verify that Tractor is loading correctly:

+
    +
  1. Launch Gaffer.

  2. +
  3. Create and select a SystemCommand node (Dispatch > SystemCommand).

  4. +
  5. In the Node Editor, click Execute. The Dispatcher window will open.

  6. +
  7. Tractor will be available in the Dispatcher drop-down menu.

  8. +
+ +
+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/GettingStarted/InstallingGaffer/index.html b/1.4.6.0/GettingStarted/InstallingGaffer/index.html new file mode 100644 index 000000000..9f5410725 --- /dev/null +++ b/1.4.6.0/GettingStarted/InstallingGaffer/index.html @@ -0,0 +1,643 @@ + + + + + + + Installing Gaffer — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ + +
+

Installing Gaffer

+

The Gaffer package is a self-contained directory, so you will need to manually install it, and later manually configure it, if necessary. Once extracted, the Gaffer directory contains the complete application, ready for use.

+
+

Note

+

+In keeping with Linux/macOS best practices, we will demonstrate how to install Gaffer in the /opt/ directory. We also use C:\software\ on Windows as an example installation path. However, you could install it to any location on your file system to which you have write and execute access.

+
+
+

Installing in Linux

+

To install Gaffer in Linux:

+
    +
  1. Download the latest Linux package of Gaffer.

  2. +
  3. Open a terminal.

  4. +
  5. Extract the archive:

    +
    user@desktop ~ $ cd ~/Downloads
    +user@desktop ~/Downloads $ sudo tar -xzf gaffer-1.4.6.0-linux.tar.gz -C /opt/
    +
    +
    +
  6. +
+

Gaffer is now installed to /opt/gaffer-1.4.6.0-linux.

+
+
+

Installing in Windows

+

To install Gaffer in Windows:

+
    +
  1. Download the latest Windows package of Gaffer.

  2. +
  3. Extract the archive (for best performance, we suggest extracting with 7-Zip).

  4. +
  5. Move the extracted gaffer-1.4.6.0-windows folder to the location you wish to install it under, such as C:\software.

  6. +
+

Gaffer is now installed to C:\software\gaffer-1.4.6.0-windows.

+
+

Note

+

+Gaffer requires the Microsoft Visual C++ Redistributable to be installed on Windows. This needs to be downloaded and installed before Gaffer can be launched.

+
+
+
+

Installing in macOS

+
+

Note

+

+Pre-built versions of Gaffer are currently unavailable on macOS.

+
+

To install Gaffer in macOS:

+
    +
  1. Download the latest macOS package of Gaffer.

  2. +
  3. Open the terminal (Finder > Go > Utilities > Terminal).

  4. +
  5. Extract the archive:

    +
    MacBook:~ user$ cd ~/Downloads
    +MacBook:~/Downloads user$ tar -xzf gaffer-1.4.6.0-macos.tar.gz -C /opt/
    +
    +
    +
  6. +
+

Gaffer is now installed to /opt/gaffer-1.4.6.0-macos.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/GettingStarted/LaunchingGafferFirstTime/index.html b/1.4.6.0/GettingStarted/LaunchingGafferFirstTime/index.html new file mode 100644 index 000000000..4b65e88bd --- /dev/null +++ b/1.4.6.0/GettingStarted/LaunchingGafferFirstTime/index.html @@ -0,0 +1,650 @@ + + + + + + + Launching Gaffer for the First Time — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ + +
+

Launching Gaffer for the First Time

+

Once Gaffer has been installed, you will probably want to try it out right away before performing any additional configuration. To launch it, you can run its application file directly from the binary directory.

+
+

Note

+

+For these instructions, we will assume you have Gaffer installed to the /opt/ directory on Linux or macOS and C:\software\ on Windows. If you have installed it elsewhere, replace /opt/ or C:\software\ with the directory you installed it to.

+
+
+

Caution

+

+When you run Gaffer from a terminal, its continued operation is dependent on that terminal window. If you close the terminal, it will also close Gaffer, and you may lose any unsaved data.

+
+
+

Launching in Linux

+

To launch Gaffer for the first time in Linux:

+
    +
  1. Open a terminal.

  2. +
  3. Navigate to the Gaffer binary directory and run the Gaffer application:

    +
    user@desktop ~ $ cd /opt/gaffer-1.4.6.0-linux/bin
    +user@desktop /opt/gaffer-1.4.6.0-linux/bin $ ./gaffer
    +
    +
    +
  4. +
+

Gaffer will launch in a new window.

+
+
+

Launching in Windows

+

To launch Gaffer for the first time in Windows:

+
    +
  1. Open the Command Prompt (Start > Windows System > Command Prompt).

  2. +
  3. Navigate to the Gaffer binary directory and run the Gaffer application:

    +
    C:\Users\user> cd C:\software\gaffer-1.4.6.0-windows\bin
    +C:\software\gaffer-1.4.6.0-windows\bin> gaffer.cmd
    +
    +
    +
  4. +
+

Gaffer will launch in a new window.

+
+

Tip

+

+Gaffer can also be launched by browsing to C:\software\gaffer-1.4.6.0-windows\bin in Windows Explorer and double-clicking on gaffer.cmd.

+
+
+

Note

+

+Gaffer requires the Microsoft Visual C++ Redistributable to be installed on Windows. If you see errors related to missing VCRUNTIME files such as VCRUNTIME140.dll, the redestributable will need to be downloaded and installed before Gaffer can be launched.

+
+
+
+

Launching in macOS

+

To launch Gaffer for the first time in macOS:

+
    +
  1. Open the terminal (Finder > Go > Utilities > Terminal).

  2. +
  3. Navigate to the Gaffer binary directory and run the Gaffer application:

    +
    MacBook:~ user$ cd /opt/gaffer-1.4.6.0-macos/bin
    +MacBook:/opt/gaffer-1.4.6.0-macos/bin user$ ./gaffer
    +
    +
    +
  4. +
+

Gaffer will launch in a new window.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/GettingStarted/SettingUpGafferCommand/index.html b/1.4.6.0/GettingStarted/SettingUpGafferCommand/index.html new file mode 100644 index 000000000..acfa1fec5 --- /dev/null +++ b/1.4.6.0/GettingStarted/SettingUpGafferCommand/index.html @@ -0,0 +1,692 @@ + + + + + + + Setting Up the “gaffer” Command — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Setting Up the “gaffer” Command

+

After you have installed Gaffer, it will remain a collection of files and directories on your file system. Because it is not yet configured as a command, you must navigate to its directory every time. This could become very tedious, so we recommend that you modify your PATH environment variable to allow access to the gaffer command from anywhere in the terminal.

+
+

Note

+

+For these instructions, we will assume you have Gaffer installed to the /opt/ directory. If you have installed it elsewhere, replace /opt/ with the directory you installed it to.

+
+
+

Environment variables

+

An environment variable is simply a value, such as a string, number, boolean, or location that your terminal is aware of. For instance, when you ran the tar command to extract the downloaded Gaffer package, the tar command was not located in your ~/Downloads directory, but actually in /usr/bin/. Whenever you open your terminal, several folders are added to your terminal’s PATH environment variable, which provides it with a list of locations in the file system from which it can source commands.

+

In order for the gaffer command to work in your terminal, you will need to add Gaffer’s directory to the PATH environment variable.

+
+
+

Setting up the “gaffer” command in Linux

+

The particular terminal on your system depends on your Linux distribution and how it was configured. Most distributions of Linux use bash, but there are other common terminals available, like tcsh. Because we cannot accommodate every available terminal, we will only provide instructions for adding to the PATH variable in bash and tcsh.

+
+

Tip

+

+If you are not sure which terminal you have, you can find its name by opening a terminal and inputting echo $0, which will return /bin/bash, tcsh, or some equivalent. If you are not using bash or tcsh, the same principles of environment variables will apply, and your terminal’s documentation should provide a comparable way of modifying the PATH variable.

+
+

To set up the gaffer command in Linux:

+
    +
  1. Open your terminal’s config file in a text editor.

    +
      +
    • bash config: ~/.bash_profile

    • +
    • tcsh config: ~/.tcsh_profile

    • +
    +
  2. +
  3. Add the following line to the end of the file:

    +
      +
    • bash: export PATH=$PATH\:/opt/gaffer-1.4.6.0-linux/bin

    • +
    • tcsh: setenv PATH $PATH\:/opt/gaffer-1.4.6.0-linux/bin

    • +
    +
  4. +
  5. Save the file.

  6. +
  7. Open a terminal.

  8. +
  9. Test that the PATH variable has been updated:

    +
    user@desktop ~ $ echo $PATH
    +# /usr/local/bin:/usr/bin:/bin:/opt/gaffer-1.4.6.0-linux/bin
    +
    +
    +
  10. +
+
+

Note

+

+Depending on your system configuration, the beginning of your PATH variable might not appear exactly as above. What’s important is whether /opt/gaffer-1.4.6.0-linux/bin appears at the end of the path.

+
+

You can now execute gaffer as a command from any directory in the terminal.

+
+
+

Setting up the “gaffer” command in Windows

+

To set up the gaffer command in Windows:

+
    +
  1. Right click on the Start menu and click on System.

  2. +
  3. In the “Settings” window, click on Advanced System Settings.

  4. +
  5. In the “System Properties” window, click on Environment Variables.

  6. +
  7. The “Environment Variables” window contains two sections, one for the current user’s environment variables and the other for system environment variables, which apply to all users. In the appropriate section, select the Path entry and click Edit…

  8. +
  9. In the “Edit environment variable” window, click New and specify the path to the Gaffer install’s bin directory.

    +
      +
    • C:\software\gaffer-1.4.6.0-windows\bin

    • +
    +
  10. +
  11. Click Ok to apply the edit, and Ok again to dismiss the “Edit environment variable” window.

  12. +
  13. In a new Command Prompt window, test that the PATH variable has been updated:

    +
    C:\Users\user> echo %PATH%
    +# C:\Windows\system32;C:\software\gaffer-1.4.6.0-windows\bin
    +
    +
    +
  14. +
+
+

Note

+

+Depending on your system configuration, the beginning of your PATH variable might not appear exactly as above. What’s important is whether C:\software\gaffer-1.4.6.0-windows\bin appears.

+
+

You can now execute gaffer as a command from any directory in the command prompt.

+
+
+

Setting up the “gaffer” command in macOS

+

The default terminal in macOS is bash, so you will need to add to the PATH variable in the bash user config.

+

To set up the gaffer command in macOS:

+
    +
  1. Open ~/.bash_profile in a text editor.

  2. +
  3. Add the line export PATH=$PATH\:/opt/gaffer-1.4.6.0-macos/bin and save.

  4. +
  5. Open the terminal (Finder > Go > Utilities > Terminal).

  6. +
  7. Test that the PATH variable has been updated:

    +
    MacBook:~ user$ echo $PATH
    +# /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/opt/gaffer-1.4.6.0-macos/bin
    +
    +
    +
  8. +
+
+

Note

+

+Depending on your system configuration, the beginning of your PATH variable might not appear exactly as above. What’s important is whether /opt/gaffer-1.4.6.0-macos/bin appears at the end of the path.

+
+

You can now execute gaffer as a command from any directory in the terminal.

+
+
+

Using the “gaffer” command

+

Once you have added the Gaffer directory to the PATH variable, you can launch Gaffer anywhere in the terminal:

+
gaffer
+
+
+

You can also use the command to open Gaffer scripts, as outlined in the Command Line Reference.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/GettingStarted/TutorialAssemblingTheGafferBot/index.html b/1.4.6.0/GettingStarted/TutorialAssemblingTheGafferBot/index.html new file mode 100644 index 000000000..cbcca5009 --- /dev/null +++ b/1.4.6.0/GettingStarted/TutorialAssemblingTheGafferBot/index.html @@ -0,0 +1,1051 @@ + + + + + + + Tutorial: Assembling the Gaffer Bot — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Tutorial: Assembling the Gaffer Bot

+

In this tutorial, we will give you a first taste of Gaffer by covering its basic operations and concepts. The goal is for you to learn to make renders of a basic scene as quickly as possible, and provide a minimal basis to further explore the application and its documentation. It will cover a lot of ground quickly, and some details will be glossed over.

+

By the end of this tutorial you will have built a basic scene with Gaffer’s robot mascot, Gaffy, and render an output image. You will learn the following lessons, not necessarily in this order:

+
    +
  • Gaffer UI fundamentals

  • +
  • Creating and connecting nodes

  • +
  • Importing geometry

  • +
  • Constructing a basic scene hierarchy

  • +
  • Importing textures

  • +
  • Building a simple shader

  • +
  • Applying a shader to geometry

  • +
  • Adding a light

  • +
  • Using an interactive renderer

  • +
+
+

Note

+

+This tutorial uses Cycles, a free renderer included with Gaffer. While the Cycles-specific nodes described here can be substituted with equivalents from Arnold or 3Delight, we recommend that you complete this tutorial using Cycles before moving on to your preferred renderer.

+
+
+

Starting a new node graph

+

After installing Gaffer, launch Gaffer from its directory or by using the “gaffer” command. Gaffer will start, and you will be presented with an empty node graph in the default UI layout.

+

+
+
+

Importing a geometry scene cache

+

As Gaffer is a tool primarily designed for lookdev, lighting, and VFX process automation, we expect that your sequence’s modelling and animation will be created in an external tool like Maya, and then imported into Gaffer as a geometry/animation cache. Gaffer supports Alembic (.abc) and USD (.usdc and .usda) file formats, as well as its own native SceneCache (.scc) file format. Most scenes begin by importing geometry or images via one of the two types of Reader nodes: SceneReader or ImageReader.

+

First, load Gaffy’s geometry cache with a SceneReader node:

+
    +
  1. In the Graph Editor in the bottom-left panel, right-click. The node creation menu will appear.

  2. +
  3. Select Scene > File > Reader. The SceneReader node will appear in the Graph Editor and be selected automatically.

    +

    +
  4. +
  5. The Node Editor in the top-right panel has now updated to display the SceneReader node’s values. In the File Name field, type ${GAFFER_ROOT}/resources/gafferBot/caches/gafferBot.scc.

  6. +
  7. Click the focus icon on the top right of the SceneReader to set it as the focus node, so that it will appear in editors set to follow focus, such as the viewer.

    +

    +
  8. +
  9. Hover the cursor over the background of the Viewer (in the top-left panel), and hit F. The view will reframe to cover the whole scene.

    +

    +
  10. +
+

The SceneReader node has loaded, and the Viewer is showing a bounding box, but the geometry remains invisible. You can confirm that the scene has loaded by examining the Hierarchy View in the bottom-right panel. It too has updated, and shows that you have GAFFERBOT at the root of the scene. In order to view the geometry, you will need to expand the scene’s locations down to their leaves.

+
+

Important

+

+By default, the Viewer, and Hierarchy View show the focus node, and go blank when no node is focused ( Indicated by icon: ). The Node Editor shows the selected node ( Indicated by icon: ).

+
+
+
+

The scene hierarchy

+

When you load a geometry cache, Gaffer only reads its 3D data: at no point does it write to the file. This lets you manipulate the scene without risk to the file.

+
+

Important

+

+3D data in Gaffer can be non-destructively hidden, added to, changed, and deleted.

+
+

Further, Gaffer uses locations in the scene hierarchy to selectively render the objects (geometry, cameras) you need: in the Viewer, the objects of expanded locations will show, while the objects of collapsed locations will only appear as a bounding box. This on-demand object loading allows Gaffer to handle highly complex scenes. In your current node graph, only Gaffy’s bounding box is visible in the Viewer.

+
+

Important

+

+Only objects that have their parent locations expanded will appear in full in the Viewer. Objects with collapsed parent locations will appear as a bounding box.

+
+ + +
+
+

Adjusting the view in the Viewer

+

Like in other 3D tools, you can adjust the angle, field of view, and the position of the virtual camera in the Viewer.

+
    +
  • To rotate/tumble, Alt + click and drag.

  • +
  • To zoom/dolly in and out, Alt + right click and drag, or scroll the middle mouse.

  • +
  • To track from side to side, Alt + middle click and drag.

  • +
+
+

Tip

+

+If you lose sight of the scene and cannot find your place again, you can always refocus on the currently selected location by hovering the cursor over the Viewer and hitting F.

+
+
+
+

Creating a camera

+

Before you can begin rendering the scene, you will need to create a camera. Just like how you created a SceneReader node to load in the geometry, you will create another node to add a camera.

+

Earlier, you learned how to create a node by navigating the node creation menu in the Graph Editor. If you know the name of the node you wish to create, and do not feel like mousing through the menu, you can instead use the menu’s search feature:

+
    +
  1. Right-click the background of the Graph Editor. The node creation menu will open.

    +
    +

    Tip

    +

    +With the cursor hovering over the Graph Editor, you can also hit Tab to open the node creation menu.

    +
    +
  2. +
  3. Type camera. A list of search results will appear. Camera should be highlighted.

  4. +
  5. Hit Enter. A Camera node will appear in the Graph Editor.

    +

    +
  6. +
+

As before, the newly created node will be selected automatically, and the Viewer, Hierarchy View, and Node Editor will update to reflect this new selection.

+
+
+

Node data flow

+

So far, your graph is as such: the SceneReader node is outputting a scene with Gaffy’s geometry, and the Camera node is outputting a camera object. In fact, the Camera node is outputting a whole scene containing a camera object. As such, any node that sends or receives scene data is classified as a scene node. This paradigm may be a bit confusing compared to other DCCs, but it is one of Gaffer’s strengths.

+
+

Important

+

+When a scene node is queried, such as when you select it, it will dynamically compute a scene based on the input values and data it is provided.

+
+
+

Scenes

+

In Gaffer, there is no single data set of locations and properties that comprise the sequence’s scene. In fact, a Gaffer graph is not limited to a single scene. Instead, when a node is queried, a scene is dynamically computed as that node’s output. You can test this by clicking the background of the Graph Editor. With no node selected, the Hierarchy View goes blank, because there is no longer a scene requiring computation. Thus, no scene exists. Since scenes are computed only when needed, Gaffer has the flexibility to support an arbitrary quantity of them.

+

Since neither of your nodes is connected, each of their scenes remains separate. If you were to evaluate your graph right now, it would calculate two independent scenes. For them to interface, they must be joined somewhere later in the graph.

+
+

Important

+

+In the Graph Editor, node data flows from top to bottom.

+
+

When a scene node computes a scene, scene data passes through it like so:

+
    +
  1. Data flows into the node through its input(s).

  2. +
  3. If applicable, the node modifies the data.

  4. +
  5. The node computes the resulting scene data and sends it through its output.

  6. +
+
+
+

Plugs

+

The inputs and outputs of a node are called plugs, and are represented in the Graph Editor as colored circles around the node’s edges.

+ +

For your two nodes to occupy the same scene (and later render together), you will need to combine them into a single scene. You can connect both of their out plugs to a Group node, and you can also rearrange the nodes to better visually represent the data flow in the graph.

+
+
+
+

Connecting plugs

+

It’s time to connect the SceneReader and Camera nodes to combine their scenes:

+
    +
  1. Click the background of the Graph Editor to deselect all nodes.

  2. +
  3. Create a Group node (Scene > Hierarchy > Group).

  4. +
  5. Click and drag the SceneReader node’s out plug (at the bottom; blue) onto the Group node’s in0 plug (at the top; also blue). As you drag, a node connector will appear. Once you connect them, a second input plug (in1) will appear on the Group node, next to the first.

  6. +
  7. Click and drag the Camera node’s out plug onto the Group node’s in1 plug.

  8. +
+

The Group node is now computing a new scene combining the input scenes from the two nodes above it, under a new parent scene location called group. You can see this new hierarchy by selecting the Group node and examining the Hierarchy View.

+

+

Only the combined scene computed by the Group node is modified. The upstream nodes’ scenes are unaffected. You can verify this by reselecting one of them and checking the Hierarchy View.

+
+ +
+

Positioning the camera

+

Next, you should reposition the camera so that it frames Gaffy. You can accomplish this using the built-in 3D manipulation tools in the Viewer.

+

First, set the camera’s position using the Translate Tool:

+
    +
  1. Select the Group node in the Graph Editor.

  2. +
  3. Fully expand all scene locations by Shift + clicking next to group in the Hierarchy View.

  4. +
  5. Click the camera object in the Viewer, or select the camera location in the Hierarchy View.

  6. +
  7. In the Viewer, click . The translation manipulators will appear on the camera.

  8. +
  9. Using the manipulators, adjust the camera back and up.

    +

    +
  10. +
+

Next, rotate the camera using the Rotate Tool:

+
    +
  1. In the Viewer, click . The rotation manipulators will appear around the camera.

  2. +
  3. Using the manipulators, rotate the camera so it points at Gaffy.

  4. +
+

+
+

More precise camera adjustment

+

For more precise positioning and rotation, you can set the Translate and Rotate values in the Transform tab of the Node Editor:

+

+
+

Important

+

+In the prior section Connecting Plugs, we referred to the main inputs and outputs of a node as plugs. In actuality, all the values you see in the Node Editor, including the camera’s transform, are plugs. For ease of use, only a subset of a node’s available plugs appear in the Graph Editor.

+
+
+
+
+

Rendering your first image

+

Now that you have defined the layout of your scene, you should perform a quick test-render to check that everything is working as expected. In order to do that, you need to place some render-related nodes to define your graph’s render settings.

+

Create the render settings nodes:

+
    +
  1. First, select the Group node. Now, the next scene node you create will automatically connect to it.

  2. +
  3. Then, create the following nodes in sequence:

    +
      +
    • StandardOptions (Scene > Globals > StandardOptions): Determines the camera, resolution, and blur settings of the scene.

    • +
    • CyclesOptions (Cycles > Options): Determines the settings of the Cycles renderer.

    • +
    • Outputs (Scene > Globals > Outputs): Determines what kind of output image will be created by the renderer.

    • +
    • InteractiveRender (Scene > Render > InteractiveRender): Hosts an interactive render session.

    • +
    +
  4. +
  5. Finally, create a Catalogue node (Image > Utility > Catalogue). This is an image node for listing and displaying a directory of images in the Viewer. By default, it points to the default output directory of your graph’s rendered images. Place it next to the InteractiveRender node.

    +

    +
    +

    Note

    +

    +The Catalogue node is not a scene node, but an image node. It cannot be connected to a scene node.

    +
    +
  6. +
+

In keeping with what we said earlier about nodes passing scenes to other nodes: each of the render nodes only applies to the scene delivered to it through its input plugs. If you had another unconnected scene running in parallel, none of these render properties would apply to it.

+

Although the scene contains a camera, you will need to tell the StandardOptions node to set it as a global property of the scene:

+
    +
  1. Select the StandardOptions node.

  2. +
  3. Specify the camera using the Node Editor:

    +
      +
    1. Click the Camera section to expand it.

    2. +
    3. Toggle the switch next to the Camera plug to enable it.

    4. +
    5. Type /group/camera into the plug’s field.

    6. +
    +
  4. +
+

Next, you need to add an image type to render:

+
    +
  1. Select the Outputs node.

  2. +
  3. In the Node Editor, click and select Interactive > Beauty from the drop-down menu.

  4. +
+

With all the settings complete, start the interactive renderer:

+
    +
  1. Select the InteractiveRender node in the Graph Editor.

  2. +
  3. In the Node Editor, choose “Cycles” from the renderer presets menu.

  4. +
  5. In the Node Editor, click to start the renderer.

  6. +
  7. Click the focus icon on the Catalogue node.

  8. +
  9. Hover the cursor over the Viewer and hit F to frame the Catalogue node’s live image of the interactive render.

    +

    +
  10. +
+

Congratulations! You have successfully rendered your first image. Gaffy is currently lacking shading, lighting, and texturing. We will move on to those soon. First, you should adjust the UI to provide yourself a more optimal workflow.

+
+
+

Pinning an editor to a node

+

To make switching between viewing Gaffy’s geometry and the render easier, you can modify the UI so you can work with two Viewers. First, start by pinning the catalogue node:

+
    +
  1. Select the Catalogue node.

  2. +
  3. From the editor focus menu at the top-right of the top panel, choose Pin Catalogue. The menu’s icon will change to the pinned icon () to show it is now locked to a specific node, and the Viewer’s title in the tab bar will now include [Catalogue] to help you keep track of which node(s) are pinned in which editors.

  4. +
+

+
+

Tip

+

+You can also pin an editor to the current node selection by pressing P whilst the cursor is over the editor, or by middle-click and dragging the Catalogue node onto the Viewer.

+
+

The Viewer is now locked to the Catalogue image, and will only show that image, even if you deselect it and select or focus a different node.

+

In the default layout, the Hierarchy View and other editors are set to follow the focus node.

+

For the final adjustment to the UI, create another Viewer in the top-left panel, which will also follow the focus node.

+
    +
  1. At the top-right of the top panel, click to open the layout menu.

  2. +
  3. Select Viewer. A new Viewer will appear on the panel next to the first one.

  4. +
+ +

Now you can switch between the rendered image (first Viewer) and the scene’s geometry (second Viewer).

+

Now it is time to shade Gaffy.

+
+
+

Adding shaders and lighting

+

It’s time to add shaders and lighting. Lights are created at their own location, and can be added anywhere in the graph. For efficiency, shaders should be added to the geometry as early as possible.

+
+

Making some space

+

It will be best if you keep the render option nodes at the end of the graph. Since you will be adding shader nodes after the scene nodes, first add some space in the middle of the graph:

+
    +
  1. Select the lower five nodes by clicking and dragging a marquee over them.

  2. +
  3. Click and drag the nodes to move them to a lower position in the graph.

    +

    +
  4. +
+
+
+

Adding a shader

+

Now that you have more space, it’s time to add some shading nodes:

+
    +
  1. Below and to the left of the Group node, create a Cycles Principled BSDF shader node (Cycles > Shader > Shader > Principled Bsdf).

  2. +
  3. In the Node Editor, give the shader reflective surface properties:

    +
      +
    • Set the Base Color plug to 0.18 0.18 0.18.

    • +
    • Set the Coat Weight plug to 1.

    • +
    • Set the Coat Roughness plug to 0.15.

    • +
    +
  4. +
+
+

Tip

+

+Numeric fields support basic mathematical operations to adjust their values. For example, appending +1 to a plug with an existing value of 2, will set it to 3. You can use +, -, /, * and % to modify the existing value.

+
+
    +
  1. Select the principled_bsdf node and create a ShaderAssignment node (Scene > Attributes > ShaderAssignment).

  2. +
  3. Click and drag the ShaderAssignment node onto the connector between the Group and StandardOptions nodes. The ShaderAssignment node will be interjected between them.

    +

    +
  4. +
+
+

Important

+

+In the Graph Editor, shader data flows from left to right.

+
+

In your newly shaded graph, the ShaderAssignment node takes the shader flowing in from the left and assigns it to Gaffy’s scene flowing in from the top. Now that Gaffy has received a proper shader, the whole image has turned black, because the scene currently lacks lighting.

+
+
+

Adding a light

+

For lights to take effect, they need to be combined with the main scene. For simplicity, use a background light textured with an HDRI applied as an environment texture:

+
    +
  1. Create a Cycles background light node (Cycles > Light > Background Light).

  2. +
  3. Create a Cycles environment texture shader node (Cycles > Shader > Texture > Environment Texture).

  4. +
  5. Place them next to the Camera node in the Graph Editor.

  6. +
  7. Connect the environment_texture node’s color plug to the background_light node’s color plug.

  8. +
  9. In the Node Editor, adjust the environment_texture node’s filename plug:

    +
      +
    • Set the Filename plug to ${GAFFER_ROOT}/resources/hdri/studio.exr.

    • +
    +
  10. +
  11. Adjust the background_light node’s exposure plug:

    +
      +
    • Set the Exposure plug to 1.

    • +
    +
  12. +
  13. Rotate the background_light 90 degrees in Y:

    +
      +
    • Under the Transform tab, set the Rotate Y plug to 90.

    • +
    +
  14. +
  15. Connect the background_light node’s out plug to the Group node’s in2 plug.

  16. +
+

+

The interactive render will now begin updating, and you will be able to see Gaffy with some basic shaders and lighting.

+

+
+
+

Adding textures

+

As Gaffy is looking a bit bland, you should drive the shader with some robot textures:

+
    +
  1. Create a Cycles image texture node (Cycles > Shader > Texture > Image Texture).

  2. +
  3. In the Node Editor, point the node to the textures:

    +
      +
    • For the Filename plug, type ${GAFFER_ROOT}/resources/gafferBot/textures/base_COL/base_COL_<UDIM>.tx.

    • +
    +
  4. +
  5. In the Graph Editor, connect the image_texture node’s color plug to the principled_bsdf node’s base color plug. Gaffy’s textures will now drive the color of the surface shader, and the render will update to show the combined results.

    +

    +
  6. +
+
+
+

Adding another shader

+

Right now, the physical surface of all of Gaffy’s geometry looks the same, because the shader is applying to every component of the geometry. To fix this, you should create an additional metallic shader and apply it selectively to different locations.

+

Begin by creating another shader:

+
    +
  1. Create another principled bsdf shader node.

  2. +
  3. Give the shader some metallic properties:

    +
      +
    • Set the Base Color plug to 0.3 0.15 0.04.

    • +
    • Set the Metallic plug to 1.0.

    • +
    • Set the Roughness plug to 0.25.

    • +
    +
  4. +
  5. Select the principled_bsdf1 node and create another ShaderAssignment node.

  6. +
  7. Interject the new ShaderAssignment1 node after the first ShaderAssignment node.

    +

    +
  8. +
+

The Viewer will update to show the new shader.

+

+

You will immediately notice that now all the geometry is metallic. The new shader has overridden the previous one.

+
+

Important

+

+The last ShaderAssignment node applied to a location takes precedence over any others.

+
+
+
+

Filtering a shader

+

In order to selectively apply a shader to only certain locations in the scene, you will need to filter the shader assignment, using a filter node that points to specific locations in the scene:

+
    +
  1. Create a PathFilter node (Scene > Filters > PathFilter).

  2. +
  3. In the Node Editor, click next to Paths. This will add a new text field.

  4. +
  5. In the text field, type /group/GAFFERBOT/C_torso_GRP/C_head_GRP/C_head_CPT/L_ear001_REN. This is the full path to Gaffy’s left ear.

  6. +
  7. Connect the PathFilter node’s out plug to the ShaderAssignment1 node’s filter plug (yellow, on the right).

    +

    +
  8. +
+

Now when you check the render, you will see that the metal shader is only applied to Gaffy’s left ear. There are many other parts of Gaffy that could use the metallic treatment, but it would be tedious for you to manually enter multiple locations. Instead, we will demonstrate two easier ways to add locations to the filter: using text wildcards, and interacting directly with the geometry through the Viewer.

+
+

Filtering using wildcards

+

Earlier, you used /group/GAFFERBOT/C_torso_GRP/C_head_GRP/C_head_CPT/L_ear001_REN, which only pointed to the left ear. You could apply the filter to both ears by adding wildcards to the /L_ear001_REN location in the path:

+
    +
  1. Select the PathFilter node.

  2. +
  3. In the Node Editor, double-click the path field you created earlier, and change it to /group/GAFFERBOT/C_torso_GRP/C_head_GRP/C_head_CPT/*_ear*. The filter will now match the left and the right ears.

  4. +
+
+
+

Filtering by dragging selections

+

As your final lesson in this tutorial, add the metallic shader to the rest of the appropriate parts of Gaffy. This time, you can add to the filter by directly interacting with the scene:

+
    +
  1. In the top panel, switch to the Viewer containing the 3D geometry view.

  2. +
  3. Zoom and pan to Gaffy’s face.

  4. +
  5. Click Gaffy’s unibrow.

  6. +
  7. Shift + click Gaffy’s mouth to add it to the selection.

    +

    +
  8. +
  9. Click and drag the selection (the cursor will change to ), and hold it over the PathFilter node without releasing.

  10. +
  11. While still holding the mouse button, hold Shift (the cursor will change to ). You are now adding to the path, rather than replacing it.

  12. +
  13. Release the selection over the PathFilter node. This will add the locations as new values fields on the plug.

  14. +
+
+

Tip

+

+Just as locations can be added by holding Shift, they can be removed by holding Ctrl (the cursor will change to ).

+
+

Add and remove locations to the filter as you see fit. Remember to switch between the two Viewers to check the render output as it updates. After adding Gaffy’s hands and bolts to the filter, you should achieve an image similar to this:

+

+
+
+
+
+

Recap

+

Congratulations! You’ve built and rendered your first scene in Gaffer.

+

You should now have a basic understanding of Gaffer’s interface, the flow of data in a graph, how to manipulate the scene, and how to add geometry, lights, textures, and shaders.

+

You should now have a solid basis for further learning and exploration.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/GettingStarted/index.html b/1.4.6.0/GettingStarted/index.html new file mode 100644 index 000000000..91937720b --- /dev/null +++ b/1.4.6.0/GettingStarted/index.html @@ -0,0 +1,597 @@ + + + + + + + Getting Started — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Getting Started
  • +
  • +
  • +
+
+
+
+
+ + +
+

Getting Started

+

Here you can find information and instructions about how to install and configure Gaffer.

+
+

Quick installation

+ +

After you have installed Gaffer, we recommend that you familiarize yourself with the application and its basic concepts by following the Assembling the Gaffer Bot tutorial.

+
+
+

Complete installation

+ + +
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Interface/ControlsAndShortcuts/index.html b/1.4.6.0/Interface/ControlsAndShortcuts/index.html new file mode 100644 index 000000000..e7c227840 --- /dev/null +++ b/1.4.6.0/Interface/ControlsAndShortcuts/index.html @@ -0,0 +1,1663 @@ + + + + + + + Controls and Shortcuts — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Interface »
  • +
  • Controls and Shortcuts
  • +
  • +
  • +
+
+
+
+
+ +
+

Controls and Shortcuts

+

The following is a list of input device controls and shortcuts providing quick access to functionality in Gaffer’s Viewers and Editors.

+
+

Guide

+
+

Keyboard Shortcuts

+

Keyboard shortcuts, or hotkeys, are shown as they would typically appear on a keyboard:

+ + + + + + + + + + + + + + + + + + + + + + + +

Example Action

Shortcut

Type the letter g

G

Press a modifier key

Ctrl

Press multiple keys together

Ctrl + C

Press one of the following keys

A, B, C, D

Press either of the following keys

Enter
or
Return

+
+

Tip

+

+macOS users: replace Ctrl with Command ⌘.

+
+
+
+

Mouse Controls

+

Mouse controls are shown as icons representing the action to perform:

+ + + + + + + + + + + + + + + + + + + + +

Example Action

Mouse control

Press the left mouse button

Left click

Press the middle mouse button

Middle click

Press the right mouse button

Right click

Scroll the mouse wheel

Mouse wheel

+
+
+
+

General

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

New node graph

Ctrl + N

Open node graph

Ctrl + O

Save node graph

Ctrl + S

Save node graph as

Ctrl + Shift + S

Quit the application

Ctrl + Q

Undo

Ctrl + Z

Redo

Ctrl + Shift + Z

Step one frame forward

Step one frame backward

Play forward

Ctrl +

Play backward

Ctrl +

Stop playback

, , Ctrl + , Ctrl +

Fullscreen mode

F11

Hide tabs of current panel

Ctrl + T

Maximise current panel

Space

+
+

Note

+

+Gaffer has many interactions requiring drag and drop of UI elements. As an alternative to holding Left click for the duration of a drag, G can be pressed once to start a drag and then once again to complete the drag.

+
+ + + + + + + + + + + + + + +

Action

Control or shortcut

Begin a Left click drag

Hover cursor over drag target, G

Complete a Left click drag

While dragging, hover cursor over drop target, G

+
+

Pinnable Editors and Inspectors

+ + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Follow the focus node

Hover cursor over editor, `

Pin the node selection

Hover cursor over editor, P

Pin numeric bookmark 1-9

Hover cursor over editor, 1 - 9

Follow to the node selection

Hover cursor over editor, N

+
+
+
+

Graph Editor

+
+

Note

+

+For the following controls and shortcuts, the cursor must hover over the Graph Editor.

+
+ +
+

Node creation

+ + + + + + + + + + + + + + +

Action

Control or shortcut

Show node menu

Right click
or
Tab

Insert Dot at connection

Ctrl + Left click connection
or
Right click connection > Insert Dot

+
+
+

Node selection

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Select all

Ctrl + A

Clear selection

Ctrl + Shift + A

Select node

Left click

Add node to selection

Shift + Left click

Add/remove node from selection

Ctrl + Left click

Select nodes

Left click and drag marquee, then release

Add nodes

Shift + Left click and drag marquee, then release

Deselect nodes

Ctrl + Left click and drag marquee, then release

Select upstream nodes

Shift + Alt + Left click node

Select downstream nodes

Ctrl + Alt + Left click node

+
+
+

Node dispatch

+
+

Note

+

+For these dispatch-related shortcuts, the cursor does not need to hover over the Graph Editor.

+
+ + + + + + + + + + + + + + +

Action

Control or shortcut

Dispatch selected node(s)

Ctrl + E

Redo last dispatch

Ctrl + R

+
+
+

Node copying and deletion

+
+

Tip

+

+For a Box node to be disableable, it must first be set up for pass-through.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Cut node(s)

Ctrl + X

Copy node(s)

Ctrl + C

Paste node(s)

Ctrl + V

Duplicate node(s) with inputs

Ctrl + D

Delete node(s)

Backspace
or
Delete

Enable/disable node(s)

D

Rename node(s)

F2

+
+
+

Node connections and layout

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Connect plug

Left click and drag plug to another plug

Disconnect plug

Left click and drag connection to background

Insert node onto connection

Left click and drag node onto connection

Auto-arrange selected nodes

Ctrl + L

Duplicate outgoing connection

Shift + Left click and drag connection just before in plug

Disconnect connections under cursor

X + Left click

Disconnect connections under line

X + Left click and drag to draw a line, then release Left click

+
+
+

Focus Node

+ + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Jump to focus node

Hover cursor over editor, `
or
Left click Editor focus menu, select Focus Node

Assign focus to selected node

Hover cursor over node graph, Ctrl + `
or
Click on top right of node

Assign focus to numeric bookmark

Alt + 19

+
+
+

Node bookmarks

+ + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Bookmark node

Right click node > Bookmark

Connect to bookmarked node

Right click plug > Connect Bookmark > select node

Jump to bookmarked node

Hover cursor over editor, Ctrl + B > select bookmarked node
or
Left click Editor focus menu, select Bookmark > …

Assign numeric bookmark

Ctrl + 19

Remove numeric bookmark

Ctrl + 0

+
+
+
+

Node Editor

+
+

Numeric plugs

+ + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Increment/decrement value, specific precision

Position cursor next to a number position in plug field, then hit /

Scrub value, coarse precision

Ctrl + Left click and drag the field left/right

Scrub value, fine precision

Ctrl + Shift + Left click and drag the field left/right

Gang plugs together

Ctrl + G

+
+

Tip

+

+Numeric fields support basic mathematical operators to adjust their values. For example, appending +1 to a plug with an existing value of 2, will set it to 3. You can use +, -, /, * and % to modify the existing value.

+
+
+
+

Path plugs

+ + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Autocomplete path component

Tab

Path-level contents menu

Select path component
or
Position text cursor in path component, then hit

Path hierarchy menu

Select all

+
+
+

3D scenes

+ + + + + + + + + + + + + + +

Action

Control or shortcut

Edit source node of selection

Alt + E

Edit tweaks node for selection

Alt + Shift + E

+
+
+
+

Viewer

+
+

Note

+

+For the following controls and shortcuts, the cursor must hover over the Viewer.

+
+
+

General controls

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Pan

Alt + Left click and drag

Zoom/dolly

Alt + Right click and drag
or
Mouse wheel

Pan/Zoom, fine precision

Hold Shift during action

Frame view to contents

F

Pause processing

Escape

Selection Tool

Q

Translate Tool

W

Rotate Tool

E

Cycle Transform Tool Orientation

O

Scale Tool

R

Camera Tool

T

Crop Window Tool

C

Crop Window Tool and crop enabled

Alt + C

Light Position Tool

D

Pin to numeric bookmark

19

+
+
+

3D scenes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Tumble

Alt + Left click and drag

Tumble, fine precision

Hold Shift during action

Select objects

Left click and drag marquee, then release

Add/remove object from selection

Ctrl + Left click

Add objects to selection

Shift + Left click and drag marquee, then release

Deselect objects

Ctrl + Left click and drag marquee, then release

Expand selection

Fully expand selection

Shift +

Collapse selection

Edit source node of selection

Alt + E

Edit tweaks node for selection

Alt + Shift + E

Fit clipping planes to scene

Right click > Clipping Planes > Fit To Scene

Fit clipping planes to selection

Right click > Clipping Planes > Fit To Selection
or
Ctrl + K

Frame view, and fit clipping planes

Ctrl + F

Reset clipping planes

Right click > Clipping Planes > Default

Toggle Inspector

I

Prune selected objects from current EditScope

Ctrl + Delete
or
Ctrl + Backspace

Turn off visibility for selected objects from current EditScope

Ctrl + H

+
+
+

Transform tools

+
+

Note

+

+For the following controls and shortcuts, a Transform Tool must be active.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Increase manipulator size

+

Decrease manipulator size

-

Add animation key to transform of selected object(s)

S

Adjust, fine precision

Hold Shift during action

Adjust, snapping to rounded increments

Hold Ctrl during action

Target mode (Translate and Rotate only)

Hold V then Left click on target geometry

+
+
+

Light Tool

+
+

Note

+

+For the following controls and shortcuts, the Light Tool must be active

+
+ + + + + + + + + + + + + + +

Action

Control or shortcut

Adjust, fine precision

Hold Shift during action

Constrain to aspect ratio (Quad lights only)

Hold Ctrl during action

+
+
+

Light Position Tool

+
+

Note

+

+For the following controls and shortcuts, the Light Position Tool must be active.

+
+ + + + + + + + + + + + + + +

Action

Control or shortcut

Set shadow target position

V + Left click

Set shadow pivot position

Shift + V + Left click

+
+
+

2D images

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Isolate red channel

R

Isolate green channel

G

Isolate blue channel

B

Isolate alpha channel

A

View luminance of RGB

L

Previous layer

PgUp

Next layer

PgDn

First layer (RGBA)

Ctrl + PgUp

Previous view

[

Next view

]

Center image at 1:1 scale

Home

Previous Catalogue image

Next Catalogue image

Duplicate current Catalogue image

Ctrl + D

Toggle image comparison

Q

Toggle wipes

W

+
+
+

Crop window tool

+ + + + + + + + + + + +

Action

Control or shortcut

Draw new region anywhere

Shift + click and drag

+
+
+
+

Hierarchy View

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Expand selected location

Fully expand selected location

Shift +

Collapse selected location

Fully collapse selected location

Shift +

Copy selected paths

Ctrl + C

Edit source node of selection

Alt + E

Edit tweaks node for selection

Alt + Shift + E

Frame selection

F

+
+
+

Python Editor

+
+

Text entry

+
+

Note

+

+When using the following drag and drop controls and shortcuts, drop the UI element onto the input field of the Python Editor.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Drop node into Python Editor

Middle click and drag node from Node Graph

Drop plug into Python Editor

Middle click and drag plug from Node Graph
or
Left click and drag plug label from Node Editor

Drop plug value into Python Editor

Shift + Left click and drag plug label from Node Editor

Drop color value into Python Editor

Left click and drag a pixel from Viewer

Drop scene location path(s) into Python Editor

Left click and drag selection from Viewer or Hierarchy View

Indent selection

Ctrl + ]

Unindent selection

Ctrl + [

Comment/uncomment selection

Ctrl + /

Select current line

Ctrl + L

+
+
+

Execution

+
+

Note

+

+For the following controls and shortcuts, the input field of the Python Editor must be in focus.

+
+ + + + + + + + + + + + + + +

Action

Control or shortcut

Execute and clear

Ctrl + Enter

Execute selection

Select code, then hit Ctrl + Enter

+
+
+
+

Animation Editor

+
+

Note

+

+For the following controls and shortcuts, the cursor must hover over the Animation Editor.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Pan

Alt + Left click and drag

Zoom

Alt + Right click and drag
or
Mouse wheel

Zoom x/y axes independently

Hold Ctrl during action

Pan/Zoom, fine precision

Hold Shift during action

Adjust frame range

Ctrl + Alt + Right click and drag left/right

Adjust key value range

Ctrl + Alt + Right click and drag up/down

Frame all curves (no selection)

F

Frame selected key(s)

F

Add key to a curve

Ctrl + Left click

Add key to all selected curves at current frame

I

Delete selected key(s)

Delete
or
Backspace

Adjust selected key(s)

Left click and drag

Adjust frame(s) of selected key(s)

Shift + Left click and drag left/right

Adjust value(s) of selected key(s)

Shift + Left click and drag up/down

+
+
+

Interactive Render Log

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Next message of level

E, W, I, D

Previous message of level

Shift + E, W, I, D

Search

Ctrl + F

Next match (search field focus)

Enter

Next match (log focus)

N

Previous match (log focus)

P

Scroll to bottom

B

+
+
+

Spreadsheet

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Toggle/edit selected cells

Return or Left click Left click

Toggle Enabled state of selected cells

D

Copy/Paste selected cells or rows

Ctrl + C/V

Move cell selection

, , ,

Extend cell selection

Shift + , , ,

Move keyboard focus

Ctrl + , , ,

Toggle selection state of cell with keyboard focus

Space

+
+
+

Light Editor

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Edit source node of selection

Alt + E

Edit tweaks node for selection

Alt + Shift + E

Move cell selection

, , ,

Extend cell selection

Shift + Left click
or
Shift + , , ,

Toggle cell selection

Ctrl + Left click
or
Ctrl + , , ,

Edit selected cells

Return
or
Enter

Disable Edit

D

Remove Attribute

Delete

+
+
+

Set Editor

+ + + + + + + + + + + + + + +

Action

Control or shortcut

Copy names of selected sets

Ctrl + C

Copy members of selected sets

Ctrl + Shift + C

+
+
+

Render Pass Editor

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

Action

Control or shortcut

Move cell selection

, , ,

Extend cell selection

Shift + Left click
or
Shift + , , ,

Toggle cell selection

Ctrl + Left click
or
Ctrl + , , ,

Edit selected cells

Return
or
Enter

Disable edit

D

Set a render pass as active

Return or Left click Left click a cell within the Active render pass column

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Interface/index.html b/1.4.6.0/Interface/index.html new file mode 100644 index 000000000..9324e90e7 --- /dev/null +++ b/1.4.6.0/Interface/index.html @@ -0,0 +1,585 @@ + + + + + + + Interface — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Interface
  • +
  • +
  • +
+
+
+
+
+ + +
+

Interface

+

Here you can learn about Gaffer’s interface and controls.

+ + +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/browser.html b/1.4.6.0/Reference/CommandLineReference/browser.html new file mode 100644 index 000000000..1103b1584 --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/browser.html @@ -0,0 +1,600 @@ + + + + + + + browser — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

browser

+

A file browser with the ability to preview +images and caches using Gaffer’s viewers. This +is the same as the Browser panel from the main +gui application, but running as a standalone +application.

+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+

-initialPath

+

The path to browse to initially

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/cli.html b/1.4.6.0/Reference/CommandLineReference/cli.html new file mode 100644 index 000000000..afa338461 --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/cli.html @@ -0,0 +1,598 @@ + + + + + + + cli — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

cli

+

A python command line interpreter which has all the +Gaffer modules available to it.

+
+

Caution

+

This application is deprecated. +Use gaffer env python instead.

+
+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/dispatch.html b/1.4.6.0/Reference/CommandLineReference/dispatch.html new file mode 100644 index 000000000..4da8de118 --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/dispatch.html @@ -0,0 +1,639 @@ + + + + + + + dispatch — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

dispatch

+

Dispatches task nodes such as ImageWriters, SystemCommands and Render nodes, +either from within an existing .gfr file or by creating a script on the fly. +This differs from the execute app in that it performs a full dispatch via a +dispatcher, rather than executing a single task node.

+

Example usage :

+
gaffer dispatch -script comp.gfr -tasks ImageWriter1 -dispatcher Local -settings -dispatcher.frameRange '"1001-1020"'
+
+gaffer dispatch -script comp.gfr -tasks ImageWriter1 -gui -show ImageWriter1 -dispatcher Local -settings -dispatcher.frameRange '"1001-1020"'
+
+gaffer dispatch -gui -tasks GafferDispatch.SystemCommand -dispatcher Local -settings -SystemCommand.command '"ls -l"'
+
+
+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+

-gui

+

Determines whether a gui is presented prior to dispatching or the tasks are dispatched directly.

+
+
+

-script

+

An optional script containing the task network to be dispatched.

+
+
+

-ignoreScriptLoadErrors

+

Causes errors which occur while loading the script to be ignored. Not recommended.

+
+
+

-applyUserDefaults

+

Applies userDefault values to all nodes and plugs created by the app. Note if a script is supplied, the nodes will be unaffected.

+
+
+

-tasks

+

The names of the task nodes to dispatch. Note if a script is supplied, the tasks must exist within the script. If no script is supplied, the task nodes will be constructed on the fly and added to a default script.

+
+
+

-show

+

A list of nodes to display when running the gui. This parameter has no effect unless the gui is loaded.

+
+
+

-dispatcher

+

The type of dispatcher to use for the dispatch. A new dispatcher of this type will be created, with userDefaults applied.

+
+
+

-alternateDispatchers

+

A list of alternate dispatcher types to make available when running the gui. This parameter has no effect unless the gui is loaded.

+
+
+

-settings

+

The values to be set on the nodes, dispatcher, or Context. Values should be in the format -nodeA.plugA value -nodeA.plugB value -nodeB.plugC value -dispatcher.plugD value -LocalDispatcher.plugE value -context.entry value

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/env.html b/1.4.6.0/Reference/CommandLineReference/env.html new file mode 100644 index 000000000..ecf722f41 --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/env.html @@ -0,0 +1,610 @@ + + + + + + + env — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

env

+

Runs shell commands in the Gaffer environment +(after the Gaffer wrapper has been run), so they have access +to all the libraries and modules available within Gaffer.

+

This is useful for running the binary utilities supplied with Gaffer, +or for running python scripts which need to import Gaffer’s python +modules.

+

Usage :

+
gaffer env [name=value ...] [utility [argument ...]]
+
+
+

Examples :

+
gaffer env maketx input.exr
+gaffer env python script.py
+
+
+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+

-arguments

+

A series of optional name=value environment variable specifications, followed by the command to execute.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/execute.html b/1.4.6.0/Reference/CommandLineReference/execute.html new file mode 100644 index 000000000..e02307067 --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/execute.html @@ -0,0 +1,619 @@ + + + + + + + execute — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

execute

+

Executes task nodes such as ImageWriters, SystemCommands and Render nodes +from within a .gfr file. This is used by Gaffer’s dispatchers when executing +nodes in a background process or on a render farm, but can also be used to +perform a manual execution from the command line.

+

Example usage :

+
gaffer execute -script comp.gfr -nodes ImageWriter -frames 1-10
+
+
+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+

-script

+

The script to execute.

+
+
+

-ignoreScriptLoadErrors

+

Causes errors which occur while loading the script to be ignored. Not recommended.

+
+
+

-nodes

+

The names of the nodes to execute. If not specified then all executable nodes will be found automatically.

+
+
+

-frames

+

The frames to execute. The default value executes the current frame as stored in the script.

+
+
+

-context

+

The Context used during execution. Note that the frames parameter will be used to vary the Context frame entry.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/gui.html b/1.4.6.0/Reference/CommandLineReference/gui.html new file mode 100644 index 000000000..1d2faa1dd --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/gui.html @@ -0,0 +1,601 @@ + + + + + + + gui — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

gui

+

A graphical user interface for editing node graphs. This is +the primary user facing Gaffer application.

+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+

-scripts

+

A list of scripts to edit.

+
+
+

-fullScreen

+

Opens the UI in full screen mode.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/index.html b/1.4.6.0/Reference/CommandLineReference/index.html new file mode 100644 index 000000000..2bc4d81cc --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/index.html @@ -0,0 +1,616 @@ + + + + + + + Command Line Reference — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Reference »
  • +
  • Command Line Reference
  • +
  • +
  • +
+
+
+
+
+ + +
+

Command Line Reference

+

The gaffer command is an application loader used to run +any of the applications shipped with gaffer, or any extension +apps installed in directories specified by the GAFFER_APP_PATHS +environment variable.

+

A gaffer command takes this general form :

+
gaffer appName -arg value -arg value ...
+
+
+

If the appName is not specified it defaults to gui, and +the familiar main interface is loaded. This shortcut also allows +a file to load to be specified :

+
gaffer file.gfr
+
+
+

Help for any application can be printed with the following +command :

+
gaffer -help appName
+
+
+

Further information on the specific command line arguments for each +application is provided below.

+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/license.html b/1.4.6.0/Reference/CommandLineReference/license.html new file mode 100644 index 000000000..cf4110ee9 --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/license.html @@ -0,0 +1,597 @@ + + + + + + + license — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

license

+

Prints the software licenses for Gaffer and other open source projects +it is based on.

+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+

-withDependencies

+

Display the copyright and licensing information for the dependencies.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/python.html b/1.4.6.0/Reference/CommandLineReference/python.html new file mode 100644 index 000000000..b68b284e5 --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/python.html @@ -0,0 +1,606 @@ + + + + + + + python — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

python

+

Runs python scripts in an environment where all the +Gaffer modules are available.

+
+

Caution

+

This application is deprecated. +Use gaffer env python instead.

+
+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+

-file

+

The python script to execute

+
+
+

-arguments

+

An arbitrary list of arguments which will be provided to the python script in a variable called argv.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/screengrab.html b/1.4.6.0/Reference/CommandLineReference/screengrab.html new file mode 100644 index 000000000..2073c02a8 --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/screengrab.html @@ -0,0 +1,644 @@ + + + + + + + screengrab — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

screengrab

+

A tool to generate documentation screengrabs.

+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+

-script

+

The gfr script to load

+
+
+

-image

+

Where to save the resulting image

+
+
+

-selection

+

A list of nodes to select.

+
+
+

-editor

+

The name of an editor to screengrab. If not specified, the whole window will be grabbed.

+
+
+

-panel

+

Whether to the panel surrounding an editor, or just the editor contents itself.

+
+
+

-nodeEditor

+

Parameters that configure NodeEditors.

+
+
+

-pythonEditor

+

Parameters that configure PythonEditors.

+
+
+

-viewer

+

Parameters that configure Viewers.

+
+
+

-graphEditor

+

Parameters that configure GraphEditors.

+
+
+

-scene

+

Parameters that configure the scene.

+
+
+

-command

+

Command to execute after session is launched. A ‘script’ variable provides access to the root ScriptNode.

+
+
+

-commandFile

+

File containing sequence of commands to execute after session is launched.

+
+
+

-delay

+

A delay between setting up the script and grabbing the image.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/stats.html b/1.4.6.0/Reference/CommandLineReference/stats.html new file mode 100644 index 000000000..eafd140f4 --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/stats.html @@ -0,0 +1,700 @@ + + + + + + + stats — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

stats

+

Outputs statistics about a Gaffer script, including the version of +Gaffer that created it, the values of all setting and variables and +the types of node in use. May also be used to perform performance +analysis of image and scene processing nodes within the script, using +a performance monitor to generate advanced statistics.

+

To output basic information about a script :

+
gaffer stats fileName.gfr
+
+
+

To run a scene processing node using the performance monitor :

+
gaffer stats fileName.gfr -scene NameOfNode -performanceMonitor
+
+
+

To run an image processing node using the performance monitor :

+
gaffer stats fileName.gfr -image NameOfNode -performanceMonitor
+
+
+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+

-script

+

The script to examine.

+
+
+

-postLoadScript

+

A python script to run after loading script. This can be used to modify the node graph before stats are gathered. The root ScriptNode is accessible via a variable named root.

+
+
+

-outputFile

+

Output the results to this file on disk rather than stdout

+
+
+

-frames

+

The frames to evaluate statistics for. The default value uses the current frame as stored in the script.

+
+
+

-context

+

The Context used during stats evaluation. Note that the frames parameter will be used to vary the Context frame entry. Arguments are specified in the same format as used by the execute app.

+
+
+

-nodeSummary

+

Turns on a summary of nodes in the script.

+
+
+

-serialise

+

Reports serialisation time for the script.

+
+
+

-scene

+

The name of a SceneNode or ScenePlug to examine. A Render node or TaskPlug on a Render node may also be passed, to perform profiling of the render output process without performing the actual image generation.

+
+
+

-location

+

The path to a location in the scene. If this is specified then that single location will be generated profiled, otherwise the entire scene will generated.

+
+
+

-sets

+

The names of scene sets to be examined.

+
+
+

-image

+

The name of an ImageNode or ImagePlug to examine.

+
+
+

-preCache

+

Prepopulates the cache by evaluating the scene or image once prior to measuring the second evaluation.

+
+
+

-task

+

The name of a TaskNode or TaskPlug to dispatch.

+
+
+

-performanceMonitor

+

Turns on a performance monitor to provide additional statistics about the operation of the node graph.

+
+
+

-maxLinesPerMetric

+

The maximum number of plugs to list for each metric captured by the performance monitor.

+
+
+

-contextMonitor

+

Turns on a Context monitor to provide additional statistics about the operation of the node graph.

+
+
+

-contextMonitorRoot

+

The name of a node or plug to provide a root for the Context monitor. Statistics will only be captured for this root downwards.

+
+
+

-annotatedScript

+

Filename used to save a copy of the script containing annotations from the performance and Context monitors.

+
+
+

-vtune

+

Enables VTune instrumentation. When enabled, the VTune ‘Tasks & Frames’ view will be broken down by node type.

+
+
+

-contextSanitiser

+

Checks for Contexts containing “leaked” variables that may affect performance. Any problems are reported as warnings to stderr.

+
+
+

-canceller

+

Adds an IECore.Canceller to the Context used for computations. This can be used to measure any overhead generated by nodes checking for cancellation.

+
+
+

-cacheMemoryLimit

+

The memory limit for the ValuePlug cache, measured in Mb. If this is not specified, the default limit will be used, or a limit specified by an application startup file.

+
+
+

-hashCacheSizeLimit

+

The size limit for the per-thread hash cache. If this is not specified, the default limit will be used, or a limit specified by an application startup file.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/test.html b/1.4.6.0/Reference/CommandLineReference/test.html new file mode 100644 index 000000000..374a31393 --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/test.html @@ -0,0 +1,641 @@ + + + + + + + test — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

test

+

Runs the unit tests for all of Gaffer’s python +modules and libraries. These are run automatically +as part of Gaffer’s build and review process, but it +is useful to run them manually when developing for +Gaffer or troubleshooting an installation.

+

Run all the tests :

+
gaffer test
+
+
+

Run all the tests for the scene module :

+
gaffer test GafferScene
+
+
+

Repeat a specific test 10 times :

+
gaffer test -repeat 10 GafferImageTest.ImageNodeTest.testCacheThreadSafety
+
+
+
+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+

-testCases

+

A list of names of specific test cases to run. If unspecified then all test cases are run.

+
+
+

-repeat

+

The number of times to repeat the tests.

+
+
+

-category

+

Only runs tests matching certain categories. Accepts a space-separated list of categories, optionally containing wildcards. Use -showCategories to see a list of available categories. Use the TestRunner.Categories decorator to assign categories.

+
+
+

-excludedCategories

+

Excludes tests matching certain categories. Accepts a space-separated list of categories, optionally containing wildcards.

+
+
+

-showCategories

+

Prints a list of available test categories to stdout.

+
+
+

-outputFile

+

The name of a JSON file that the results are written to.

+
+
+

-previousOutputFile

+

The name of a JSON file containing the results of a previous test run. This will be used to detect and report performance regressions.

+
+
+

-stopOnFailure

+

Stops on the first failure, instead of running the remaining tests.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/CommandLineReference/view.html b/1.4.6.0/Reference/CommandLineReference/view.html new file mode 100644 index 000000000..bc6f76e85 --- /dev/null +++ b/1.4.6.0/Reference/CommandLineReference/view.html @@ -0,0 +1,599 @@ + + + + + + + view — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

view

+

Uses Gaffer’s viewers and widgets to provide +a preview of a file. This is equivalent to the +preview pane in the Browser panel or the browser +app.

+
+

-help

+

Prints names and descriptions of each parameter rather than running the application.

+
+
+

-threads

+

The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores.

+
+
+

-profileFileName

+

If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination.

+
+
+

-files

+

A list of files to view.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/ContextVariables/index.html b/1.4.6.0/Reference/ContextVariables/index.html new file mode 100644 index 000000000..7cb9fe8a1 --- /dev/null +++ b/1.4.6.0/Reference/ContextVariables/index.html @@ -0,0 +1,711 @@ + + + + + + + Context Variables — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Reference »
  • +
  • Context Variables
  • +
  • +
  • +
+
+
+
+
+ +
+

Context Variables

+
+

Global Context Variables

+

Global Context Variables are available to all nodes. Gaffer adds several of them by default, and you can also specify your own.

+

Global variables values can be edited in the interface’s Settings window (File > Settings…). Variables related to the script’s basic setup are assigned in the window’s Settings tab. Other global variables, including user-specified ones, can be added in the Variables tab. These settings can also be accessed from the ScriptNode object (for example, from the Python Editor: root["frameRange"] or root["variables"]["myVariable"]).

+

The default global Context Variables present in the graph root are:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Context Variable

Meaning

project:name

The name of the project the graph belongs to.

project:rootDirectory

The directory where the current graph’s project files are stored.

frame

The current frame of the graph.

framesPerSecond

The frame rate of the graph.

frameRange:start

The first frame in the frame range.

frameRange:end

The last frame in the frame range.

script:name

The name of the script.

+
+
+

Built-in scene Context Variables

+

Gaffer can create the following built-in Context Variables inside scene Contexts:

+ + + + + + + + + + + + + + + + + +

Context Variable

Meaning

scene:path

Scene location being generated, when computing in service of a bound, transform, attributes, object, or childNames plug.

scene:setName

Name of the set being whose membership is being queried, when computing in service of a set plug.

scene:renderer

The active renderer during computation.

+
+
+

Built-in image Context Variables

+

Gaffer can create the following built-in Context Variables inside image Contexts:

+ + + + + + + + + + + + + + + + + +

Context Variable

Meaning

image:tileOrigin

Coordinate of bottom-left pixel of tile being generated when computing in service of a channelData

image:channelName

Channel being generated when computing in service of a channelData

image:defaultFormat

The fallback format for image creation nodes, if no format has been specified.

+
+
+

Node default Context Variables

+

Some nodes add additional Context Variables during execution. As such, these variables are only available upstream of these nodes in the graph. Most of them will have a plug that determines the Context Variable name(s). You can rename them as needed. The following table lists these default names.

+
+

Note

+

The prefix:name format in the default Context Variable names is merely a convention used to avoid clashes between variable names. We recommend you follow the same conventions when naming your own variables, but it is not compulsory.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Context Variable

Source node

Meaning

loop:index

Loop

Current iteration of the loop

wedge:value

Wedge

Value of the current wedge.

wedge:index

Wedge

Iteration of the current wedge.

collect:rootName

CollectScenes

Name of the current root location being added to the scene.

collect:layerName

CollectImages

Name of the current layer being added to the image.

+
+
+

Accessing Context Variables

+

For the available methods to access Context Variables with the Python and OSL APIs, see the Expressions reference.

+
+

Note

+

To query plug values in the API, you must first instantiate an appropriate Context object. See Contexts and Common Operations for more details.

+
+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Animation.html b/1.4.6.0/Reference/NodeReference/Gaffer/Animation.html new file mode 100644 index 000000000..e99772133 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Animation.html @@ -0,0 +1,594 @@ + + + + + + + Animation — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Animation

+

Generates keyframed animation to be applied to plugs +on other nodes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

curves

+

Stores animation curves. Rather than access +these directly, prefer to use the Animation::acquire() +method.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Backdrop.html b/1.4.6.0/Reference/NodeReference/Gaffer/Backdrop.html new file mode 100644 index 000000000..cad6c5509 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Backdrop.html @@ -0,0 +1,614 @@ + + + + + + + Backdrop — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Backdrop

+

A utility node which allows the positioning of other nodes on a +coloured backdrop with optional text. Selecting a backdrop in the +ui selects all the nodes positioned on it, and moving it moves +them with it.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

title

+

The title for the backdrop - this will be displayed at +the top of the backdrop.

+
+
+

scale

+

Controls the size of the backdrop text.

+
+
+

description

+

Text describing the contents of the backdrop - +this will be displayed below the title.

+
+
+

depth

+

Determines the drawing order of overlapping backdrops.

+
+

Note

+

Larger backdrops are automatically drawn behind smaller ones, +so it is only necessary to manually assign a depth in rare cases where +this is not desirable.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Box.html b/1.4.6.0/Reference/NodeReference/Gaffer/Box.html new file mode 100644 index 000000000..51caaf800 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Box.html @@ -0,0 +1,593 @@ + + + + + + + Box — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Box

+

A container for “subgraphs” - node networks which exist inside the +Box and can be exposed by promoting selected internal plugs onto the +outside of the Box.

+

Boxes can be used as an organisational tool for simplifying large +graphs by collapsing them into sections which perform distinct tasks. +They are also used for authoring files to be used with the Reference +node.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/BoxIn.html b/1.4.6.0/Reference/NodeReference/Gaffer/BoxIn.html new file mode 100644 index 000000000..6ca8f3aa2 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/BoxIn.html @@ -0,0 +1,593 @@ + + + + + + + BoxIn — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

BoxIn

+

Convenience node for representing input plugs +visually in the internal node graph of a Box.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

The name given to the external plug that +this node represents.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/BoxOut.html b/1.4.6.0/Reference/NodeReference/Gaffer/BoxOut.html new file mode 100644 index 000000000..41223f017 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/BoxOut.html @@ -0,0 +1,593 @@ + + + + + + + BoxOut — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

BoxOut

+

Convenience node for representing output plugs +visually in the internal node graph of a Box.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

The name given to the external plug that +this node represents.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Collect.html b/1.4.6.0/Reference/NodeReference/Gaffer/Collect.html new file mode 100644 index 000000000..1decc7674 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Collect.html @@ -0,0 +1,625 @@ + + + + + + + Collect — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Collect

+

Collects arbitrary input values across a range of contexts, outputting +arrays containing the values collected across that range.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

contextVariable

+

The context variable used to vary the values of the inputs being +collected. This should be used in the node network upstream of the +inputs.

+
+
+

indexContextVariable

+

The context variable used to specify the index being collected. This +may be used in the node network upstream of the inputs.

+
+
+

contextValues

+

The values of the context variable. Collection will be performed once +for each context value.

+
+
+

enabled

+

Enables or disables collection. This may be varied based on the +context variable, so that collection may be disabled in some +contexts but not others. Only values for enabled contexts are +included in the output arrays.

+
+
+

in

+

Container of inputs to be collected from. Inputs may be added by +calling collectNode.addInput( plug ) or using the UI. Each input +provides a corresponding output parented under the out plug.

+
+
+

out

+

Container of array outputs corresponding to the inputs provided by the in plug.

+
+
+

enabledValues

+

Outputs an array of the context values for which collection was enabled by the enabled plug.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/ComputeNode.html b/1.4.6.0/Reference/NodeReference/Gaffer/ComputeNode.html new file mode 100644 index 000000000..64c8bc021 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/ComputeNode.html @@ -0,0 +1,588 @@ + + + + + + + ComputeNode — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ComputeNode

+

Base class for nodes which can compute the values +of output plugs based on the values of input plugs.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/ContextQuery.html b/1.4.6.0/Reference/NodeReference/Gaffer/ContextQuery.html new file mode 100644 index 000000000..82eb4753e --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/ContextQuery.html @@ -0,0 +1,601 @@ + + + + + + + ContextQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ContextQuery

+

Queries variables from the current context, creating outputs for each variable.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

queries

+

The context variables to be queried - arbitrary numbers of context +variables may be added as children of this plug via the user interface, +or via python. Each child is a NameValuePlug whose name plug is +the context variable to query, and whose value plug is the default +value to use if the variable does not exist in the context with an +appropriate type.

+
+
+

out

+

The parent plug of the query outputs. The order of outputs corresponds +to the order of children of queries.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/ContextVariableTweaks.html b/1.4.6.0/Reference/NodeReference/Gaffer/ContextVariableTweaks.html new file mode 100644 index 000000000..972fa3453 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/ContextVariableTweaks.html @@ -0,0 +1,603 @@ + + + + + + + ContextVariableTweaks — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ContextVariableTweaks

+

Makes modifications to context variables. Tweaks are applied to context variables coming +from downstream nodes, resulting in different values given to upstream nodes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

ignoreMissing

+

Ignores tweaks targeting missing context variables. When off, missing context +variables cause the node to error, unless the tweak mode is CreateIfMissing.

+
+
+

tweaks

+

The tweaks to be made to the context variables. Arbitrary numbers of user defined +tweaks may be added as children of this plug via the user interface, or +using the ContextVariableTweaks API via python.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/ContextVariables.html b/1.4.6.0/Reference/NodeReference/Gaffer/ContextVariables.html new file mode 100644 index 000000000..982a85729 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/ContextVariables.html @@ -0,0 +1,609 @@ + + + + + + + ContextVariables — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ContextVariables

+

Adds variables which can be referenced by upstream expressions +and string substitutions.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

variables

+

The variables to be added. Each variable is represented +as a child plug, created either through the UI or using the +CompoundDataPlug API.

+
+
+

extraVariables

+

An additional set of variables to be added. Arbitrary numbers +of variables may be specified within a single IECore::CompoundData +object, where each key/value pair in the object defines a variable. +This is convenient when using an expression to define the variables +and the variable count might be dynamic.

+

If the same variable is defined by both the variables and the +extraVariables plugs, then the value from the extraVariables +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/DeleteContextVariables.html b/1.4.6.0/Reference/NodeReference/Gaffer/DeleteContextVariables.html new file mode 100644 index 000000000..e9419cdc2 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/DeleteContextVariables.html @@ -0,0 +1,595 @@ + + + + + + + DeleteContextVariables — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteContextVariables

+

Removes variables from the Context so that they won’t be visible to upstream nodes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

variables

+

The variables to be deleted.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/DependencyNode.html b/1.4.6.0/Reference/NodeReference/Gaffer/DependencyNode.html new file mode 100644 index 000000000..a423c53a8 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/DependencyNode.html @@ -0,0 +1,588 @@ + + + + + + + DependencyNode — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DependencyNode

+

Base class for nodes where input plugs have an +effect on output plugs.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Dot.html b/1.4.6.0/Reference/NodeReference/Gaffer/Dot.html new file mode 100644 index 000000000..e815a60a3 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Dot.html @@ -0,0 +1,602 @@ + + + + + + + Dot — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Dot

+

A utility node which can be used for organising large graphs.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

labelType

+

The method used to apply an optional label +to the dot. Using a node name is recommended, +because it encourages the use of descriptive node +names, and updates automatically when nodes are +renamed or upstream connections change. The custom +label does however provide more flexibility, since +node names are restricted in the characters they +can use.

+
+
+

label

+

The label displayed when the type is set to custom.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/EditScope.html b/1.4.6.0/Reference/NodeReference/Gaffer/EditScope.html new file mode 100644 index 000000000..fa5b58310 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/EditScope.html @@ -0,0 +1,588 @@ + + + + + + + EditScope — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

EditScope

+

A container that interactive tools may make nodes in +as necessary.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Expression.html b/1.4.6.0/Reference/NodeReference/Gaffer/Expression.html new file mode 100644 index 000000000..99e6ea7dc --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Expression.html @@ -0,0 +1,588 @@ + + + + + + + Expression — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Expression

+

Utility node for computing values via +scripted expressions.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Loop.html b/1.4.6.0/Reference/NodeReference/Gaffer/Loop.html new file mode 100644 index 000000000..92ac4daaa --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Loop.html @@ -0,0 +1,593 @@ + + + + + + + Loop — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Loop

+

Applies a node network to an input iteratively.

+
+

Caution

+

This should not be your first choice of tool. +For many use cases the Instancer, CollectScenes and CollectImages +nodes are more suitable and offer significantly better performance.

+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/NameSwitch.html b/1.4.6.0/Reference/NodeReference/Gaffer/NameSwitch.html new file mode 100644 index 000000000..88d26eaf8 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/NameSwitch.html @@ -0,0 +1,630 @@ + + + + + + + NameSwitch — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

NameSwitch

+

Switches between multiple input connections, passing through the +chosen input to the output. Each input has a “name” as well +as a value, and switching is performed by comparing the names against +the value of selector as follows :

+
    +
  • Matching starts with the second input and considers all subsequent +inputs one by one until a match is found. The first matching input +is the one that is chosen.

  • +
  • Matching is performed using Gaffer’s standard wildcard matching. +Each “name” may contain several individual patterns each separated +by spaces.

  • +
  • The first input is used as a default, and is chosen only if no other +input matches.

  • +
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

deleteContextVariables

+

The names of context variables to be deleted before accessing the array +of inputs. Names should be space-separated and may use Gaffer’s standard +wildcards.

+
+

Tip

+

This is convenient for cleaning up context variables only needed +to compute the switch index.

+
+
+
+

connectedInputs

+

The indices of the input array that have incoming connections.

+
+

Tip

+

This can be used to drive a Wedge or Collect node so that +they operate over each input in turn.

+
+
+
+

selector

+

The value that the input names will be matched against. +Typically this will refer to a Context Variable using +the ${variableName} syntax.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Node.html b/1.4.6.0/Reference/NodeReference/Gaffer/Node.html new file mode 100644 index 000000000..064258b35 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Node.html @@ -0,0 +1,587 @@ + + + + + + + Node — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Node

+

A container for plugs.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Preferences.html b/1.4.6.0/Reference/NodeReference/Gaffer/Preferences.html new file mode 100644 index 000000000..9f84ef1a7 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Preferences.html @@ -0,0 +1,587 @@ + + + + + + + Preferences — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Preferences

+

A container for application preferences.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Random.html b/1.4.6.0/Reference/NodeReference/Gaffer/Random.html new file mode 100644 index 000000000..281e9e413 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Random.html @@ -0,0 +1,642 @@ + + + + + + + Random — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Random

+

Generates repeatable random values from a seed. This can be +very useful for the procedural generation of variation. +Numeric or colour values may be generated.

+

The random values are generated from a seed and a Context +Variable - to get useful variation either the seed or the +value of the Context Variable must be varied too.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

seed

+

Seed for the random number generator. Different seeds +produce different random numbers. When controlling two +different properties using the same Context Variable, +different seeds may be used to ensure that the generated +values are different.

+
+
+

seedVariable

+

The most important plug for achieving interesting variation. +Should be set to the name of a Context Variable which will +be different for each evaluation of the node. Good examples +are “scene:path” to generate a different value per scene +location, or “frame” to generate a different value per frame.

+
+
+

floatRange

+

The minimum and maximum values that will be generated for the +outFloat plug.

+
+
+

outFloat

+

Random floating point output derived from seed, Context Variable +and float range plugs.

+
+
+

baseColor

+

Used as the basis for the random colours generated for the +outColor plug. All colours start with this value and then +have a random HSV variation applied, using the ranges specified +below.

+
+
+

hue

+

The +- range over which the hue of the base colour is varied.

+
+
+

saturation

+

The +- range over which the saturation of the base colour is varied.

+
+
+

value

+

The +- range over which the value of the base colour is varied.

+
+
+

outColor

+

Random colour output derived from seed, Context Variable, base +colour, hue, saturation and value plugs.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/RandomChoice.html b/1.4.6.0/Reference/NodeReference/Gaffer/RandomChoice.html new file mode 100644 index 000000000..f6eeadecf --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/RandomChoice.html @@ -0,0 +1,616 @@ + + + + + + + RandomChoice — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RandomChoice

+

Chooses random values from a list of choices, with optional weights +to specify the relative probability of each choice.

+

The randomness is generated from a seed and a context +variable; to get useful variation either the seed or the +value of the context variable must be varied too.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

seed

+

Seed for the random number generator. Different seeds +produce different random numbers. When controlling two +different properties using the same context variable, +different seeds may be used to ensure that the generated +values are different.

+
+
+

seedVariable

+

The most important plug for achieving interesting variation. +Should be set to the name of a context variable which will +be different for each evaluation of the node. Good examples +are scene:path to generate a different value per scene +location, or frame to generate a different value per frame.

+
+
+

choices

+

The choices that will be randomly selected between based on the seed.

+
+
+

choices.weights

+

The list of weights for the choices. Choices with a higher weight +have a greater chance of being chosen.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Reference.html b/1.4.6.0/Reference/NodeReference/Gaffer/Reference.html new file mode 100644 index 000000000..e276a5061 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Reference.html @@ -0,0 +1,591 @@ + + + + + + + Reference — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Reference

+

References a node network stored in another file. This can be used +to share resources among scripts, build powerful non-linear workflows, +and as the basis for custom asset management.

+

To generate a file to be referenced, build a network inside a Box +node and then export it for referencing.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/ScriptNode.html b/1.4.6.0/Reference/NodeReference/Gaffer/ScriptNode.html new file mode 100644 index 000000000..974cc7054 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/ScriptNode.html @@ -0,0 +1,647 @@ + + + + + + + ScriptNode — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ScriptNode

+

Defines a “script” - a Gaffer node network which can be +saved to disk as a “.gfr” file and reloaded.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

fileName

+

Where the script is stored.

+
+
+

unsavedChanges

+

Indicates whether or not the script has been +modified since it was last saved.

+
+
+

frameRange

+

Defines the start and end frames for the script. +These don’t enforce anything, but are typically +used by dispatchers to control default frame +ranges, and by the UI to define the range of the +time slider.

+
+
+

frameRange.start

+

The start frame. This doesn’t enforce anything, +but is typically used by dispatchers to control +default frame ranges, and by the UI to define +the range of the time slider.

+
+
+

frameRange.end

+

The end frame. This doesn’t enforce anything, +but is typically used by dispatchers to control +default frame ranges, and by the UI to define +the range of the time slider.

+
+
+

frame

+

The current frame.

+
+

Note

+

To perform a computation at a particular time, +you should create your own Context rather than change +the value of this plug.

+
with Gaffer.Context( script.context() ) as c :
+      c.setFrame( f )
+  ...
+
+
+

Likewise, you should never refer to this plug from +an expression. Always retrieve the frame with +context.getFrame() instead.

+
+
+
+

framesPerSecond

+

The framerate used to convert between the current +frame number and the time in seconds.

+
+
+

variables

+

Container for user-defined variables which can +be used in expressions anywhere in the script.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Spreadsheet.html b/1.4.6.0/Reference/NodeReference/Gaffer/Spreadsheet.html new file mode 100644 index 000000000..0bd50e197 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Spreadsheet.html @@ -0,0 +1,675 @@ + + + + + + + Spreadsheet — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Spreadsheet

+

Provides a spreadsheet designed for easy management of sets of +associated plug values. Each column of the spreadsheet corresponds +to an output value that can be connected to drive a plug on another +node. Each row of the spreadsheet provides candidate values for each +output, along with a row name and enabled status. Row names are matched +against a selector to determine which row is passed through to the output. +Row matching is performed as follows :

+
    +
  • Matching starts with the second row and considers all subsequent +rows one by one until a match is found. The first matching row +is the one that is chosen.

  • +
  • Matching is performed using Gaffer’s standard wildcard matching. +Each “name” may contain several individual patterns each separated +by spaces.

  • +
  • The first row is used as a default, and is chosen only if no other +row matches.

  • +
+
+

Note

+

The matching rules are identical to the ones used by the +NameSwitch node.

+
+
+

Keyboard Shortcuts

+
    +
  • Return/Double Click Toggle/Edit selected cells.

  • +
  • D Toggle Enabled state of selected cells.

  • +
  • Ctrl + C/V Copy/Paste selected cells or rows.

  • +
  • Up, Down, Left, Right Move cell selection.

  • +
  • Shift + Up, Down, Left, Right Extend cell selection.

  • +
  • Ctrl + Up, Down, Left, Right Move keyboard focus.

  • +
  • Space Toggle selection state of cell with keyboard focus.

  • +
+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

selector

+

The value that the row names will be matched against. +Typically this will refer to a Context Variable using +the ${variableName} syntax.

+
+
+

rows

+

Holds a child RowPlug for each row in the spreadsheet.

+
+
+

out

+

The outputs from the spreadsheet. Contains a child plug for each +column in the spreadsheet.

+
+
+

enabledRowNames

+

An output plug containing the names of all currently enabled rows.

+
+
+

resolvedRows

+

An output plug containing the resolved cell values for all enabled +rows, This can be used to drive expressions in situations where the +standard out plug is not useful, or would be awkward to use. The +values are formatted as follows :

+
{
+    "row1Name" : { "columnName" : columnValue, ... },
+    "row2Name" : { "columnName" : columnValue, ... },
+    ...
+}
+
+
+
+

Note

+

The output is completely independent of the value of +selector.

+
+
+
+

activeRowIndex

+

An output containing the index of the row that matches the selector +in the current context.

+
+

Tip

+

The default row has index 0, which converts to False +when used to drive a BoolPlug via a connection (all other values +convert to True). Therefore Spreadsheet.activeRowIndex can +be connected to a Node’s enabled plug to disable the node when +no row is matched.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/SubGraph.html b/1.4.6.0/Reference/NodeReference/Gaffer/SubGraph.html new file mode 100644 index 000000000..3d2b9cc68 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/SubGraph.html @@ -0,0 +1,587 @@ + + + + + + + SubGraph — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SubGraph

+

Holds a nested node graph of its own.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/Switch.html b/1.4.6.0/Reference/NodeReference/Gaffer/Switch.html new file mode 100644 index 000000000..3c873b193 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/Switch.html @@ -0,0 +1,619 @@ + + + + + + + Switch — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Switch

+

Chooses between multiple input connections, passing through the +chosen input to the output.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

index

+

The index of the input which is passed through. A value +of 0 chooses the first input, 1 the second and so on. Values +larger than the number of available inputs wrap back around to +the beginning.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

deleteContextVariables

+

The names of context variables to be deleted before accessing the array +of inputs. Names should be space-separated and may use Gaffer’s standard +wildcards.

+
+

Tip

+

This is convenient for cleaning up context variables only needed +to compute the switch index.

+
+
+
+

connectedInputs

+

The indices of the input array that have incoming connections.

+
+

Tip

+

This can be used to drive a Wedge or Collect node so that +they operate over each input in turn.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/TimeWarp.html b/1.4.6.0/Reference/NodeReference/Gaffer/TimeWarp.html new file mode 100644 index 000000000..c969623ba --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/TimeWarp.html @@ -0,0 +1,601 @@ + + + + + + + TimeWarp — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

TimeWarp

+

Changes the time at which upstream nodes are evaluated using +the following formula :

+

upstreamFrame = frame * speed + offset

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

speed

+

Multiplies the current frame value.

+
+
+

offset

+

Adds to the current frame value (after multiplication with speed).

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/Gaffer/index.html b/1.4.6.0/Reference/NodeReference/Gaffer/index.html new file mode 100644 index 000000000..90cbb954a --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/Gaffer/index.html @@ -0,0 +1,611 @@ + + + + + + + Gaffer — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldAOVShader.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldAOVShader.html new file mode 100644 index 000000000..adc336776 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldAOVShader.html @@ -0,0 +1,609 @@ + + + + + + + ArnoldAOVShader — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldAOVShader

+

Sets up global shaders in the Arnold options which can be used to populate global AOVs.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

shader

+

The shader to be assigned. This will be stored as an +option within the scene globals.

+
+
+

optionSuffix

+

This suffix defines where the aov shader is stored in the render options. If you use +an existing suffix, you will overwrite instead of creating a new AOV shader.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldAtmosphere.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldAtmosphere.html new file mode 100644 index 000000000..3ca993d79 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldAtmosphere.html @@ -0,0 +1,607 @@ + + + + + + + ArnoldAtmosphere — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldAtmosphere

+

Assigns a global atmosphere shader that applies to all objects in +the scene. This is stored as an “ai:atmosphere” option in Gaffer’s +globals, and translated onto the options.atmosphere parameter +in Arnold.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

shader

+

The shader to be assigned. This will be stored as an +option within the scene globals.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldAttributes.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldAttributes.html new file mode 100644 index 000000000..0e1a0bd41 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldAttributes.html @@ -0,0 +1,921 @@ + + + + + + + ArnoldAttributes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldAttributes

+

Applies Arnold attributes to objects in the scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

attributes

+

The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python.

+
+
+

attributes.cameraVisibility

+

Whether or not the object is visible to camera +rays. To hide an object completely, use the +visibility settings on the StandardAttributes +node instead.

+
+
+

attributes.shadowVisibility

+

Whether or not the object is visible to shadow +rays (whether or not it casts shadows).

+
+
+

attributes.shadowGroup

+

The lights that cause this object to cast shadows. +Accepts a set expression or a space separated list of +lights. Use “defaultLights” to refer to all lights that +contribute to illumination by default.

+
+
+

attributes.diffuseReflectionVisibility

+

Whether or not the object is visible in +reflected diffuse ( ie. if it casts bounce light )

+
+
+

attributes.specularReflectionVisibility

+

Whether or not the object is visible in +reflected specular ( ie. if it is visible in mirrors ).

+
+
+

attributes.diffuseTransmissionVisibility

+

Whether or not the object is visible in +transmitted diffuse ( ie. if it casts light through leaves ).

+
+
+

attributes.specularTransmissionVisibility

+

Whether or not the object is visible in +refracted specular ( ie. if it can be seen through glass ).

+
+
+

attributes.volumeVisibility

+

Whether or not the object is visible in +volume scattering.

+
+
+

attributes.subsurfaceVisibility

+

Whether or not the object is visible to subsurface +rays.

+
+
+

attributes.autoBump

+

Automatically turns the details of the displacement map +into bump, wherever the mesh is not subdivided enough +to properly capture them.

+
+
+

attributes.cameraAutoBumpVisibility

+

Whether or not the autobump is visible to camera +rays.

+
+
+

attributes.shadowAutoBumpVisibility

+

Whether or not the autobump is visible to shadow +rays.

+
+
+

attributes.diffuseReflectionAutoBumpVisibility

+

Whether or not the autobump is visible in +reflected diffuse ( ie. if it casts bounce light )

+
+
+

attributes.specularReflectionAutoBumpVisibility

+

Whether or not the autobump is visible in +reflected specular ( ie. if it is visible in mirrors ).

+
+
+

attributes.diffuseTransmissionAutoBumpVisibility

+

Whether or not the autobump is visible in +transmitted diffuse ( ie. if it casts light through leaves ).

+
+
+

attributes.specularTransmissionAutoBumpVisibility

+

Whether or not the autobump is visible in +refracted specular ( ie. if it can be seen through glass ).

+
+
+

attributes.volumeAutoBumpVisibility

+

Whether or not the autobump is visible in +volume scattering.

+
+
+

attributes.subsurfaceAutoBumpVisibility

+

Whether or not the autobump is visible to subsurface +rays.

+
+
+

attributes.transformType

+

Choose how transform motion is interpolated. Linear +produces classic linear vertex motion, RotateAboutOrigin +produces curved arcs centred on the object’s origin, and +RotateAboutCenter, the default, produces curved arcs +centred on the object’s bounding box middle.

+
+
+

attributes.matte

+

Turns the object into a holdout matte. +This only affects primary (camera) rays.

+
+
+

attributes.opaque

+

Flags the object as being opaque, allowing +Arnold to render faster. Should be turned off +when using partially transparent shaders.

+
+
+

attributes.receiveShadows

+

Whether or not the object receives shadows.

+
+
+

attributes.selfShadows

+

Whether or not the object casts shadows +onto itself.

+
+
+

attributes.sssSetName

+

If given, subsurface will be blended across any other objects which share the same sss set name.

+
+
+

attributes.subdivIterations

+

The maximum number of subdivision +steps to apply when rendering subdivision +surface. To set an exact number of +subdivisions, set the adaptive error to +0 so that the maximum becomes the +controlling factor.

+

Use the MeshType node to ensure that a +mesh is treated as a subdivision surface +in the first place.

+
+
+

attributes.subdivAdaptiveError

+

The maximum allowable deviation from the true +surface and the subdivided approximation. How +the error is measured is determined by the +metric below. Note also that the iterations +value above provides a hard limit on the maximum +number of subdivision steps, so if changing the +error setting appears to have no effect, +you may need to raise the maximum.

+
+

Note

+

Objects with a non-zero value will not take part in +Gaffer’s automatic instancing unless subdivAdaptiveSpace is +set to “object”.

+
+
+
+

attributes.subdivAdaptiveMetric

+

The metric used when performing adaptive +subdivision as specified by the adaptive error. +The flatness metric ensures that the subdivided +surface doesn’t deviate from the true surface +by more than the error, and will tend to +increase detail in areas of high curvature. The +edge length metric ensures that the edge length +of a polygon is never longer than the error, +so will tend to subdivide evenly regardless of +curvature - this can be useful when applying a +displacement shader. The auto metric automatically +uses the flatness metric when no displacement +shader is applied, and the edge length metric when +a displacement shader is applied.

+
+
+

attributes.subdivAdaptiveSpace

+

The space in which the error is measured when +performing adaptive subdivision. Raster space means +that the subdivision adapts to size on screen, +with subdivAdaptiveError being specified in pixels. +Object space means that the error is measured in +object space units and will not be sensitive to +size on screen.

+
+
+

attributes.subdivUVSmoothing

+

Determines how UVs are subdivided.

+
+
+

attributes.subdivSmoothDerivs

+

Computes smooth UV derivatives (dPdu and dPdv) per +vertex. This can be needed to remove faceting +from anisotropic specular and other shading effects +that use the derivatives.

+
+
+

attributes.subdivFrustumIgnore

+

Turns off subdivision culling on a per-object basis. This provides +finer control on top of the global subdivFrustumCulling setting +provided by the ArnoldOptions node.

+
+
+

attributes.subdividePolygons

+

Causes polygon meshes to be rendered with Arnold’s +subdiv_type parameter set to “linear” rather than +“none”. This can be used to increase detail when +using polygons with displacement shaders and/or mesh +lights.

+
+

Caution

+

This is not equivalent to converting a polygon +mesh into a subdivision surface. To render with Arnold’s +subdiv_type set to “catclark”, you must use the MeshType +node to convert polygon meshes into subdivision surfaces.

+
+
+
+

attributes.curvesMode

+

How the curves are rendered. Ribbon mode treats +the curves as flat ribbons facing the camera, and is +most suited for rendering of thin curves with a +dedicated hair shader. Thick mode treats the curves +as tubes, and is suited for use with a regular +surface shader.

+
+

Note

+

To render using Arnold’s “oriented” mode, set +mode to “ribbon” and add per-vertex normals to the +curves as a primitive variable named “N”.

+
+
+
+

attributes.curvesMinPixelWidth

+

The minimum thickness of the curves, measured +in pixels on the screen. When rendering very thin curves, a +large number of AA samples are required +to avoid aliasing. In these cases a minimum pixel +width may be specified to artificially thicken the curves, +meaning that fewer AA samples may be used. The additional width is +compensated for automatically by lowering the opacity +of the curves.

+
+
+

attributes.pointsMinPixelWidth

+

The minimum width of rendered points primitives, measured in pixels on the screen. +When rendering very small points, a large number of AA samples are required to avoid +aliasing. In these cases a minimum pixel width may be specified to artificially enlarge +the points, meaning that fewer AA samples may be used. The additional size is +compensated for automatically by lowering the opacity of the points.

+
+
+

attributes.volumeStepSize

+

Override the step size taken when raymarching volumes. +If this value is disabled or zero then value is calculated from the voxel size.

+
+
+

attributes.volumeStepScale

+

Raymarching step size is calculated using this value +multiplied by the volume voxel size or volumeStepSize if set.

+
+
+

attributes.shapeStepSize

+

A non-zero value causes an object to be treated +as a volume container, and a value of 0 causes +an object to be treated as regular geometry.

+
+
+

attributes.shapeStepScale

+

Raymarching step size is calculated using this value +multiplied by the shapeStepSize.

+
+
+

attributes.volumePadding

+

Allows a volume to be displaced outside its bounds. When +rendering a mesh as a volume, this enables displacement.

+
+
+

attributes.velocityScale

+

Scales the vector used in VDB motion blur computation.

+
+
+

attributes.velocityFPS

+

Sets the frame rate used in VDB motion blur computation.

+
+
+

attributes.velocityOutlierThreshold

+

Sets the outlier threshold used in VDB motion blur computation.

+

When rendering physics simulations resulting velocities are +potentially noisy and require some filtering for faster rendering.

+
+
+

attributes.toonId

+

You can select in the toon shader to skip outlines between objects with the same toon id set.

+
+
+

global

+

Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter.

+
+
+

extraAttributes

+

An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the attributes +CompoundDataPlug, with IECoreScene.ShaderNetwork being one example.

+

If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldBackground.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldBackground.html new file mode 100644 index 000000000..9a284c8fc --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldBackground.html @@ -0,0 +1,606 @@ + + + + + + + ArnoldBackground — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldBackground

+

Assigns a background shader. This is stored as an “ai:background” option +in Gaffer’s globals, and translated onto the options.background parameter +in Arnold.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

shader

+

The shader to be assigned. This will be stored as an +option within the scene globals.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldCameraShaders.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldCameraShaders.html new file mode 100644 index 000000000..641d8cef3 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldCameraShaders.html @@ -0,0 +1,632 @@ + + + + + + + ArnoldCameraShaders — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldCameraShaders

+

Creates shaders for use with Arnold cameras. Use a ShaderAssignment +node to assign the shaders to the cameras they should affect.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

type

+

The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

attributeSuffix

+

Suffix for the attribute used for shader assignment.

+
+
+

parameters

+

Where the parameters for the shader are represented.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

filterMap

+

A shader used to weight the samples taken by an +Arnold camera. This can be used to create vignetting effects +or to completely mask out areas of the render, causing no +rays to be fired for those pixels. The shader is evaluated +across a 0-1 UV range that is mapped to the camera’s screen +space.

+
+
+

uvRemap

+

A shader used to simulate lens distortion effects. The shader +is evaluated across a 0-1 UV range that is mapped to the camera’s +screen space, and should output a red/green UV image of distorted +UV positions.

+
+
+

out

+

The output from the shader.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldColorManager.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldColorManager.html new file mode 100644 index 000000000..dab30d786 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldColorManager.html @@ -0,0 +1,604 @@ + + + + + + + ArnoldColorManager — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldColorManager

+

Specifies the colour manager to be used in Arnold renders. This is represented +in the scene as an option called ai:color_manager.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

parameters

+

The parameters for the colour manager.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldDisplacement.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldDisplacement.html new file mode 100644 index 000000000..22456c93c --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldDisplacement.html @@ -0,0 +1,659 @@ + + + + + + + ArnoldDisplacement — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldDisplacement

+

Creates displacements to be applied to meshes for +rendering in Arnold. A displacement consists of a +shader to provide the displacement map and several +attributes to control the height and other displacement +properties.

+

Use an ArnoldAttributes node to control the subdivision +settings of the mesh, which in turn controls the detail +of the displacement. Use a ShaderAssignment node to assign +the ArnoldDisplacement to specific objects.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

type

+

The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

attributeSuffix

+

Suffix for the attribute used for shader assignment.

+
+
+

parameters

+

Where the parameters for the shader are represented.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

map

+

The Arnold shader that provides the displacement +map. Connect a float or colour input to displace +along the object normals or a vector input to displace +in a specific direction.

+
+
+

height

+

Controls the amount of displacement. Only used when +performing displacement along the normal.

+
+
+

padding

+

Padding added to an object’s bounding box to take +into account displacement. Arnold will subdivide +and displace an object the first time a ray intersects +its bounding box, so if the padding is too small, +parts of the object will be clipped. If the padding +is too large, rendertime will suffer and Arnold +will emit a warning message.

+
+
+

zeroValue

+

Defines a value that will cause no displacement to +occur. For instance, if the displacement map contains +a greyscale noise between 0 and 1, a zero value of 0.5 +will mean that the displacement pushes into the object +in some places and out in others.

+
+
+

autoBump

+

Automatically turns the details of the displacement map +into bump, wherever the mesh is not subdivided enough +to properly capture them.

+
+
+

out

+

The output from the shader.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldImager.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldImager.html new file mode 100644 index 000000000..b54738cfd --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldImager.html @@ -0,0 +1,626 @@ + + + + + + + ArnoldImager — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldImager

+

Assigns an imager. This is stored as an ai:imager option in Gaffer’s +globals, and applied to all render outputs.

+
+

Tip

+

Use the layer_selection parameter on each imager to control +which AOVs the imager applies to.

+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

imager

+

The imager to be assigned. The output of an ArnoldShader node +holding an imager should be connected here. Multiple imagers may be +assigned at once by chaining them together via their input +parameters, and then assigning the final imager via the ArnoldImager +node.

+
+
+

mode

+

The mode used to combine the imager input with any imagers that +already exist in the globals.

+
    +
  • Replace : Removes all pre-existing imagers, and replaces them with +the new ones.

  • +
  • InsertFirst : Inserts the new imagers so that they will be run before +any pre-existing imagers.

  • +
  • InsertLast : Inserts the new imagers so that they will be run after +any pre-existing imagers.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldLight.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldLight.html new file mode 100644 index 000000000..154e39341 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldLight.html @@ -0,0 +1,660 @@ + + + + + + + ArnoldLight — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldLight

+

Loads an Arnold light shader and uses it to output a scene with a single light.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

parameters

+

The parameters of the light shader - these will vary based on the light type.

+
+
+

defaultLight

+

Whether this light illuminates all geometry by default. When +toggled, the light will be added to the “defaultLights” set, which +can be referenced in set expressions and manipulated by downstream +nodes.

+
+
+

mute

+

Whether this light is muted. When toggled, the attribute “light:mute” +will be set to true. When not toggled, it will be omitted from the attributes.

+
+
+

visualiserAttributes

+

Attributes that affect the visualisation of this Light in the Viewer.

+
+
+

visualiserAttributes.scale

+

Scales non-geometric visualisations in the viewport to make them +easier to work with.

+
+
+

visualiserAttributes.maxTextureResolution

+

Visualisers that load textures will respect this setting to +limit their resolution.

+
+
+

visualiserAttributes.frustum

+

Controls whether applicable lights draw a representation of their +light projection in the viewer.

+
+
+

visualiserAttributes.lightFrustumScale

+

Allows light projections to be scaled to better suit the scene.

+
+
+

visualiserAttributes.lightDrawingMode

+

Controls how lights are presented in the Viewer.

+
+
+

visualiserAttributes.lookThroughAperture

+

Specifies the aperture used when looking through this light. Overrides the Viewer’s Camera Settings.

+
+
+

visualiserAttributes.lookThroughClippingPlanes

+

Specifies the clipping planes used when looking through this light. Overrides the Viewer’s Camera Settings.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldLightFilter.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldLightFilter.html new file mode 100644 index 000000000..aab04bb00 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldLightFilter.html @@ -0,0 +1,621 @@ + + + + + + + ArnoldLightFilter — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldLightFilter

+

LightFilter that can be positioned in space to filter light in a particular +region. Note that this is a non-physical effect. LightFilters need to get +linked to lights which you can do via a StandardAttributes node.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

filteredLights

+

The lights that are being filtered. Accepts a SetExpression. You +might want to set it to ‘defaultLights’ to have the filter affect +all lights that haven’t been excluded from that set.

+
+
+

parameters

+

The parameters of the light filter shader - these will vary based on the type.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldMeshLight.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldMeshLight.html new file mode 100644 index 000000000..e99709614 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldMeshLight.html @@ -0,0 +1,708 @@ + + + + + + + ArnoldMeshLight — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldMeshLight

+

Turns mesh primitives into Arnold mesh lights by assigning +a mesh_light shader, turning off all visibility except for camera rays, +and adding the meshes to the default lights set.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

cameraVisibility

+

Whether or not the mesh light is visible to camera +rays.

+
+
+

parameters

+

The parameters of the Arnold mesh_light shader that +is applied to the meshes.

+
+
+

parameters.color

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.intensity

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.exposure

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.cast_shadows

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.cast_volumetric_shadows

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.shadow_density

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.shadow_color

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.samples

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.normalize

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.diffuse

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.specular

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.sss

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.indirect

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.max_bounces

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.volume_samples

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.volume

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

parameters.aov

+

Refer to Arnold’s documentation for the mesh_light +shader.

+
+
+

defaultLight

+

Whether this light illuminates all geometry by default. When +toggled, the light will be added to the “defaultLights” set, which +can be referenced in set expressions and manipulated by downstream +nodes.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldOptions.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldOptions.html new file mode 100644 index 000000000..cc7a0dd33 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldOptions.html @@ -0,0 +1,1106 @@ + + + + + + + ArnoldOptions — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldOptions

+

Sets global scene options applicable to the Arnold +renderer. Use the StandardOptions node to set +global options applicable to all renderers.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

options

+

The options to be applied - arbitrary numbers of user defined options may be added +as children of this plug via the user interface, or using the CompoundDataPlug API via +python.

+
+
+

options.bucketSize

+

Controls the size of the image buckets. +The default size is 64x64 pixels. +Bigger buckets will increase memory usage +while smaller buckets may render slower as +they need to perform redundant computations +and filtering.

+
+
+

options.bucketScanning

+

Controls the order in which buckets are +processed. A spiral pattern is the default.

+
+
+

options.parallelNodeInit

+

Enables Arnold’s parallel node initialization. +Note that some Arnold features may not be +thread-safe, in which case enabling this option +can cause crashes. One such example is Cryptomatte +and its use in the AlSurface shader.

+
+
+

options.threads

+

Specifies the number of threads Arnold +is allowed to use. A value of 0 gives +Arnold access to all available threads.

+
+
+

options.aaSamples

+

Controls the number of rays per pixel +traced from the camera. The more samples, +the better the quality of antialiasing, +motion blur and depth of field. The actual +number of rays per pixel is the square of +the AA samples value - so a value of 3 +means 9 rays are traced, 4 means 16 rays are +traced and so on.

+
+
+

options.giDiffuseSamples

+

Controls the number of rays traced when +computing indirect illumination (“bounce light”). +The number of actual diffuse rays traced is the +square of this number.

+
+
+

options.giSpecularSamples

+

Controls the number of rays traced when +computing specular reflections. +The number of actual specular rays traced +is the square of this number.

+
+
+

options.giTransmissionSamples

+

Controls the number of rays traced when +computing specular refractions. The number of actual +transmitted specular rays traced is the square of this number.

+
+
+

options.giSSSSamples

+

Controls the number of rays traced when +computing subsurface scattering. The number of actual +subsurface rays traced is the square of this number.

+
+
+

options.giVolumeSamples

+

Controls the number of rays traced when +computing indirect lighting for volumes. +The number of actual rays traced +is the square of this number. The volume +ray depth must be increased from the default +value of 0 before this setting is of use.

+
+
+

options.lightSamples

+

Specifies a fixed number of light samples to be taken at each +shading point. This enables “Global Light Sampling”, which provides +significantly improved performance for scenes containing large numbers +of lights. In this mode, the samples setting on each light is ignored, +and instead the fixed number of samples is distributed among all the +lights according to their contribution at the shading point.

+

A value of 0 disables Global Light Sampling, reverting to the original +per-light sampling algorithm.

+
+

Note

+

Global Light Sampling currently has limitations. See +https://help.autodesk.com/view/ARNOL/ENU/?guid=arnold_user_guide_ac_render_settings_ac_lights_settings_html +for more details.

+
+
+
+

options.aaSeed

+

Seeds the randomness used when generating samples. +By default this is set to the current frame number +so that the pattern of sampling noise changes every +frame. It can be locked to a particular value so +that sampling noise does not change from frame to +frame.

+
+
+

options.aaSampleClamp

+

Sets a maximum for the values of individual pixel samples. This +can help reduce fireflies.

+
+
+

options.aaSampleClampAffectsAOVs

+

Applies the sample clamping settings to all RGB and RGBA +AOVs, in addition to the beauty image.

+
+
+

options.indirectSampleClamp

+

Clamp fireflies resulting from indirect calculations. +May cause problems with dulling highlights in reflections.

+
+
+

options.lowLightThreshold

+

Light paths with less energy than this will be discarded. This +saves tracing shadow rays, but cuts off the light when it gets dim. +Raising this improves performance, but makes the image potentially +darker in some areas.

+
+
+

options.enableAdaptiveSampling

+

If adaptive sampling is enabled, Arnold will take a minimum +of ( aaSamples * aaSamples ) samples per pixel, and will then +take up to ( aaSamplesMax * aaSamplesMax ) samples per pixel, +or until the remaining estimated noise gets lower than +aaAdaptiveThreshold.

+
+

Note

+

Arnold’s adaptive sampling won’t do anything if aaSamples == 1 : you need to set aaSamples to at least 2.

+
+
+
+

options.aaSamplesMax

+

The maximum sampling rate during adaptive sampling. Like +aaSamples, this value is squared. So aaSamplesMax == 6 means up to 36 samples per pixel.

+
+
+

options.aaAdaptiveThreshold

+

How much leftover noise is acceptable when terminating adaptive sampling. Higher values +accept more noise, lower values keep rendering longer to achieve smaller amounts of +noise.

+
+
+

options.enableProgressiveRender

+

Enables progressive rendering, with a series of coarse low-resolution +renders followed by a full quality render updated continuously.

+
+
+

options.progressiveMinAASamples

+

Controls the coarseness of the first low resolution pass +of interactive rendering. A value of -4 starts with 16x16 pixel +blocks, -3 gives 8x8 blocks, -2 gives 4x4, -1 gives 2x2 and +0 disables the low resolution passes completely.

+
+
+

options.giTotalDepth

+

The maximum depth of any ray (Diffuse + Specular + +Transmission + Volume).

+
+
+

options.giDiffuseDepth

+

Controls the number of ray bounces when +computing indirect illumination (“bounce light”).

+
+
+

options.giSpecularDepth

+

Controls the number of ray bounces when +computing specular reflections.

+
+
+

options.giTransmissionDepth

+

Controls the number of ray bounces when +computing specular refractions.

+
+
+

options.giVolumeDepth

+

Controls the number of ray bounces when +computing indirect lighting on volumes.

+
+
+

options.autoTransparencyDepth

+

The number of allowable transparent layers - after +this the last object will be treated as opaque.

+
+
+

options.maxSubdivisions

+

A global override for the maximum polymesh.subdiv_iterations.

+
+
+

options.subdivDicingCamera

+

If specified, adaptive subdivision will be performed +relative to this camera, instead of the render camera.

+
+
+

options.subdivFrustumCulling

+

Disable subdivision of polygons outside the camera frustum. +( Uses dicing camera if one has been set ). +Saves performance, at the cost of inaccurate reflections +and shadows.

+
+
+

options.subdivFrustumPadding

+

When using subdivFrustumCulling, adds a world space bound +around the frustum where subdivision still occurs. Can be +used to improve shadows, reflections, and objects the motion +blur into frame.

+
+
+

options.textureMaxMemoryMB

+

The maximum amount of memory to use for caching +textures. Tiles are loaded on demand and cached, +and when the memory limit is reached the least +recently used tiles are discarded to make room +for more. Measured in megabytes.

+
+
+

options.texturePerFileStats

+

Turns on detailed statistics output for +each individual texture file used.

+
+
+

options.textureMaxSharpen

+

Controls the sharpness of texture lookups, +providing a tradeoff between sharpness and +the amount of texture data loaded. If +textures appear too blurry, then the value +should be increased to add sharpness.

+

The theoretical optimum value is to match the +number of AA samples, but in practice the +improvement in sharpness this brings often +doesn’t justify the increased render time and +memory usage.

+
+
+

options.textureUseExistingTx

+

Automatically uses a <filename>.tx file if it exists, in +preference to a <filename>.jpg (or any other file format) that has +been specified. Particularly useful when used with +textureAutoGenerateTx, which will automatically create the .tx +file as necessary.

+
+

Info : The .tx file format provides improved performance and +reduced memory usage, because it contains mip-mapped textures.

+
+
+
+

options.textureAutoGenerateTx

+

Automatically generates a <filename>.tx when given +<filename>.jpg (or any other file format). Requires that +textureUseExistingTx is also turned on. By default, textures +are generated in the same folder as the source texture. Use +textureAutoTxPath to specify an alternative destination.

+
+

Caution

+

This feature might cause problems if multiple render +farm nodes are trying to convert the same textures in the same +target folder at the same time, resulting in potential crashes, +corrupt textures, and poor performance.

+
+
+
+

options.textureAutoTxPath

+

Specifies an alternate destination folder for textures generated +by textureAutoGenerateTx.

+
+
+

options.ignoreTextures

+

Ignores all file textures, rendering as +if they were all white.

+
+
+

options.ignoreShaders

+

Ignores all shaders, rendering as a +simple facing ratio shader instead.

+
+
+

options.ignoreAtmosphere

+

Ignores all atmosphere shaders.

+
+
+

options.ignoreLights

+

Ignores all lights.

+
+
+

options.ignoreShadows

+

Skips all shadow calculations.

+
+
+

options.ignoreSubdivision

+

Treats all subdivision surfaces +as simple polygon meshes instead.

+
+
+

options.ignoreDisplacement

+

Ignores all displacement shaders.

+
+
+

options.ignoreBump

+

Ignores all bump mapping.

+
+
+

options.ignoreSSS

+

Disables all subsurface scattering.

+
+
+

options.ignoreImagers

+

Disables all imagers.

+
+
+

options.textureSearchPath

+

The locations used to search for texture +files.

+
+
+

options.proceduralSearchPath

+

The locations used to search for procedural +DSOs.

+
+
+

options.pluginSearchPath

+

The locations used to search for shaders and other plugins.

+
+
+

options.abortOnError

+

Aborts the render if an error is encountered.

+
+
+

options.errorColorBadTexture

+

The colour to display if an attempt is +made to use a bad or non-existent texture.

+
+
+

options.errorColorBadPixel

+

The colour to display for a pixel where +a NaN is encountered.

+
+
+

options.errorColorBadShader

+

The colour to display if a problem occurs +in a shader.

+
+
+

options.logFileName

+

The name of a log file which Arnold will generate +while rendering.

+
+
+

options.logMaxWarnings

+

The maximum number of warnings that will be reported.

+
+
+

options.logInfo

+

Whether or not information messages are included in the log output.

+
+
+

options.logWarnings

+

Whether or not warning messages are included in the log output.

+
+
+

options.logErrors

+

Whether or not error messages are included in the log output.

+
+
+

options.logDebug

+

Whether or not debug messages are included in the log output.

+
+
+

options.logAssParse

+

Whether or not ass parsing is included in the log output.

+
+
+

options.logPlugins

+

Whether or not plugin loading is included in the log output.

+
+
+

options.logProgress

+

Whether or not progress messages are included in the log output.

+
+
+

options.logNAN

+

Whether or not pixels with NaNs are included in the log output.

+
+
+

options.logTimestamp

+

Whether or not timestamp prefixes are included in the log output.

+
+
+

options.logStats

+

Whether or not statistics are included in the log output.

+
+
+

options.logBacktrace

+

Whether or not stack backtraces from crashes are included in the log output.

+
+
+

options.logMemory

+

Whether or not memory usage prefixes are included in the log output.

+
+
+

options.logColor

+

Whether or not coloured messages are included in the log output.

+
+
+

options.consoleInfo

+

Whether or not information messages are included in the console output.

+
+
+

options.consoleWarnings

+

Whether or not warning messages are included in the console output.

+
+
+

options.consoleErrors

+

Whether or not error messages are included in the console output.

+
+
+

options.consoleDebug

+

Whether or not debug messages are included in the console output.

+
+
+

options.consoleAssParse

+

Whether or not ass parsing is included in the console output.

+
+
+

options.consolePlugins

+

Whether or not plugin loading is included in the console output.

+
+
+

options.consoleProgress

+

Whether or not progress messages are included in the console output.

+
+
+

options.consoleNAN

+

Whether or not pixels with NaNs are included in the console output.

+
+
+

options.consoleTimestamp

+

Whether or not timestamp prefixes are included in the console output.

+
+
+

options.consoleStats

+

Whether or not statistics are included in the console output.

+
+
+

options.consoleBacktrace

+

Whether or not stack backtraces from crashes are included in the console output.

+
+
+

options.consoleMemory

+

Whether or not memory usage prefixes are included in the console output.

+
+
+

options.consoleColor

+

Whether or not coloured messages are included in the console output.

+
+
+

options.statisticsFileName

+

The name of a statistics file where Arnold will store structured +JSON statistics.

+
+
+

options.profileFileName

+

The name of a profile json file where Arnold will store a +detailed node performance graph. Use chrome://tracing to +view the profile.

+
+
+

options.abortOnLicenseFail

+

Aborts the render if a license is not available, +instead of rendering with a watermark.

+
+
+

options.skipLicenseCheck

+

Skips the check for a license, always rendering +with a watermark.

+
+
+

options.renderDevice

+

Can be used to put Arnold in GPU rendering mode, using your graphics card instead of CPU. This is currently a beta with limited stability, and missing support for OSL and volumes.

+
+
+

options.gpuMaxTextureResolution

+

If non-zero, this will omit the high resolution mipmaps when in GPU mode, to avoid running out of GPU memory.

+
+
+

extraOptions

+

An additional set of options to be added. Arbitrary numbers +of options may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an option. +This is convenient when using an expression to define the options +and the option count might be dynamic. It can also be used to +create options whose type cannot be handled by the options +CompoundDataPlug.

+

If the same option is defined by both the options and the +extraOptions plugs, then the value from the extraOptions +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldRender.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldRender.html new file mode 100644 index 000000000..52e5f67ab --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldRender.html @@ -0,0 +1,670 @@ + + + + + + + ArnoldRender — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldRender

+

Performs offline batch rendering using the +Arnold renderer, or optionally generates +.ass files for later rendering using a SystemCommand +node.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

in

+

The scene to be rendered.

+
+
+

mode

+

The type of render to perform.

+
+
+

fileName

+

The name of the .ass file to be generated when in +scene description mode. If a “.ass.gz” extension +is used, then the ass file will be compressed +automatically.

+

Supported file extensions : ass, ass.gz

+
+
+

out

+

A direct pass-through of the input scene.

+
+
+

resolvedRenderer

+

The renderer that will be used, accounting for the value of the +render:defaultRenderer option if renderer is set to “Default”.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldShader.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldShader.html new file mode 100644 index 000000000..af2b59593 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldShader.html @@ -0,0 +1,611 @@ + + + + + + + ArnoldShader — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldShader

+

Loads shaders for use in Arnold renders. Use the ShaderAssignment node to assign shaders to objects in the scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

type

+

The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

attributeSuffix

+

Suffix for the attribute used for shader assignment.

+
+
+

parameters

+

Where the parameters for the shader are represented.

+
+
+

enabled

+

Turns the node on and off.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldShaderBall.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldShaderBall.html new file mode 100644 index 000000000..4683e02b7 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldShaderBall.html @@ -0,0 +1,617 @@ + + + + + + + ArnoldShaderBall — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldShaderBall

+

Generates scenes suitable for rendering shader balls with Arnold.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

shader

+

The shader to be rendered.

+
+
+

resolution

+

The resolution of the shader ball image, which +is always a square.

+
+
+

environment

+

An environment map used for lighting. Should be in latlong +format.

+
+
+

threads

+

The number of threads used by Arnold to render the +shader ball. A value of 0 uses all cores, and negative +values reserve cores for other uses - to be used by +the rest of the UI for instance.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldTextureBake.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldTextureBake.html new file mode 100644 index 000000000..21089b9e1 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldTextureBake.html @@ -0,0 +1,715 @@ + + + + + + + ArnoldTextureBake — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldTextureBake

+

Render meshes in Arnold, storing the results into images in the texture space of the meshes. +Supports multiple meshes and UDIMs, and any AOVs output by Arnold. The file name and +resolution can be overridden per mesh using the “bake:fileName” and “bake:resolution” attributes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

in

+

The input scene containing the meshes to bake, and any lights which affect them.

+
+
+

filter

+

The filter used to control which meshes the textures will be baked for. +A Filter node should be connected here.

+
+
+

bakeDirectory

+

Sets the Context Variable used in the default file name to control where all the bakes will be stored.

+
+
+

defaultFileName

+

The file name to use for each texture file written. will be replaced by the UDIM number, +and will be replaced by the aov name specified in “aovs”. If you want to do an animated bake, +you can also use #### which will be replaced by the frame number.

+

May be overridden per mesh by specifying the “bake:fileName” string attribute on the meshes to be baked.

+
+
+

defaultResolution

+

The resolution to use for each texture file written.

+

May be overridden per mesh by specifying the “bake:resolution” integer attribute on the meshes to be baked.

+
+
+

uvSet

+

The name of the primitive variable containing uvs which will determine how the mesh is unwrapped +for baking. Must be a Face-Varying or Vertex V2f primitive variable.

+
+
+

udims

+

If non-empty, only UDIMs in this list will be baked. The formatting is the same as a frame list: +comma separated, with dashes indicating ranges.

+
+
+

normalOffset

+

How far Arnold steps away from the surface before tracing back. If too large for your scene, +you will incorrectly capture occluders near the mesh instead of the mesh itself. If too small, +everything will go speckly because Arnold has insufficient precision to hit the mesh. For objects +which are fairly large and simple, the default 0.1 should work. Smaller objects may require smaller +values.

+
+
+

aovs

+

A space separated list of colon separated pairs of image name and data to render.

+

For example, you could set this to “myName1:RGBA myName2:diffuse myName3:diffuse_albedo”, to +render 3 sets of images for every UDIM and mesh baked, containing all lighting, just diffuse +lighting, and the diffuse albedo.

+
+
+

tasks

+

How many tasks the bake process will be split into. UDIMs cannot be split across tasks, so if you +have few UDIMs available, the extra tasks won’t do anything, but if you have a large number of +UDIMs, and are dispatching to a pool of machines, increasing the number of tasks used will speed +up bakes, at the cost of using more machines.

+
+
+

cleanupIntermediateFiles

+

During baking, we first render exrs ( potentially multiple EXRs per udim if multiple objects +are present ). We then combine them, fill in the background, and convert to textures. This +causes all intermediate EXRs, and the index txt file to be removed, and just the final .tx to be kept.

+
+
+

applyMedianFilter

+

Adds a simple denoising filter to the texture bake. Mostly preserves high-contrast edges.

+
+
+

medianRadius

+

The radius of the median filter. Values greater than 1 will likely remove small details from the texture.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldVDB.html b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldVDB.html new file mode 100644 index 000000000..9c48964f0 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/ArnoldVDB.html @@ -0,0 +1,648 @@ + + + + + + + ArnoldVDB — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArnoldVDB

+

Creates an external procedural for rendering +VDB volumes in Arnold.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

fileName

+

The name of the VDB file to be loaded.

+

Supported file extensions : vdb

+
+
+

grids

+

A space separated list of grids to be loaded and made available as +channels in the volume shader.

+
+
+

velocityGrids

+

A space separated list of grids used to be used to generate motion +blur. Should either contain a single vector grid or 3 float grids.

+
+
+

velocityScale

+

A scale factor applied to the velocity grids, to either increase +or decrease motion blur.

+
+
+

stepSize

+

The ray marching step size. This should be small enough to capture +the smallest details in the volume. Values which are too large will +cause aliasing artifacts, and values which are too small will cause +rendering to be excessively slow. The default value of 0 causes the +size to be calculated automatically based on the resolution of the +VDB file. The step scale can then be used to make relative adjustments +on top of this automatic size.

+
+
+

stepScale

+

A multiplier applied to the step size. This is most useful when the +step size is computed automatically. Typically stepScale would be +increased above 1 to give improved render times when it is known that +the VDB file doesn’t have a lot of fine detail at the voxel level - +a value of 4 might be a good starting point for such a file.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/InteractiveArnoldRender.html b/1.4.6.0/Reference/NodeReference/GafferArnold/InteractiveArnoldRender.html new file mode 100644 index 000000000..25a1fbb33 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/InteractiveArnoldRender.html @@ -0,0 +1,610 @@ + + + + + + + InteractiveArnoldRender — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

InteractiveArnoldRender

+

Performs interactive renders using Arnold, updating the render on the fly +whenever the input scene changes. Arnold supports edits to all aspects of +the scene without needing to restart the render.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

in

+

The scene to be rendered.

+
+
+

state

+

Turns the rendering on and off, or pauses it.

+
+
+

out

+

A direct pass-through of the input scene.

+
+
+

resolvedRenderer

+

The renderer that will be used, accounting for the value of the +render:defaultRenderer option if renderer is set to “Default”.

+
+
+

messages

+

Messages from the render process.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferArnold/index.html b/1.4.6.0/Reference/NodeReference/GafferArnold/index.html new file mode 100644 index 000000000..3d94ee2e8 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferArnold/index.html @@ -0,0 +1,602 @@ + + + + + + + GafferArnold — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesAttributes.html b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesAttributes.html new file mode 100644 index 000000000..33e12ddd6 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesAttributes.html @@ -0,0 +1,749 @@ + + + + + + + CyclesAttributes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CyclesAttributes

+

Applies Cycles attributes to objects in the scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

attributes

+

The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python.

+
+
+

attributes.cameraVisibility

+

Whether or not the object is visible to camera +rays. To hide an object completely, use the +visibility settings on the StandardAttributes +node instead.

+
+
+

attributes.diffuseVisibility

+

Whether or not the object is visible to diffuse +rays.

+
+
+

attributes.glossyVisibility

+

Whether or not the object is visible in +glossy rays.

+
+
+

attributes.transmissionVisibility

+

Whether or not the object is visible in +transmission.

+
+
+

attributes.shadowVisibility

+

Whether or not the object is visible to shadow +rays - whether it casts shadows or not.

+
+
+

attributes.scatterVisibility

+

Whether or not the object is visible to +scatter rays.

+
+
+

attributes.useHoldout

+

Turns the object into a holdout matte. +This only affects primary (camera) rays.

+
+
+

attributes.isShadowCatcher

+

Turns the object into a shadow catcher.

+
+
+

attributes.shadowTerminatorShadingOffset

+

Push the shadow terminator towards the light to hide artifacts on low poly geometry.

+
+
+

attributes.shadowTerminatorGeometryOffset

+

Offset rays from the surface to reduce shadow terminator artifact on low poly geometry. Only affects triangles at grazing angles to light.

+
+
+

attributes.isCausticsCaster

+

Cast Shadow Caustics.

+
+
+

attributes.isCausticsReceiver

+

Receive Shadow Caustics.

+
+
+

attributes.maxLevel

+

The max level of subdivision that can be +applied.

+
+
+

attributes.dicingScale

+

Multiplier for scene dicing rate.

+
+
+

attributes.lightGroup

+

Set the lightgroup of an object with emission.

+
+
+

attributes.volumeClipping

+

Value under which voxels are considered empty space to +optimize rendering.

+
+
+

attributes.volumeStepSize

+

Distance between volume samples. When zero it is automatically +estimated based on the voxel size.

+
+
+

attributes.volumeObjectSpace

+

Specify volume density and step size in object or world space. +By default object space is used, so that the volume opacity and +detail remains the same regardless of object scale.

+
+
+

attributes.assetName

+

Asset name for cryptomatte.

+
+
+

attributes.emissionSamplingMethod

+

Sampling strategy for emissive surfaces.

+
+
+

attributes.useTransparentShadow

+

Use transparent shadows for this material if it contains a Transparent BSDF, +disabling will render faster but not give accurate shadows.

+
+
+

attributes.heterogeneousVolume

+

Disabling this when using volume rendering, assume volume has the same density +everywhere (not using any textures), for faster rendering.

+
+
+

attributes.volumeSamplingMethod

+

Sampling method to use for volumes.

+
+
+

attributes.volumeInterpolationMethod

+

Interpolation method to use for volumes.

+
+
+

attributes.volumeStepRate

+

Scale the distance between volume shader samples when rendering the volume +(lower values give more accurate and detailed results, but also increased render time).

+
+
+

attributes.displacementMethod

+

Method to use for the displacement.

+
+
+

global

+

Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter.

+
+
+

extraAttributes

+

An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the attributes +CompoundDataPlug, with IECoreScene.ShaderNetwork being one example.

+

If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesBackground.html b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesBackground.html new file mode 100644 index 000000000..b6beaf324 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesBackground.html @@ -0,0 +1,606 @@ + + + + + + + CyclesBackground — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CyclesBackground

+

Assigns global shaders such as background and atmosphere shaders. +This node is an abstract base class, so it can not be used directly - +instead use the nodes derived from it.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

shader

+

The shader to be assigned. This will be stored as an +option within the scene globals.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesLight.html b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesLight.html new file mode 100644 index 000000000..fb341e906 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesLight.html @@ -0,0 +1,660 @@ + + + + + + + CyclesLight — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CyclesLight

+

Loads an Cycles light shader and uses it to output a scene with a single light.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

parameters

+

The parameters of the light shader - these will vary based on the light type.

+
+
+

defaultLight

+

Whether this light illuminates all geometry by default. When +toggled, the light will be added to the “defaultLights” set, which +can be referenced in set expressions and manipulated by downstream +nodes.

+
+
+

mute

+

Whether this light is muted. When toggled, the attribute “light:mute” +will be set to true. When not toggled, it will be omitted from the attributes.

+
+
+

visualiserAttributes

+

Attributes that affect the visualisation of this Light in the Viewer.

+
+
+

visualiserAttributes.scale

+

Scales non-geometric visualisations in the viewport to make them +easier to work with.

+
+
+

visualiserAttributes.maxTextureResolution

+

Visualisers that load textures will respect this setting to +limit their resolution.

+
+
+

visualiserAttributes.frustum

+

Controls whether applicable lights draw a representation of their +light projection in the viewer.

+
+
+

visualiserAttributes.lightFrustumScale

+

Allows light projections to be scaled to better suit the scene.

+
+
+

visualiserAttributes.lightDrawingMode

+

Controls how lights are presented in the Viewer.

+
+
+

visualiserAttributes.lookThroughAperture

+

Specifies the aperture used when looking through this light. Overrides the Viewer’s Camera Settings.

+
+
+

visualiserAttributes.lookThroughClippingPlanes

+

Specifies the clipping planes used when looking through this light. Overrides the Viewer’s Camera Settings.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesMeshLight.html b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesMeshLight.html new file mode 100644 index 000000000..408410460 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesMeshLight.html @@ -0,0 +1,637 @@ + + + + + + + CyclesMeshLight — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CyclesMeshLight

+

Turns mesh primitives into Cycles mesh lights by assigning +an emission shader, turning off all visibility except for camera rays, +and adding the meshes to the default lights set.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

cameraVisibility

+

Whether or not the mesh light is visible to camera +rays.

+
+
+

lightGroup

+

The light group that the mesh light will contribute to.

+
+
+

parameters

+

The parameters of the Cycles emission shader that +is applied to the meshes.

+
+
+

parameters.color

+

Refer to Cycles’s documentation of the emission +shader.

+
+
+

parameters.strength

+

Refer to Cycles’s documentation of the emission +shader.

+
+
+

defaultLight

+

Whether this light illuminates all geometry by default. When +toggled, the light will be added to the “defaultLights” set, which +can be referenced in set expressions and manipulated by downstream +nodes.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesOptions.html b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesOptions.html new file mode 100644 index 000000000..67d9fd404 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesOptions.html @@ -0,0 +1,982 @@ + + + + + + + CyclesOptions — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CyclesOptions

+

Sets global scene options applicable to the Cycles +renderer. Use the StandardOptions node to set +global options applicable to all renderers.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

options

+

The options to be applied - arbitrary numbers of user defined options may be added +as children of this plug via the user interface, or using the CompoundDataPlug API via +python.

+
+
+

options.logLevel

+

Internal Cycles debugging log-level.

+
+
+

options.device

+

Device(s) to use for rendering. +To specify multiple devices, there’s a few examples under presets.

+

To render on CPU and the first CUDA device:

+
    CPU CUDA:00
+
+
+

To render on the first and second OpenCL device:

+
    OPENCL:00 OPENCL:01
+
+
+

To render on every OptiX device found:

+
    OPTIX:*
+
+
+

To render on everything found (not recommended, 1 device may have multiple backends!)

+
    CPU CUDA:* OPTIX:* OPENCL:*
+
+
+
+
+

options.shadingSystem

+

Shading system.

+
    +
  • OSL : Use Open Shading Language (CPU rendering only).

  • +
  • SVM : Use Shader Virtual Machine.

  • +
+
+
+

options.samples

+

Number of samples to render for each pixel. This is for the +path integrator, use the other sampling parameters for the +branched-path integrator.

+
+
+

options.pixelSize

+

Pixel Size.

+
+
+

options.numThreads

+

The number of threads used for rendering.

+
    +
  • The default value of 0 lets the renderer choose +an optimal number of threads based on the available +hardware.

  • +
  • Positive values directly set the number of threads.

  • +
  • Negative values can be used to reserve some cores +while otherwise letting the renderer choose the +optimal number of threads.

  • +
+
+
+

options.timeLimit

+

Time-limit.

+
+
+

options.useProfiling

+

Use Profiling.

+
+
+

options.useAutoTile

+

Automatically render high resolution images in tiles to reduce memory usage, using the specified tile size. Tiles are cached to disk while rendering to save memory.

+
+
+

options.tileSize

+

Tile size for rendering.

+
+
+

options.bvhLayout

+

BVH Layout size. This corresponds with CPU architecture +(the higher the faster, but might not be supported on old CPUs).

+
+
+

options.useBvhSpatialSplit

+

Use BVH spatial splits: longer builder time, faster render.

+
+
+

options.useBvhUnalignedNodes

+

Use special type BVH optimized for hair (uses more ram but renders faster).

+
+
+

options.numBvhTimeSteps

+

Split BVH primitives by this number of time steps to speed up render time in cost of memory.

+
+
+

options.hairSubdivisions

+

Split BVH primitives by this number of time steps to speed up render time in cost of memory.

+
+
+

options.hairShape

+

Rounded Ribbons -Render hair as flat ribbon with rounded normals, for fast rendering. +3D Curves - Render hair as 3D curve, for accurate results when viewing hair close up.

+
+
+

options.textureLimit

+

Limit the maximum texture size used by final rendering.

+
+
+

options.minBounce

+

Minimum number of light bounces. Setting this higher reduces noise in the first bounces, +but can also be less efficient for more complex geometry like hair and volumes.

+
+
+

options.maxBounce

+

Total maximum number of bounces.

+
+
+

options.maxDiffuseBounce

+

Maximum number of diffuse reflection bounces, bounded by total +maximum.

+
+
+

options.maxGlossyBounce

+

Maximum number of glossy reflection bounces, bounded by total +maximum.

+
+
+

options.maxTransmissionBounce

+

Maximum number of transmission reflection bounces, bounded by total +maximum.

+
+
+

options.maxVolumeBounce

+

Maximum number of volumetric scattering events.

+
+
+

options.transparentMinBounce

+

Minimum number of transparent bounces. Setting this higher reduces noise in the first bounces, +but can also be less efficient for more complex geometry like hair and volumes.”

+
+
+

options.transparentMaxBounce

+

Maximum number of transparent bounces.

+
+
+

options.aoBounces

+

Maximum number of Ambient Occlusion bounces.

+
+
+

options.aoFactor

+

Ambient Occlusion factor.

+
+
+

options.aoDistance

+

Ambient Occlusion Distance.

+
+
+

options.volumeMaxSteps

+

Maximum number of steps through the volume before giving up, +to avoid extremely long render times with big objects or small step +sizes.

+
+
+

options.volumeStepRate

+

“Globally adjust detail for volume rendering, on top of automatically estimated step size.” +“Higher values reduce render time, lower values render with more detail.”

+
+
+

options.causticsReflective

+

Use reflective caustics, resulting in a brighter image +(more noise but added realism).

+
+
+

options.causticsRefractive

+

Use refractive caustics, resulting in a brighter image +(more noise but added realism).

+
+
+

options.filterGlossy

+

Adaptively blur glossy shaders after blurry bounces, to reduce +noise at the cost of accuracy.

+
+
+

options.seed

+

Seed value for the sampling pattern. If not specified, the frame number is used instead.

+
+
+

options.sampleClampDirect

+

Clamp value for sampling direct rays.

+
+
+

options.sampleClampIndirect

+

Clamp value for sampling indirect rays.

+
+
+

options.startSample

+

Start sample.

+
+
+

options.useLightTree

+

Sample multiple lights more efficiently based on estimated contribution at every shading point.

+
+
+

options.lightSamplingThreshold

+

Probabilistically terminate light samples when the light +contribution is below this threshold (more noise but faster +rendering). +Zero disables the test and never ignores lights.

+
+
+

options.useAdaptiveSampling

+

Automatically determine the number of samples per pixel based on a variance estimation.

+
+
+

options.adaptiveThreshold

+

Noise level step to stop sampling at, lower values reduce noise the cost of render time. +Zero for automatic setting based on number of AA samples.

+
+
+

options.adaptiveMinSamples

+

Minimum AA samples for adaptive sampling, to discover noisy features before stopping sampling. +Zero for automatic setting based on number of AA samples.

+
+
+

options.denoiserType

+

Denoise the image with the selected denoiser. +OptiX - Use the OptiX AI denoiser with GPU acceleration, only available on NVIDIA GPUs +OpenImageDenoise - Use Intel OpenImageDenoise AI denoiser running on the CPU

+
+
+

options.denoiseStartSample

+

Sample to start denoising the preview at.

+
+
+

options.useDenoisePassAlbedo

+

Use albedo pass for denoising.

+
+
+

options.useDenoisePassNormal

+

Use normal pass for denoising.

+
+
+

options.denoiserPrefilter

+

None - No prefiltering, use when guiding passes are noise-free. +Fast - Denoise color and guiding passes together. Improves quality when guiding passes are noisy using least amount of extra processing time. +Accurate - Prefilter noisy guiding passes before denoising color. Improves quality when guiding passes are noisy using extra processing time.

+
+
+

options.useGuiding

+

Use path guiding for sampling paths. Path guiding incrementally +learns the light distribution of the scene and guides path into directions +with high direct and indirect light contributions.

+
+
+

options.useSurfaceGuiding

+

Use guiding when sampling directions on a surface.

+
+
+

options.useVolumeGuiding

+

Use guiding when sampling directions inside a volume.

+
+
+

options.guidingTrainingSamples

+

The maximum number of samples used for training path guiding. +Higher samples lead to more accurate guiding, however may also unnecessarily slow +down rendering once guiding is accurate enough. +A value of 0 will continue training until the last sample.

+
+
+

options.bgUseShader

+

Use background shader. There must be a CyclesBackground node with +a shader attached to it.

+
+
+

options.bgCameraVisibility

+

Whether or not the background is visible to camera +rays.

+
+
+

options.bgDiffuseVisibility

+

Whether or not the background is visible to diffuse +rays.

+
+
+

options.bgGlossyVisibility

+

Whether or not the background is visible in +glossy rays.

+
+
+

options.bgTransmissionVisibility

+

Whether or not the background is visible in +transmission.

+
+
+

options.bgShadowVisibility

+

Whether or not the background is visible to shadow +rays - whether it casts shadows or not.

+
+
+

options.bgScatterVisibility

+

Whether or not the background is visible to +scatter rays.

+
+
+

options.bgTransparent

+

Make the background transparent.

+
+
+

options.bgTransparentGlass

+

Background can be seen through transmissive surfaces.

+
+
+

options.bgTransparentRoughnessThreshold

+

Roughness threshold of background shader in transmissive surfaces.

+
+
+

options.volumeStepSize

+

Distance between volume shader samples when rendering the volume +(lower values give more accurate and detailed results, but also +increases render time).

+
+
+

options.exposure

+

Image brightness scale.

+
+
+

options.passAlphaThreshold

+

Alpha threshold.

+
+
+

options.displayPass

+

Render pass to show in the 3D Viewport.

+
+
+

options.showActivePixels

+

When using adaptive sampling highlight pixels which are being sampled.

+
+
+

options.filterType

+

Image filter type.

+
+
+

options.filterWidth

+

Pixel width of the filter.

+
+
+

options.mistStart

+

Start of the mist/fog.

+
+
+

options.mistDepth

+

End of the mist/fog.

+
+
+

options.mistFalloff

+

Falloff of the mist/fog.

+
+
+

options.cryptomatteDepth

+

Sets how many unique objects can be distinguished per pixel.

+
+
+

options.dicingCamera

+

Camera to use as reference point when subdividing geometry, useful +to avoid crawling artifacts in animations when the scene camera is +moving.

+
+
+

extraOptions

+

An additional set of options to be added. Arbitrary numbers +of options may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an option. +This is convenient when using an expression to define the options +and the option count might be dynamic. It can also be used to +create options whose type cannot be handled by the options +CompoundDataPlug.

+

If the same option is defined by both the options and the +extraOptions plugs, then the value from the extraOptions +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesRender.html b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesRender.html new file mode 100644 index 000000000..93c03679a --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesRender.html @@ -0,0 +1,668 @@ + + + + + + + CyclesRender — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CyclesRender

+

Performs offline batch rendering using the +Cycles renderer, or optionally generates +.xml files for later rendering using a SystemCommand +node.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

in

+

The scene to be rendered.

+
+
+

mode

+

The type of render to perform.

+
+
+

fileName

+

The name of the .xml file to be generated when in +scene description mode.

+

Supported file extensions : xml

+
+
+

out

+

A direct pass-through of the input scene.

+
+
+

resolvedRenderer

+

The renderer that will be used, accounting for the value of the +render:defaultRenderer option if renderer is set to “Default”.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesShader.html b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesShader.html new file mode 100644 index 000000000..d7b0530f4 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesShader.html @@ -0,0 +1,615 @@ + + + + + + + CyclesShader — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CyclesShader

+

Loads shaders for use in Cycles renders. Use the ShaderAssignment node to assign shaders to objects in the scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

type

+

The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

attributeSuffix

+

Suffix for the attribute used for shader assignment.

+
+
+

parameters

+

Where the parameters for the shader are represented.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

out

+

The output from the shader.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesShaderBall.html b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesShaderBall.html new file mode 100644 index 000000000..6189a21f8 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferCycles/CyclesShaderBall.html @@ -0,0 +1,646 @@ + + + + + + + CyclesShaderBall — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CyclesShaderBall

+

Generates scenes suitable for rendering shader balls with Cycles.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

shader

+

The shader to be rendered.

+
+
+

resolution

+

The resolution of the shader ball image, which +is always a square.

+
+
+

environment

+

An environment map used for lighting. Should be in latlong +format.

+
+
+

device

+

Device(s) to use for rendering. +To specify multiple devices, there’s a few examples under presets.

+

To render on CPU and the first CUDA device:

+
    CPU CUDA:00
+
+
+

To render on the first and second OpenCL device:

+
    OPENCL:00 OPENCL:01
+
+
+

To render on every OptiX device found:

+
    OPTIX:*
+
+
+

To render on everything found (not recommended, 1 device may have multiple backends!)

+
    CPU CUDA:* OPTIX:* OPENCL:*
+
+
+
+
+

threads

+

The number of threads used by Cycles to render the +shader ball. A value of 0 uses all cores, and negative +values reserve cores for other uses - to be used by +the rest of the UI for instance.

+
+
+

shadingSystem

+

Shading system.

+
    +
  • OSL : Use Open Shading Language (CPU rendering only).

  • +
  • SVM : Use Shader Virtual Machine.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferCycles/InteractiveCyclesRender.html b/1.4.6.0/Reference/NodeReference/GafferCycles/InteractiveCyclesRender.html new file mode 100644 index 000000000..9f2050484 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferCycles/InteractiveCyclesRender.html @@ -0,0 +1,610 @@ + + + + + + + InteractiveCyclesRender — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

InteractiveCyclesRender

+

Performs interactive renders using Cycles, updating the render on the fly +whenever the input scene changes. Cycles supports edits to all aspects of +the scene without needing to restart the render.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

in

+

The scene to be rendered.

+
+
+

state

+

Turns the rendering on and off, or pauses it.

+
+
+

out

+

A direct pass-through of the input scene.

+
+
+

resolvedRenderer

+

The renderer that will be used, accounting for the value of the +render:defaultRenderer option if renderer is set to “Default”.

+
+
+

messages

+

Messages from the render process.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferCycles/index.html b/1.4.6.0/Reference/NodeReference/GafferCycles/index.html new file mode 100644 index 000000000..0bb57b173 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferCycles/index.html @@ -0,0 +1,593 @@ + + + + + + + GafferCycles — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/Dispatcher.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/Dispatcher.html new file mode 100644 index 000000000..2b7d74d55 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/Dispatcher.html @@ -0,0 +1,673 @@ + + + + + + + Dispatcher — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Dispatcher

+

Used to schedule the execution of a network +of TaskNodes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

tasks

+

The tasks to be executed by this dispatcher.

+
+
+

framesMode

+

Determines the active frame range to be dispatched as +follows :

+
    +
  • CurrentFrame dispatches the current frame only, as +specified by the ${frame} context variable.

  • +
  • FullRange uses the full frame range as specified by the +${frameRange:start} and ${frameRange:end} +context variables.

  • +
  • CustomRange uses a user defined range, as specified by +the frameRange plug.

  • +
+
+
+

frameRange

+

The frame range to be used when framesMode is “CustomRange”.

+
+
+

jobName

+

A descriptive name for the job.

+
+
+

jobsDirectory

+

A directory to store temporary files used by the dispatcher.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/FrameMask.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/FrameMask.html new file mode 100644 index 000000000..3a0431fe9 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/FrameMask.html @@ -0,0 +1,654 @@ + + + + + + + FrameMask — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FrameMask

+

Masks upstream tasks so that they will only be executed for +a subset of the Dispatcher’s frame range.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

mask

+

The subset of frames that will be executed by upstream tasks. +Any frames not included here will be ignored, regardless +of the dispatcher’s frame range.

+
+

Note

+

This can only remove frames. To add frames, edit the +settings on the Dispatcher.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/LocalDispatcher.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/LocalDispatcher.html new file mode 100644 index 000000000..dd066b599 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/LocalDispatcher.html @@ -0,0 +1,697 @@ + + + + + + + LocalDispatcher — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LocalDispatcher

+

Schedules execution of task graphs on the local machine. Tasks +may be dispatched in the background to keep the UI responsive.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

tasks

+

The tasks to be executed by this dispatcher.

+
+
+

framesMode

+

Determines the active frame range to be dispatched as +follows :

+
    +
  • CurrentFrame dispatches the current frame only, as +specified by the ${frame} context variable.

  • +
  • FullRange uses the full frame range as specified by the +${frameRange:start} and ${frameRange:end} +context variables.

  • +
  • CustomRange uses a user defined range, as specified by +the frameRange plug.

  • +
+
+
+

frameRange

+

The frame range to be used when framesMode is “CustomRange”.

+
+
+

jobName

+

A descriptive name for the job.

+
+
+

jobsDirectory

+

A directory to store temporary files used by the dispatcher.

+
+
+

executeInBackground

+

Executes the dispatched tasks in separate processes via a +background thread.

+
+
+

ignoreScriptLoadErrors

+

Ignores errors loading the script when executing in the background. +This is not recommended - fix the problem instead.

+
+
+

environmentCommand

+

Optional system command to modify the environment when launching +tasks in the background. Background tasks are launched in a separate +process using a gaffer execute ... command, and they inherit the +environment from the launching process. When an environment +command is specified, tasks are instead launched using environmentCommand gaffer execute ..., and the environment command is responsible for +modifying the inherited environment and then launching gaffer execute ....

+

For example, the following environment command will use the standard /usr/bin/env +program to set some custom variables :

+
/usr/bin/env FOO=BAR TOTO=TATA
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/PythonCommand.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/PythonCommand.html new file mode 100644 index 000000000..b64c7494c --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/PythonCommand.html @@ -0,0 +1,676 @@ + + + + + + + PythonCommand — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PythonCommand

+

Runs python code.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

command

+

The command to run. This may reference any of the +variables by name, and also the node itself as self +and the current Context as context.

+
+
+

variables

+

An arbitrary set of variables which can be accessed via +the variables dictionary within the python command.

+
+
+

sequence

+

Calls the command once for each sequence, instead of once +per frame. In this mode, an additional variable called frames +is available to the command, containing a list of all frame +numbers for which execution should be performed. The Context may +be updated to reference any frame from this list, and accessing +a variable returns the value for the current frame.

+

A typical structure for the command might look something like this :

+
# Do some one-time initialization
+...
+# Process all frames
+for frame in frames :
+        context.setFrame( frame )
+        # Read variables after setting the frame to get
+        # the right values for that frame.
+        v = variables["v"]
+        ...
+# Do some one-time finalization
+...
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/SystemCommand.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/SystemCommand.html new file mode 100644 index 000000000..914b8c155 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/SystemCommand.html @@ -0,0 +1,672 @@ + + + + + + + SystemCommand — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SystemCommand

+

Runs system commands via a shell.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

command

+

The command to be run. This may reference values +from substitutions with ‘{substitutionName}’ syntax.

+
+
+

shell

+

When enabled, the specified command is interpreted as a shell +command and run in a child shell. This allows semantics such +as pipes to be used. Otherwise the supplied command is invoked +directly as an executable and its args.

+
+

Note

+

On MacOS with System Integrity Protection enabled, child +shells will not inherit DYLD_LIBRARY_PATH from the Gaffer +process. If the executable you are running relies on this, +disabling shell should allow it to inherit the full Gaffer +environment.

+
+
+
+

substitutions

+

An arbitrary set of name/value pairs which can be +referenced in command with ‘{substitutionsName}’ syntax.

+
+
+

environmentVariables

+

An arbitrary set of name/value pairs which will be set as +environment variables when running the command.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskContextProcessor.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskContextProcessor.html new file mode 100644 index 000000000..76363a225 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskContextProcessor.html @@ -0,0 +1,643 @@ + + + + + + + TaskContextProcessor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

TaskContextProcessor

+

Base class for nodes which modify the Context in which +upstream tasks are dispatched.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskContextVariables.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskContextVariables.html new file mode 100644 index 000000000..5cfc282ac --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskContextVariables.html @@ -0,0 +1,647 @@ + + + + + + + TaskContextVariables — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

TaskContextVariables

+

Adds variables which can be referenced by upstream expressions.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

variables

+

The variables to be added - arbitrary numbers of variables +can be added here.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskList.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskList.html new file mode 100644 index 000000000..590471179 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskList.html @@ -0,0 +1,647 @@ + + + + + + + TaskList — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

TaskList

+

Used to collect tasks for dispatching all at once.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

sequence

+

Don’t allow any tasks which depend on this list to run until all frames +of the tasks in this list have run.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskNode.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskNode.html new file mode 100644 index 000000000..69a37ae7a --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskNode.html @@ -0,0 +1,646 @@ + + + + + + + TaskNode — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

TaskNode

+

Base class for nodes which have external side effects - generating +files on disk for instance. Can be connected with other task +nodes to define an order of execution based on dependencies between +nodes. A Dispatcher can then be used to actually perform the execution +of the tasks generated by such a network.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskSwitch.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskSwitch.html new file mode 100644 index 000000000..d6d6dd8c0 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/TaskSwitch.html @@ -0,0 +1,650 @@ + + + + + + + TaskSwitch — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

TaskSwitch

+

Switches between upstream tasks, so that only +one is chosen for execution.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

index

+

The index of the input task which is executed. A value +of 0 chooses the first input, 1 the second and so on. Values +larger than the number of available inputs wrap back around to +the beginning.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/Wedge.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/Wedge.html new file mode 100644 index 000000000..bdf40168a --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/Wedge.html @@ -0,0 +1,743 @@ + + + + + + + Wedge — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Wedge

+

Causes upstream nodes to be dispatched multiple times in a range +of Contexts, each time with a different value for a specified variable. +This variable should be referenced in upstream expressions to apply +variation to the tasks being performed. For instance, it could be +used to drive a shader parameter to perform a series of “wedges” to +demonstrate the results of a range of possible parameter values.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

variable

+

The name of the Context Variable defined by the wedge. +This should be used in upstream expressions to apply the +wedged value to specific nodes.

+
+
+

indexVariable

+

The name of an index Context Variable defined by the wedge. +This is assigned values starting at 0 and incrementing for +each new value - for instance a wedged float range might +assign variable values of 0.25, 0,5, 0.75 or 0.1, 0,2, 0.3 +but the corresponding index variable would take on values of +0, 1, 2 in both cases.

+

The index variable is particularly useful for generating +unique filenames when using a float range to perform +wedged renders.

+
+
+

mode

+

The method used to define the range of values used by +the wedge. It is possible to define numeric or color +ranges, and also to specify explicit lists of numbers or +strings.

+
+
+

floatMin

+

The smallest value of the wedge range when the +mode is set to “Float Range”. Has no effect in +other modes.

+
+
+

floatMax

+

The largest allowable value of the wedge range +when the mode is set to “Float Range”. Has no +effect in other modes.

+
+
+

floatSteps

+

The number of steps in the value range +defined when in “Float Range” mode. The +steps are distributed evenly between the +min and max values. Has no effect in +other modes.

+
+
+

intMin

+

The smallest value of the wedge range when the +mode is set to “Int Range”. Has no effect in +other modes.

+
+
+

intMax

+

The largest allowable value of the wedge range +when the mode is set to “Int Range”. Has no +effect in other modes.

+
+
+

intStep

+

The step between successive values when the +mode is set to “Int Range”. Values are +generated by adding this step to the minimum +value until the maximum value is exceeded. +Note that if (max - min) is not exactly divisible +by the step then the maximum value may not +be used at all. Has no effect in other modes.

+
+
+

ramp

+

The range of colours used when the mode +is set to “Colour Range”. Has no effect in +other modes.

+
+
+

colorSteps

+

The number of steps in the wedge range +defined when in “Colour Range” mode. The +steps are distributed evenly from the start +to the end of the ramp. Has no effect in +other modes.

+
+
+

floats

+

The list of values used when in “Float List” +mode. Has no effect in other modes.

+
+
+

ints

+

The list of values used when in “Int List” +mode. Has no effect in other modes.

+
+
+

strings

+

The list of values used when in “String List” +mode. Has no effect in other modes.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferDispatch/index.html b/1.4.6.0/Reference/NodeReference/GafferDispatch/index.html new file mode 100644 index 000000000..aea9ec150 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferDispatch/index.html @@ -0,0 +1,595 @@ + + + + + + + GafferDispatch — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Anaglyph.html b/1.4.6.0/Reference/NodeReference/GafferImage/Anaglyph.html new file mode 100644 index 000000000..3f0efb1a2 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Anaglyph.html @@ -0,0 +1,599 @@ + + + + + + + Anaglyph — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Anaglyph

+

Converts a multi-view image with “left” and “right” views into a single view image with the two views combined in different colors, suitable for viewing through red-blue anaglyph glasses.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

in

+

The input image

+
+
+

enabled

+

Turns the node on and off.

+
+
+

out

+

The output image generated by this node.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/BleedFill.html b/1.4.6.0/Reference/NodeReference/GafferImage/BleedFill.html new file mode 100644 index 000000000..ff4fabb74 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/BleedFill.html @@ -0,0 +1,605 @@ + + + + + + + BleedFill — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

BleedFill

+

Fills in areas of low alpha in the image by blurring in contributions from nearby pixels.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

expandDataWindow

+

Expand the data window to cover the display window. The new data will be filled +with blurred contributions from nearby pixels ( the same as any regions of low +alpha within the original data window ).

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Blur.html b/1.4.6.0/Reference/NodeReference/GafferImage/Blur.html new file mode 100644 index 000000000..adf023b5d --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Blur.html @@ -0,0 +1,615 @@ + + + + + + + Blur — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Blur

+

Applies a gaussian blur to the image.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

radius

+

The size of the blur in pixels. This can be varied independently +in the x and y directions, and fractional values are supported for +fine control.

+
+
+

boundingMode

+

The method used when the filter references pixels outside the +input data window.

+
+
+

expandDataWindow

+

Expands the data window to include the external pixels +which the blur will bleed onto.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/CDL.html b/1.4.6.0/Reference/NodeReference/GafferImage/CDL.html new file mode 100644 index 000000000..3aa48fd93 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/CDL.html @@ -0,0 +1,632 @@ + + + + + + + CDL — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CDL

+

Applies color transformations provided by +OpenColorIO via an OCIO CDLTransform.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

channels

+

The names of the channels to process. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+

processUnpremultiplied

+

Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images.

+
+
+

slope

+

Slope for the ASC CDL color correction formula.

+
+
+

offset

+

Offset for the ASC CDL color correction formula.

+
+
+

power

+

Power for the ASC CDL color correction formula.

+
+
+

saturation

+

Saturation from the v1.2 release of the ASC CDL color correction formula.

+
+
+

direction

+

The direction to perform the color transformation.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Catalogue.html b/1.4.6.0/Reference/NodeReference/GafferImage/Catalogue.html new file mode 100644 index 000000000..f9a649add --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Catalogue.html @@ -0,0 +1,643 @@ + + + + + + + Catalogue — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Catalogue

+

Stores a catalogue of images to be browsed. Images can either be loaded +from files or rendered directly into the catalogue.

+

To send a live render to a Catalogue, an “ieDisplay” output definition +should be used with the following parameters :

+
    +
  • driverType : “ClientDisplayDriver”

  • +
  • displayHost : host name (“localhost” is sufficient for local renders)

  • +
  • displayPort : GafferImage.Catalogue.displayDriverServer().portNumber()

  • +
  • remoteDisplayType : “GafferImage::GafferDisplayDriver”

  • +
  • catalogue:name : The name of the catalogue to render to (optional)

  • +
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

images

+

Specifies the list of images currently +stored in the catalogue.

+

Either add images interactively +using the UI, or use the API to construct +Catalogue.Image plugs and parent them +here.

+
+
+

imageIndex

+

Specifies the index of the currently +selected image. This forms the output +from the catalogue node.

+
+
+

name

+

Used to distinguish between catalogues, so that when +multiple catalogues exist, it is possible to send a +render to just one of them. Renders are matched +to catalogues by comparing the “catalogue:name” parameter +from the renderer output with the value of this plug.

+
+
+

directory

+

The directory where completed renders +are saved. This allows them to remain +in the catalogue for the next session.

+
+
+

imageNames

+

Output containing all the names of the images in the Catalogue. +Possible uses include :

+
    +
  • Looping over all images using a Wedge and a CatalogueSelect.

  • +
  • Making a ContactSheet using the Collect mode and a CatalogueSelect.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/CatalogueSelect.html b/1.4.6.0/Reference/NodeReference/GafferImage/CatalogueSelect.html new file mode 100644 index 000000000..b1a2da2aa --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/CatalogueSelect.html @@ -0,0 +1,603 @@ + + + + + + + CatalogueSelect — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CatalogueSelect

+

Finds an image in a directly connected Catalogue by name.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

imageName

+

The name of the image to extract.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Checkerboard.html b/1.4.6.0/Reference/NodeReference/GafferImage/Checkerboard.html new file mode 100644 index 000000000..c36d916c0 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Checkerboard.html @@ -0,0 +1,623 @@ + + + + + + + Checkerboard — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Checkerboard

+

Outputs an image of a checkerboard pattern.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

format

+

The resolution and aspect ratio of the image.

+
+
+

size

+

The size of the squares in pixels. This can be varied independently +in the x and y directions.

+
+
+

colorA

+

The colour of half of the squares of the pattern.

+
+
+

colorB

+

The colour of the other half of the squares of the pattern.

+
+
+

layer

+

The layer to generate. The output channels will +be named ( layer.R, layer.G, layer.B and layer.A ).

+
+
+

transform

+

A transformation applied to the entire checkerboard pattern. +The translate and pivot values are specified in pixels, +and the rotate value is specified in degrees.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Clamp.html b/1.4.6.0/Reference/NodeReference/GafferImage/Clamp.html new file mode 100644 index 000000000..a7abac070 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Clamp.html @@ -0,0 +1,656 @@ + + + + + + + Clamp — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Clamp

+

Clamps channel values so that they fit within a specified +range. Clamping is performed for each channel individually, +and out-of-range colours may be highlighted by setting them +to a value different to the clamp threshold itself.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

channels

+

The names of the channels to operate on. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+

processUnpremultiplied

+

Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images.

+
+
+

min

+

The minimum value - values below this will +be clamped if minEnabled is on.

+
+
+

max

+

The maximum value - values above this will +be clamped if maxEnabled is on.

+
+
+

minClampTo

+

By default, values below the minimum value are +clamped to the minimum value itself. If minClampToEnabled +is on, they are instead set to this value. This can +be useful for highlighting out-of-range values.

+
+
+

maxClampTo

+

By default, values above the maximum value are +clamped to the maximum value itself. If maxClampToEnabled +is on, they are instead set to this value. This can +be useful for highlighting out-of-range values.

+
+
+

minEnabled

+

Turns on clamping for values below the min value.

+
+
+

maxEnabled

+

Turns on clamping for values above the max value.

+
+
+

minClampToEnabled

+

Turns on the effect of minClampTo, allowing out +of range values to be highlighted.

+
+
+

maxClampToEnabled

+

Turns on the effect of maxClampTo, allowing out +of range values to be highlighted.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/CollectImages.html b/1.4.6.0/Reference/NodeReference/GafferImage/CollectImages.html new file mode 100644 index 000000000..738231186 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/CollectImages.html @@ -0,0 +1,623 @@ + + + + + + + CollectImages — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CollectImages

+

Forms a series of image layers by repeatedly evaluating the input with different Contexts. +Useful for networks that need to dynamically build an unknown number of image layers.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The image which will be evaluated for each layer.

+
+
+

rootLayers

+

A list of values for the layerVariable, defining the layers to be collected.

+
+
+

layerVariable

+

This Context Variable will be set with the current layer name when evaluating the in plug. +This allows you to vary the upstream processing for each new layer.

+
+
+

addLayerPrefix

+

When on, the output channel names are automatically prefixed with +the name of the layer being collected. Should be turned off when +the input channel names already contain the layer name.

+
+
+

mergeMetadata

+

Controls how the output metadata is generated from the collected +images. By default, the metadata from the first image alone +is passed through. When mergeMetadata is on, the metadata from +all collected images is merged, with the last image winning +in the case of multiple image specifying the same piece of metadata.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/ColorSpace.html b/1.4.6.0/Reference/NodeReference/GafferImage/ColorSpace.html new file mode 100644 index 000000000..75452b6b7 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/ColorSpace.html @@ -0,0 +1,630 @@ + + + + + + + ColorSpace — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ColorSpace

+

Applies colour transformations provided by +OpenColorIO. Configs are loaded from the +configuration specified by the OCIO environment +variable.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

channels

+

The names of the channels to process. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+

processUnpremultiplied

+

Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images.

+
+
+

context

+
+

Warning

+

Deprecated - please use the OpenColorIOContext +node instead.

+
+
+
+

inputSpace

+

The colour space of the input image.

+
+
+

outputSpace

+

The colour space of the output image.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Constant.html b/1.4.6.0/Reference/NodeReference/GafferImage/Constant.html new file mode 100644 index 000000000..e120c574e --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Constant.html @@ -0,0 +1,608 @@ + + + + + + + Constant — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Constant

+

Outputs an image of a constant flat colour.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

format

+

The resolution and aspect ratio of the image.

+
+
+

color

+

The colour of the image.

+
+
+

layer

+

The layer to generate. The output channels will +be named ( layer.R, layer.G, layer.B and layer.A ).

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/ContactSheet.html b/1.4.6.0/Reference/NodeReference/GafferImage/ContactSheet.html new file mode 100644 index 000000000..c9c5a9d30 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/ContactSheet.html @@ -0,0 +1,802 @@ + + + + + + + ContactSheet — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ContactSheet

+

Assembles multiple input images into a tiled grid, with customisable layout, labels and borders.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

in

+

The images to be included in the contact sheet.

+
+
+

out

+

The output image generated by this node.

+
+
+

format

+

The format of the output image.

+
+
+

mode

+

Defines how contact sheet tiles are generated from the source images :

+
    +
  • Standard : Each source generates a tile in the contact sheet.

  • +
  • Sequence : Each frame in frames generates a tile in the contact sheet. Repeated for each source in order.

  • +
  • Layers : Each layer generates a tile in the contact sheet. Repeated for each source in order.

  • +
  • Views : Each view generates a tile in the contact sheet. Repeated for each source in order.

  • +
  • Collect : Each context defined by tileNames and tileNameVariable generates a tile in the contact sheet. Repeated for each source in order.

  • +
+
+
+

frames

+

The frames to use when in Sequence mode. Example syntax :

+
    +
  • 1-100x10

  • +
  • 1-10, 15, 20, 21

  • +
+
+
+

divisionsMode

+

The method used to define the number of grid tiles in the contact sheet :

+
    +
  • Automatic : Defines a grid with enough tiles to show every source image, while filling as much of the output format as possible. Assumes that all source images have the same aspect ratio as the first one.

  • +
  • Custom : Defines a fixed grid via the divisions plug. If there are more sources images than tiles, they will be omitted.

  • +
+
+
+

tileNames

+

The values to use for the tileNameVariable when in Collect mode. Each value defines a tile in the contact sheet. Use the tile variables in upstream nodes to vary the source images.

+
+
+

tileNameVariable

+

Name of the context variable that takes values from tileNames in Collect mode. May be used upstream to vary the source images per tile.

+
+
+

tileIndexVariable

+

Name of the context variable that contains the index of the contact sheet tile when in Collect mode. May be used upstream to define the vary the content of the source images.

+
+
+

divisions

+

The number of divisions in the grid when in Custom mode.

+
+
+

verticalAlignment

+

Determines how tiles are aligned vertically when they do not consume all the space available in the layout :

+
    +
  • Top : The empty space is placed at the bottom of the layout, so that the tiles are aligned to the top, and spacing.y is maintained.

  • +
  • Bottom : The empty space is placed at the top of the layout, so that the tiles are aligned to the bottom, and spacing.y is maintained.

  • +
  • Center : The empty space is distributed evenly between the top and bottom of the layout, so that the tiles are aligned to the center, and spacing.y is maintained.

  • +
  • Justified : The extra space is distributed evenly into the gaps between tiles, in addiition to spacing.y. This aligns the top tile to the top of the layout and the bottom tile to the bottom of the layout.

  • +
+
+

Note

+

When there is no empty space in the layout, the choice of alignment has no effect.

+
+
+
+

outDivisions

+

The number of divisions calculated by the Automatic mode.

+
+
+

spacing

+

The size of the gaps between tiles in the grid, measured in pixels.

+
+
+

horizontalAlignment

+

Determines how tiles are aligned horizontally when they do not consume all the space available in the layout :

+
    +
  • Left : The empty space is placed at the right of the layout, so that the tiles are aligned to the left, and spacing.x is maintained.

  • +
  • Right : The empty space is placed at the left of the layout, so that the tiles are aligned to the right, and spacing.x is maintained.

  • +
  • Center : The empty space is distributed evenly between the left and right of the layout, so that the tiles are aligned to the center, and spacing.x is maintained.

  • +
  • Justified : The extra space is distributed evenly into the gaps between tiles, in addiition to spacing.x. This aligns the left tile to the left of the layout and the right tile to the right of the layout.

  • +
+
+

Note

+

When there is no empty space in the layout, the choice of alignment has no effect.

+
+
+
+

labelsEnabled

+

Enables labels for each tile.

+
+
+

labelColor

+

The colour of the label text.

+
+
+

labelShadow

+

Enables the rendering of a label drop shadow which can be coloured, offset and +blurred.

+
+
+

labelShadowColor

+

The colour of the label shadow.

+
+
+

labelShadowOffset

+

The offset of the shadow, measured relative to the label size.

+
+
+

labelShadowBlur

+

A blur applied to the shadow, measured relative to the label size.

+
+
+

marginTop

+

The size of the space at the top of the layout, measured in pixels.

+
+
+

marginBottom

+

The size of the space at the bottom of the layout, measured in pixels.

+
+
+

marginLeft

+

The size of the space on the left of the layout, measured in pixels.

+
+
+

marginRight

+

The size of the space on the right of the layout, measured in pixels.

+
+
+

labelHorizontalAlignment

+

Aligns the label horizontally within the tile.

+
+
+

labelVerticalAlignment

+

Aligns the label vertically within the tile, or places the label outside the tile in modes Above and Below. When placed outside the tile, spacing.y must provide enough space for the label.

+
+
+

labelScale

+

An additional scaling applied to the label. The label is already automatically scaled to remain in proportion with either the tile size or the tile spacing (when aligned above or below).

+
+
+

labelFormat

+

Defines the content of the label, using the following substitutions :

+
    +
  • {label} : A label identifiying the source image, depending on the mode used. For instance, in Sequence mode the label is the frame number, and in Layers mode the label is the layer name.

  • +
  • {input} : The index of the source input.

  • +
  • {metadataName} : The name of any image metadata.

  • +
+
+
+

bordersEnabled

+

Enables a border for each image tile.

+
+
+

borderWidth

+

The width of the border, measured in pixels.

+
+
+

borderColorMode

+

Determines how a color is chosen for each border :

+
    +
  • Constant : Uses the same fixed colour for every tile.

  • +
  • Error Check : Uses an error colour to highlight images which fail certain quality checks.

  • +
  • Metadata : Uses image metadata to define the color.

  • +
+
+
+

borderColor

+

The border color for Constant mode, and for tiles which pass all checks in Error Check mode.

+
+
+

borderColorMetadata

+

The name of the metadata to provide the border color in Metadata mode. Supported metadata types :

+
    +
  • Color4f

  • +
  • Color3f

  • +
  • Float

  • +
+
+
+

borderErrorColor

+

The border color for tiles that fail any checks in Error Check mode.

+
+
+

borderCheckNaN

+

Applies the error color to images which contain any pixels with a NaN value.

+
+
+

borderCheckFileValid

+

Highlights images where the ImageReader has applied Black or Hold mode for missing frames. Works by checking for fileValid metadata with a value of False.

+
+
+

borderMin

+

The minimum value allowed for pixels when using borderCheckMin.

+
+
+

borderCheckMin

+

Applies the error color to images which contain any pixels with values below borderMin.

+
+
+

borderCheckMax

+

Applies the error color to images which contain any pixels with values above borderMax.

+
+
+

borderMax

+

The maximum value allowed for pixels when using borderCheckMin.

+
+
+

filter

+

The pixel filter used when resizing the input images. Each filter provides different tradeoffs between sharpness and the danger of aliasing or ringing.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/ContactSheetCore.html b/1.4.6.0/Reference/NodeReference/GafferImage/ContactSheetCore.html new file mode 100644 index 000000000..ac5e3535b --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/ContactSheetCore.html @@ -0,0 +1,625 @@ + + + + + + + ContactSheetCore — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ContactSheetCore

+

Collects multiple input images, transforming them into tiles within +the output image. Provides the core functionality of the ContactSheet +node, and may be reused for making similar nodes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

format

+

The resolution and aspect ratio of the output image.

+
+
+

tiles

+

The bounding boxes of each tile.

+
+

Note

+

Each input image will be scaled to fit entirely within its tile +while preserving aspect ratio.

+
+
+
+

tileVariable

+

Context variable used to pass the index of the current tile to the upstream +node network. This should be used to provide a different input image per tile.

+
+
+

filter

+

The pixel filter used when resizing the input images. Each +filter provides different tradeoffs between sharpness and +the danger of aliasing or ringing.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/CopyChannels.html b/1.4.6.0/Reference/NodeReference/GafferImage/CopyChannels.html new file mode 100644 index 000000000..4244e1dae --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/CopyChannels.html @@ -0,0 +1,606 @@ + + + + + + + CopyChannels — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CopyChannels

+

Copies channels from the secondary input images +onto the primary input image and outputs the result.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input images

+
+
+

channels

+

The names of the channels to copy. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/CopyImageMetadata.html b/1.4.6.0/Reference/NodeReference/GafferImage/CopyImageMetadata.html new file mode 100644 index 000000000..9e3d6e74a --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/CopyImageMetadata.html @@ -0,0 +1,614 @@ + + + + + + + CopyImageMetadata — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CopyImageMetadata

+

Copies metadata entries from the second image to the first image +based on name. If those entries already exist in the incoming +image metadata, their values will be overwritten.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

copyFrom

+

The image to copy the metadata entries from.

+
+
+

names

+

The names of metadata entries to be copied. This is a space separated +list of entry names, which accepts Gaffer’s standard string wildcards.

+
+
+

invertNames

+

When on, matching names are ignored, and non-matching names are copied instead.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/CopyViews.html b/1.4.6.0/Reference/NodeReference/GafferImage/CopyViews.html new file mode 100644 index 000000000..f1013646f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/CopyViews.html @@ -0,0 +1,606 @@ + + + + + + + CopyViews — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CopyViews

+

Copies views from the secondary input images onto the primary input image. +Only works with multi-view images.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input images

+
+
+

views

+

The names of the views to copy. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/CreateViews.html b/1.4.6.0/Reference/NodeReference/GafferImage/CreateViews.html new file mode 100644 index 000000000..62429409f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/CreateViews.html @@ -0,0 +1,599 @@ + + + + + + + CreateViews — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CreateViews

+

Creates a multi-view image by combining multiple input images.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

views

+

Views to add. In the case of multiple views with the same name, the last one will override.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Crop.html b/1.4.6.0/Reference/NodeReference/GafferImage/Crop.html new file mode 100644 index 000000000..b0f9cb4aa --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Crop.html @@ -0,0 +1,645 @@ + + + + + + + Crop — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Crop

+

Modifies the Data and/or Display Window, in a way that is +either user-defined, or can be driven by the existing Data +or Display Window.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

areaSource

+

Where to source the actual area to use. If this is +set to DataWindow, it will use the input’s Data Window, +if it is set to DisplayWindow, it will use the input’s +Display Window, and if it is set to Area, it will use +the Area plug.

+
+
+

area

+

The custom area to set the Data/Display Window to. +This plug is only used if ‘Area Source’ is set to +Area.

+
+
+

format

+

The Format to use as the area to set the Data/Display +Window to. This plug is only used if ‘Area Source’ is +set to Format.

+
+
+

formatCenter

+

Whether to center the output image (based on the +existing display window) inside the new display +window format. This plug is only used if +‘Area Source’ is set to Format, and ‘Affect Display +Window’ it checked.

+
+
+

affectDataWindow

+

Whether to intersect the defined area with the input Data +Window. It will never pad black onto the Data Window, it +will only ever reduce the existing Data Window.

+
+
+

affectDisplayWindow

+

Whether to assign a new Display Window based on the defined +area.

+
+
+

resetOrigin

+

Shifts the cropped image area back to the origin, so that +the bottom left of the display window is at ( 0, 0 ).

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeepHoldout.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeepHoldout.html new file mode 100644 index 000000000..35fd33b1a --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeepHoldout.html @@ -0,0 +1,603 @@ + + + + + + + DeepHoldout — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeepHoldout

+

Flattens the part of the input which is not hidden by the holdout input.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

holdout

+

Hides the parts of the main input which are behind this image, based on its Z, ZBack and A channels.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeepMerge.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeepMerge.html new file mode 100644 index 000000000..8481ed1a5 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeepMerge.html @@ -0,0 +1,600 @@ + + + + + + + DeepMerge — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeepMerge

+

Merges the samples from two or more images into a single deep image. +The source images may be deep or flat.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input images

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeepRecolor.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeepRecolor.html new file mode 100644 index 000000000..c0bb73c57 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeepRecolor.html @@ -0,0 +1,610 @@ + + + + + + + DeepRecolor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeepRecolor

+

Recolors deep data so that the flattened image will match the color of a provided flat image. +Keeps the same depth data, and mostly the same alpha ( with a small adjustment if you select +useColorSourceAlpha ).

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

colorSource

+

This image ( which must be flat ) drives the color of the output image.

+
+
+

useColorSourceAlpha

+

If selected, adjusts the alpha of each deep sample so that the composited result will match +the alpha of colorSource.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeepSampleCounts.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeepSampleCounts.html new file mode 100644 index 000000000..40d1a4314 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeepSampleCounts.html @@ -0,0 +1,599 @@ + + + + + + + DeepSampleCounts — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeepSampleCounts

+

Outputs an image showing the deep sample counts for each pixel.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeepSampler.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeepSampler.html new file mode 100644 index 000000000..e7964f21e --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeepSampler.html @@ -0,0 +1,600 @@ + + + + + + + DeepSampler — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeepSampler

+

Samples the full channel data of an image at a specified pixel location, +including all deep samples.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

image

+

The image to be sampled.

+
+
+

pixel

+

The integer coordinates of the pixel to sample.

+
+
+

pixelData

+

The sampled data, as a CompoundData with one FloatVectorData per channel.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeepSlice.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeepSlice.html new file mode 100644 index 000000000..ab71e9d66 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeepSlice.html @@ -0,0 +1,618 @@ + + + + + + + DeepSlice — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeepSlice

+

Takes a slice out of an image with depth defined by Z ( and optionally ZBack ) channels by +discarding everything outside of a clipping range. The range is half open, including point samples +exactly at the near clip, but excluding point samples exactly at the far clip. This means that if +you split an image into a front and back with two DeepSlices, they will composite back together to +match the original. Optionally also flattens the image.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

nearClip

+

Removes everything with Z less than the near clip depth.

+
+
+

farClip

+

Removes everything with Z greater than or equal to the far clip depth.

+
+
+

flatten

+

Outputs a flat image, instead of output a deep image with any samples within the range. +Flattening as part of DeepSlice is up to 2X faster than flattening afterwards, and is +convenient if you’re using a DeepSlice to preview the contents of a deep image by +scrubbing through depth.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeepState.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeepState.html new file mode 100644 index 000000000..e797da39d --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeepState.html @@ -0,0 +1,629 @@ + + + + + + + DeepState — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeepState

+

Modifies the samples of a deep image so that the composited result +stays the same, but there are additional desirable properties, +such as being sorted, non-overlapping, or being combined into a +single sample.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image data.

+
+
+

deepState

+

The desired state. +“Sorted” merely orders the samples. +“Tidy” performs sorting, splitting, and merging, to produce non-overlapping +samples, and optionally prunes useless samples. +“Flat” composites samples into a single sample per pixel.

+
+
+

pruneTransparent

+

When tidying, omits fully transparent samples. This is usually just an optimization, +but it could affect the composited result if you start with purely additive samples that have +zero alpha, but still add to the color.

+
+
+

pruneOccluded

+

When tidying, omits samples which are blocked by samples in front of them ( occluded samples +have no effect on the composited result.

+
+
+

occludedThreshold

+

How blocked does a sample have to be before it is omitted. By default, only 100% occluded samples +are omitted, but if you select 0.99, then samples with only 1% visibility would also be omitted. +The composited result is preserved by combining the values of any omitted samples with the last +sample generated. Using a threshold lower than 0.99 before doing a DeepMerge or DeepHoldout +could introduce large errors, however.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeepTidy.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeepTidy.html new file mode 100644 index 000000000..9cb974f61 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeepTidy.html @@ -0,0 +1,620 @@ + + + + + + + DeepTidy — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeepTidy

+

Ensures deep samples are sorted and non-overlapping, and optionally +discards samples that are completely transparent, or covered by other +samples.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

pruneTransparent

+

When tidying, omits fully transparent samples. This is usually just an optimization, +but it could affect the composited result if you start with purely additive samples that have +zero alpha, but still add to the color.

+
+
+

pruneOccluded

+

When tidying, omits samples which are blocked by samples in front of them ( occluded samples +have no effect on the composited result.

+
+
+

occludedThreshold

+

How blocked does a sample have to be before it is omitted. By default, only 100% occluded samples +are omitted, but if you select 0.99, then samples with only 1% visibility would also be omitted. +The composited result is preserved by combining the values of any omitted samples with the last +sample generated. Using a threshold lower than 0.99 before doing a DeepMerge or DeepHoldout +could introduce large errors, however.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeepToFlat.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeepToFlat.html new file mode 100644 index 000000000..8dc6cb2cb --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeepToFlat.html @@ -0,0 +1,607 @@ + + + + + + + DeepToFlat — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeepToFlat

+

Converts a deep image into a “flat” image, by compositing all samples in +each pixel, resulting in an image with 1 sample for every pixel.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image data.

+
+
+

depthMode

+

Controls the contents of the output depth channels. “Depth Range” outputs the +minimum and maximum depth values of any sample in the pixel as Z and ZBack. +“Filtered Depth” outputs just a Z channel with the average depth for the pixel, +based on the alpha values of the samples. “None” outputs no Z or ZBack channel.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeleteChannels.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeleteChannels.html new file mode 100644 index 000000000..d97b100b0 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeleteChannels.html @@ -0,0 +1,613 @@ + + + + + + + DeleteChannels — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteChannels

+

Deletes channels from an image.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

mode

+

Defines how the channels listed in the channels +plug are treated. Delete mode deletes the listed +channels. Keep mode keeps the listed channels, +deleting all others.

+
+
+

channels

+

The names of the channels to be deleted (or kept +if the mode is set to Keep). Names should be separated +by spaces and may contain any of Gaffer’s standard +wildcards.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeleteImageMetadata.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeleteImageMetadata.html new file mode 100644 index 000000000..7a7ec0702 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeleteImageMetadata.html @@ -0,0 +1,608 @@ + + + + + + + DeleteImageMetadata — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteImageMetadata

+

Deletes metadata entries from an image based on name.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

names

+

The names of metadata entries to be removed. This is a space separated +list of entry names, which accepts Gaffer’s standard string wildcards.

+
+
+

invertNames

+

When on, matching names are kept, and non-matching names are removed.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DeleteViews.html b/1.4.6.0/Reference/NodeReference/GafferImage/DeleteViews.html new file mode 100644 index 000000000..c2ff95e3c --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DeleteViews.html @@ -0,0 +1,616 @@ + + + + + + + DeleteViews — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteViews

+

Deletes views from an image.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

mode

+

Defines how the views listed in the views +plug are treated. Delete mode deletes the listed +views. Keep mode keeps the listed views, +deleting all others.

+
+
+

views

+

The names of the views to be deleted (or kept +if the mode is set to Keep). Names should be separated +by spaces and may contain any of Gaffer’s standard +wildcards.

+

Note that if you delete all views from an image, you will +be unable to evaluate attributes of the image, because it +will have no data left.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Dilate.html b/1.4.6.0/Reference/NodeReference/GafferImage/Dilate.html new file mode 100644 index 000000000..83fea27e9 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Dilate.html @@ -0,0 +1,622 @@ + + + + + + + Dilate — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Dilate

+

Applies a dilate filter to the image. This can be useful for +expanding mask.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

radius

+

The size of the filter in pixels. This can be varied independently +in the x and y directions.

+
+
+

boundingMode

+

The method used when the filter references pixels outside the +input data window.

+
+
+

expandDataWindow

+

Expands the data window to include the external pixels +which the filter radius covers.

+
+
+

masterChannel

+

If specified, this channel will be used to compute the pixel index to select for all +channels. You would probably want to use this with a channel that represents the overall +luminance of the image. It will produce a rank filter which is lower quality, but preserves +additivity between channels, and is a bit faster.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Display.html b/1.4.6.0/Reference/NodeReference/GafferImage/Display.html new file mode 100644 index 000000000..3613f5b37 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Display.html @@ -0,0 +1,601 @@ + + + + + + + Display — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Display

+

Interactively displays images as they are rendered.

+

This node runs a server on a background thread, +allowing it to receive images from both local and +remote render processes. To set up a render to +output to the Display node, use an Outputs node with +an Interactive output configured to render to the +same port as is specified on the Display node.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/DisplayTransform.html b/1.4.6.0/Reference/NodeReference/GafferImage/DisplayTransform.html new file mode 100644 index 000000000..638c5df25 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/DisplayTransform.html @@ -0,0 +1,633 @@ + + + + + + + DisplayTransform — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DisplayTransform

+

Applies an OpenColorIO display transform to an image.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

channels

+

The names of the channels to process. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+

processUnpremultiplied

+

Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images.

+
+
+

context

+
+

Warning

+

Deprecated - please use the OpenColorIOContext +node instead.

+
+
+
+

inputColorSpace

+

The colour space of the input image.

+
+
+

display

+

The name of the display to use. Defaults to the default display as +defined by the current OpenColorIO config.

+
+
+

view

+

The name of the view to use. Defaults to the default view for the +display, as defined by the current OpenColorIO config.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Empty.html b/1.4.6.0/Reference/NodeReference/GafferImage/Empty.html new file mode 100644 index 000000000..9e7ad064f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Empty.html @@ -0,0 +1,599 @@ + + + + + + + Empty — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Empty

+

Outputs an empty deep image with 0 samples per pixel.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

format

+

The resolution and aspect ratio of the image.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Erode.html b/1.4.6.0/Reference/NodeReference/GafferImage/Erode.html new file mode 100644 index 000000000..3b3d2d70b --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Erode.html @@ -0,0 +1,622 @@ + + + + + + + Erode — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Erode

+

Applies an erode filter to the image. This can be useful for +shrinking mask.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

radius

+

The size of the filter in pixels. This can be varied independently +in the x and y directions.

+
+
+

boundingMode

+

The method used when the filter references pixels outside the +input data window.

+
+
+

expandDataWindow

+

Expands the data window to include the external pixels +which the filter radius covers.

+
+
+

masterChannel

+

If specified, this channel will be used to compute the pixel index to select for all +channels. You would probably want to use this with a channel that represents the overall +luminance of the image. It will produce a rank filter which is lower quality, but preserves +additivity between channels, and is a bit faster.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/FlatImageProcessor.html b/1.4.6.0/Reference/NodeReference/GafferImage/FlatImageProcessor.html new file mode 100644 index 000000000..80f05185d --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/FlatImageProcessor.html @@ -0,0 +1,600 @@ + + + + + + + FlatImageProcessor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FlatImageProcessor

+

Base class for nodes which process only flat image data +and so will error on non-flat data.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/FlatImageSource.html b/1.4.6.0/Reference/NodeReference/GafferImage/FlatImageSource.html new file mode 100644 index 000000000..239fedf50 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/FlatImageSource.html @@ -0,0 +1,595 @@ + + + + + + + FlatImageSource — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FlatImageSource

+

Base class for nodes which create a flat image.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/FlatToDeep.html b/1.4.6.0/Reference/NodeReference/GafferImage/FlatToDeep.html new file mode 100644 index 000000000..f6288e1c0 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/FlatToDeep.html @@ -0,0 +1,627 @@ + + + + + + + FlatToDeep — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FlatToDeep

+

Sets the deep flag on a flat image, and makes sure that it has a Z channel ( and optionally a ZBack channel ) +so that it can be used in deep compositing.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

zMode

+

Deep images must have a Z channel - it can be set either as a fixed depth, or using a channel.

+
+
+

depth

+

A constant depth value to place the whole image at.

+
+
+

zChannel

+

Uses this channel as a Z channel, defining the depth each pixel is at.

+
+
+

zBackMode

+

Deep images may optionally have a ZBack channel - for transparent samples, this specifies +the depth range over which the opacity gradually increases from 0 to the alpha value.

+
+
+

thickness

+

A constant thickness value for the whole image. Transparent images will be +interpreted as fog where the density increases over this range.

+
+
+

zBackChannel

+

Uses this channel as a ZBack channel, defining the end of the depth range for each +pixel.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/FormatQuery.html b/1.4.6.0/Reference/NodeReference/GafferImage/FormatQuery.html new file mode 100644 index 000000000..65609d5c2 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/FormatQuery.html @@ -0,0 +1,608 @@ + + + + + + + FormatQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FormatQuery

+

Extracts the format of an input image, for driving the format input of another image node, or +driving expressions.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

image

+

The image to query.

+
+
+

view

+

The view to be queried.

+
+
+

format

+

The format of the image ( as a FormatPlug, compatible with inputs on Constant or Resize ).

+
+
+

center

+

The middle of the displayWindow. Stored as V2f, since it could be a half-pixel.

+
+
+

size

+

The size of the displayWindow as V2i.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Grade.html b/1.4.6.0/Reference/NodeReference/GafferImage/Grade.html new file mode 100644 index 000000000..2dcc8d06f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Grade.html @@ -0,0 +1,662 @@ + + + + + + + Grade — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Grade

+

Performs a simple per-channel colour grading operation +as follows :

+

A = multiply * (gain - lift) / (whitePoint - blackPoint) +B = offset + lift - A * blackPoint +result = pow( A * input + B, 1/gamma )

+

See the descriptions for individual plug for a slightly +more practical explanation of the formula.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

channels

+

The names of the channels to operate on. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+

processUnpremultiplied

+

Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images.

+
+
+

blackPoint

+

The input colour which is considered to be +“black”. This colour is remapped to the +lift value in the output image.

+
+
+

whitePoint

+

The input colour which is considered to be +“white”. This colour is remapped to the +gain value in the output image.

+
+
+

lift

+

The colour that input pixels at the blackPoint +become in the output image. This can be thought +of as lifting the darker values of the image.

+
+
+

gain

+

The colour that input pixels at the whitePoint +become in the output image. This can be thought +of as defining the lighter values of the image.

+
+
+

multiply

+

An additional multiplier on the output values.

+
+
+

offset

+

An additional offset added to the output values.

+
+
+

gamma

+

A gamma correction applied after all the remapping +defined above.

+
+
+

blackClamp

+

Clamps input values so they don’t go below 0.

+
+
+

whiteClamp

+

Clamps output values so they don’t go above 1.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/ImageMetadata.html b/1.4.6.0/Reference/NodeReference/GafferImage/ImageMetadata.html new file mode 100644 index 000000000..06cdb258f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/ImageMetadata.html @@ -0,0 +1,617 @@ + + + + + + + ImageMetadata — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ImageMetadata

+

Adds arbitrary metadata entires to an image. If those entries +already exist in the incoming image metadata, their values +will be overwritten.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

metadata

+

The metadata to be applied - arbitrary numbers of user defined metadata may be added +as children of this plug via the user interface, or using the CompoundDataPlug python API

+
+
+

extraMetadata

+

Additional metadata to be added, specified within a single +IECore.CompoundObject. This is convenient when using an expression +to define the metadata and when the number of items might be +dynamic. It can also be used to create options whose type cannot be +handled by the metadata CompoundDataPlug.

+

If the same option is defined by both the metadata and the +extraMetadata plugs, then the value from the extraMetadata is +taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/ImageNode.html b/1.4.6.0/Reference/NodeReference/GafferImage/ImageNode.html new file mode 100644 index 000000000..b8eea3800 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/ImageNode.html @@ -0,0 +1,595 @@ + + + + + + + ImageNode — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ImageNode

+

Base class for nodes which generate images.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/ImageProcessor.html b/1.4.6.0/Reference/NodeReference/GafferImage/ImageProcessor.html new file mode 100644 index 000000000..f94f26942 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/ImageProcessor.html @@ -0,0 +1,600 @@ + + + + + + + ImageProcessor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ImageProcessor

+

Base class for nodes which process an input image to +to generate an output image.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/ImageReader.html b/1.4.6.0/Reference/NodeReference/GafferImage/ImageReader.html new file mode 100644 index 000000000..fa9fbbe6a --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/ImageReader.html @@ -0,0 +1,689 @@ + + + + + + + ImageReader — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ImageReader

+

Reads image files from disk using OpenImageIO. All file +types supported by OpenImageIO are supported by the ImageReader +and all channel data will be converted to linear using OpenColorIO.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

fileName

+

The name of the file to be read. File sequences with +arbitrary padding may be specified using the ‘#’ character +as a placeholder for the frame numbers. If this file sequence +format is used, then missingFrameMode will be activated.

+

Supported file extensions : exr, sxr, mxr, tif, tiff, tx, env, sm, vsm, jpg, jpe, jpeg, jif, jfif, jfi, bmp, dib, cin, dds, dpx, fits, hdr, rgbe, ico, iff, z, jp2, j2k, j2c, null, nul, png, ppm, pgm, pbm, pnm, pfm, psd, pdd, psb, bay, bmq, cr2, crw, cs1, dc2, dcr, dng, erf, fff, k25, kdc, mdc, mos, mrw, nef, orf, pef, pxn, raf, raw, rdc, sr2, srf, x3f, arw, 3fr, cine, ia, kc2, mef, nrw, qtk, rw2, sti, rwl, srw, drf, dsc, ptx, cap, iiq, rwz, cr3, rla, sgi, rgb, rgba, bw, int, inta, pic, tga, tpic, term, webp, zfile, osl, oso, oslgroup, oslbody

+
+
+

refreshCount

+

May be incremented to force a reload if the file has +changed on disk - otherwise old contents may still +be loaded via Gaffer’s cache.

+
+
+

missingFrameMode

+

Determines how missing frames are handled when the input +fileName is a file sequence (uses the ‘#’ character). +The default behaviour is to throw an exception, but it +can also hold the last valid frame in the sequence, or +return a black image which matches the data window and +display window of the previous valid frame in the sequence.

+
+
+

start

+

Masks frames which preceed the specified start frame. +The default is to treat them based on the MissingFrameMode, +but they can also be clamped to the start frame, or +return a black image which matches the data window +and display window of the start frame.

+
+
+

start.mode

+

The mode used detemine the mask behaviour for the start frame.

+
+
+

start.frame

+

The start frame of the masked range.

+
+
+

end

+

Masks frames which follow the specified end frame. +The default is to treat them based on the MissingFrameMode, +but they can also be clamped to the end frame, or +return a black image which matches the data window +and display window of the end frame.

+
+
+

end.mode

+

The mode used detemine the mask behaviour for the end frame.

+
+
+

end.frame

+

The end frame of the masked range.

+
+
+

colorSpace

+

The colour space of the input image, used to convert the input to +the working space. When set to Automatic, the colour space is +determined automatically using the function registered with +ImageReader::setDefaultColorSpaceFunction().

+
+
+

channelInterpretation

+

Controls how we create channels based on the contents of the file. Unfortunately, +some software, such as Nuke, does not produce EXR files which follow the EXR specification, +so the mode “Default” uses heuristics to guess what the channels mean.

+

“Default” mode should support most files coming from either Nuke or standards compliant software. +It can’t handle every possibility in the spec though - in corner cases, it could get confused and +think something comes from Nuke, and incorrectly prepend the part name to the channel name.

+

If you know your EXR is compliant, you can “EXR Specification” mode which disables the heuristics, +and just uses the channel names directly from the file.

+

“Legacy” mode matches Gaffer <= 0.61 behaviour for compatibility reasons - it should not be used.

+
+
+

availableFrames

+

A list of the available frames for the current file sequence. +Empty when the input fileName is not a file sequence.

+
+
+

fileValid

+

Whether or not the files exists and can be read into memory, +value calculated per frame if an image sequence. Behaviour changes +if a frame mask of ClampToFrame or Black is selected, if outside +the frame mask fileValid will be set to True if the nearest frame is valid.

+
+

Note

+

When the file is not valid, the image will also contain a fileValid +metadata value of False. This can be easier to access from downstream +nodes than the fileValid plug itself.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/ImageSampler.html b/1.4.6.0/Reference/NodeReference/GafferImage/ImageSampler.html new file mode 100644 index 000000000..6e8bbd735 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/ImageSampler.html @@ -0,0 +1,617 @@ + + + + + + + ImageSampler — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ImageSampler

+

Samples image colour at a specified pixel location.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

image

+

The image to be sampled.

+
+
+

view

+

The view to be sampled.

+
+
+

channels

+

The names of the four channels to be sampled.

+
+
+

pixel

+

The coordinates of the pixel to sample. These can have +fractional values and bilinear interpolation will be used +to interpolate between adjacent pixels.

+

Note though that the coordinates at pixel centres are not integers. +For example, the centre of the bottom left pixel of an image is +at 0.5, 0.5.

+
+
+

interpolate

+

Turn on to blend with adjacent pixels when sampling away from the center of the pixel at 0.5, 0.5. +If off, you always sample exactly one pixel.

+
+
+

color

+

The sampled colour.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/ImageStats.html b/1.4.6.0/Reference/NodeReference/GafferImage/ImageStats.html new file mode 100644 index 000000000..770675dd2 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/ImageStats.html @@ -0,0 +1,626 @@ + + + + + + + ImageStats — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ImageStats

+

Calculates minimum, maximum and average colours for a region of +an image. These outputs can then be used to drive other plugs +within the node graph.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

in

+

The input image to be analysed.

+
+
+

view

+

The view to be analysed.

+
+
+

channels

+

The names of the four channels to be analysed.

+
+
+

areaSource

+

Where to source the area to be analysed. If this is +set to DataWindow, it will use the input’s Data Window, +if it is set to DisplayWindow, it will use the input’s +Display Window, and if it is set to Area, it will use +the Area plug.

+
+
+

area

+

The area of the image to be analysed. +This plug is only used if ‘Area Source’ is set to Area.

+
+
+

average

+

The per-channel mean values computed from the input image region.

+
+
+

min

+

The per-channel minimum values computed from the input image region.

+
+
+

max

+

The per-channel maximum values computed from the input image region.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/ImageTransform.html b/1.4.6.0/Reference/NodeReference/GafferImage/ImageTransform.html new file mode 100644 index 000000000..11d634037 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/ImageTransform.html @@ -0,0 +1,630 @@ + + + + + + + ImageTransform — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ImageTransform

+

Scales, rotates and translates an image within its display window. +Note that although the format is not changed, the data window is +expanded to include the portions of the image which have been +transformed outside of the display window, and these out-of-frame +pixels can still be used by downstream nodes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

transform

+

The transformation to be applied to the image. The translate +and pivot values are specified in pixels, and the rotate +value is specified in degrees.

+
+
+

filter

+

The pixel filter used when transforming the image. Each +filter provides different tradeoffs between sharpness and +the danger of aliasing or ringing.

+
+
+

invert

+

Apply the inverse transformation to the image.

+
+
+

concatenate

+

Combines the processing for a series of ImageTransforms so that +transformation and filtering is only applied once. This gives better +image quality and performance.

+
+

Note

+

When concatenation is in effect, the filter settings on upstream +ImageTransforms are ignored.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/ImageWriter.html b/1.4.6.0/Reference/NodeReference/GafferImage/ImageWriter.html new file mode 100644 index 000000000..0e752e848 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/ImageWriter.html @@ -0,0 +1,893 @@ + + + + + + + ImageWriter — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ImageWriter

+

Writes image files to disk using OpenImageIO. All file +types supported by OpenImageIO are supported by the +ImageWriter.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

in

+

The image to be written to disk.

+
+
+

fileName

+

The name of the file to be written. File sequences with +arbitrary padding may be specified using the ‘#’ character +as a placeholder for the frame numbers.

+

Supported file extensions : exr, sxr, mxr, tif, tiff, tx, env, sm, vsm, jpg, jpe, jpeg, jif, jfif, jfi, bmp, dib, cin, dds, dpx, fits, hdr, rgbe, ico, iff, z, jp2, j2k, j2c, null, nul, png, ppm, pgm, pbm, pnm, pfm, psd, pdd, psb, bay, bmq, cr2, crw, cs1, dc2, dcr, dng, erf, fff, k25, kdc, mdc, mos, mrw, nef, orf, pef, pxn, raf, raw, rdc, sr2, srf, x3f, arw, 3fr, cine, ia, kc2, mef, nrw, qtk, rw2, sti, rwl, srw, drf, dsc, ptx, cap, iiq, rwz, cr3, rla, sgi, rgb, rgba, bw, int, inta, pic, tga, tpic, term, webp, zfile, osl, oso, oslgroup, oslbody

+
+
+

channels

+

The names of the channels to be written to the file. +Names should be separated by spaces and may contain any +of Gaffer’s standard wildcards.

+
+
+

colorSpace

+

The colour space of the output image, used to convert the input +image from the working space. The default behaviour is to automatically +determine the colorspace by calling the function registered with +ImageWriter::setDefaultColorSpaceFunction().

+
+
+

out

+

A pass-through of the input image.

+
+
+

layout

+

Controls where channels are placed in the file, including how they are named. +“Single part” writes all channels to the same part ( all interleaved ). +“Part per layer” writes a separate part for each layer, so they may be loaded +independently for better performance, and is the default. “Part per view” is +a compromise, where layers are not separated, but views are separated, so that +stereo files can use independent data windows.

+

There is also the option to use a layout that matches Nuke’s default +behaviour, but does not conform to the EXR specification. The Nuke presets +match “Part per Layer”, “Part per View”, and “Single Part” respectively, but with +the following deviations from the specification :

+
    +
  • The layer name is omitted from the channel name

  • +
  • Custom channels from the main layer are placed in a part named other

  • +
  • The channel Z from the main layer is placed in a part named depth

  • +
  • The RGBA channels from secondary layers are renamed to red, green, blue, and alpha

  • +
  • When writing single part stereo, the view name comes before the layer name

  • +
+

You may also pick “custom”, and set up your own layout. This allows for things +like a mixed layout that is partially EXR spec compliant, and partially Nuke. Or +you could use a expression to group some layers together in the same part.

+
+
+

layout.partName

+

Specifies the name to be stored in EXR’s part name metadata.

+

If different channels are given different part names, then a multipart +file is produced.

+

Special context variables available for setting layout plugs:

+
    +
  • ${imageWriter:viewName} : The current view

  • +
  • ${imageWriter:channelName} : The current channel name

  • +
  • ${imageWriter:layerName} : The prefix of the channel name

  • +
  • ${imageWriter:baseName} : The suffix of the channel name

  • +
  • ${imageWriter:standardPartName} : Like the layerName, but set to “rgba” instead of empty for the main layer

  • +
  • ${imageWriter:nukeViewName} : Like viewName, but set to “main” when there is no current view

  • +
  • ${imageWriter:nukeLayerName} : Like layerName, but set to “depth” for “Z”, and “other” for custom channels of the main layer

  • +
  • ${imageWriter:nukeBaseName} : Like baseName, but set to “red”, “green”, “blue”, “alpha” instead of RGBA for layers other than the main layer.

  • +
  • ${imageWriter:nukePartName} : Like standardPartName, but set to “depth” for “Z”, and “other” for custom channels of the main layer

  • +
  • ${imageWriter:singlePartViewName} : The current view, or “” if this is the first view. This should be used to compose channel names for single-part multi-view EXR files.

  • +
+
+
+

layout.channelName

+

Specifies the channel name to be given to EXR. To match the standard, this should just +be exactly the Gaffer channel name. But some other software like Nuke omits the layer prefix, +and assumes that the part name will be prefixed to the channel.

+

Special context variables available for setting layout plugs:

+
    +
  • ${imageWriter:viewName} : The current view

  • +
  • ${imageWriter:channelName} : The current channel name

  • +
  • ${imageWriter:layerName} : The prefix of the channel name

  • +
  • ${imageWriter:baseName} : The suffix of the channel name

  • +
  • ${imageWriter:standardPartName} : Like the layerName, but set to “rgba” instead of empty for the main layer

  • +
  • ${imageWriter:nukeViewName} : Like viewName, but set to “main” when there is no current view

  • +
  • ${imageWriter:nukeLayerName} : Like layerName, but set to “depth” for “Z”, and “other” for custom channels of the main layer

  • +
  • ${imageWriter:nukeBaseName} : Like baseName, but set to “red”, “green”, “blue”, “alpha” instead of RGBA for layers other than the main layer.

  • +
  • ${imageWriter:nukePartName} : Like standardPartName, but set to “depth” for “Z”, and “other” for custom channels of the main layer

  • +
  • ${imageWriter:singlePartViewName} : The current view, or “” if this is the first view. This should be used to compose channel names for single-part multi-view EXR files.

  • +
+
+
+

matchDataWindows

+

For multi-view images, sets the data windows to be the same for all views, by expanding them +all to include the union of all views. Wastes disk space and processing time, but is +required by Nuke for multi-view images.

+
+
+

openexr

+

Format options specific to OpenEXR files.

+
+
+

openexr.mode

+

The write mode for the OpenEXR file - scanline or tiled data.

+
+
+

openexr.compression

+

The compression method to use when writing the OpenEXR file.

+
+
+

openexr.dwaCompressionLevel

+

The compression level used when writing files with DWAA or DWAB compression. +Higher values decrease file size at the expense of image quality.

+
+
+

openexr.dataType

+

The data type to be written to the OpenEXR file. If you want to use different +data types for different channels, you can drive this with an expression or spreadsheet, +which may use the same context variables as the layout plugs ( the useful ones are +${imageWriter:channelName}, ${imageWriter:layerName} and ${imageWriter:baseName}, +for the whole channel name, and for the prefix and suffix respectively ).

+
+
+

openexr.depthDataType

+

Overriding the data type for depth channels is useful because many of the things depth is used +for require greater precision. This is a simple override which sets Z and ZBack to float precision. +If you want to do something more complex, set this to Use Default, and connect an expression or +spreadsheet to the Data Type plug.

+
+
+

dpx

+

Format options specific to DPX files.

+
+
+

dpx.dataType

+

The data type to be written to the DPX file.

+
+
+

tiff

+

Format options specific to TIFF files.

+
+
+

tiff.mode

+

The write mode for the TIFF file - scanline or tiled data.

+
+
+

tiff.compression

+

The compression method to use when writing the TIFF file.

+
+
+

tiff.dataType

+

The data type to be written to the TIFF file.

+
+
+

field3d

+

Format options specific to Field3D files.

+
+
+

field3d.mode

+

The write mode for the Field3D file - scanline or tiled data.

+
+
+

field3d.dataType

+

The data type to be written to the Field3D file.

+
+
+

fits

+

Format options specific to FITS files.

+
+
+

fits.dataType

+

The data type to be written to the FITS file.

+
+
+

iff

+

Format options specific to IFF files.

+
+
+

iff.mode

+

The write mode for the IFF file - scanline or tiled data.

+
+
+

jpeg

+

Format options specific to Jpeg files.

+
+
+

jpeg.compressionQuality

+

The compression quality for the Jpeg file to be written. +A value between 0 (low quality, high compression) and +100 (high quality, low compression).

+
+
+

jpeg.chromaSubSampling

+

The chroma sub sampling used to write the jpeg file. +Note that the file will be stored as YCbCr instead of RGB.

+
+
+

jpeg2000

+

Format options specific to Jpeg2000 files.

+
+
+

jpeg2000.dataType

+

The data type to be written to the Jpeg2000 file.

+
+
+

png

+

Format options specific to PNG files.

+
+
+

png.compression

+

The compression method to use when writing the PNG file.

+
+
+

png.compressionLevel

+

The compression level of the PNG file. This is a value between +0 (no compression) and 9 (most compression).

+
+
+

rla

+

Format options specific to RLA files.

+
+
+

rla.dataType

+

The data type to be written to the RLA file.

+
+
+

sgi

+

Format options specific to SGI files.

+
+
+

sgi.dataType

+

The data type to be written to the SGI file.

+
+
+

targa

+

Format options specific to Targa files.

+
+
+

targa.compression

+

The compression method to use when writing the Targa file.

+
+
+

webp

+

Format options specific to WebP files.

+
+
+

webp.compressionQuality

+

The compression quality for the WebP file to be written. +A value between 0 (low quality, high compression) and +100 (high quality, low compression).

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/LUT.html b/1.4.6.0/Reference/NodeReference/GafferImage/LUT.html new file mode 100644 index 000000000..07723a8ac --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/LUT.html @@ -0,0 +1,626 @@ + + + + + + + LUT — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LUT

+

Applies color transformations provided by +OpenColorIO via a LUT file and OCIO FileTransform.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

channels

+

The names of the channels to process. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+

processUnpremultiplied

+

Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images.

+
+
+

fileName

+

The name of the LUT file to be read. Only OpenColorIO +supported files will function as expected.

+

Supported file extensions : 3dl, 3dl, cc, ccc, cdl, clf, ctf, csp, lut, lut, icc, icm, pf, cube, itx, look, mga, m3d, cube, spi1d, spi3d, spimtx, cub, vf

+
+
+

interpolation

+

The interpolation mode for the color transformation.

+
+
+

direction

+

The direction to perform the color transformation.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/LookTransform.html b/1.4.6.0/Reference/NodeReference/GafferImage/LookTransform.html new file mode 100644 index 000000000..6260cdd48 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/LookTransform.html @@ -0,0 +1,640 @@ + + + + + + + LookTransform — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LookTransform

+

Applies OpenColorIO “looks” to an image.

+

A ‘look’ is a named color transform, intended to modify the look of an +image in a ‘creative’ manner (as opposed to a colorspace definition which +tends to be technically/mathematically defined).

+

Examples of looks may be a neutral grade, to be applied to film scans +prior to VFX work, or a per-shot DI grade decided on by the director, +to be applied just before the viewing transform.

+

OCIOLooks must be predefined in the OpenColorIO configuration before usage, +often reference per-shot/sequence LUTs/CCs and are applied in scene linear colorspace.

+

See the look plug for further syntax details.

+

See opencolorio.org for look configuration customization examples.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

channels

+

The names of the channels to process. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+

processUnpremultiplied

+

Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images.

+
+
+

context

+
+

Warning

+

Deprecated - please use the OpenColorIOContext +node instead.

+
+
+
+

look

+

Look Syntax:

+

Multiple looks are combined with commas: ‘neutral, primary’

+

Direction is specified with +/- prefixes: ‘+neutral, -primary’

+

Missing look ‘fallbacks’ specified with |: ‘neutral, -primary | -primary’

+
+
+

direction

+

Specify the look transform direction

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Median.html b/1.4.6.0/Reference/NodeReference/GafferImage/Median.html new file mode 100644 index 000000000..c178c1612 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Median.html @@ -0,0 +1,622 @@ + + + + + + + Median — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Median

+

Applies a median filter to the image. This can be useful for +removing noise.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

radius

+

The size of the filter in pixels. This can be varied independently +in the x and y directions.

+
+
+

boundingMode

+

The method used when the filter references pixels outside the +input data window.

+
+
+

expandDataWindow

+

Expands the data window to include the external pixels +which the filter radius covers.

+
+
+

masterChannel

+

If specified, this channel will be used to compute the pixel index to select for all +channels. You would probably want to use this with a channel that represents the overall +luminance of the image. It will produce a rank filter which is lower quality, but preserves +additivity between channels, and is a bit faster.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Merge.html b/1.4.6.0/Reference/NodeReference/GafferImage/Merge.html new file mode 100644 index 000000000..9ee5e6f08 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Merge.html @@ -0,0 +1,622 @@ + + + + + + + Merge — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Merge

+

Composites two or more images together. The following operations +are available :

+
    +
  • Add : A + B

  • +
  • Atop : Ab + B(1-a)

  • +
  • Divide : A / B

  • +
  • In : Ab

  • +
  • Out : A(1-b)

  • +
  • Mask : Ba

  • +
  • Matte : Aa + B(1.-a)

  • +
  • Multiply : AB

  • +
  • Over : A + B(1-a)

  • +
  • Subtract : A - B

  • +
  • Difference : fabs( A - B )

  • +
  • Under : A(1-b) + B

  • +
  • Min : min( A, B )

  • +
  • Max : max( A, B )

  • +
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input images

+
+
+

operation

+

The compositing operation used to merge the +image together. See node documentation for +more details.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Mirror.html b/1.4.6.0/Reference/NodeReference/GafferImage/Mirror.html new file mode 100644 index 000000000..b71ef1c66 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Mirror.html @@ -0,0 +1,609 @@ + + + + + + + Mirror — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Mirror

+

Mirrors the image, flipping it in the horizontal and/or +vertical directions. Unlike the ImageTransform node, this +performs no filtering, so pixel values are not changed.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

horizontal

+

Mirrors horizontally, flopping the image left to right.

+
+
+

vertical

+

Mirrors vertically, flipping the image top to bottom.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Mix.html b/1.4.6.0/Reference/NodeReference/GafferImage/Mix.html new file mode 100644 index 000000000..db391e9e2 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Mix.html @@ -0,0 +1,615 @@ + + + + + + + Mix — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Mix

+

Blends two images together based on a mask. +If the mask is 0 you get the first input, if it is 1 you get the second.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input images

+
+
+

mask

+

The image which contains the mask channel.

+
+
+

mix

+

Control the blend between the two input images. +0 to take first input, 1 to take second input. +Multiplied together with the mask.

+
+
+

maskChannel

+

The channel which controls the blend. Clamped between 0 and 1. +0 to take first input, 1 to take second input.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Offset.html b/1.4.6.0/Reference/NodeReference/GafferImage/Offset.html new file mode 100644 index 000000000..4e6e3a9a7 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Offset.html @@ -0,0 +1,606 @@ + + + + + + + Offset — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Offset

+

Offsets (translates) the image in integer increments. Because +the increments may only be whole numbers, no filtering is necessary, +and this node has improved performance compared to the equivalent +ImageTransform.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

offset

+

The amount to offset the image by.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/OpenColorIOContext.html b/1.4.6.0/Reference/NodeReference/GafferImage/OpenColorIOContext.html new file mode 100644 index 000000000..471662fca --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/OpenColorIOContext.html @@ -0,0 +1,617 @@ + + + + + + + OpenColorIOContext — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OpenColorIOContext

+

Creates Gaffer context variables which define the OpenColorIO config +to be used by upstream nodes. This allows different configs to be used +in different contexts.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

config

+

The OpenColorIO config to use.

+
+
+

workingSpace

+

Specifies the color space in which Gaffer processes images.

+
+
+

variables

+

Context variables used to customise the +OpenColorIO context +used by upstream nodes. OpenColorIO refers to these variously as “string vars”, “context vars” or +“environment vars”.

+
+
+

extraVariables

+

An additional set of variables to be created. These are defined as +key/value pairs in an IECore::CompoundData object, which +allows a single expression to define a dynamic number of variables.

+

If the same variable is defined by both the variables and the +extraVariables plugs, then the value from the variables plug +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/OpenImageIOReader.html b/1.4.6.0/Reference/NodeReference/GafferImage/OpenImageIOReader.html new file mode 100644 index 000000000..e97c348ae --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/OpenImageIOReader.html @@ -0,0 +1,636 @@ + + + + + + + OpenImageIOReader — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OpenImageIOReader

+

Utility node which reads image files from disk using OpenImageIO. +All file types supported by OpenImageIO are supported by the +OpenImageIOReader.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

fileName

+

The name of the file to be read. File sequences with +arbitrary padding may be specified using the ‘#’ character +as a placeholder for the frame numbers. If this file sequence +format is used, then missingFrameMode will be activated.

+

Supported file extensions : exr, sxr, mxr, tif, tiff, tx, env, sm, vsm, jpg, jpe, jpeg, jif, jfif, jfi, bmp, dib, cin, dds, dpx, fits, hdr, rgbe, ico, iff, z, jp2, j2k, j2c, null, nul, png, ppm, pgm, pbm, pnm, pfm, psd, pdd, psb, bay, bmq, cr2, crw, cs1, dc2, dcr, dng, erf, fff, k25, kdc, mdc, mos, mrw, nef, orf, pef, pxn, raf, raw, rdc, sr2, srf, x3f, arw, 3fr, cine, ia, kc2, mef, nrw, qtk, rw2, sti, rwl, srw, drf, dsc, ptx, cap, iiq, rwz, cr3, rla, sgi, rgb, rgba, bw, int, inta, pic, tga, tpic, term, webp, zfile, osl, oso, oslgroup, oslbody

+
+
+

refreshCount

+

May be incremented to force a reload if the file has +changed on disk - otherwise old contents may still +be loaded via Gaffer’s cache.

+
+
+

missingFrameMode

+

Determines how missing frames are handled when the input +fileName is a file sequence (uses the ‘#’ character). +The default behaviour is to throw an exception, but it +can also hold the last valid frame in the sequence, or +return a black image which matches the data window and +display window of the previous valid frame in the sequence.

+
+
+

availableFrames

+

An output of the available frames for the given file sequence. +Returns an empty vector when the input fileName is not a file +sequence, even if it has a file-sequence-like structure.

+
+
+

fileValid

+

Whether or not the files exists and can be read into memory, +value calculated per frame if an image sequence. MissingFrameMode +does not change the behaviour of this plug.

+
+
+

channelInterpretation

+

Documented in ImageReader, where it is exposed to users.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Premultiply.html b/1.4.6.0/Reference/NodeReference/GafferImage/Premultiply.html new file mode 100644 index 000000000..5d6d2b3ba --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Premultiply.html @@ -0,0 +1,623 @@ + + + + + + + Premultiply — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Premultiply

+

Multiplies selected channels by a specified alpha channel.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

channels

+

The names of the channels to operate on. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+

alphaChannel

+

The channel to use as the alpha channel. +The selected channel does not have to be ‘A’, but whichever +channel is chosen will act as the alpha for the sake of this +node. +This channel will never be multiplied by itself - it will +remain the same as the input.

+
+
+

useDeepVisibility

+

When processing a deep image, you may use this to multiply by +the visibility of the current sample, taking into account the +alpha of all previous samples. This is a pretty special case, +it’s mostly useful for converting deep images to incandescence, +by multiplying RGB by visibility, and then wiping out the ‘A’ +channel.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Ramp.html b/1.4.6.0/Reference/NodeReference/GafferImage/Ramp.html new file mode 100644 index 000000000..8999de732 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Ramp.html @@ -0,0 +1,622 @@ + + + + + + + Ramp — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Ramp

+

Outputs an image of a color gradient interpolated using the ramp plug.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

format

+

The resolution and aspect ratio of the image.

+
+
+

startPosition

+

2d position for the start of the ramp color interpolation.

+
+
+

endPosition

+

2d position for the end of the ramp color interpolation.

+
+
+

ramp

+

The gradient of colour used to draw the ramp.

+
+
+

layer

+

The layer to generate. The output channels will +be named ( layer.R, layer.G, layer.B and layer.A ).

+
+
+

transform

+

A transformation applied to the entire ramp. +The translate and pivot values are specified in pixels, +and the rotate value is specified in degrees.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Rectangle.html b/1.4.6.0/Reference/NodeReference/GafferImage/Rectangle.html new file mode 100644 index 000000000..2d2fb3a81 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Rectangle.html @@ -0,0 +1,640 @@ + + + + + + + Rectangle — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Rectangle

+

Renders a rectangle with adjustable line width, corner radius, +drop shadow and transform.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

color

+

The colour of the rectangle.

+
+
+

shadow

+

Enables the rendering of a drop shadow which can be coloured, offset and +blurred.

+
+
+

shadowColor

+

The colour of the shadow.

+
+
+

shadowOffset

+

The offset of the shadow, measured in pixels.

+
+
+

shadowBlur

+

A blur applied to the shadow, measured in pixels.

+
+
+

area

+

The area of the rectangle before the transform is applied.

+
+
+

lineWidth

+

The width of the outline, measured in pixels.

+
+
+

cornerRadius

+

Used to give the rectangle rounded corners. A radius of +0 gives square corners.

+
+
+

transform

+

A transformation applied to the rectangle. The translate and +pivot values are specified in pixels, and the rotate value is +specified in degrees.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Resample.html b/1.4.6.0/Reference/NodeReference/GafferImage/Resample.html new file mode 100644 index 000000000..9ef5a7dd4 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Resample.html @@ -0,0 +1,659 @@ + + + + + + + Resample — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Resample

+

Utility node used internally within GafferImage, but +not intended to be used directly by end users.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

matrix

+

The transform to be applied to the input image. +This must contain only translation and scaling.

+
+
+

filter

+

The filter used to perform the resampling. The name +of any OIIO filter may be specified. The default automatically +picks an appropriate high-quality filter based on whether +or not the image is being enlarged or reduced.

+
+
+

filterScale

+

A multiplier for the scale of the filter used. Scaling up gives a softer +result, scaling down gives a sharper result ( likely to alias or even create black +patches where no pixels can be found ). Less than 1 is not recommended unless +you have a special technical reason.

+
+
+

boundingMode

+

The method used when a filter references pixels outside the +input data window.

+
+
+

expandDataWindow

+

Expands the data window by the filter radius, to include the +external pixels affected by the filter.

+
+
+

debug

+

Enables debug output. The HorizontalPass setting outputs +an intermediate image filtered just in the horizontal +direction - this is an internal optimisation used when +filtering with a separable filter. The SinglePass setting +forces all filtering to be done in a single pass (as if +the filter was non-separable) and can be used for validating +the results of the the two-pass (default) approach.

+
+
+

filterDeep

+

When on, deep images are resized accurately using the same filter +as flat images. When off, deep images are resized using the Nearest +filter.

+

Filters with negative lobes ( such as Lanczos3 which is the Default +for downscaling ) cannot be represented at all depths with perfect +accuracy, because deep alpha must be between 0 and 1, and must be +non-decreasing. In extreme cases, involving bright segments +with very low alpha, it may be preferable to choose a softer filter +without negative lobes ( like Blackman-Harris ).

+
+

Caution

+

+

When deep images are resized using a filter, many additional deep samples are +created per pixel. These slow down subsequent image processing and can create +prohibitively large files. These overheads should be mitigated by using a +DeepToFlat or DeepHoldout node soon after the Resize.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Resize.html b/1.4.6.0/Reference/NodeReference/GafferImage/Resize.html new file mode 100644 index 000000000..a40626c2d --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Resize.html @@ -0,0 +1,662 @@ + + + + + + + Resize — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Resize

+

Resizes the image to a new resolution, scaling the +contents to fit the new size.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

format

+

The new format (resolution and pixel aspect ratio) +of the output image.

+
+
+

fitMode

+

Determines how the image is scaled to fit the new +resolution. If the aspect ratios of the input and +the output images are the same, then this has no +effect, otherwise it dictates what method is used +to preserve the aspect ratio of the data.

+

Horizontal +: The image is scaled so that it fills the full +width of the output resolution and aspect ratio +is preserved.

+

Vertical +: The image is scaled so that it fills the full +height of the output resolution and aspect ratio +is preserved.

+

Fit +: Automatically picks Horizontal or Vertical such +that all of the input image is contained within +the output image. Padding is applied top and +bottom or left and right as necessary.

+

Fill +: Automatically picks Horizontal or Vertical such +that the full output resolution is covered. The +image contents will extend outside the top and +bottom or left and right of the display window +as necessary.

+

Distort +: Distorts the image so that the input display +window is fitted exactly to the output display +window.

+
+
+

filter

+

The filter used when transforming the image. Each +filter provides different tradeoffs between sharpness and +the danger of aliasing or ringing.

+
+
+

filterDeep

+

When on, deep images are resized accurately using the same filter +as flat images. When off, deep images are resized using the Nearest +filter.

+

Filters with negative lobes ( such as Lanczos3 which is the Default +for downscaling ) cannot be represented at all depths with perfect +accuracy, because deep alpha must be between 0 and 1, and must be +non-decreasing. In extreme cases, involving bright segments +with very low alpha, it may be preferable to choose a softer filter +without negative lobes ( like Blackman-Harris ).

+
+

Caution

+

+

When deep images are resized using a filter, many additional deep samples are +created per pixel. These slow down subsequent image processing and can create +prohibitively large files. These overheads should be mitigated by using a +DeepToFlat or DeepHoldout node soon after the Resize.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Saturation.html b/1.4.6.0/Reference/NodeReference/GafferImage/Saturation.html new file mode 100644 index 000000000..875697d6f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Saturation.html @@ -0,0 +1,617 @@ + + + + + + + Saturation — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Saturation

+

Increases or decreases the saturation of an image. Saturation is calculated relative +to a standard luminance measure using the RGB coefficients 0.2126, 0.7152, 0.0722.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

channels

+

The names of the channels to process. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+

processUnpremultiplied

+

Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images.

+
+
+

saturation

+

Values less than 1 bring colors closer to monochrome, values greater than 1 +push colors away from monochrome.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/SelectView.html b/1.4.6.0/Reference/NodeReference/GafferImage/SelectView.html new file mode 100644 index 000000000..99589156f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/SelectView.html @@ -0,0 +1,603 @@ + + + + + + + SelectView — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SelectView

+

Picks one view from a multi-view image. Outputs it as an image with a single, default view.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

view

+

Name of view to select

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Shuffle.html b/1.4.6.0/Reference/NodeReference/GafferImage/Shuffle.html new file mode 100644 index 000000000..d7b1039ca --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Shuffle.html @@ -0,0 +1,619 @@ + + + + + + + Shuffle — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Shuffle

+

Shuffles data between image channels, for instance by copying R +into G or a constant white into A.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

missingSourceMode

+

Determines behaviour when the source channel doesn’t exist :

+
    +
  • Ignore : No change is made to the destination channel.

  • +
  • Error : The node errors.

  • +
  • Black : Black is shuffled into the destination channel.

  • +
+
+

Note

+

Does not apply when source contains wildcards.

+
+
+
+

shuffles

+

The definition of the shuffling to be performed - an +arbitrary number of channel edits can be made by adding +ShufflePlugs as children of this plug.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Text.html b/1.4.6.0/Reference/NodeReference/GafferImage/Text.html new file mode 100644 index 000000000..66eb77979 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Text.html @@ -0,0 +1,663 @@ + + + + + + + Text — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Text

+

Renders text over an input image.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

color

+

The colour of the text.

+
+
+

shadow

+

Enables the rendering of a drop shadow which can be coloured, offset and +blurred.

+
+
+

shadowColor

+

The colour of the shadow.

+
+
+

shadowOffset

+

The offset of the shadow, measured in pixels.

+
+
+

shadowBlur

+

A blur applied to the shadow, measured in pixels.

+
+
+

text

+

The text to be rendered.

+
+
+

font

+

The font to render the text with. This should be a .ttf font file which +is located on the paths specified by the IECORE_FONT_PATHS +environment variable.

+

Supported file extensions : ttf

+
+
+

size

+

The size of the font in pixels. For best quality results +for constant sized text prefer this over the scale setting +on the transform, which is better suited for smoothly animating +the size.

+
+
+

area

+

The area of the image within which the text is rendered. +The text will be word wrapped to fit within the area and +justified as specified by the justification setting. If the +area is empty, then the full display window will be used +instead.

+
+
+

horizontalAlignment

+

Determines whether the text is aligned to the left or +right of the text area, or centered within it.

+
+
+

verticalAlignment

+

Determines whether the text is aligned to the bottom or +top of the text area, or centered within it.

+
+
+

transform

+

A transformation applied to the entire text area after +layout has been performed. The translate and pivot values +are specified in pixels, and the rotate value is specified +in degrees.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/Unpremultiply.html b/1.4.6.0/Reference/NodeReference/GafferImage/Unpremultiply.html new file mode 100644 index 000000000..334df9b81 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/Unpremultiply.html @@ -0,0 +1,616 @@ + + + + + + + Unpremultiply — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Unpremultiply

+

Divides selected channels by a specified alpha channel. +If the alpha channel on a pixel is 0, then that pixel will remain +the same as the input.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

channels

+

The names of the channels to operate on. Names should be +separated by spaces and can use Gaffer’s standard +wildcards.

+
+
+

alphaChannel

+

The channel to use as the alpha channel. +The selected channel does not have to be ‘A’, but whichever +channel is chosen will act as the alpha for the sake of this +node. +This channel will never be divided by itself - it will +remain the same as the input.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/VectorWarp.html b/1.4.6.0/Reference/NodeReference/GafferImage/VectorWarp.html new file mode 100644 index 000000000..5b9cc9a31 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/VectorWarp.html @@ -0,0 +1,640 @@ + + + + + + + VectorWarp — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

VectorWarp

+

Warps an input image onto a set of UVs provided +by a second image, effectively applying a texture +map to the UV image.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

boundingMode

+

The method used when accessing pixels outside the +input data window.

+
+
+

filter

+

The filter used to perform the resampling. The name +of any OIIO filter may be specified, but this UI +only exposes a limited range of 5 options which perform +well for warping, ordered from softest to sharpest. Plus +the extra “bilinear” mode which is lower quality, but +fast.

+
+
+

useDerivatives

+

Whether accurate filter sizes should be computed that take into account the amount +of distortion in the size and shape of pixels. Should have minimal impact on warps +that mostly preserve the size of pixels, but could have a large impact if there is +heavy distortion. Fixes problems with aliasing, at the cost of some extra calculations.

+
+
+

vector

+

The UV image. The R and G channel are used to provide +the U and V values, and these determine the source pixel +in the main input image. A UV values of ( 0, 0 ) corresponds +to the bottom left corner of the input image, and ( 1, 1 ) +corresponds to the top right corner.

+
+
+

vectorMode

+

Do vectors specify absolute positions in the source image, or relative +offsets from the current pixel to the pixel in the source image.

+
+
+

vectorUnits

+

Are vectors measured in pixels, or as fractions of the input image display +window ranging from 0 to 1.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferImage/index.html b/1.4.6.0/Reference/NodeReference/GafferImage/index.html new file mode 100644 index 000000000..db83ef64f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferImage/index.html @@ -0,0 +1,652 @@ + + + + + + + GafferImage — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferOSL/OSLCode.html b/1.4.6.0/Reference/NodeReference/GafferOSL/OSLCode.html new file mode 100644 index 000000000..9dc9c30c5 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferOSL/OSLCode.html @@ -0,0 +1,632 @@ + + + + + + + OSLCode — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OSLCode

+

Allows arbitrary OSL shaders to be written directly within +Gaffer.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

Generated automatically - do not edit.

+
+
+

type

+

Generated automatically - do not edit.

+
+
+

attributeSuffix

+

Suffix for the attribute used for shader assignment.

+
+
+

parameters

+

The inputs to the shader. Any number of inputs may be created +by adding child plugs. Supported plug types and the corresponding +OSL types are :

+
    +
  • FloatPlug (float)

  • +
  • IntPlug (int)

  • +
  • ColorPlug (color)

  • +
  • V3fPlug (vector)

  • +
  • M44fPlug (matrix)

  • +
  • StringPlug (string)

  • +
  • ClosurePlug (closure color)

  • +
  • SplinefColor3f ( triplet of float [], color [], string )

  • +
+
+
+

enabled

+

Turns the node on and off.

+
+
+

out

+

The outputs from the shader. Any number of outputs may be created +by adding child plugs. Supported plug types are as for the input +parameters, with the exception of SplinefColor3f, which cannot be +used as an output.

+
+
+

code

+

The code for the body of the OSL shader. This should read from the +input parameters and write to the output parameters.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferOSL/OSLImage.html b/1.4.6.0/Reference/NodeReference/GafferOSL/OSLImage.html new file mode 100644 index 000000000..9a3f31c34 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferOSL/OSLImage.html @@ -0,0 +1,613 @@ + + + + + + + OSLImage — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OSLImage

+

Executes OSL shaders to perform image processing. Use the shaders from +the OSL/ImageProcessing menu to read values from the input image and +then write values back to it.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output image generated by this node.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image

+
+
+

defaultFormat

+

The resolution and aspect ratio to output when there is no input image provided.

+
+
+

channels

+

Define image channels to output by adding child plugs and connecting +corresponding OSL shaders. You can drive RGB layers with a color, +or connect individual channels to a float.

+

If you want to add multiple channels at once, you can also add a closure plug, +which can accept a connection from an OSLCode with a combined output closure.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferOSL/OSLLight.html b/1.4.6.0/Reference/NodeReference/GafferOSL/OSLLight.html new file mode 100644 index 000000000..b5e2cef9e --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferOSL/OSLLight.html @@ -0,0 +1,700 @@ + + + + + + + OSLLight — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OSLLight

+

Creates lights by assigning an emissive OSL shader to some simple geometry.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

parameters

+

The parameters of the light shader - these will vary based on the light type.

+
+
+

defaultLight

+

Whether this light illuminates all geometry by default. When +toggled, the light will be added to the “defaultLights” set, which +can be referenced in set expressions and manipulated by downstream +nodes.

+
+
+

mute

+

Whether this light is muted. When toggled, the attribute “light:mute” +will be set to true. When not toggled, it will be omitted from the attributes.

+
+
+

visualiserAttributes

+

Attributes that affect the visualisation of this Light in the Viewer.

+
+
+

visualiserAttributes.scale

+

Scales non-geometric visualisations in the viewport to make them +easier to work with.

+
+
+

visualiserAttributes.maxTextureResolution

+

Visualisers that load textures will respect this setting to +limit their resolution.

+
+
+

visualiserAttributes.frustum

+

Controls whether applicable lights draw a representation of their +light projection in the viewer.

+
+
+

visualiserAttributes.lightFrustumScale

+

Allows light projections to be scaled to better suit the scene.

+
+
+

visualiserAttributes.lightDrawingMode

+

Controls how lights are presented in the Viewer.

+
+
+

visualiserAttributes.lookThroughAperture

+

Specifies the aperture used when looking through this light. Overrides the Viewer’s Camera Settings.

+
+
+

visualiserAttributes.lookThroughClippingPlanes

+

Specifies the clipping planes used when looking through this light. Overrides the Viewer’s Camera Settings.

+
+
+

shaderName

+

The OSL shader to be assigned to the light +geometry.

+
+
+

shape

+

The shape of the light. Typically, disks +should be used with spotlight shaders and spheres +should be used with point light shaders. The “Geometry” +shape allows the use of custom geometry specific to a +particular renderer.

+
+
+

radius

+

The radius of the disk or sphere shape. Has no effect for +other shapes.

+
+
+

geometryType

+

The type of geometry to create when shape is set +to “Geometry”. This should contain the name of a geometry +type specific to the renderer being used.

+
+
+

geometryBound

+

The bounding box of the geometry. Only relevant when the +shape is set to “Geometry”.

+
+
+

geometryParameters

+

Arbitary parameters which specify the features of the “Geometry” +shape type.

+
+
+

attributes

+

Arbitrary attributes which are applied to the light. Typical +uses include setting renderer specific visibility attributes +to hide the shape from the camera.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferOSL/OSLObject.html b/1.4.6.0/Reference/NodeReference/GafferOSL/OSLObject.html new file mode 100644 index 000000000..c75bc6850 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferOSL/OSLObject.html @@ -0,0 +1,648 @@ + + + + + + + OSLObject — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OSLObject

+

Executes OSL shaders to perform object processing. Use the shaders from +the OSL/ObjectProcessing menu to read primitive variables from the input +object and then write primitive variables back to it.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

interpolation

+

The interpolation type of the primitive variables created by this node. +For instance, Uniform interpolation means that the shader is run once per face on a mesh, allowing it to output primitive variables with a value per face. +All non-constant input primitive variables are resampled to match the selected interpolation so that they can be accessed from the shader.

+
+
+

useTransform

+

Makes the object’s transform available to OSL, so that you can use OSL functions that convert +from object to world space.

+
+
+

useAttributes

+

Makes the Gaffer attributes at the object’s location available to OSL through the getattribute +function. Once this is on, you can use OSL nodes such as InFloat or InString to retrieve the +attribute values.

+
+
+

primitiveVariables

+

Define primitive varibles to output by adding child plugs and connecting +corresponding OSL shaders. Supported plug types are :

+
    +
  • FloatPlug

  • +
  • IntPlug

  • +
  • ColorPlug

  • +
  • V3fPlug ( outputting vector, normal or point )

  • +
  • M44fPlug

  • +
  • StringPlug

  • +
+

If you want to add multiple outputs at once, you can also add a closure plug, +which can accept a connection from an OSLCode with a combined output closure.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferOSL/OSLShader.html b/1.4.6.0/Reference/NodeReference/GafferOSL/OSLShader.html new file mode 100644 index 000000000..6e9ed4871 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferOSL/OSLShader.html @@ -0,0 +1,611 @@ + + + + + + + OSLShader — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OSLShader

+

Loads OSL shaders for use in supported renderers. Use the ShaderAssignment node to assign shaders to objects in the scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

type

+

The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

attributeSuffix

+

Suffix for the attribute used for shader assignment.

+
+
+

parameters

+

Where the parameters for the shader are represented.

+
+
+

enabled

+

Turns the node on and off.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferOSL/index.html b/1.4.6.0/Reference/NodeReference/GafferOSL/index.html new file mode 100644 index 000000000..df7e02414 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferOSL/index.html @@ -0,0 +1,589 @@ + + + + + + + GafferOSL — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ + +
+

GafferOSL

+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/AimConstraint.html b/1.4.6.0/Reference/NodeReference/GafferScene/AimConstraint.html new file mode 100644 index 000000000..20b86ae5e --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/AimConstraint.html @@ -0,0 +1,672 @@ + + + + + + + AimConstraint — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

AimConstraint

+

Transforms objects so that they are aimed at +a specified target.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

targetScene

+

The scene containing the target location to which objects are +constrained. If this is unconnected, the main input scene +is used instead.

+
+
+

target

+

The scene location to which the objects are constrained. +The world space transform of this location forms the basis +of the constraint target, but is modified by the targetMode +and targetOffset values before the constraint is applied.

+
+
+

ignoreMissingTarget

+

Causes the constraint to do nothing if the target location +doesn’t exist in the scene, instead of erroring.

+
+
+

targetMode

+

The precise location of the target transform - this can be +derived from the origin, bounding box or from a specific primitive +uv coordinate or vertex id of the target location.

+
+
+

targetUV

+

UV coordinate used in “UV” target mode. +The node will error if the specified uv coordinate is out of range or does not map unambiguously +to a single position on the primitive’s surface unless ignoreMissingTarget is true.

+
+
+

targetVertex

+

Vertex id used in “Vertex” target mode. +The node will error if the specified vertex id is out of range unless ignoreMissingTarget is true. +The node will error if the specified primitive does not have a set of uvs named “uv” with +FaceVarying or Vertex interpolation unless ignoreMissingTarget is true. The uvs will be used to +construct a local coordinate frame.

+
+
+

targetOffset

+

An offset applied to the target transform before the constraint +is applied. The offset is measured in the object space of the +target location unless the target mode is UV or Vertex in which case +the offset is measured relative to the local surface coordinate frame.

+
+
+

keepReferencePosition

+

Adjusts the constraint so that the original position of the object +at the referenceFrame is maintained.

+
+
+

referenceFrame

+

The reference frame used by the keepReferencePosition mode. The constraint +is adjusted so that the original position at this frame is maintained.

+
+
+

aim

+

The aim vector, specified in object space. The +object will be transformed so that this vector +points at the target.

+
+
+

up

+

The up vector, specified in object space. The +object will be transformed so that this vector +points up in world space, as far as is possible.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/AttributeQuery.html b/1.4.6.0/Reference/NodeReference/GafferScene/AttributeQuery.html new file mode 100644 index 000000000..97e5e12c1 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/AttributeQuery.html @@ -0,0 +1,617 @@ + + + + + + + AttributeQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

AttributeQuery

+

Query a particular location in a scene and outputs attribute.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

scene

+

The scene to query the attribute for.

+
+
+

location

+

The location within the scene to query the attribute at.

+
+

Note

+

If the location does not exist then the query will not be +performed and all outputs will be set to their default values.

+
+
+
+

attribute

+

The name of the attribute to query.

+
+

Note

+

If the attribute does not exist then the query will not be +performed and all outputs will be set to their default values.

+
+
+
+

inherit

+

Should inherited attributes or be considered or not.

+
+
+

exists

+

Outputs true if both attribute and location exist, otherwise false.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/AttributeTweaks.html b/1.4.6.0/Reference/NodeReference/GafferScene/AttributeTweaks.html new file mode 100644 index 000000000..8b5a064fa --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/AttributeTweaks.html @@ -0,0 +1,622 @@ + + + + + + + AttributeTweaks — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

AttributeTweaks

+

Makes modifications to attributes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

localise

+

Turn on to allow location-specific tweaks to be made to inherited +attributes. Attributes will be localised to locations matching the +node’s filter prior to tweaking. The original inherited attributes +will remain untouched.

+
+
+

ignoreMissing

+

Ignores tweaks targeting missing attributes. When off, missing attributes +cause the node to error.

+
+
+

tweaks

+

The tweaks to be made to the attributes. Arbitrary numbers of user defined +tweaks may be added as children of this plug via the user interface, or +using the AttributeTweaks API via python.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/AttributeVisualiser.html b/1.4.6.0/Reference/NodeReference/GafferScene/AttributeVisualiser.html new file mode 100644 index 000000000..f3c5df194 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/AttributeVisualiser.html @@ -0,0 +1,661 @@ + + + + + + + AttributeVisualiser — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

AttributeVisualiser

+

Visualises attribute values by applying a constant +shader to display them as a colour.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

attributeName

+

The name of the attribute to be visualised. The value of the +attribute will be converted to a colour using the chosen mode +and then assigned using a constant shader.

+
+
+

mode

+

The method used to turn the attribute value into a colour for +visualisation.

+
    +
  • Color : This only works for attributes which already contain a colour +or numeric value. The value is converted directly to a colour, using the +min and max values to perform a remapping.

  • +
  • FalseColor : This only works for numeric attributes. Values between min +and max are used to look up a colour in the ramp below.

  • +
  • Random : This works for any attribute type - a random colour is chosen +for each unique attribute value.

  • +
  • Shader Node Color : This only works when visualising a shader attribute. It +uses the node colour for the shader node which is assigned.

  • +
+
+
+

min

+

Used in the Color and False Color modes to define the value which is mapped +to black or the left end of the spline respectively.

+
+
+

max

+

Used in the Color and False Color modes to define the value which is mapped +to white or the right end of the spline respectively.

+
+
+

ramp

+

Provides the colour mapping for the False Color mode. Values between min and +max are remapped using the colours from the ramp (left to right).

+
+
+

shaderType

+

The type of shader used to perform the visualisation. The default value +is for an OpenGL shader which will be used in the viewport. It’s possible +to perform a visualisation for other renderers by entering a different +shader type here.

+
+
+

shaderName

+

The name of the shader used to perform the visualisation. The default value +is for an OpenGL shader which will be used in the viewport. It’s possible +to perform a visualisation for other renderers by entering a different +shader name here.

+
+
+

shaderParameter

+

The name of the shader parameter used to perform the visualisation. The default +value is for an OpenGL shader which will be used in the viewport.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Attributes.html b/1.4.6.0/Reference/NodeReference/GafferScene/Attributes.html new file mode 100644 index 000000000..64709039e --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Attributes.html @@ -0,0 +1,628 @@ + + + + + + + Attributes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Attributes

+

The base type for nodes that apply attributes to the scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

attributes

+

The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python.

+
+
+

global

+

Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter.

+
+
+

extraAttributes

+

An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the attributes +CompoundDataPlug, with IECoreScene.ShaderNetwork being one example.

+

If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/BoundQuery.html b/1.4.6.0/Reference/NodeReference/GafferScene/BoundQuery.html new file mode 100644 index 000000000..c66060b0d --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/BoundQuery.html @@ -0,0 +1,625 @@ + + + + + + + BoundQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

BoundQuery

+

Queries a particular location in a scene and outputs the bound.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

scene

+

The scene to query the bounds for.

+
+
+

location

+

The location within the scene to query the bound at.

+
+

Note

+

If the location does not exist then the query will not be +performed and all outputs will be set to their default values.

+
+
+
+

space

+

The space to query the bound in.

+
+
+

relativeLocation

+

The location within the scene to use for relative space mode.

+
+

Note

+

If the location does not exist then the query will not be +performed and all outputs will be set to their default values.

+
+
+
+

bound

+

Bounding box at specified location in specified space.

+
+
+

center

+

Center point vector of the requested bound.

+
+
+

size

+

Size vector of the requested bound.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Camera.html b/1.4.6.0/Reference/NodeReference/GafferScene/Camera.html new file mode 100644 index 000000000..fdb2a9e40 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Camera.html @@ -0,0 +1,878 @@ + + + + + + + Camera — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Camera

+

Produces scenes containing a camera. To choose which camera is +used for rendering, use a StandardOptions node.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

projection

+

The base camera type.

+

Supports two standard projections: orthographic and +perspective. For less standard projections that require +renderer-specific implementations, such as spherical, you +will need to use a downstream CameraTweaks node to adjust +this camera’s parameters.

+
+
+

perspectiveMode

+

The input values to use in defining the perspective +projection. They can be either a horizontal field of view +(fieldOfView), or a film back/sensor (aperture) and +focal length (focalLength). The latter two can take the +exact measurements from a real camera and lens setup. With +either perspective mode, perspective is stored as +aperture and focalLength parameters on the camera.

+
+
+

fieldOfView

+

The horizontal field of view, in degrees.

+

In the camera’s parameters, projection is always stored as +aperture and focalLength. When using the Field of +View perspective mode, the aperture has the fixed +dimensions of 1, 1, and this plug drives the +focalLength parameter.

+
+
+

apertureAspectRatio

+

The vertical field of view, according to the ratio +(horizontal FOV) / (vertical FOV). A value of 1 would +result in a square aperture, while a value of 1.778 would +result in a 16:9 aperture.

+

“Aperture” in this sense is equivalent to film back/sensor.

+

The final projection of a render using this camera will +depend on these settings in combination with the +resolution and filmFit render settings.

+
+
+

aperture

+

The width and height of the aperture when using the +Aperture and Focal Length perspective mode. Use this in +conjunction with a focal length to define the camera’s +equivalent field of view.

+

“Aperture” here is equivalent to the film back/sensor on a +real camera. A handful of default camera presets are +provided, including Full Frame 35mm and several popular +Alexa and RED bodies. Once the aperture is set, the focal +length can then be adjusted on its own to control the field +of view, just like on a real camera.

+

When setting the aperture manually, the x and y +dimensions can be measured in any unit of length, so long +as they use the same unit as the focal length. You can +safely follow convention and use millimeters for both.

+

The final field of view of a render will depend on these +settings in combination with the resolution and filmFit +render options.

+
+
+

focalLength

+

The focal length portion of the Aperture and Focal Length +perspective mode. This is equivalent to the lens’s focal +length in a real camera setup. Use this in conjunction with +the aperture to set the camera’s equivalent field of view. +Like on a real camera, the aperture is typically constant, +and the focal length is then adjusted to control the field +of view.

+

This can be a distance in any unit of length, as long as +you use the same unit for the aperture. You can safely +follow convention and use millimeters for both.

+

The final field of view of a render using this camera will +depend on these settings in combination with the +resolution and filmFit render options.

+
+
+

orthographicAperture

+

The width and height of the orthographic camera’s aperture, +in world space units.

+
+
+

apertureOffset

+

Offsets the aperture parallel to the image plane, to +achieve a skewed viewing frustum. The scale of the offset +depends on the projection and perspective mode:

+
    +
  • Perspective projection: +- Field Of View mode: 1 offset = 1 horizontal field +of view. +- Aperture and Focal Length mode: 1 offset = 1 +aperture unit of measure (for example, 1mm).

  • +
  • Orthographic projection: 1 offset = 1 world space unit.

  • +
+

For use in special cases, such as simulating a tilt-shift +lens, rendering tiles for a large panorama, or matching a +plate that has been asymmetrically cropped.

+
+
+

fStop

+

The setting equivalent to the f-number on a camera, which ultimately determines the strength of the depth of field blur. A lower value produces more blur. As in a real camera, fStop is defined as focalLength / lens aperture.

+

To enable depth of field blur (if your renderer supports it), give this plug a value greater than 0, and, on a downstream StandardOptions node, enable the Depth Of Field plug and turn it on.

+
+
+

focalLengthWorldScale

+

The scale to convert from focal length units to world space +units. Combined with f-stop to calculate the lens aperture. +Set this to scale the lens units into scene units, to +ensure the depth of field blur correctly scales to the +scene. Once this plug is set, the fStop plug can be +adjusted to match a real-world lens setting.

+

For example, given a lens with a focal length in mm, and a +scene that uses decimeters for its world space units, the +Millimeters to Decimeters preset would provide the proper +conversion.

+

The default value of 0.1 scales millimeter (default focal +length unit) to centimeter (default world space unit of +Alembic and USD scene formats). Other default presets for +scaling to decimeter or meter are also available.

+

If using Field Of View projection mode, you won’t have a +focal length plug to work with, and the aperture size will +be (1,1). To compensate, select Custom and then input a +value that scales the scene unit of measure to a realistic +aperture size. For example, 3.5 would convert 1 +centimeter (Alembic/USD default) to 35mm, which would +simulate a 35mm lens.

+
+
+

focusDistance

+

The distance from the camera at which objects are in +perfect focus, in world space units.

+
+
+

clippingPlanes

+

The near and far clipping planes, defining a region of +forward depth within which objects are visible to this +camera.

+
+
+

renderSettingOverrides

+

Render settings specified here will override their +corresponding global render options.

+
+
+

renderSettingOverrides.filmFit

+

Overrides the filmFit render option:

+

How the aperture gate (the frame defined by the aperture) will +fit into the resolution gate (the framed defined by the data +window). Fitting is applied only if the respective aspect +ratios of the aperture and the resolution are different. The +following fitting modes are available:

+
    +
  • Horizontal: The aperture gate will fit horizontally between +the left/right edges of the resolution gate, while preserving +its aspect ratio. If the aperture’s aspect ratio is larger than +the resolution’s, the top/bottom edges of the aperture will be +cropped. If it’s smaller, then the top/bottom edges will +capture extra vertical scene content.

  • +
  • Vertical: The aperture gate will fit vertically between the +top/bottom edges of the resolution gate, while preserving its +aspect ratio. If the aperture’s aspect ratio is larger than the +resolution’s, the left/right edges of the aperture will be +cropped. If it’s smaller, then the left/right edges will +capture more horizontal scene content.

  • +
  • Fit: The aperture gate will fit horizontally (like +Horizontal mode) or vertically (like Vertical mode) inside +the resolution gate to avoid cropping the aperture, while +preserving its aspect ratio. If the two gates’ aspect ratios +differ, the aperture will capture extra horizontal or vertical +scene content.

  • +
  • Fill: The aperture gate will fill the resolution gate such +that none of the aperture captures extra scene content, while +preserving its aspect ratio. In other words, it will make the +opposite choice of the Fit mode. If the two gates’ aspect +ratios differ, the aperture will be horizontally or vertically +cropped.

  • +
  • Distort: The aperture gate will match the size of the +resolution gate. If their aspect ratios differ, the resulting +image will appear vertically or horizontally stretched or +squeezed.

  • +
+
+
+

renderSettingOverrides.shutter

+

Overrides the shutter render option:

+

The interval over which the camera shutter is open. Measured +in frames, and specified relative to the frame being rendered.

+
+
+

renderSettingOverrides.resolution

+

Overrides the renderResolution render option:

+

The resolution of the image to be rendered.

+
+
+

renderSettingOverrides.pixelAspectRatio

+

Overrides the pixelAspectRatio render option:

+

The width / height aspect ratio of the individual pixels in +the rendered image.

+
+
+

renderSettingOverrides.resolutionMultiplier

+

Overrides the resolutionMultiplier render option:

+

Multiplies the resolution of the render by this amount.

+
+
+

renderSettingOverrides.overscan

+

Overrides the overscan render option:

+

Whether to enable overscan, which adds extra pixels to the +sides of the rendered image.

+

Overscan can be useful when camera shake or blur will be added +as a post-process. This plug just enables overscan as a whole – +use the Overscan Top, Overscan Bottom, Overscan Left and +Overscan Right plugs to specify the amount of overscan on +each side of the image.

+
+
+

renderSettingOverrides.overscanLeft

+

Overrides the overscanLeft render option:

+

The amount of overscan at the left of the image. Specified as a +0-1 proportion of the original image width.

+
+
+

renderSettingOverrides.overscanRight

+

Overrides the overscanRight render option:

+

The amount of overscan at the right of the image. Specified as +a 0-1 proportion of the original image width.

+
+
+

renderSettingOverrides.overscanTop

+

Overrides the overscanTop render option:

+

The amount of overscan at the top of the image. Specified as a +0-1 proportion of the original image height.

+
+
+

renderSettingOverrides.overscanBottom

+

Overrides the overscanBottom render option:

+

The amount of overscan at the bottom of the image. Specified as +a 0-1 proportion of the original image height.

+
+
+

renderSettingOverrides.cropWindow

+

Overrides the renderCropWindow render option:

+

Limits the render to a region of the image. The rendered image +will have the same resolution as usual, but areas outside the +crop will be rendered black. Coordinates range from (0,0) at +the top-left of the image to (1,1) at the bottom-right. The +crop window tool in the viewer may be used to set this +interactively.

+
+
+

renderSettingOverrides.depthOfField

+

Overrides the depthOfField render option:

+

Whether to render with depth of field. To ensure the effect is +visible, you must also set an f-stop value greater than 0 on +this camera.

+
+
+

visualiserAttributes

+

Attributes that affect the visualisation of this camera in the Viewer.

+
+
+

visualiserAttributes.scale

+

Scales non-geometric visualisations in the viewport to make them +easier to work with.

+
+
+

visualiserAttributes.frustum

+

Controls whether the camera draws a visualisation of its frustum.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/CameraTweaks.html b/1.4.6.0/Reference/NodeReference/GafferScene/CameraTweaks.html new file mode 100644 index 000000000..4986bb9c7 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/CameraTweaks.html @@ -0,0 +1,622 @@ + + + + + + + CameraTweaks — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CameraTweaks

+

Applies modifications, also known as “tweaks” to camera +parameters or render options in the scene. Supports any number +of tweaks, and custom camera parameters. Tweaks to camera +parameters apply to every camera specified by the filter.

+

Tweaks apply to every camera specified by the filter.

+

Can add new camera parameters or render options.

+

Any existing parameters/options can be replaced or removed. +Numeric parameters/options can also be added to, subtracted +from, or multiplied.

+

Tweaks are applied in order, so if there is more than one tweak +to the same parameter/option, the first tweak will be applied +first, then the second, etc.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

tweaks

+

Add a camera tweak.

+

Arbitrary numbers of user defined tweaks may be +added as children of this plug via the user +interface, or via the CameraTweaks API in Python.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ClippingPlane.html b/1.4.6.0/Reference/NodeReference/GafferScene/ClippingPlane.html new file mode 100644 index 000000000..f8897202f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ClippingPlane.html @@ -0,0 +1,612 @@ + + + + + + + ClippingPlane — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ClippingPlane

+

Creates an arbitrary clipping plane. This is like the near +and far clipping planes provided by the Camera node, but +can be positioned arbitrarily in space. All geometry on +the positive Z side of the plane is clipped away.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the clipping plane to be created.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ClosestPointSampler.html b/1.4.6.0/Reference/NodeReference/GafferScene/ClosestPointSampler.html new file mode 100644 index 000000000..55af519a5 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ClosestPointSampler.html @@ -0,0 +1,652 @@ + + + + + + + ClosestPointSampler — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ClosestPointSampler

+

Samples primitive variables from the closest point on +the surface of a source primitive, and transfers the +values onto new primitive variable on the sampling objects.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to determine which objects in the +in scene will receive primitive variables sampled +from the sourceLocation in the source scene.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

source

+

The scene that contains the source primitive that +primitive variables will be sampled from.

+
+
+

sourceLocation

+

The location of the primitive in the source scene that +will be sampled from.

+
+
+

primitiveVariables

+

The names of the primitive variables to be sampled from the source +primitive. These should be separated by spaces and can use Gaffer’s +standard wildcards to match multiple variables. The sampled variables +are prefixed with prefix before being added to the sampling object.

+
+
+

prefix

+

A prefix applied to the names of the sampled primitive variables before +they are added to the sampling object. This is particularly useful when +sampling something like “P”, and not not wanting to modify the true +vertex positions of the sampling primitive.

+
+
+

status

+

The name of a boolean primitive variable created to record the success or +failure of the sampling operation.

+
+
+

position

+

The primitive variable that provides the positions +to find the closest point to. This defaults to “P”, +the vertex position of the sampling object.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/CollectPrimitiveVariables.html b/1.4.6.0/Reference/NodeReference/GafferScene/CollectPrimitiveVariables.html new file mode 100644 index 000000000..9910a080b --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/CollectPrimitiveVariables.html @@ -0,0 +1,636 @@ + + + + + + + CollectPrimitiveVariables — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CollectPrimitiveVariables

+

Make copies of target primitive variables with different suffixes, +where the new suffixed copies come from different Contexts.

+

By combining this with a TimeWarp, you can create copies of +primitive variables at different times, useful for creating trail +effects.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

primitiveVariables

+

A match pattern for which primitive variables will be copied.

+
+
+

suffixes

+

The names of the new suffixes to add to copies of the target +primitive variables. The new suffixed variables will be +copied from different Contexts.

+
+
+

suffixContextVariable

+

The name of a Context Variable that is set to the current +suffix when evaluating the input object. This can be used +in upstream expressions and string substitutions to vary +the object while creating the primvar copies.

+

For example, you could drive a TimeWarp with this +variable in order create copies of a primitive variable at +different times.

+
+
+

requireVariation

+

If true, newly copied primitive variables will only be created +if the source object is differs in some of the suffix Contexts. +If the source object never changes, it will be passed through +unchanged ( since there is no variation, you can just use the +original primitive variables ).

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/CollectScenes.html b/1.4.6.0/Reference/NodeReference/GafferScene/CollectScenes.html new file mode 100644 index 000000000..d21f64a59 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/CollectScenes.html @@ -0,0 +1,645 @@ + + + + + + + CollectScenes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CollectScenes

+

Builds a scene by bundling multiple input scenes together, each +under their own root location. Instead of using an array of inputs +like the Group node, a single input is used instead, and a Context +Variable is provided so that a different hierarchy can be generated +under each root location. This is especially powerful for building +dynamic scenes where the number of inputs is not known prior to +building the node graph.

+

Since merging globals from multiple scenes often doesn’t make sense, +the output globals are taken directly from the scene corresponding to +rootNames[0].

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

rootNames

+

The paths to the root locations to create in the output scene. +The input scene is copied underneath each of these root locations.

+

Often the rootNames will be driven by an expression that generates +a dynamic number of root locations, perhaps by querying an asset +management system or listing cache files on disk.

+
+
+

rootNameVariable

+

The name of a Context Variable that is set to the current +root location when evaluating the input scene. This can be used +in upstream expressions and string substitutions to generate +a different hierarchy under each root location.

+
+
+

sourceRoot

+

Specifies the root of the subtree to be copied from the input +scene. The default value causes the whole scene to be collected.

+

The rootName variable may be used in expressions and string +substitutions for this plug, allowing different subtrees to be +collected for each root location in the output.

+
+

Tip

+

+By specifying a leaf location as the root, it is possible to +collect single objects from the input scene.

+
+
+
+

mergeGlobals

+

Controls how the output globals are generated from the collected +scenes. By default, the globals from the first scene alone +are passed through. When mergeGlobals is on, the globals from +all collected scenes are merged, with the last scene winning +in the case of multiple scenes specifying the same global.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/CollectTransforms.html b/1.4.6.0/Reference/NodeReference/GafferScene/CollectTransforms.html new file mode 100644 index 000000000..62d42ab31 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/CollectTransforms.html @@ -0,0 +1,644 @@ + + + + + + + CollectTransforms — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CollectTransforms

+

Collects transforms in different Contexts, storing the results as attributes. The +names of the attributes being collected are provided as a Context Variable, +which can be used to vary the transforms that are collected.

+

By combining this with a TimeWarp, you can create copies of +the transform at different times, useful for creating trail +effects.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

attributes

+

The names of the new attributes to create. The new attributes will be +copied from the transform in different Contexts.

+
+
+

attributeContextVariable

+

The name of a Context Variable that is set to the current +attribute name when evaluating the transform. This can be used +in upstream expressions and string substitutions to vary +the transform.

+

For example, you could drive a TimeWarp with this +variable in order create copies of the transform at +different times.

+
+
+

space

+

If you select world space, the created attributes will contain a concatenation +of all transforms from the root of the scene to the current location.

+
+
+

requireVariation

+

If true, new attributes will only be created +if the transform differs in some of the Contexts. +If the transform never changes, no new attributes will be created +( you can just use the transform instead of accessing the new attributes ).

+
+
+

transforms

+

This hidden plug is a CompoundObject that contains just the new +transform attributes.

+

It is primarily used for internal computation, but there are +cases where you can improve performance by naughtily plugging +it into an expression.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/CoordinateSystem.html b/1.4.6.0/Reference/NodeReference/GafferScene/CoordinateSystem.html new file mode 100644 index 000000000..1bae2fce4 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/CoordinateSystem.html @@ -0,0 +1,618 @@ + + + + + + + CoordinateSystem — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CoordinateSystem

+

Produces scenes containing a coordinate system. Coordinate systems +have two main uses :

+
    +
  • To visualise the transform at a particular location. In this +respect they’re similar to locators or nulls in other packages.

  • +
  • To define a named coordinate system to be used in shaders at +render time. This is useful for defining projections or procedural +solid textures. The full path to the location of the coordinate +system should be used to refer to it within shaders.

  • +
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/CopyAttributes.html b/1.4.6.0/Reference/NodeReference/GafferScene/CopyAttributes.html new file mode 100644 index 000000000..586781dda --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/CopyAttributes.html @@ -0,0 +1,626 @@ + + + + + + + CopyAttributes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CopyAttributes

+

Copies attributes from a source scene, adding them to the attributes +of the main input scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

source

+

The scene from which the attributes are copied.

+
+
+

attributes

+

The names of the attributes to be copied. These should be +separated by spaces and can use Gaffer’s standard wildcards +to match multiple attributes.

+
+
+

sourceLocation

+

The location in the source scene that attributes are copied from. +By default, attributes are copied from the location equivalent to the one +they are being copied to.

+
+
+

deleteExisting

+

Deletes all attributes from the input scene before adding the copied +attributes.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/CopyOptions.html b/1.4.6.0/Reference/NodeReference/GafferScene/CopyOptions.html new file mode 100644 index 000000000..74b01c9d9 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/CopyOptions.html @@ -0,0 +1,608 @@ + + + + + + + CopyOptions — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CopyOptions

+

A node which copies options from a source scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

source

+

The source of the options to be copied.

+
+
+

options

+

The names of the options to be copied. Names should be +separated by spaces and can use Gaffer’s standard wildcards.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/CopyPrimitiveVariables.html b/1.4.6.0/Reference/NodeReference/GafferScene/CopyPrimitiveVariables.html new file mode 100644 index 000000000..6e026a93f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/CopyPrimitiveVariables.html @@ -0,0 +1,641 @@ + + + + + + + CopyPrimitiveVariables — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CopyPrimitiveVariables

+

Copies primitive variables from a source scene, adding them to the objects +of the main input scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

source

+

The scene from which the primitive variables are copied.

+
+
+

primitiveVariables

+

The names of the primitive variables to be copied. These should be +separated by spaces and can use Gaffer’s standard wildcards +to match multiple variables.

+
+
+

sourceLocation

+

The location in the source scene that primitive variables are copied from. +By default, variables are copied from the location equivalent to the one +they are being copied to. It is not an error if the location to be copied from +does not exist; instead, no variables are copied.

+
+
+

prefix

+

A prefix applied to the names of the copied primitive variables.

+
+
+

ignoreIncompatible

+

Causes the node to not error when attempting to copy primitive variables from +the source object that are not compatible with the destination object.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Cryptomatte.html b/1.4.6.0/Reference/NodeReference/GafferScene/Cryptomatte.html new file mode 100644 index 000000000..6b64ea1bc --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Cryptomatte.html @@ -0,0 +1,664 @@ + + + + + + + Cryptomatte — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cryptomatte

+

Outputs a matte channel generated from IDs selected from Cryptomatte AOVs.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The resulting image.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

in

+

The input image containing Cryptomatte image layers and optional metadata.

+
+
+

layer

+

The name of the Cryptomatte layer to use.

+
+
+

manifestSource

+

The source of the Cryptomatte manifest.

+
    +
  • None: No manifest will be loaded.

  • +
  • Metadata: From the first of the following image metadata entries that +exist for the selected Cryptomatte layer :

    +
      +
    • manifest : The manifest data.

    • +
    • manif_file : The name of a JSON manifest file stored in a +directory specified on the manifestDirectory plug.

    • +
    +
  • +
  • Sidecar File: From a JSON file specified on the sidecarFile plug.

  • +
+
+
+

manifestDirectory

+

A directory of JSON files containing Cryptomatte manifests.

+

If a manif_file metadata entry exists for the selected Cryptomatte +layer, it will be appended to this directory. The manifest is read from +the file at the resulting path.

+
+
+

sidecarFile

+

A JSON file containing a Cryptomatte manifest.

+

File sequences with arbitrary padding may be specified using the ‘#’ character +as a placeholder for the frame numbers.

+

Supported file extensions : json

+
+
+

outputChannel

+

The name of the output channel containing the extracted matte.

+
+
+

matteNames

+

The list of names to be extracted as a matte.

+

Names are matched against entries in the Cryptomatte manifest and +Gaffer’s standard wildcard characters can be used to match multiple +names.

+
    +
  • /robot/*Arm matches /robot/leftArm, /robot/rightArm and +/robot/Arm. But does not match /robot/limbs/leftArm or +/robot/arm.

  • +
  • /…/house matches /house, /street/house and /city/street/house.

  • +
  • /robot[ABC] matches /robotA, /robotB and /robotC. But does not +match /robotD or /robota.

  • +
+

Cryptomatte manifest entries containing ‘/’ characters will be +treated as hierarchical paths and a matte will be extracted for any +entry that is matched or has an ancestor that is matched.

+
    +
  • /robot extracts mattes for /robot, /robot/leftArm and +/robot/rightArm. But does not extract /robotA or /robotLeftArm.

  • +
+

ID values can be specified directly by wrapping a float ID value in +angle brackets.

+
    +
  • <value>.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Cube.html b/1.4.6.0/Reference/NodeReference/GafferScene/Cube.html new file mode 100644 index 000000000..25d13db37 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Cube.html @@ -0,0 +1,613 @@ + + + + + + + Cube — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cube

+

Produces scenes containing a cube.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

dimensions

+

The size of the cube.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/CurveSampler.html b/1.4.6.0/Reference/NodeReference/GafferScene/CurveSampler.html new file mode 100644 index 000000000..5421ca464 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/CurveSampler.html @@ -0,0 +1,664 @@ + + + + + + + CurveSampler — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CurveSampler

+

Samples primitive variables from parametric positions on some +source curves. The positions are specified using the index of +the curve and its v parameter.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to determine which objects in the +in scene will receive primitive variables sampled +from the sourceLocation in the source scene.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

source

+

The scene that contains the source primitive that +primitive variables will be sampled from.

+
+
+

sourceLocation

+

The location of the primitive in the source scene that +will be sampled from.

+
+
+

primitiveVariables

+

The names of the primitive variables to be sampled from the source +primitive. These should be separated by spaces and can use Gaffer’s +standard wildcards to match multiple variables. The sampled variables +are prefixed with prefix before being added to the sampling object.

+
+
+

prefix

+

A prefix applied to the names of the sampled primitive variables before +they are added to the sampling object. This is particularly useful when +sampling something like “P”, and not not wanting to modify the true +vertex positions of the sampling primitive.

+
+
+

status

+

The name of a boolean primitive variable created to record the success or +failure of the sampling operation.

+
+
+

curveIndex

+

The name of an integer primitive variable that specifies the index of +the curve to be sampled. If left unspecified, the first curve will be sampled.

+
+
+

v

+

The name of a float primitive variable that specifies the parametric +position on the curve to be sampled. A value of 0 corresponds to +the start of the curve, and a value of 1 corresponds to the end. +If left unspecified, a value of 0 is used.

+
+

Note

+

Values outside the 0-1 range are invalid and cannot +be sampled. In this case, the status output primitive variable +will contain False to indicate failure.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/CustomAttributes.html b/1.4.6.0/Reference/NodeReference/GafferScene/CustomAttributes.html new file mode 100644 index 000000000..f3b928a87 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/CustomAttributes.html @@ -0,0 +1,633 @@ + + + + + + + CustomAttributes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CustomAttributes

+

Applies arbitrary user-defined attributes to locations in the scene. Note +that for most common cases the StandardAttributes or renderer-specific +attributes nodes should be preferred, as they provide predefined sets of +attributes with customised user interfaces. The CustomAttributes node is +of most use when needing to set an attribute not supported by the +specialised nodes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

attributes

+

The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python.

+
+
+

global

+

Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter.

+
+
+

extraAttributes

+

An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the attributes +CompoundDataPlug, with IECoreScene.ShaderNetwork being one example.

+

If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/CustomOptions.html b/1.4.6.0/Reference/NodeReference/GafferScene/CustomOptions.html new file mode 100644 index 000000000..1fc20ee75 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/CustomOptions.html @@ -0,0 +1,628 @@ + + + + + + + CustomOptions — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CustomOptions

+

Applies arbitrary user-defined options to the root of the scene. Note +that for most common cases the StandardOptions or renderer-specific options +nodes should be preferred, as they provide predefined sets of options with customised +user interfaces. The CustomOptions node is of most use when needing to set am +option not supported by the specialised nodes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

options

+

The options to be applied - arbitrary numbers of user defined options may be added +as children of this plug via the user interface, or using the CompoundDataPlug API via +python.

+
+
+

extraOptions

+

An additional set of options to be added. Arbitrary numbers +of options may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an option. +This is convenient when using an expression to define the options +and the option count might be dynamic. It can also be used to +create options whose type cannot be handled by the options +CompoundDataPlug.

+

If the same option is defined by both the options and the +extraOptions plugs, then the value from the extraOptions +is taken.

+
+
+

prefix

+

A prefix applied to the name of each option. For example, a prefix +of “myCategory:” and a name of “test” will create an option named +“myCategory:test”.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/DeleteAttributes.html b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteAttributes.html new file mode 100644 index 000000000..9c8ac86c1 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteAttributes.html @@ -0,0 +1,616 @@ + + + + + + + DeleteAttributes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteAttributes

+

Deletes attributes from locations within the scene. +Those locations will then inherit the attribute +values from ancestor locations instead, or will fall +back to using the default attribute value.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

names

+

The names of attributes to be removed. Names should be +separated by spaces and can use Gaffer’s standard wildcards.

+
+
+

invertNames

+

When on, matching names are kept, and non-matching names are removed.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/DeleteCurves.html b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteCurves.html new file mode 100644 index 000000000..e04b2dc2d --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteCurves.html @@ -0,0 +1,626 @@ + + + + + + + DeleteCurves — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteCurves

+

Delete curves from a curves primitive using a primitive variable to choose the curves.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

curves

+

Uniformly interpolated int, float or bool primitive variable to choose which curves to delete. Note a non-zero value indicates the curve will be deleted.

+
+
+

invert

+

Invert the condition used to delete curves. If the primvar is zero then the curve will be deleted.

+
+
+

ignoreMissingVariable

+

Causes the node to do nothing if the primitive variable doesn’t exist on the curves, instead of erroring.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/DeleteFaces.html b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteFaces.html new file mode 100644 index 000000000..dac7544df --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteFaces.html @@ -0,0 +1,626 @@ + + + + + + + DeleteFaces — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteFaces

+

Deletes faces from a mesh using a primitive variable to choose the faces.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

faces

+

Uniformly interpolated int, float or bool primitive variable to choose which faces to delete. Note a non-zero value indicates the face will be deleted.

+
+
+

invert

+

Invert the condition used to delete faces. If the primvar is zero then the face will be deleted.

+
+
+

ignoreMissingVariable

+

Causes the node to do nothing if the primitive variable doesn’t exist on the curves, instead of erroring.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/DeleteGlobals.html b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteGlobals.html new file mode 100644 index 000000000..a4a39a809 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteGlobals.html @@ -0,0 +1,612 @@ + + + + + + + DeleteGlobals — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteGlobals

+

A node which removes named items from the globals. +To delete outputs or options specifically, prefer +the DeleteOutputs and DeleteOptions nodes respectively, +as they provide improved interfaces for their specific +tasks.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

names

+

The names of globals to be removed. Names should be +separated by spaces and can use Gaffer’s standard wildcards.

+
+
+

invertNames

+

When on, matching names are kept, and non-matching names are removed.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/DeleteObject.html b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteObject.html new file mode 100644 index 000000000..8a0d1806d --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteObject.html @@ -0,0 +1,612 @@ + + + + + + + DeleteObject — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteObject

+

Deletes the object at a location, keeping the location itself +intact. This is most useful when a location contains an unwanted object, +but the location also has children which need to be preserved.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

adjustBounds

+

Computes new tightened bounding boxes taking into account +the removed objects. This can be an expensive operation - +turn on with care.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/DeleteOptions.html b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteOptions.html new file mode 100644 index 000000000..31ee55099 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteOptions.html @@ -0,0 +1,608 @@ + + + + + + + DeleteOptions — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteOptions

+

A node which removes options from the globals.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

names

+

The names of options to be removed. Names should be +separated by spaces and can use Gaffer’s standard wildcards.

+
+
+

invertNames

+

When on, matching names are kept, and non-matching names are removed.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/DeleteOutputs.html b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteOutputs.html new file mode 100644 index 000000000..041cf28ff --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteOutputs.html @@ -0,0 +1,608 @@ + + + + + + + DeleteOutputs — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteOutputs

+

A node which removes outputs from the globals.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

names

+

The names of outputs to be removed. Names should be +separated by spaces and can use Gaffer’s standard wildcards.

+
+
+

invertNames

+

When on, matching names are kept, and non-matching names are removed.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/DeletePoints.html b/1.4.6.0/Reference/NodeReference/GafferScene/DeletePoints.html new file mode 100644 index 000000000..df79b5c78 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/DeletePoints.html @@ -0,0 +1,626 @@ + + + + + + + DeletePoints — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeletePoints

+

Deletes points from a points primitive using a primitive variable to choose the points.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

points

+

Vertex interpolated int, float or bool primitive variable to choose which points to delete. Note a non-zero value indicates the point will be deleted.

+
+
+

invert

+

Invert the condition used to delete points. If the primvar is zero then the point will be deleted.

+
+
+

ignoreMissingVariable

+

Causes the node to do nothing if the primitive variable doesn’t exist on the points, instead of erroring.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/DeletePrimitiveVariables.html b/1.4.6.0/Reference/NodeReference/GafferScene/DeletePrimitiveVariables.html new file mode 100644 index 000000000..454e99a76 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/DeletePrimitiveVariables.html @@ -0,0 +1,617 @@ + + + + + + + DeletePrimitiveVariables — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeletePrimitiveVariables

+

Deletes primitive variables from objects. The primitive +variables to be deleted are chosen based on name.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

names

+

The names of the primitive variables to be affected. +Names should be separated by spaces, and Gaffer’s +standard wildcard characters may be used.

+
+
+

invertNames

+

When on, the primitive variables matched by names +are unaffected, and the non-matching primitive +variables are affected instead.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/DeleteRenderPasses.html b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteRenderPasses.html new file mode 100644 index 000000000..f2263c104 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteRenderPasses.html @@ -0,0 +1,612 @@ + + + + + + + DeleteRenderPasses — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteRenderPasses

+

Deletes render passes from the scene globals.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

mode

+

Defines how the names listed in the names plug +are treated. Delete mode deletes the listed names. +Keep mode keeps the listed names, deleting all others.

+
+
+

names

+

The names of render passes to be deleted (or kept +if the mode is set to Keep). Names should be separated +by spaces and may contain any of Gaffer’s standard +wildcards.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/DeleteSets.html b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteSets.html new file mode 100644 index 000000000..02f9106f8 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/DeleteSets.html @@ -0,0 +1,607 @@ + + + + + + + DeleteSets — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DeleteSets

+

A node which removes object sets.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

names

+

Space separated list of set names to be removed.

+
+
+

invertNames

+

When on, matching names are kept, and non-matching names are removed.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Duplicate.html b/1.4.6.0/Reference/NodeReference/GafferScene/Duplicate.html new file mode 100644 index 000000000..1dcde3aa8 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Duplicate.html @@ -0,0 +1,644 @@ + + + + + + + Duplicate — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Duplicate

+

Duplicates a part of the scene. The duplicates +are parented alongside the original, and have +a transform applied to them.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

parent

+

For internal use only.

+
+
+

destination

+

The location where the copies will be placed in the output scene. +The default value places them alongside the original.

+
+
+

target

+

The part of the scene to be duplicated.

+
+

Caution

+

Deprecated. Please connect a filter instead.

+
+
+
+

copies

+

The number of copies to be made.

+
+
+

name

+

The name given to the copies. If this +is left empty, the name from the target +will be used instead. The names will have +a numeric suffix applied to distinguish +between the different copies, unless only a +single copy is being made. Even in the case +of a single copy, a suffix will be applied +if necessary to keep the names unique.

+
+
+

transform

+

The transform to be applied to the copies. The transform +is applied iteratively, so the second copy is transformed +twice, the third copy is transformed three times and so on.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Encapsulate.html b/1.4.6.0/Reference/NodeReference/GafferScene/Encapsulate.html new file mode 100644 index 000000000..2750aef70 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Encapsulate.html @@ -0,0 +1,630 @@ + + + + + + + Encapsulate — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Encapsulate

+

Encapsulates a portion of the scene by collapsing the hierarchy +and replacing it with a procedural which will be evaluated at +render time.

+

This has two primary uses :

+
    +
  • To optimise scene generation. Downstream nodes do not see +the encapsulated locations, so do not spend time processing +them.

  • +
  • To enable high-level instancing of hierarchies. If multiple +copies of the encapsulated procedural are made by the +downstream network, then the procedural itself can be instanced +at render time. This works no matter how the copies are +made, but typically the Instancer or Duplicate nodes would +be the most common method of copying the procedural.

  • +
+
+

Note

+

Encapsulation currently has some limitations

+
    +
  • Motion blur attributes are not inherited - only +attributes within the encapsulated hierarchy are +considered.

  • +
  • The usd:purpose attribute is not inherited - only +attributes within the encapsulated hierarchy are +considered.

  • +
+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ExistenceQuery.html b/1.4.6.0/Reference/NodeReference/GafferScene/ExistenceQuery.html new file mode 100644 index 000000000..8f78521d2 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ExistenceQuery.html @@ -0,0 +1,603 @@ + + + + + + + ExistenceQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ExistenceQuery

+

Queries the existence of a specified location in a scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

scene

+

The scene to query.

+
+
+

location

+

The location to query for existence.

+
+
+

exists

+

Outputs true if the specified location exists, otherwise false.

+
+
+

closestAncestor

+

Path to the closest ancestor that exists.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ExternalProcedural.html b/1.4.6.0/Reference/NodeReference/GafferScene/ExternalProcedural.html new file mode 100644 index 000000000..d894ff5f0 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ExternalProcedural.html @@ -0,0 +1,621 @@ + + + + + + + ExternalProcedural — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ExternalProcedural

+

References external geometry procedurals and archives.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

fileName

+

The path to the external procedural or archive.

+
+
+

bound

+

The bounding box of the external procedural or archive.

+
+
+

parameters

+

An arbitrary set of parameters to be passed to the external procedural.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Filter.html b/1.4.6.0/Reference/NodeReference/GafferScene/Filter.html new file mode 100644 index 000000000..c7fd4703f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Filter.html @@ -0,0 +1,598 @@ + + + + + + + Filter — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Filter

+

The base type for all nodes which are capable of choosing which +scene locations a FilteredSceneProcessor applies to.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

The on/off state of the filter. When it is off, the +filter does not match any locations.

+
+
+

out

+

The result of the filter. This should be connected into +the “filter” plug of a FilteredSceneProcessor.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/FilterProcessor.html b/1.4.6.0/Reference/NodeReference/GafferScene/FilterProcessor.html new file mode 100644 index 000000000..bd6650616 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/FilterProcessor.html @@ -0,0 +1,601 @@ + + + + + + + FilterProcessor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FilterProcessor

+

The base type for all filters which operate using one or more input filters.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

The on/off state of the filter. When it is off, the +result of the first input is passed through unchanged.

+
+
+

out

+

The result of the filter. This should be connected into +the “filter” plug of a FilteredSceneProcessor.

+
+
+

in

+

The input filter

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/FilterQuery.html b/1.4.6.0/Reference/NodeReference/GafferScene/FilterQuery.html new file mode 100644 index 000000000..f36f30e28 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/FilterQuery.html @@ -0,0 +1,624 @@ + + + + + + + FilterQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FilterQuery

+

Queries a filter for a particular location in a scene +and outputs the results.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

scene

+

The scene to query the filter for.

+
+
+

filter

+

The filter to query.

+
+
+

location

+

The location within the scene to query the filter at.

+
+

Note

+

If the location does not exist then the query will not be +performed and all outputs will be set to their default values.

+
+
+
+

exactMatch

+

Outputs True if the filter matches the location, and False otherwise.

+
+
+

descendantMatch

+

Outputs True if the filter matches a descendant of the location, +and False otherwise.

+
+
+

ancestorMatch

+

Outputs True if the filter matches an ancestor of the location, +and False otherwise.

+
+
+

closestAncestor

+

Outputs the location of the first ancestor matched by the filter. +In the case of an exact match, this will be the location itself.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/FilterResults.html b/1.4.6.0/Reference/NodeReference/GafferScene/FilterResults.html new file mode 100644 index 000000000..5849b61b7 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/FilterResults.html @@ -0,0 +1,622 @@ + + + + + + + FilterResults — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FilterResults

+

Searches an input scene for all locations matched +by a filter.

+
+

Caution

+

This can be an arbitrarily expensive operation +depending on the size of the input scene and the filter +used. In particular it should be noted that the usage of +... in a PathFilter will cause the entire input scene to +be searched even if there are no matches to be found.

+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

scene

+

The scene to be searched for matching +locations.

+
+
+

filter

+

The filter to be used when searching for +matching locations.

+
+
+

root

+

Isolates the search to this location and its descendants.

+
+
+

out

+

The results of the search, as an IECore::PathMatcher object. This +is most useful for performing hierarchical queries and for iterating +through the paths without an expensive conversion to strings.

+
+
+

outStrings

+

The results of the search, converted to a list of strings. This is +useful for connecting directly to other plugs, such as +Wedge.strings or CollectScenes.rootNames.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/FilteredSceneProcessor.html b/1.4.6.0/Reference/NodeReference/GafferScene/FilteredSceneProcessor.html new file mode 100644 index 000000000..30d34dbb7 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/FilteredSceneProcessor.html @@ -0,0 +1,605 @@ + + + + + + + FilteredSceneProcessor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FilteredSceneProcessor

+

The base type for scene processors which use a Filter node to control +which part of the scene is affected.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/FramingConstraint.html b/1.4.6.0/Reference/NodeReference/GafferScene/FramingConstraint.html new file mode 100644 index 000000000..0a557c786 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/FramingConstraint.html @@ -0,0 +1,646 @@ + + + + + + + FramingConstraint — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FramingConstraint

+

Position a camera so that all of a target is visible.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

targetScene

+

The scene containing the target location to which cameras are +pointed. If this is unconnected, the main input scene +is used instead.

+
+
+

target

+

The scene location to which the cameras are pointed.

+
+
+

ignoreMissingTarget

+

Causes the constraint to do nothing if the target location +doesn’t exist in the scene, instead of erroring.

+
+
+

boundMode

+

How the camera frustum is fit to the target. Sphere approximates the bounding +box of the target with a sphere. Box uses the actual bounding box, which +allows framing closer, but means the camera will move closer or farther depending +on the exact alignment of the box to the view ( which makes for a bumpy looking +turntable ).

+
+
+

padding

+

Add a border between the edge of the camera frustum and the target. +0.1 adds a 10% border. Using negative padding moves the camera closer.

+
+
+

extendFarClip

+

If the target is larger than the current clipping planes, increase +the far clipping plane to enclose it.

+
+
+

useTargetFrame

+

Use a fixed frame to access the target at. This can be used to produce a consistent +framing if the target has high-frequency animation you want to ignore.

+
+
+

targetFrame

+

The frame used to access the target when useTargetFrame is set.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/FreezeTransform.html b/1.4.6.0/Reference/NodeReference/GafferScene/FreezeTransform.html new file mode 100644 index 000000000..65a456d44 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/FreezeTransform.html @@ -0,0 +1,608 @@ + + + + + + + FreezeTransform — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FreezeTransform

+

Resets the transforms at the specified scene locations, +baking the old transforms into the vertices of any child objects +so that they remain the same in world space. Essentially this +turns transforms in the hierarchy into rigid deformations of +the objects.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Grid.html b/1.4.6.0/Reference/NodeReference/GafferScene/Grid.html new file mode 100644 index 000000000..123a2c4ee --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Grid.html @@ -0,0 +1,652 @@ + + + + + + + Grid — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Grid

+

“ +A grid. This is used to draw the grid in the viewer, +but is also included as a node in case it might be +useful, perhaps for placing a grid in renders done +using the OpenGLRender node.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the grid.

+
+
+

transform

+

The transform applied to the grid.

+
+
+

dimensions

+

The size of the grid in the x and y +axes. Use the transform to rotate the +grid into a different plane.

+
+
+

spacing

+

The size of the space between adjacent lines +in the grid.

+
+
+

gridColor

+

The colour of the lines forming the main part +of the grid.

+
+
+

centerColor

+

The colour of the two lines forming the central +cross of the grid.

+
+
+

borderColor

+

The colour of the lines forming the border +of the grid.

+
+
+

gridPixelWidth

+

The width of the lines forming the main part +of the grid. This width applies only to the +OpenGL representation of the grid.

+
+
+

centerPixelWidth

+

The width of the two lines forming the central +cross of the grid. This width applies only to the +OpenGL representation of the grid.

+
+
+

borderPixelWidth

+

The width of the lines forming the border +of the grid. This width applies only to the +OpenGL representation of the grid.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Group.html b/1.4.6.0/Reference/NodeReference/GafferScene/Group.html new file mode 100644 index 000000000..f6a3af166 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Group.html @@ -0,0 +1,617 @@ + + + + + + + Group — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Group

+

Groups together several input scenes under a new parent. +If the input scenes contain locations with identical names, +they are automatically renamed to make them unique in the +output scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scenes

+
+
+

name

+

The name of the group to be created. All the input +scenes will be parented under this group.

+
+
+

sets

+

A list of sets to include the group in. The +names should be separated by spaces.

+
+
+

transform

+

The transform for the group itself. This will be +inherited by the objects parented under it.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ImageScatter.html b/1.4.6.0/Reference/NodeReference/GafferScene/ImageScatter.html new file mode 100644 index 000000000..46b06693a --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ImageScatter.html @@ -0,0 +1,657 @@ + + + + + + + ImageScatter — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ImageScatter

+

Scatters points across an image, using pixel values to control the density +of the points. Arbitrary image channels may be converted to additional +primitive variables on the points, and point width may also be driven by an +image channel.

+
+

Note

+

Only the area of the displayWindow is considered. To +include overscan pixels, use a Crop node to extend the display +window.

+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

image

+

The image used to drive the point scattering process.

+
+
+

view

+

The view within the image to be used by the scattering process.

+
+
+

density

+

The overall density of the scattered points, defined in points +per pixel.

+
+
+

densityChannel

+

The image channel used to modulate the density of the scattered points. +Black pixels will receive no points and white pixels will receive the +full amount as defined by the density plug.

+
+
+

primitiveVariables

+

The image channels to be converted to primitive variables on +the points. The chosen channels are converted using the +following rules :

+
    +
  • The main RGB channels are converted to a colour primitive variable called Cs.

  • +
  • <layerName>.RGB channels are converted to a colour primitive variable called <layerName>.

  • +
  • Other channels are converted to individual float primitive variables.

  • +
+
+
+

width

+

The width of the points. If widthChannel is used as well, then this acts as +a multiplier on the channel values.

+
+
+

widthChannel

+

The channel used to provide per-point width values for the points.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ImageToPoints.html b/1.4.6.0/Reference/NodeReference/GafferScene/ImageToPoints.html new file mode 100644 index 000000000..17818afc5 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ImageToPoints.html @@ -0,0 +1,663 @@ + + + + + + + ImageToPoints — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ImageToPoints

+

Converts an image into a points primitive, with a point for each pixel +in the image. Point positions may be defined either by the original +pixel coordinates or an image layer providing position data. +Arbitrary image channels may be converted to additional primitive +variables on the points, and transparent pixels may be omitted +from the conversion.

+
+

Note

+

Only pixels within the display window are converted. To +include overscan pixels, use a Crop node to extend the display +window.

+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

image

+

The image to be converted into a points primitive.

+
+
+

view

+

The view within the image to be converted.

+
+
+

position

+

The image channels used to provide 3d positions for the points. +If None, the pixel’s 2d position within the image is used instead.

+
+
+

primitiveVariables

+

The image channels to be converted to primitive variables on +the points primitive. The chosen channels are converted using the +following rules :

+
    +
  • The main RGB channels are converted to a colour primitive variable called Cs.

  • +
  • <layerName>.RGB channels are converted to a colour primitive variable called <layerName>.

  • +
  • Other channels are converted to individual float primitive variables.

  • +
+
+
+

width

+

The width of the points. If widthChannel is used as well, then this acts as +a multiplier on the channel values.

+
+
+

widthChannel

+

The channel used to provide per-point width values for the points primitive.

+
+
+

ignoreTransparent

+

Omits pixels from the points primitive if their alpha value is less than or equal +to alphaThreshold.

+
+
+

alphaThreshold

+

Threshold used to exclude pixels from the points primitive when ignoreTransparent +is on.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Instancer.html b/1.4.6.0/Reference/NodeReference/GafferScene/Instancer.html new file mode 100644 index 000000000..24c990ef3 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Instancer.html @@ -0,0 +1,809 @@ + + + + + + + Instancer — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Instancer

+

Copies from an input scene onto the vertices of a target +object, making one copy per vertex. Additional vertex primitive +variables on the target object can be used to choose between +multiple prototypes, to specify their orientation, scale +and attributes, and to modify the context in which the +prototypes are evaluated.

+
+

Note

+

The target object will be removed from the scene.

+
+
+

Tip

+

Primitive variables with Varying interpolation are +supported wherever a variable with Vertex interpolation +is expected, provided that the primitive variable has the +same size as the equivalent Vertex variable.

+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

parent

+

The object on which to make the instances. The +position, orientation and scale of the instances +are taken from per-vertex primitive variables on +this object. This is ignored when a filter is +connected, in which case the filter specifies +multiple objects to make the instances from.

+
+
+

name

+

The name of the location the instances will be +generated below. This will be parented directly +under the parent location.

+
+
+

prototypes

+

The scene containing the prototypes to be applied to +each vertex. Use the prototypeMode and associated +plugs to control the mapping between prototypes and +instances.

+

Note that the prototypes are not limited to being a single +object - they can have arbitrary child hierarchies.

+
+
+

prototypeMode

+

The method used to define how the prototypes map +onto each instance.

+
    +
  • In “Indexed (Roots List)” mode, the prototypeIndex +primitive variable must be an integer per-vertex. +Optionally, a path in the prototypes scene corresponding +to each index can be specified via the prototypeRootsList +plug. If no roots are specified, an index of 0 applies the +first location from the prototypes scene, an index of 1 +applies the second, and so on.

  • +
  • In “Indexed (Roots Variable)” mode, the prototypeIndex +primitive variable must be an integer per-vertex, and +the prototypeRoots primitive variable must be a separate +constant string array specifying a path in the prototypes +scene corresponding to each index.

  • +
  • In “Root per Vertex” mode, the prototypeRoots primitive +variable must be a string per-vertex which will be used to +specify a path in the prototypes scene for each instance.

    +
    +

    Note

    +

    it is advisable to provide an indexed string +array in order to limit the number of unique prototypes.

    +
    +
  • +
+
+
+

prototypeIndex

+

The name of a per-vertex integer primitive variable used +to determine which prototype is applied to the vertex. +This plug is used in “Indexed (Roots List)” mode as well +as “Indexed (Roots Variable)” mode.

+
+
+

prototypeRoots

+

If prototypeMode is set to “Indexed (Roots Variable)”, +then this should specify the name of a constant string +array primitive variable used to map between prototypeIndex +and paths in the prototypes scene.

+

If prototypeMode is set to “Root per Vertex”, then this +should specify the name of a per-vertex string primitive +variable used to specify a path in the prototypes scene +for each instance.

+

This plug is not used in “Indexed (Roots List)” mode.

+
+
+

prototypeRootsList

+

An explicit list of paths used to map between prototypeIndex +and paths in the prototypes scene. This plug is only used in +“Indexed (Roots List)” mode.

+
+
+

id

+

The name of a per-vertex integer primitive variable +used to give each instance a unique identity. This +is useful when points are added and removed over time, +as is often the case in a particle simulation. The +id is used to name the instance in the output scene.

+
+
+

omitDuplicateIds

+

When off, having the same ids on multiple points is considered +an error. Setting on will allow a render to proceed, with all +instances that share an id being omitted.

+
+
+

position

+

The name of the per-vertex primitive variable used +to specify the position of each instance.

+
+
+

orientation

+

The name of the per-vertex primitive variable used +to specify the orientation of each instance. This +must be provided as a quaternion : use an upstream +Orientation node to convert from other representations +before instancing.

+
+
+

scale

+

The name of the per-vertex primitive variable used +to specify the scale of each instance. Scale can be +provided as a float for uniform scaling, or as a vector +to define different scaling in each axis.

+
+
+

attributes

+

The names of per-vertex primitive variables to be +turned into per-instance attributes. Names should +be separated by spaces and can use Gaffer’s +standard wildcards.

+
+
+

attributePrefix

+

A prefix added to all per-instance attributes specified +via the “attributes” plug.

+
+
+

encapsulateInstanceGroups

+

Converts each group of instances into a capsule, which won’t +be expanded until you Unencapsulate or render. When keeping +these locations encapsulated, downstream nodes can’t see the +instance locations, which prevents editing but improves +performance. This option should be preferred to a downstream +Encapsulate node because it has the following benefits :

+
    +
  • Substantially improved performance when the prototypes +define sets.

  • +
  • Fewer unnecessary updates during interactive rendering.

  • +
+
+
+

seedEnabled

+

Creates a seed context variable based on a hash of the instance ID, which could come +from the primitive varable specified in the id plug or otherwise the point index. +This integer is available to the upstream prototypes network, and might typically +be used with a Random node to randomise properties of the prototype.

+
+
+

seedVariable

+

Name of the context variable to put the seed value in.

+
+
+

seeds

+

The number of possible seed values. Increasing this allows for more different variations +to be driven by the seed, increasing the total number of variations required.

+
+
+

seedPermutation

+

Changing the seedPermutation changes the mapping of ids to seeds. This results in a different +grouping of which instances end up with the same seed.

+
+
+

rawSeed

+

Enable this in rare cases when it is required to pass through every single id directly into the seed +context variable. This is very expensive, because every single instance will need a separate +context, but is sometimes useful, and may be an acceptable cost if there isn’t a huge number of +total instances.

+
+
+

contextVariables

+

Specifies context variables to be created from primitive variables. These variables are +available to upstream prototypes network, allowing the prototypes scene to be generated +differently depending on the source point. Supports quantization to avoid re-evaluating the +prototypes scene too many times.

+
+
+

timeOffset

+

Modify the current time when evaluating the prototypes network, by adding a primvar.

+
+
+

variations

+

This special output plug returns an CompoundData dictionary with counts about how many +variations are being created. For each context variable variable being set ( including +“frame” when using Time Offset ), there is an entry with the name of the context variable, +with an IntData containing the number of unique values of that context variable. There is +also an entry for “”, with an IntData for the total number of unique contexts, considering +all the context variables being created.

+

Extracting the dictionary values and displaying them to users is handled by _VariationsPlugValueWidget.

+

This information is important to display to users because varying the context requires +extra evaluations of the prototypes scene, and can dramatically increase the cost of the Instancer.

+

Note that variations are measured across all locations in the scene where the instancer is filtered.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/InteractiveRender.html b/1.4.6.0/Reference/NodeReference/GafferScene/InteractiveRender.html new file mode 100644 index 000000000..989b40194 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/InteractiveRender.html @@ -0,0 +1,620 @@ + + + + + + + InteractiveRender — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

InteractiveRender

+

Performs interactive renders, updating the render on the fly +whenever the input scene changes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

in

+

The scene to be rendered.

+
+
+

renderer

+

The renderer to use. Default mode uses the render:defaultRenderer option from +the input scene globals to choose the renderer. This can be authored using +the StandardOptions node.

+
+

Note

+

Changing renderer currently requires that the current render is +manually stopped and restarted.

+
+
+
+

state

+

Turns the rendering on and off, or pauses it.

+
+
+

out

+

A direct pass-through of the input scene.

+
+
+

resolvedRenderer

+

The renderer that will be used, accounting for the value of the +render:defaultRenderer option if renderer is set to “Default”.

+
+
+

messages

+

Messages from the render process.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Isolate.html b/1.4.6.0/Reference/NodeReference/GafferScene/Isolate.html new file mode 100644 index 000000000..1c7e33181 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Isolate.html @@ -0,0 +1,643 @@ + + + + + + + Isolate — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Isolate

+

Isolates objects by removing paths not matching a filter from the scene.

+
+

Caution

+

The Isolate node does not work well with the ... wildcard in +PathFilters. Because of the way Gaffer generates scenes progressively +from the root, the Isolate node needs to know if the filter matches any +descendants (children, grandchildren etc) of the current location; if there +are any matches then the current location is kept, otherwise it is removed. +When faced with ..., the Isolate node assumes that there will always be a +descendant match because ... matches anything. This can cause it to keep +locations where in fact there may be no true descendant match. The only +alternative would be to search the scene recursively looking for a true +match, but this would defeat the goal of lazy evaluation and could cause +poor performance.

+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

from

+

The ancestor to isolate the objects from. Only locations below +this will be removed.

+
+
+

keepLights

+

Keeps all lights and light filters, regardless of other settings. +This is useful when isolating an asset but wanting to render it +using a light rig located elsewhere in the scene.

+
+
+

keepCameras

+

Keeps all cameras, regardless of other settings. This is +useful when isolating an asset but wanting to render it +through a camera located elsewhere in the scene.

+
+
+

adjustBounds

+

By default, the bounding boxes of ancestor locations are +automatically updated when children are removed. This can +be turned off if necessary to get improved performance - in +this case the bounding boxes will still wholly contain the +contents at each location, but may be bigger than necessary.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/LightToCamera.html b/1.4.6.0/Reference/NodeReference/GafferScene/LightToCamera.html new file mode 100644 index 000000000..a17cb115c --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/LightToCamera.html @@ -0,0 +1,654 @@ + + + + + + + LightToCamera — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LightToCamera

+

Converts lights into cameras. Spotlights are converted to a perspective +camera with the field of view matching the cone angle, and distant lights are +converted to an orthographic camera.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

Specifies which lights to convert.

+
+
+

filmFit

+

How the aperture gate (the frame defined by the aperture) will +fit into the resolution gate (the framed defined by the data +window). Fitting is applied only if the respective aspect +ratios of the aperture and the resolution are different. The +following fitting modes are available:

+
    +
  • Horizontal: The aperture gate will fit horizontally between +the left/right edges of the resolution gate, while preserving +its aspect ratio. If the aperture’s aspect ratio is larger than +the resolution’s, the top/bottom edges of the aperture will be +cropped. If it’s smaller, then the top/bottom edges will +capture extra vertical scene content.

  • +
  • Vertical: The aperture gate will fit vertically between the +top/bottom edges of the resolution gate, while preserving its +aspect ratio. If the aperture’s aspect ratio is larger than the +resolution’s, the left/right edges of the aperture will be +cropped. If it’s smaller, then the left/right edges will +capture more horizontal scene content.

  • +
  • Fit: The aperture gate will fit horizontally (like +Horizontal mode) or vertically (like Vertical mode) inside +the resolution gate to avoid cropping the aperture, while +preserving its aspect ratio. If the two gates’ aspect ratios +differ, the aperture will capture extra horizontal or vertical +scene content.

  • +
  • Fill: The aperture gate will fill the resolution gate such +that none of the aperture captures extra scene content, while +preserving its aspect ratio. In other words, it will make the +opposite choice of the Fit mode. If the two gates’ aspect +ratios differ, the aperture will be horizontally or vertically +cropped.

  • +
  • Distort: The aperture gate will match the size of the +resolution gate. If their aspect ratios differ, the resulting +image will appear vertically or horizontally stretched or +squeezed.

  • +
+
+
+

distantAperture

+

The orthographic aperture used when converting distant lights +( which are theoretically infinite in extent )

+
+
+

clippingPlanes

+

Clipping planes for the created cameras. When creating a perspective camera, a near clip +<= 0 is invalid, and will be replaced with 0.01. Also, certain lights only start casting +light at some distance - if near clip is less than this, it will be increased.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/LocaliseAttributes.html b/1.4.6.0/Reference/NodeReference/GafferScene/LocaliseAttributes.html new file mode 100644 index 000000000..683ee7f05 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/LocaliseAttributes.html @@ -0,0 +1,610 @@ + + + + + + + LocaliseAttributes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LocaliseAttributes

+

Copies inherited attributes into local attributes.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

attributes

+

The names of the attributes to localise. These should be +separated by spaces and can use Gaffer’s standard wildcards +to match multiple attributes.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MapOffset.html b/1.4.6.0/Reference/NodeReference/GafferScene/MapOffset.html new file mode 100644 index 000000000..630de66a5 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MapOffset.html @@ -0,0 +1,620 @@ + + + + + + + MapOffset — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MapOffset

+

Adds an offset to object texture coordinates. This provides a convenient way of +looking at specific texture UDIMs.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

offset

+

An offset added to the texture coordinates. Note that moving the +texture coordinates in the positive direction will move the texture +in the negative direction.

+
+
+

udim

+

A specific UDIM to offset the texture coordinates to. The UDIM is +converted to an offset which is added to the offset above.

+
+
+

uvSet

+

The name of the primitive variable holding the UV coordinates.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MapProjection.html b/1.4.6.0/Reference/NodeReference/GafferScene/MapProjection.html new file mode 100644 index 000000000..6a1846e36 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MapProjection.html @@ -0,0 +1,621 @@ + + + + + + + MapProjection — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MapProjection

+

Applies texture coordinates to meshes via a camera projection. +In Gaffer, texture coordinates (commonly referred to as UVs) +are represented as primitive variables.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

camera

+

The location of the camera to use for the projection.

+
+
+

position

+

The primitive variable that provides the position to be +used in the projection.

+
+
+

uvSet

+

The name of the primitive variable used to store the +projected UV coordinates. This may be changed to store +multiple sets of UVs on a single mesh.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MergeScenes.html b/1.4.6.0/Reference/NodeReference/GafferScene/MergeScenes.html new file mode 100644 index 000000000..0bc16eedd --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MergeScenes.html @@ -0,0 +1,652 @@ + + + + + + + MergeScenes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MergeScenes

+

Merges multiple input scenes into a single output scene. +Merging is performed left to right, starting with in[0].

+

By default, when more than one input contains the same +scene location, the location’s properties from the leftmost +input are kept. In this mode, only new locations are merged +in from the additional inputs. Optionally, the properties +can be replaced by or merged with the properties of the +subsequent inputs.

+

Sets are always merged from all inputs. Where multiple inputs +have sets with the same name, the sets are merged into a union.

+
+

Caution

+

When transformMode and/or objectMode is not Keep, +bounding box computations have significant overhead. Consider +not using these operations, or turning off adjustBounds.

+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scenes

+
+
+

transformMode

+

The method used to merge transforms when the same location +exists in multiple input scenes. Keep mode keeps the transform +from the first input, and Replace mode replaces it with the +transform of the last input.

+
+
+

attributesMode

+

The method used to merge attributes when the same location +exists in multiple input scenes. Keep mode keeps the attributes +from the first input, Replace mode replaces them with the attributes +from the last input, and Merge mode merges all attributes together +from first to last.

+
+
+

objectMode

+

The method used to merge objects when the same location +exists in multiple input scenes. Keep mode keeps the object +from the first input, and Replace mode replaces it with the +object from the last input which has one.

+
+
+

globalsMode

+

The method used to merge scene globals. Keep mode keeps the globals +from the first input, Replace mode replaces them with the globals +from the last input, and Merge mode merges all globals together +from first to last.

+
+
+

adjustBounds

+

Adjusts bounding boxes to take account of the merging operation.

+
+

Caution

+

This has considerable overhead when the objectsMode and/or +transformsMode is not Keep.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MeshDistortion.html b/1.4.6.0/Reference/NodeReference/GafferScene/MeshDistortion.html new file mode 100644 index 000000000..cf86f577a --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MeshDistortion.html @@ -0,0 +1,635 @@ + + + + + + + MeshDistortion — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MeshDistortion

+

Measures how much a mesh has been distorted from a reference shape. +The distortion is calculated by comparing edge lengths between the +reference and deformed shapes. Compressed areas have negative distortion +values, stretched areas have positive distortion values, and areas with +no deformation have distortion values of zero. The calculated distortion +is output as primitive variables on the mesh.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

position

+

The name of the primitive variable which contains the deformed vertex +positions for the mesh.

+
+
+

referencePosition

+

The name of the primitive variable which contains the undeformed vertex +positions for the mesh.

+
+
+

uvSet

+

The name of the primitive variable which contains the UV set used to +calculate UV distortion.

+
+
+

distortion

+

The name of the primitive variable created to store the distortion +values. This will contain a float per vertex.

+
+
+

uvDistortion

+

The name of the primitive variable created to store the UV distortion +values. This will contain a V2f with separate distortion values for the +U and V directions.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MeshNormals.html b/1.4.6.0/Reference/NodeReference/GafferScene/MeshNormals.html new file mode 100644 index 000000000..9f365b3d4 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MeshNormals.html @@ -0,0 +1,629 @@ + + + + + + + MeshNormals — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MeshNormals

+

Creates a normal primitive variable on a mesh, using the positions of adjacent vertices.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

interpolation

+

The interpolation of the normal primitive variable we are creating. Affects the shape of the resulting normals, because Uniform ( Per-Face ) normals are inherently faceted, whereas Vertex normals are always smooth.

+
+
+

weighting

+

How to weight the multiple faces that contribute to the normal of a vertex. +“Equal” averages all faces connected to the vertex - simple to compute, but low quality. +“Angle” gives good results for most meshes. +“Area” may give good results on hard edge models with tight chamfers and large flat faces.

+
+
+

thresholdAngle

+

Used to decide whether edges are smooth or sharp when generating a normal primvar with FaceVarying +interpolation. FaceVertices with normals that differ by less than this angle will be averaged +together into a smooth normal.

+
+
+

position

+

The name of the position primitive variable that drives everything.

+
+
+

normal

+

The name of the normal primitive variable to output.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MeshSegments.html b/1.4.6.0/Reference/NodeReference/GafferScene/MeshSegments.html new file mode 100644 index 000000000..fe275ced4 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MeshSegments.html @@ -0,0 +1,624 @@ + + + + + + + MeshSegments — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MeshSegments

+

Creates a uniform primitive variable of integer indices indicating which +connected segment each face belongs to. May create segments based on +what is connected in the mesh’s topology, or based on an indexed +primitive variable ( for example, you may segment based on which faces +share UVs in order to segment into UV islands ).

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

connectivity

+

The name of the primitive variable which will determine the segmentation. +You may specify an empty string, or any vertex primitive variable to use +the vertex topology to determine segments, or use an indexed face-varying +primitive variable - this will segment based on which face-vertices are +connected ( for example, using indexed UVs will produce UV islands ). +Uniform and constant primitive variables are also supported for consistency, +but they just output which faces have the same uniform value, or put all +faces in one segment.

+
+
+

segment

+

The name of the uniform primitive variable which will be created to hold +the segment index for each face.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MeshSplit.html b/1.4.6.0/Reference/NodeReference/GafferScene/MeshSplit.html new file mode 100644 index 000000000..2d20de128 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MeshSplit.html @@ -0,0 +1,633 @@ + + + + + + + MeshSplit — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MeshSplit

+

Splits a mesh into separate meshes for each unique value of a chosen +Uniform ( per-face ) primitive variable. The meshes will be created as children +of the original mesh, and the original mesh will be removed.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

parent

+

Legacy plug. Do not use.

+
+
+

segment

+

The name of the primitive variable to split based on. Must be a +Uniform ( per-face ) primitive variable. A separate mesh will be +created for each unique value of this primitive variable.

+
+
+

nameFromSegment

+

If true, the resulting meshes will be named based on the value of +the primitive variable chosen by segment. Requires that the chosen +primitive variable be a string.

+

Otherwise, the resulting meshes will just be named based on an integer index.

+
+
+

preciseBounds

+

Create tightly fitted bounding boxes that exactly fit each split child mesh. +This requires visiting the vertices of the input mesh, so is more expensive. +If false, the bounding box of the original mesh is used for all new meshes

+
    +
  • this is technically correct, since they are all contained within this +bounding box, but isn’t as informative.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MeshTangents.html b/1.4.6.0/Reference/NodeReference/GafferScene/MeshTangents.html new file mode 100644 index 000000000..51bd4c3c8 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MeshTangents.html @@ -0,0 +1,649 @@ + + + + + + + MeshTangents — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MeshTangents

+

Adds surface tangent primitive variables to the mesh based on either UV or topology information.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

mode

+

The style of how to calculate the Tangents. +(UV) calculates the tangents based on the gradient of the the corresponding UVs +(FirstEdge) defines the vector to the first neighbor as tangent and the bitangent orthogonal to tangent and normal +(TwoEdges) defines the vector between the first two neighbors as tangent and the bitangent orthogonal to tangent and normal +(PrimitiveCentroid) points the tangent towards the primitive centroid and the bitangent orthogonal to tangent and normal

+
+
+

orthogonal

+

Adjusts vTangent to be orthogonal to the uTangent.

+
+
+

leftHanded

+

Make the local coordinate frame left handed

+
+
+

position

+

Name of the primitive variable which contains the position data used to calculate tangents & binormals. +For example ‘Pref’ would compute tangents using the reference positions (if defined)

+
+
+

normal

+

Name of the primitive variable which contains the normals used to calculate tangents & binormals.

+
+
+

uvSet

+

Name of the UV set primitive variable used to calculate uTangent & vTangent.

+
+
+

uTangent

+

Name of the primitive variable which will contain the uTangent data.

+
+
+

vTangent

+

Name of the primitive variable which will contain the vTangent data.

+
+
+

tangent

+

Name of the primitive variable which will contain the tangent data.

+
+
+

biTangent

+

Name of the primitive variable which will contain the biTangent data.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MeshTessellate.html b/1.4.6.0/Reference/NodeReference/GafferScene/MeshTessellate.html new file mode 100644 index 000000000..c8d51b8ca --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MeshTessellate.html @@ -0,0 +1,666 @@ + + + + + + + MeshTessellate — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MeshTessellate

+

Tessellates meshes according to their subdivision scheme, converting them into higher polygon meshes +which follow the limit surface - usually the smooth regular quads of a Catmull-Clark scheme.

+

Can be used similiarly to “subdivide” or “smooth” features in other packages, with one distinction: +because it puts output points directly on the limit surface, using the tessellated result as a subdiv +surface again will result in the surface shrinking. Tessellation gives the most accurate possible result +for a given number of divisions in one step, but is not appropriate for doing repeated operations on +the same mesh.

+

This node implements the tessellation schemes described by OpenSubdiv, as described here: +https://graphics.pixar.com/opensubdiv/docs/bfr_overview.html#bfr-navlink-tessellation +( Note that OpenSubdiv’s “tessellation rate” parameter is the same as our “divisions” parameter, +except “tessellation rate” is one higher than “divisions. )

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

divisions

+

The number of vertices to insert in each edge during tessellation.

+
+
+

calculateNormals

+

Calculate normals based on the limit surface. If there are existing normals, they will be +overwritten. If this is not set, existing normals will be interpolated like any other primvar.

+

Note that we currently output Vertex normals, which makes sense for most subdivs, but does not +accurately capture infinitely sharp creases.

+
+
+

scheme

+

Overrides the subdivision scheme that determines the shape of the surface. By default, the +subdivision scheme used comes from the mesh’s interpolation property, which should be set with +a MeshType node, so it will apply to rendering the surface, and also this node. Overriding is +useful if a mesh has not been tagged correctly ( for example, if you want to force a mesh +to be smooth, you can set scheme to CatmullClark ).

+
+
+

tessellatePolygons

+

Force bilinear tessellation of meshes without subdivision schemes.

+

If there is no subdivision scheme stored on the mesh ( interpolation = "linear" ), and you +haven’t overridden the scheme, we interpret that to mean no tessellation is required. Bilinear +tessellation won’t change the shape of the surface, but sometimes forcing tessellation is useful +anyways ( for example, to apply deformation on a denser mesh ).

+
+
+

interpolateBoundary

+

Specifies which parts of mesh boundaries are forced to exactly meet the boundary. +Without this forcing, a subdivision surface will naturally shrink back from the boundary as it +smooths out.

+

Usually, you want to force both edges and corners to exactly meet the boundary. The main reasons to +change this are to use Edge Only if you want to produce curved edges from polygonal boundaries, +or to use None if you’re doing something tricky with seamlessly splitting subdiv meshes by +providing the split meshes with a border of shared polygons in order to get continuous tangents.

+
+
+

faceVaryingLinearInterpolation

+

Specifies where face varying primitive variables should use a simple linear interpolation instead +of being smoothed.

+

In order for UVs to correspond to approximately the same texture areas as the original polygons, +usually you want to, at minimum, pin the outside corners. But pinning the entire boundary causes +some pretty weird discontinuities, so finding the right compromise is tricky.

+

See the OpenSubdiv docs for explanation of the details of options like Corners Plus 1: +https://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#schemes-and-options

+
+
+

triangleSubdivisionRule

+

Option to use a non-standard Smooth subdivision rule that provides slightly better results +at triangular faces in Catmull-Clark meshes than the standard Catmull-Clark algorithm.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MeshToPoints.html b/1.4.6.0/Reference/NodeReference/GafferScene/MeshToPoints.html new file mode 100644 index 000000000..f06a92945 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MeshToPoints.html @@ -0,0 +1,623 @@ + + + + + + + MeshToPoints — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MeshToPoints

+

Converts mesh primitives into points primitives.

+

Primitive variables with FaceVarying or Uniform +interpolation are discarded (because they have the +wrong size for the new primitive), but all other +primitive variables are preserved during conversion.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

type

+

The render type for the newly converted +points primitives.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MeshType.html b/1.4.6.0/Reference/NodeReference/GafferScene/MeshType.html new file mode 100644 index 000000000..550b2aa0f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MeshType.html @@ -0,0 +1,653 @@ + + + + + + + MeshType — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MeshType

+

Changes between polygon and subdivision representations +for mesh objects, and optionally recalculates vertex +normals for polygon meshes.

+

Note that currently the Gaffer viewport does not display +subdivision meshes with smoothing, so the results of using +this node will not be seen until a render is performed.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

meshType

+

The interpolation type to apply to the mesh.

+
+
+

calculatePolygonNormals

+

Causes new vertex normals to be calculated for +polygon meshes. Has no effect for subdivision +surfaces, since those are naturally smooth and do +not require surface normals. Vertex normals are +represented as primitive variables named “N”.

+
+
+

overwriteExistingNormals

+

By default, vertex normals will only be calculated for +polygon meshes which don’t already have them. Turning +this on will force new normals to be calculated even for +meshes which had them already.

+
+
+

interpolateBoundary

+

Specifies which parts of mesh boundaries are forced to exactly meet the boundary. +Without this forcing, a subdivision surface will naturally shrink back from the boundary as it +smooths out.

+

Usually, you want to force both edges and corners to exactly meet the boundary. The main reasons to +change this are to use Edge Only if you want to produce curved edges from polygonal boundaries, +or to use None if you’re doing something tricky with seamlessly splitting subdiv meshes by +providing the split meshes with a border of shared polygons in order to get continuous tangents.

+
+
+

faceVaryingLinearInterpolation

+

Specifies where face varying primitive variables should use a simple linear interpolation instead +of being smoothed.

+

In order for UVs to correspond to approximately the same texture areas as the original polygons, +usually you want to, at minimum, pin the outside corners. But pinning the entire boundary causes +some pretty weird discontinuities, so finding the right compromise is tricky.

+

See the OpenSubdiv docs for explanation of the details of options like Corners Plus 1: +https://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#schemes-and-options

+
+
+

triangleSubdivisionRule

+

Option to use a non-standard Smooth subdivision rule that provides slightly better results +at triangular faces in Catmull-Clark meshes than the standard Catmull-Clark algorithm.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/MotionPath.html b/1.4.6.0/Reference/NodeReference/GafferScene/MotionPath.html new file mode 100644 index 000000000..90198f071 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/MotionPath.html @@ -0,0 +1,666 @@ + + + + + + + MotionPath — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MotionPath

+

Creates a motion path curve over the specified frame range for each filtered location. +Note the output scene will be isolated to the matching locations only.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

start

+

The first frame of motion tracking can be specified relative to the current frame or as an absolute value.

+
+
+

start.mode

+

Controls whether start.frame is relative to the current frame or an absolute value.

+
+
+

start.frame

+

The first frame of motion tracking.

+
+
+

end

+

The last frame of motion tracking can be specified relative to the current frame or as an absolute value.

+
+
+

end.mode

+

Controls whether end.frame is relative to the current frame or an absolute value.

+
+
+

end.frame

+

The last frame of motion tracking.

+
+
+

samplingMode

+

Use “Fixed” mode for a curve with a constant vertex count.

+

Use “Variable” mode for a curve sampled at regular step intervals.

+
+

Note

+

This curve may have a changing vertex count over a frame range.

+
+
+

Caution

+

In “Variable” mode it may not be possible to render with +deformation blur enabled. Be sure to disable it via StandardAttributes +if you want to render a variable sampled curve.

+
+
+
+

step

+

The sampling rate between start.frame and end.frame.

+
+

Note

+

start.frame and end.frame will always be sampled +even if the step does not exactly fit the range.

+
+
+

Caution

+

With a small step size it may not be possible to render +with deformation blur enabled.

+
+
+
+

samples

+

The exact number of samples (including start.frame and end.frame) when using a “Fixed” samplingMode.

+
+
+

adjustBounds

+

Opt in or out of bounds calculations.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ObjectToScene.html b/1.4.6.0/Reference/NodeReference/GafferScene/ObjectToScene.html new file mode 100644 index 000000000..dc8c47c2a --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ObjectToScene.html @@ -0,0 +1,616 @@ + + + + + + + ObjectToScene — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ObjectToScene

+

Converts objects to be used with the nodes in the +GafferScene module. Typically these objects would +come from a GafferCortex OpHolder node or ObjectReader +node.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

object

+

The object to be placed in the output scene.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/OpenGLAttributes.html b/1.4.6.0/Reference/NodeReference/GafferScene/OpenGLAttributes.html new file mode 100644 index 000000000..c53dc1e8c --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/OpenGLAttributes.html @@ -0,0 +1,750 @@ + + + + + + + OpenGLAttributes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OpenGLAttributes

+

Applies attributes to modify the appearance of objects in +the viewport and in renders done by the OpenGLRender node.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

attributes

+

The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python.

+
+
+

attributes.primitiveSolid

+

Whether or not the object is rendered solid, in which +case the assigned GLSL shader will be used to perform +the shading.

+
+
+

attributes.primitiveWireframe

+

Whether or not the object is rendered as a wireframe. +Use the primitiveWireframeColor and primitiveWireframeWidth +plugs for finer control of the wireframe appearance.

+
+
+

attributes.primitiveWireframeColor

+

The colour to use for the wireframe rendering. Only +meaningful if wireframe rendering is turned on.

+
+
+

attributes.primitiveWireframeWidth

+

The width in pixels of the wireframe rendering. Only +meaningful if wireframe rendering is turned on.

+
+
+

attributes.primitiveOutline

+

Whether or not an outline is drawn around the object. +Use the primitiveOutlineColor and primitiveOutlineWidth +plugs for finer control of the outline.

+
+
+

attributes.primitiveOutlineColor

+

The colour to use for the outline. Only +meaningful if outline rendering is turned on.

+
+
+

attributes.primitiveOutlineWidth

+

The width in pixels of the outline. Only +meaningful if outline rendering is turned on.

+
+
+

attributes.primitivePoint

+

Whether or not the individual points (vertices) of the +object are drawn. Use the primitivePointColor and primitivePointWidth +plugs for finer control of the point rendering.

+
+
+

attributes.primitivePointColor

+

The colour to use for the point rendering. Only +meaningful if point rendering is turned on.

+
+
+

attributes.primitivePointWidth

+

The width in pixels of the points. Only +meaningful if point rendering is turned on.

+
+
+

attributes.primitiveBound

+

Whether or not the bounding box of the object is drawn. +This is in addition to any drawing of unexpanded bounding +boxes that the viewer performs. Use the primitiveBoundColor +plug to change the colour of the bounding box.

+
+
+

attributes.primitiveBoundColor

+

The colour to use for the bounding box rendering. Only +meaningful if bounding box rendering is turned on.

+
+
+

attributes.pointsPrimitiveUseGLPoints

+

Points primitives have a render type (set by the PointsType +node) which allows them to be rendered as particles, disks, +spheres etc. This attribute overrides that type for OpenGL +only, allowing a much faster rendering as raw OpenGL points.

+
+
+

attributes.pointsPrimitiveGLPointWidth

+

The width in pixels of the GL points rendered when +the pointsPrimitiveUseGLPoints plug has overridden +the point type.

+
+
+

attributes.curvesPrimitiveUseGLLines

+

Curves primitives are typically rendered as ribbons +and as such have an associated width in object space. +This attribute overrides that for OpenGL only, allowing +a much faster rendering as raw OpenGL lines.

+
+
+

attributes.curvesPrimitiveGLLineWidth

+

The width in pixels of the GL lines rendered when +the curvesPrimitiveUseGLLines plug has overridden +the drawing to use lines.

+
+
+

attributes.curvesPrimitiveIgnoreBasis

+

Turns off interpolation for cubic curves, just +rendering straight lines between the vertices +instead.

+
+
+

attributes.visualiserScale

+

Scales non-geometric visualisations in the viewport to make them +easier to work with.

+
+
+

attributes.visualiserMaxTextureResolution

+

Visualisers that load textures will respect this setting to +limit their resolution.

+
+
+

attributes.visualiserFrustum

+

Controls whether applicable locations draw a representation of +their projection or frustum.

+
+
+

attributes.lightDrawingMode

+

Controls how lights are presented in the Viewer.

+
+
+

attributes.lightFrustumScale

+

Allows light projections to be scaled to better suit the scene.

+
+
+

global

+

Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter.

+
+
+

extraAttributes

+

An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the attributes +CompoundDataPlug, with IECoreScene.ShaderNetwork being one example.

+

If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/OpenGLRender.html b/1.4.6.0/Reference/NodeReference/GafferScene/OpenGLRender.html new file mode 100644 index 000000000..d5e9f342b --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/OpenGLRender.html @@ -0,0 +1,665 @@ + + + + + + + OpenGLRender — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OpenGLRender

+

Renders scenes using the same OpenGL engine as is used in the viewer. +Use the OpenGLShader and OpenGLAttributes nodes to specify the appearance +of objects within the render.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

in

+

The scene to be rendered.

+
+
+

mode

+

The type of render to perform.

+
+
+

fileName

+

The name of the file to be generated when in scene description mode.

+
+
+

out

+

A direct pass-through of the input scene.

+
+
+

resolvedRenderer

+

The renderer that will be used, accounting for the value of the +render:defaultRenderer option if renderer is set to “Default”.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/OpenGLShader.html b/1.4.6.0/Reference/NodeReference/GafferScene/OpenGLShader.html new file mode 100644 index 000000000..7f7af8e93 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/OpenGLShader.html @@ -0,0 +1,619 @@ + + + + + + + OpenGLShader — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OpenGLShader

+

Loads GLSL shaders for use in the viewer and the OpenGLRender node. +GLSL shaders are loaded from *.frag and *.vert files in directories +specified by the IECOREGL_SHADER_PATHS environment variable.

+

Use the ShaderAssignment node to assign shaders to objects in the +scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

type

+

The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

attributeSuffix

+

Suffix for the attribute used for shader assignment.

+
+
+

parameters

+

Where the parameters for the shader are represented.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

out

+

The output from the shader.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/OptionQuery.html b/1.4.6.0/Reference/NodeReference/GafferScene/OptionQuery.html new file mode 100644 index 000000000..f676e3886 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/OptionQuery.html @@ -0,0 +1,604 @@ + + + + + + + OptionQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OptionQuery

+

Queries global scene options, creating an output for each option.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

scene

+

The scene to query the options from.

+
+
+

queries

+

The options to be queried - arbitrary numbers of options may be added +as children of this plug via the user interface, or via python. Each +child is a NameValuePlug whose name plug is the option to query, +and whose value plug is the default value to use if the option can +not be retrieved.

+
+
+

out

+

The parent plug of the query outputs. The order of outputs corresponds +to the order of children of queries.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/OptionTweaks.html b/1.4.6.0/Reference/NodeReference/GafferScene/OptionTweaks.html new file mode 100644 index 000000000..aecfb531c --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/OptionTweaks.html @@ -0,0 +1,610 @@ + + + + + + + OptionTweaks — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OptionTweaks

+

Makes modifications to options.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

ignoreMissing

+

Ignores tweaks targeting missing options. When off, missing options +cause the node to error.

+
+
+

tweaks

+

The tweaks to be made to the options. Arbitrary numbers of user defined +tweaks may be added as children of this plug via the user interface, or +using the OptionTweaks API via python.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Options.html b/1.4.6.0/Reference/NodeReference/GafferScene/Options.html new file mode 100644 index 000000000..bdac59f68 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Options.html @@ -0,0 +1,618 @@ + + + + + + + Options — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Options

+

The base type for nodes that apply options to the scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

options

+

The options to be applied - arbitrary numbers of user defined options may be added +as children of this plug via the user interface, or using the CompoundDataPlug API via +python.

+
+
+

extraOptions

+

An additional set of options to be added. Arbitrary numbers +of options may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an option. +This is convenient when using an expression to define the options +and the option count might be dynamic. It can also be used to +create options whose type cannot be handled by the options +CompoundDataPlug.

+

If the same option is defined by both the options and the +extraOptions plugs, then the value from the extraOptions +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Orientation.html b/1.4.6.0/Reference/NodeReference/GafferScene/Orientation.html new file mode 100644 index 000000000..8a14a0577 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Orientation.html @@ -0,0 +1,751 @@ + + + + + + + Orientation — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Orientation

+

Converts between different representations of orientation, stored as +primitive variables on an object. Supported representations include +euler angles, quaternions, axis-angle form, aim vectors and matrices.

+

Typically used to prepare points for instancing, as the Instancer node +requires orientation to be provided as a quaternion, but it is often +more convenient to prepare orientations in another representation.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

inMode

+

The method used to define the input orientations.

+
+
+

deleteInputs

+

Deletes the input primitive variables, so that they are +not present on the output object.

+
+
+

inEuler

+

Name of the primitive variable that defines the input orientation +as euler angles, measured in degrees. This variable should contain +V3fVectorData.

+
+
+

inOrder

+

The rotation order of the input euler angles.

+
+
+

inQuaternion

+

Name of the primitive variable that defines the input orientation +as quaternions. This variable should contain QuatfVectorData.

+
+
+

inAxis

+

Name of the primitive variable that defines the axis component of +the input orientations. This variable should contain V3fVectorData.

+
+
+

inAngle

+

Name of the primitive variable that defines the angle component of +the input orientations. This variable should contain FloatVectorData.

+
+
+

inXAxis

+

Name of the primitive variable that defines the direction in which the +X axis will be aimed. This variable should contain V3fVectorData.

+
+
+

inYAxis

+

Name of the primitive variable that defines the direction in which the +Y axis will be aimed. This variable should contain V3fVectorData.

+
+
+

inZAxis

+

Name of the primitive variable that defines the direction in which the +Z axis will be aimed. This variable should contain V3fVectorData.

+
+
+

inMatrix

+

Name of the primitive variable that defines the input orientations as +a matrix. This variable should contain M33fVectorData.

+
+
+

randomEnabled

+

Enables randomisation of the orientations. Randomisation +is applied as a pre-transform of the input orientation.

+
+
+

randomAxis

+

A reference axis which the randomisation is specified relative +to. Typically this would be the primary axis of the model being +instanced.

+
+
+

randomSpread

+

Applies a random rotation away from the axis, specified in +degrees. The maximum spread of 180 degrees gives a uniform +randomisation over all possible directions.

+
+
+

randomTwist

+

Applies a random rotation around the axis, specified in +degrees.

+
+
+

randomSpace

+

The space in which the randomisation is specified. This defines +how it is combined with the input orientations.

+

Local +: The randomisation is specified in local space and +is therefore post-multiplied onto the input orientations. +When using the Instancer, this is equivalent to randomising +the prototypes before they are instanced.

+

Parent +: The transformation is specified in parent space and +is therefore pre-multiplied onto the input orientations. +When using the Instancer, this is equivalent to randomising +the instances after they are positioned.

+
+
+

outMode

+

The method used to define the output orientations. When +creating orientations for the Instancer, the Quaternion +mode should be used.

+
+
+

outEuler

+

Name of the primitive variable that will be created to store +the output orientations as euler angles, measured in degrees.

+
+
+

outOrder

+

The rotation order of the output euler angles.

+
+
+

outQuaternion

+

Name of the primitive variable that will be created to store +the output orientations as quaternions.

+
+
+

outAxis

+

Name of the primitive variable that will be created to store +the axis component of the output orientation.

+
+
+

outAngle

+

Name of the primitive variable that will be created to store +the angle component of the output orientation.

+
+
+

outXAxis

+

Name of the primitive variable that will be created to store +the x-axis aim vector of the output orientation.

+
+
+

outYAxis

+

Name of the primitive variable that will be created to store +the y-axis aim vector of the output orientation.

+
+
+

outZAxis

+

Name of the primitive variable that will be created to store +the z-axis aim vector of the output orientation.

+
+
+

outMatrix

+

Name of the primitive variable that will be created to store +the output orientations as matrices. The matrices will be +stored as M33fVectorData.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Outputs.html b/1.4.6.0/Reference/NodeReference/GafferScene/Outputs.html new file mode 100644 index 000000000..deda75525 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Outputs.html @@ -0,0 +1,607 @@ + + + + + + + Outputs — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Outputs

+

Defines the image outputs to be created by the renderer. Arbitrary +outputs can be defined within the UI and also via the +Outputs::addOutput() API. Commonly used outputs may also +be predefined at startup via a config file - see +$GAFFER_ROOT/startup/gui/outputs.py for an example.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

outputs

+

The outputs defined by this node.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Parameters.html b/1.4.6.0/Reference/NodeReference/GafferScene/Parameters.html new file mode 100644 index 000000000..588e9eb40 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Parameters.html @@ -0,0 +1,611 @@ + + + + + + + Parameters — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Parameters

+

Modifies the parameters of cameras and procedurals. +Existing parameters can be tweaked and new parameters be added.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

parameters

+

The parameters to be added - any number of arbitrary +parameters may be specified here using either the user +interface or the CompoundDataPlug API.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Parent.html b/1.4.6.0/Reference/NodeReference/GafferScene/Parent.html new file mode 100644 index 000000000..ce2e4b69e --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Parent.html @@ -0,0 +1,632 @@ + + + + + + + Parent — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Parent

+

Parents additional child hierarchies into the main scene hierarchy.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

parent

+

The location which the children are parented under. This is +ignored when a filter is connected, in which case the children +are parented under all the locations matched by the filter.

+
+
+

destination

+

The location where the children will be placed in the output scene. +The default is to place the children under the parent, but they may +be relocated anywhere while still inheriting the parent’s transform. +This is particularly useful when parenting lights to geometry but +wanting to group them and control their visibility separately.

+

When the destination is evaluated, the ${scene:path} variable holds +the source location matched by the filter. This allows the children +to be placed relative to the “parent”. For example, ${scene:path}/.. +will place the children alongside the “parent” rather than under it.

+
+
+

children

+

The child hierarchies to be parented.

+
+
+

parentVariable

+

A context variable used to pass the location of the parent to the +upstream nodes connected into the children plug. This can be used +to procedurally vary the children at each different parent location.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ParentConstraint.html b/1.4.6.0/Reference/NodeReference/GafferScene/ParentConstraint.html new file mode 100644 index 000000000..f123e0c76 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ParentConstraint.html @@ -0,0 +1,669 @@ + + + + + + + ParentConstraint — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ParentConstraint

+

Constrains objects from one part of the scene hierarchy as if they were +children of another part of the hierarchy.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

targetScene

+

The scene containing the target location to which objects are +constrained. If this is unconnected, the main input scene +is used instead.

+
+
+

target

+

The scene location to which the objects are constrained. +The world space transform of this location forms the basis +of the constraint target, but is modified by the targetMode +and targetOffset values before the constraint is applied.

+
+
+

ignoreMissingTarget

+

Causes the constraint to do nothing if the target location +doesn’t exist in the scene, instead of erroring.

+
+
+

targetMode

+

The precise location of the target transform - this can be +derived from the origin, bounding box or from a specific primitive +uv coordinate or vertex id of the target location.

+
+
+

targetUV

+

UV coordinate used in “UV” target mode. +The node will error if the specified uv coordinate is out of range or does not map unambiguously +to a single position on the primitive’s surface unless ignoreMissingTarget is true.

+
+
+

targetVertex

+

Vertex id used in “Vertex” target mode. +The node will error if the specified vertex id is out of range unless ignoreMissingTarget is true. +The node will error if the specified primitive does not have a set of uvs named “uv” with +FaceVarying or Vertex interpolation unless ignoreMissingTarget is true. The uvs will be used to +construct a local coordinate frame.

+
+
+

targetOffset

+

An offset applied to the target transform before the constraint +is applied. The offset is measured in the object space of the +target location unless the target mode is UV or Vertex in which case +the offset is measured relative to the local surface coordinate frame.

+
+
+

keepReferencePosition

+

Adjusts the constraint so that the original position of the object +at the referenceFrame is maintained.

+
+
+

referenceFrame

+

The reference frame used by the keepReferencePosition mode. The constraint +is adjusted so that the original position at this frame is maintained.

+
+
+

relativeTransform

+

Transforms the constrained object relative to the target location.

+
+

Note

+

This is ignored when keepReferencePosition is on. In this case it is easier +to modify the reference position instead.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/PathFilter.html b/1.4.6.0/Reference/NodeReference/GafferScene/PathFilter.html new file mode 100644 index 000000000..6e35cd8ad --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/PathFilter.html @@ -0,0 +1,628 @@ + + + + + + + PathFilter — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PathFilter

+

Chooses locations by matching them against a list of +paths.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

The on/off state of the filter. When it is off, the +filter does not match any locations.

+
+
+

out

+

The result of the filter. This should be connected into +the “filter” plug of a FilteredSceneProcessor.

+
+
+

paths

+

The list of paths to the locations to be matched by the filter. +A path is formed by a sequence of names separated by /, and +specifies the hierarchical position of a location within the scene. +Paths may use Gaffer’s standard wildcard characters to match +multiple locations.

+

The * wildcard matches any sequence of characters within +an individual name, but never matches across names separated +by a /.

+
    +
  • /robot/*Arm matches /robot/leftArm, /robot/rightArm and +/robot/Arm. But does not match /robot/limbs/leftArm or +/robot/arm.

  • +
+

The ... wildcard matches any sequence of names, and can be +used to match locations no matter where they are parented in +the hierarchy.

+
    +
  • /.../house matches /house, /street/house and /city/street/house.

  • +
+
+
+

roots

+

An optional filter input used to provide multiple root locations +which the paths are relative to. This can be useful when working +on a single asset in isolation, and then placing it into multiple +locations within a layout. When no filter is connected, all paths +are treated as being relative to /, the true scene root.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Plane.html b/1.4.6.0/Reference/NodeReference/GafferScene/Plane.html new file mode 100644 index 000000000..c9b30a5be --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Plane.html @@ -0,0 +1,618 @@ + + + + + + + Plane — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Plane

+

Produces scenes containing a plane.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

dimensions

+

The size of the plane in the X and Y directions.

+
+
+

divisions

+

The number of subdivisions of the plane in the +X and Y directions.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/PointConstraint.html b/1.4.6.0/Reference/NodeReference/GafferScene/PointConstraint.html new file mode 100644 index 000000000..872bba39d --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/PointConstraint.html @@ -0,0 +1,683 @@ + + + + + + + PointConstraint — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PointConstraint

+

Translates objects so that they are constrained to +the world space position of the target. Leaves the +scale and orientation of the object untouched.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

targetScene

+

The scene containing the target location to which objects are +constrained. If this is unconnected, the main input scene +is used instead.

+
+
+

target

+

The scene location to which the objects are constrained. +The world space transform of this location forms the basis +of the constraint target, but is modified by the targetMode +and targetOffset values before the constraint is applied.

+
+
+

ignoreMissingTarget

+

Causes the constraint to do nothing if the target location +doesn’t exist in the scene, instead of erroring.

+
+
+

targetMode

+

The precise location of the target transform - this can be +derived from the origin, bounding box or from a specific primitive +uv coordinate or vertex id of the target location.

+
+
+

targetUV

+

UV coordinate used in “UV” target mode. +The node will error if the specified uv coordinate is out of range or does not map unambiguously +to a single position on the primitive’s surface unless ignoreMissingTarget is true.

+
+
+

targetVertex

+

Vertex id used in “Vertex” target mode. +The node will error if the specified vertex id is out of range unless ignoreMissingTarget is true. +The node will error if the specified primitive does not have a set of uvs named “uv” with +FaceVarying or Vertex interpolation unless ignoreMissingTarget is true. The uvs will be used to +construct a local coordinate frame.

+
+
+

targetOffset

+

An offset applied to the target transform before the constraint +is applied. The offset is measured in the object space of the +target location unless the target mode is UV or Vertex in which case +the offset is measured relative to the local surface coordinate frame.

+
+
+

keepReferencePosition

+

Adjusts the constraint so that the original position of the object +at the referenceFrame is maintained.

+
+
+

referenceFrame

+

The reference frame used by the keepReferencePosition mode. The constraint +is adjusted so that the original position at this frame is maintained.

+
+
+

xEnabled

+

Enables the constraint in the world space x axis.

+
+
+

yEnabled

+

Enables the constraint in the world space y axis.

+
+
+

zEnabled

+

Enables the constraint in the world space z axis.

+
+
+

offset

+

A world space translation offset applied on top +of the target position.

+
+

Note

+

This is ignored when keepReferencePosition is on. In this case it is easier +to modify the reference position instead.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/PointsType.html b/1.4.6.0/Reference/NodeReference/GafferScene/PointsType.html new file mode 100644 index 000000000..af5084bba --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/PointsType.html @@ -0,0 +1,610 @@ + + + + + + + PointsType — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PointsType

+

Changes the render type for PointsPrimitive objects. +Depending on the renderer, points may be rendered as +particles, spheres, disks, patches or blobbies.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

type

+

The render type to assign.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/PrimitiveVariableExists.html b/1.4.6.0/Reference/NodeReference/GafferScene/PrimitiveVariableExists.html new file mode 100644 index 000000000..7341e2699 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/PrimitiveVariableExists.html @@ -0,0 +1,600 @@ + + + + + + + PrimitiveVariableExists — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PrimitiveVariableExists

+

Returns true if the given primitive variable exists in the input scene +in the current scene path location.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

in

+

The scene to look for variables in.

+
+
+

primitiveVariable

+

The name of the primitive vairable to check for.

+
+
+

out

+

True if the given primitive variable exists.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/PrimitiveVariableQuery.html b/1.4.6.0/Reference/NodeReference/GafferScene/PrimitiveVariableQuery.html new file mode 100644 index 000000000..d21bfebfc --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/PrimitiveVariableQuery.html @@ -0,0 +1,614 @@ + + + + + + + PrimitiveVariableQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PrimitiveVariableQuery

+

Queries primitive variables at a scene location, creating an output for +each primitive variable.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

scene

+

The scene to query the primitive variable from.

+
+
+

location

+

The location within the scene to query the primitive variable at.

+
+

Note

+

If the location does not exist then the query will not be +performed and all outputs will be set to their default values.

+
+
+
+

queries

+

The primitive variables to be queried - arbitrary numbers of primitive +variables may be added as children of this plug via the user interface, +or via python. Each child is a NameValuePlug whose name plug is the +name of the primitive variable to query, and whose value plug is the +default value to use if the primitive variable can not be retrieved.

+
+
+

out

+

The parent plug of the query outputs. The order of outputs corresponds +to the order of children of queries.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/PrimitiveVariables.html b/1.4.6.0/Reference/NodeReference/GafferScene/PrimitiveVariables.html new file mode 100644 index 000000000..e57e198a5 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/PrimitiveVariables.html @@ -0,0 +1,613 @@ + + + + + + + PrimitiveVariables — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PrimitiveVariables

+

Adds arbitrary primitive variables to objects. Currently only primitive +variables with constant interpolation are supported - see the OSLObject +node for a means of creating variables with vertex interpolation.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

primitiveVariables

+

The primitive variables to be applied - arbitrary numbers of user +defined primitive variables may be added as children of this plug +via the user interface, or using the CompoundDataPlug API via +python.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Prune.html b/1.4.6.0/Reference/NodeReference/GafferScene/Prune.html new file mode 100644 index 000000000..3fda9635b --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Prune.html @@ -0,0 +1,611 @@ + + + + + + + Prune — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Prune

+

A node for removing whole branches from the scene hierarchy.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

Filter to specify the branches to prune. The specified +locations and all locations below them will be removed from +the scene.

+
+
+

adjustBounds

+

Computes new tightened bounding boxes taking into account +the removed locations. This can be an expensive operation - +turn on with care.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Rename.html b/1.4.6.0/Reference/NodeReference/GafferScene/Rename.html new file mode 100644 index 000000000..b3b8530bd --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Rename.html @@ -0,0 +1,698 @@ + + + + + + + Rename — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Rename

+

Renames locations in the scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

name

+

The new name for the location. If this name is non-empty then it +takes precedence, and all other renaming operations are ignored.

+
+

Tip

+

The ${scene:path} context variable contains the +location’s original name, and can be used in a Spreadsheet’s +selector to allow each row to define the new name for a +particular location.

+
+
+
+

deletePrefix

+

A prefix to remove from the start of the original name. Prefixes are removed +before the suffixes and before the find and replace operation is +performed.

+
+
+

deleteSuffix

+

A suffix to remove from the start of the original name. Suffixes are removed +before the find and replace operation is performed.

+
+
+

find

+

A string to search for within the original name. All occurrences of this string +will be replaced with the value of replace. When useRegularExpressions +is on, the search string is treated as a regular expression, with the +following syntax :

+
+
+

Matching

+
    +
  • . : Matches any character.

  • +
  • [aef] : Matches any character in the set.

  • +
  • [^aef] : Matches any character not in the set.

  • +
  • [a-z] : Matches any character in the specified range.

  • +
  • [[:digit:]] : Matches any numeric digit.

  • +
  • [[:space:]] : Matches any whitespace character.

  • +
+
+
+

Repetition

+
    +
  • * : Matches the preceding pattern any number of times (including none).

  • +
  • + : Matches the preceding pattern 1 or more times.

  • +
  • {N} : Matches the preceding pattern N times.

  • +
  • {M,N} : Matches the preceding pattern between M and N times.

  • +
+
+
+

Alternatives

+
    +
  • A|B : Matches either pattern A or pattern B.

  • +
+
+
+

Captures

+
    +
  • () : Captures the subgroup of the pattern within the brackets, +allowing it to be referenced by {} in the replace string.

  • +
+
+
+

replace

+

The replacement for strings matched by the find plug. +When useRegularExpressions is on, this can refer to +captured patterns using Python’s standard string formatting +syntax :

+
    +
  • {0} : The entire string matched by the regular expresion.

  • +
  • {1} : The 1st subgroup captured within () brackets by the find string.

  • +
  • {N} : The Nth subgroup captured within () brackets by the find string.

  • +
  • {1:0>4} : The 1st subgroup, aligned to the right and padded to width 4.

  • +
+
+
+

useRegularExpressions

+

When on, the find string is treated as a regular expression, +allowing it to perform complex pattern matching and to capture sections +of the match to be referenced by the replace string.

+
+
+

addPrefix

+

A string to add at the start of the name. Prefixes are +added last, after the find and replace operation has +been performed.

+
+
+

addSuffix

+

A string to add at the end of the name. Suffixes are +added last, after the find and replace operation has +been performed.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Render.html b/1.4.6.0/Reference/NodeReference/GafferScene/Render.html new file mode 100644 index 000000000..206343010 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Render.html @@ -0,0 +1,672 @@ + + + + + + + Render — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Render

+

Performs offline batch rendering using any of the +available renderer backends, or optionally writes +scene descriptions to disk for later rendering via +a SystemCommand node.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

in

+

The scene to be rendered.

+
+
+

renderer

+

The renderer to use. Default mode uses the render:defaultRenderer option from +the input scene globals to choose the renderer. This can be authored using +the StandardOptions node.

+
+
+

mode

+

The type of render to perform.

+
+
+

fileName

+

The name of the file to be generated when in scene description mode.

+
+
+

out

+

A direct pass-through of the input scene.

+
+
+

resolvedRenderer

+

The renderer that will be used, accounting for the value of the +render:defaultRenderer option if renderer is set to “Default”.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/RenderPassShader.html b/1.4.6.0/Reference/NodeReference/GafferScene/RenderPassShader.html new file mode 100644 index 000000000..e43f8b2f0 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/RenderPassShader.html @@ -0,0 +1,614 @@ + + + + + + + RenderPassShader — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RenderPassShader

+

Sets up a global shader in the options to replace a shader used by a render pass type.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

shader

+

The shader to be assigned. This will be stored as an +option within the scene globals.

+
+
+

renderer

+

The renderer the shader should affect. Shaders assigned to a specific +renderer will take precedence over shaders assigned to “All” when +rendering with that renderer.

+
+
+

usage

+

How the shader is to be used.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/RenderPassTypeAdaptor.html b/1.4.6.0/Reference/NodeReference/GafferScene/RenderPassTypeAdaptor.html new file mode 100644 index 000000000..464f40943 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/RenderPassTypeAdaptor.html @@ -0,0 +1,609 @@ + + + + + + + RenderPassTypeAdaptor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RenderPassTypeAdaptor

+

Adapts render pass types to a client and renderer. The behaviour of +how each render pass type is adapted is defined by one or more type +processors registered to this node.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

client

+

The client to adapt render pass types to.

+
+
+

renderer

+

The renderer to adapt render pass types to.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/RenderPassWedge.html b/1.4.6.0/Reference/NodeReference/GafferScene/RenderPassWedge.html new file mode 100644 index 000000000..36c75e23b --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/RenderPassWedge.html @@ -0,0 +1,677 @@ + + + + + + + RenderPassWedge — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RenderPassWedge

+

Causes upstream nodes to be dispatched multiple times in a range +of contexts, each time with a different value for the renderPass +context variable. Each value of renderPass is the name of a +render pass created from one or more RenderPasses nodes in the +network upstream of the in plug.

+
+

Tip

+

Typically, a RenderPassWedge would be placed downstream of +your render node of choice, allowing render tasks to be dispatched +for each render pass.

+
+

Tasks can be varied per pass by using ${renderPass} in an upstream +Spreadsheet or NameSwitch’s selector or through use of a +ContextQuery node or an expression.

+

Specific passes can be disabled from wedging by setting the +renderPass:enabled option to False in contexts where that render +pass name is the value of the renderPass context variable.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

in

+

The input scene containing the render passes to wedge.

+
+
+

out

+

A direct pass-through of the input scene.

+
+
+

names

+

The names of the render passes to be wedged.

+
+

Note

+

Render pass names are queried at the +script’s start frame to ensure they do not vary +over time and to prevent scenes with expensive +globals from slowing task dispatch.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/RenderPasses.html b/1.4.6.0/Reference/NodeReference/GafferScene/RenderPasses.html new file mode 100644 index 000000000..796cce275 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/RenderPasses.html @@ -0,0 +1,624 @@ + + + + + + + RenderPasses — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RenderPasses

+

Appends render passes to the scene globals.

+

Render passes can be used to define named variations of a scene. +These can be rendered by dispatching a RenderPassWedge node downstream +of your render node of choice, or written to disk by dispatching +a RenderPassWedge node downstream of a SceneWriter.

+

Scenes can be varied per render pass based on the value of the +renderPass context variable, which will contain the name of the +current render pass being dispatched. ${renderPass} can be used +on the selector plug of Spreadsheet or NameSwitch nodes to choose +specific plug values or branches of the node graph per render pass, +and its value can be queried using Expression or ContextQuery nodes.

+
+

Tip

+

The list of render passes is stored in the renderPass:names +option in the scene globals.

+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

names

+

The names of render passes to be created.

+
+

Tip

+

If any of the specified names already exist, they +will be removed from their existing position in the list +and appended to the end.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ResamplePrimitiveVariables.html b/1.4.6.0/Reference/NodeReference/GafferScene/ResamplePrimitiveVariables.html new file mode 100644 index 000000000..32f6e1b43 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ResamplePrimitiveVariables.html @@ -0,0 +1,727 @@ + + + + + + + ResamplePrimitiveVariables — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ResamplePrimitiveVariables

+

Resamples the list of primitive variables in Names for either mesh, curves or point primitives.

+

The reampling algorithm either expands or reduces each primitive variable's data based on the primitive type, primitive variable source interpolation and target interpolation as detailed in the tables below

+

Mesh Primitive

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
source / targetConstantUniformVertexFaceVarying
Constant-copycopycopy
Uniformaverage-copycopy
Vertex / Varyingaveragepolygon average-copy
FaceVaryingaveragepolygon averagevertex average-
+

Curves Primitive

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
source / targetConstantUniformVertexFaceVarying
Constant-copycopycopy
Uniformaverage-copycopy
Vertexaveragecurve average-evaluated
Varying / FaceVaryingaveragecurve averageevaluated-
+

Points Primitive

+ + + + + + + + + + + + + + + + + + + + + + + + + +
source / targetConstantUniformVertex / FaceVarying
Constant-copycopy
Uniformcopy-copy
Vertex / Varying / FaceVaryingaverageaverage-
+

evaluated : spline evaluated to approximate vertex or varying values

+

copy : expand source values to target based on topology

+

average : calculate the mean of the primitive variable (either for the whole primitive, for face / curve or vertex)

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

names

+

The names of the primitive variables to be affected. +Names should be separated by spaces, and Gaffer’s +standard wildcard characters may be used.

+
+
+

invertNames

+

When on, the primitive variables matched by names +are unaffected, and the non-matching primitive +variables are affected instead.

+
+
+

interpolation

+

Target interpolation for the primitive variables

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ReverseWinding.html b/1.4.6.0/Reference/NodeReference/GafferScene/ReverseWinding.html new file mode 100644 index 000000000..460e43008 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ReverseWinding.html @@ -0,0 +1,607 @@ + + + + + + + ReverseWinding — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ReverseWinding

+

Reverses the winding order of each face of a mesh; this has the effect +of flipping the geometric normal. In Gaffer, a face is considered to +be front-facing if its vertices are wound in counter-clockwise order +relative to the viewer.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Scatter.html b/1.4.6.0/Reference/NodeReference/GafferScene/Scatter.html new file mode 100644 index 000000000..32a7371df --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Scatter.html @@ -0,0 +1,673 @@ + + + + + + + Scatter — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Scatter

+

Scatters points evenly over the surface of meshes. +This can be particularly useful in conjunction with +the Instancer, which can then apply instances to +each point.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

parent

+

The location of the mesh to scatter the +points over. The generated points will +be parented under this location. This is +ignored when a filter is connected, in +which case the filter may specify multiple +locations containing meshes to scatter points +over.

+
+
+

destination

+

The location where the points primitives will be placed in the output scene. +When the destination is evaluated, the ${scene:path} variable holds +the location of the source mesh, so the default value parents the points +under the mesh.

+
+

Tip

+

${scene:path}/.. may be used to place the points alongside the +source mesh.

+
+
+
+

name

+

The name given to the object generated - +this will be placed under the parent in +the scene hierarchy.

+
+
+

density

+

The number of points per unit area of the mesh, +measured in object space.

+
+
+

densityPrimitiveVariable

+

A float primitive variable used to specify a varying +point density across the surface of the mesh. Multiplied +with the density setting above.

+
+
+

referencePosition

+

If you want to preserve the uv positions of the points while the mesh animates, you can +set up an alternate reference position primitive variable ( usually the same as P, but +not animated ). This primitive variable will be used to compute the areas of the faces, +and therefore how many points each face receives.

+
+
+

uv

+

The UV set used to distribute points. The size of faces in 3D space is used to determine +the number of points on each face, so the UV set should not affect the overall look of +the distribution for a particular seed, but using the UVs provides continuity when +adjusting density. If polygons that are large in 3D space are small and narrow in UV +space for the given UV set, you may encounter performance problems.

+
+
+

primitiveVariables

+

Primitive variables to sample from the source mesh and output on the generated points. +Supports a Gaffer match pattern, with multiple space seperated variable names, optionally +using * as a wildcard.

+
+
+

pointType

+

The render type of the points. This defaults to +“gl:point” so that the points are rendered in a +lightweight manner in the viewport.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/SceneElementProcessor.html b/1.4.6.0/Reference/NodeReference/GafferScene/SceneElementProcessor.html new file mode 100644 index 000000000..954c53585 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/SceneElementProcessor.html @@ -0,0 +1,606 @@ + + + + + + + SceneElementProcessor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SceneElementProcessor

+

Base class for nodes which modify individual scene +locations, but do not alter the hierarchy in any +way.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/SceneNode.html b/1.4.6.0/Reference/NodeReference/GafferScene/SceneNode.html new file mode 100644 index 000000000..c83ab35bf --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/SceneNode.html @@ -0,0 +1,597 @@ + + + + + + + SceneNode — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SceneNode

+

The base type for all nodes which are capable of generating a +hierarchical scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/SceneProcessor.html b/1.4.6.0/Reference/NodeReference/GafferScene/SceneProcessor.html new file mode 100644 index 000000000..3677f89d8 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/SceneProcessor.html @@ -0,0 +1,599 @@ + + + + + + + SceneProcessor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SceneProcessor

+

The base type for all nodes which take an input scene and process it in some way.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/SceneReader.html b/1.4.6.0/Reference/NodeReference/GafferScene/SceneReader.html new file mode 100644 index 000000000..a129152d8 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/SceneReader.html @@ -0,0 +1,621 @@ + + + + + + + SceneReader — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SceneReader

+

The primary means of loading external assets (models, animation and cameras etc) +from caches into Gaffer. Gaffer’s native file format is the .scc (SceneCache) format +provided by Cortex, but Alembic and USD files are also supported. Other formats may be +added by registering a new implementation of Cortex’s abstract SceneInterface.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

fileName

+

The name of the file to be loaded. The file can be +in any of the formats supported by Cortex’s SceneInterfaces.

+

Supported file extensions : abc, lscc, scc, usd, usda, usdc, usdz, vdb

+
+
+

refreshCount

+

May be incremented to force a reload if the file has +changed on disk - otherwise old contents may still +be loaded via Gaffer’s cache.

+
+
+

tags

+

Limits the parts of the scene loaded to only those +with a specific set of tags.

+
+
+

transform

+

The transform used to position the cache. This is applied to +all children of the cache root.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/SceneWriter.html b/1.4.6.0/Reference/NodeReference/GafferScene/SceneWriter.html new file mode 100644 index 000000000..1ec49978f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/SceneWriter.html @@ -0,0 +1,660 @@ + + + + + + + SceneWriter — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SceneWriter

+

Writes scenes to cache files on disk. Gaffer’s native file format is the .scc +(SceneCache) format provided by Cortex, but other formats may be supported by +registering a new implementation of Cortex’s abstract SceneInterface.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

in

+

The scene to be written.

+
+
+

fileName

+

The name of the file to be written. Note that unlike +image sequences, many scene formats write animation into +a single file, so using # characters to specify a frame +number is generally not necessary.

+

Supported file extensions : abc, lscc, scc, usd, usda, usdc, usdz

+
+
+

out

+

A direct pass-through of the input scene.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Set.html b/1.4.6.0/Reference/NodeReference/GafferScene/Set.html new file mode 100644 index 000000000..4151f37d4 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Set.html @@ -0,0 +1,642 @@ + + + + + + + Set — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Set

+

Creates and edits sets of objects. Each set contains a list of paths +to locations within the scene. After creation, sets can be used +by the SetFilter to limit scene operations to only the members of +a particular set.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

Defines the locations to be added to or removed from the set.

+
+
+

mode

+

Create mode creates a new set containing only the +specified paths. If a set with the same name already +exists, it is replaced.

+

Add mode adds the specified paths to an existing set, +keeping the paths already in the set. If the set does +not exist yet, this is the same as create mode.

+

Remove mode removes the specified paths from an +existing set. If the set does not exist yet, nothing +is done.

+
+
+

name

+

The name of the set that will be created or edited. Multiple sets +may be created or modified by entering their names separated by +spaces. Wildcards may also be used to match multiple input sets to +be modified.

+
+
+

setVariable

+

A context variable created to pass the name of the set +being processed to the nodes connected to the filter +plug. This can be used to vary the filter for each set.

+
+
+

paths

+

The paths to be added to or removed from the set.

+
+

Caution

+

This plug is deprecated and will be removed +in a future release. No validity checks are performed on +these paths, so it is possible to accidentally generate +invalid sets.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/SetFilter.html b/1.4.6.0/Reference/NodeReference/GafferScene/SetFilter.html new file mode 100644 index 000000000..c499a8578 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/SetFilter.html @@ -0,0 +1,622 @@ + + + + + + + SetFilter — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SetFilter

+

A filter which uses sets to define which locations are matched.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

The on/off state of the filter. When it is off, the +filter does not match any locations.

+
+
+

out

+

The result of the filter. This should be connected into +the “filter” plug of a FilteredSceneProcessor.

+
+
+

setExpression

+

A set expression that computes a set that defines +the locations to be matched.

+

For example, the expression mySpheresSet | myCubesSet +will create a set that contains all objects in +mySpheresSet and myCubesSet.

+

Gaffer supports the union operator (|) as shown in the +example and also provides intersection (&) and difference (-) +operations for set expressions. Names of locations +can be used to represent a set that contains only +that one location.

+

In addition, the in and containing operators can be +used to query descendant and ancestor matches. For example, +materialA in assetB will select all locations in the materialA +set that are at or below locations in the assetB set. This +allows leaf matches to be made against sets that only contain +root or parent locations. allAssets containing glass will +selection locations in allAssets that have children in the +glass set.

+

For more examples please consult the Scripting Reference +section in Gaffer’s documentation.

+

The context menu of the set expression text field provides +entries that help construct set expressions.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/SetQuery.html b/1.4.6.0/Reference/NodeReference/GafferScene/SetQuery.html new file mode 100644 index 000000000..492bc0eb0 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/SetQuery.html @@ -0,0 +1,616 @@ + + + + + + + SetQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SetQuery

+

Queries the set memberships of a location, and outputs a list of +the sets that it belongs to.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

scene

+

The scene to query.

+
+
+

location

+

The location to query the set memberships for.

+
+
+

sets

+

The sets to query.

+
+
+

inherit

+

When on, locations are treated as being in a set if an +ancestor location is in that set.

+
+
+

matches

+

The list of sets that the location is a member of. Returned in the +order they are listed in the sets plug.

+
+
+

firstMatch

+

The first set from the matches output, or "" if there were no matches. +This is particularly convenient for use in a Spreadsheet’s selector, to +select rows based on the set membership of a location.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/SetVisualiser.html b/1.4.6.0/Reference/NodeReference/GafferScene/SetVisualiser.html new file mode 100644 index 000000000..429a7d2b7 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/SetVisualiser.html @@ -0,0 +1,630 @@ + + + + + + + SetVisualiser — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SetVisualiser

+

Visualises Set membership values by applying a custom shader and coloring +based on which sets each object belongs to. Membership of more than one set +is visualised by a stripe pattern.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

sets

+

A space separated list of sets to consider membership of. This +supports wild cards, eg: asset:* to allow membership display to +focus on a specific group of sets. Right-click to insert the name +of any sets in the input scene.

+
+
+

includeInherited

+

When enabled, objects that inherit Set membership from their parents +will also be coloured. Disabling this will only color objects that +are exactly matched by any given Set.

+
+
+

stripeWidth

+

The thickness (in pixels) of the stripes used to indicate an object +is in more than one set.

+
+
+

colorOverrides

+

Allows the randomly generated set colors to be overridden by +specific colors to use for Sets matching the supplied filter. This +can be a name, or a match string.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Shader.html b/1.4.6.0/Reference/NodeReference/GafferScene/Shader.html new file mode 100644 index 000000000..7329cfe8d --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Shader.html @@ -0,0 +1,612 @@ + + + + + + + Shader — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Shader

+

The base type for all nodes which create shaders. Use the +ShaderAssignment node to assign them to objects in the scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

type

+

The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

attributeSuffix

+

Suffix for the attribute used for shader assignment.

+
+
+

parameters

+

Where the parameters for the shader are represented.

+
+
+

enabled

+

Turns the node on and off.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ShaderAssignment.html b/1.4.6.0/Reference/NodeReference/GafferScene/ShaderAssignment.html new file mode 100644 index 000000000..fe0a40a88 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ShaderAssignment.html @@ -0,0 +1,613 @@ + + + + + + + ShaderAssignment — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ShaderAssignment

+

Assigns shaders to objects.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

shader

+

The shader to be assigned.

+
+
+

label

+

A label for the shader to be assigned. If this is empty, the node +connected to the shader plug will be used instead.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ShaderBall.html b/1.4.6.0/Reference/NodeReference/GafferScene/ShaderBall.html new file mode 100644 index 000000000..2adccdcc4 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ShaderBall.html @@ -0,0 +1,605 @@ + + + + + + + ShaderBall — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ShaderBall

+

Generates scenes suitable for rendering shader balls.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

shader

+

The shader to be rendered.

+
+
+

resolution

+

The resolution of the shader ball image, which +is always a square.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ShaderQuery.html b/1.4.6.0/Reference/NodeReference/GafferScene/ShaderQuery.html new file mode 100644 index 000000000..8bcaacf85 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ShaderQuery.html @@ -0,0 +1,637 @@ + + + + + + + ShaderQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ShaderQuery

+

Queries shader parameters from a scene location, creating outputs +for each parameter.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

scene

+

The scene to query the shader for.

+
+
+

location

+

The location within the scene to query the shader at.

+
+

Note

+

If the location does not exist then the query will not be +performed and all outputs will be set to their default values.

+
+
+
+

shader

+

The name of the shader to query.

+
+

Note

+

If the shader does not exist then the query will not be +performed and all outputs will be set to their default values.

+
+
+
+

inherit

+

Queries inherited shader assignments if the location has no local +assignment of its own.

+
+
+

queries

+

The shader parameters to be queried - arbitrary numbers of shader +parameters may be added as children of this plug via the user interface, +or via python. Each child is a NameValuePlug whose name plug is +the shader parameter to query, and whose value plug is the default +value to use if the shader parameter can not be retrieved.

+

The full network of the shader given by shader is available +to be queried. Parameters on shaders in the network other than the +output shader can be specified as shaderName.parameterName.

+
+

Note

+

If either the shader or parameter does not exist then the +query will not be performed and all outputs will be set to their +default values.

+
+
+
+

out

+

The parent plug of the query outputs. The order of outputs corresponds +to the order of children of queries.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ShaderTweakProxy.html b/1.4.6.0/Reference/NodeReference/GafferScene/ShaderTweakProxy.html new file mode 100644 index 000000000..db68ea500 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ShaderTweakProxy.html @@ -0,0 +1,617 @@ + + + + + + + ShaderTweakProxy — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ShaderTweakProxy

+

Represents a shader in the shader network that a ShaderTweaks node is modifying. Allows forming +connections from existing shaders to shaders that are being inserted.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

Hardcoded for ShaderTweakProxy nodes.

+
+
+

type

+

Hardcoded for ShaderTweakProxy nodes.

+
+
+

attributeSuffix

+

Suffix for the attribute used for shader assignment.

+
+
+

parameters

+

Where the parameters for the shader are represented.

+
+
+

parameters.targetShader

+

The handle of the upstream shader being fetched by this proxy - or Auto, indicating that +the original input of the parameter being ShaderTweaked will be used.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

out

+

The output from the shader.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ShaderTweaks.html b/1.4.6.0/Reference/NodeReference/GafferScene/ShaderTweaks.html new file mode 100644 index 000000000..ae89cad9c --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ShaderTweaks.html @@ -0,0 +1,628 @@ + + + + + + + ShaderTweaks — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ShaderTweaks

+

Makes modifications to shader parameter values.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

shader

+

The type of shader to modify. This is actually the name +of an attribute which contains the shader network.

+
+
+

ignoreMissing

+

Ignores tweaks targeting missing parameters. When off, missing parameters +cause the node to error.

+
+
+

tweaks

+

The tweaks to be made to the parameters of the shader. +Arbitrary numbers of user defined tweaks may be +added as children of this plug via the user +interface, or using the ShaderTweaks API via python.

+
+
+

localise

+

Turn on to allow location-specific tweaks to be made to inherited +shaders. Shaders will be localised to locations matching the +node’s filter prior to tweaking. The original inherited shader will +remain untouched.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ShuffleAttributes.html b/1.4.6.0/Reference/NodeReference/GafferScene/ShuffleAttributes.html new file mode 100644 index 000000000..e2fb9f60f --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ShuffleAttributes.html @@ -0,0 +1,618 @@ + + + + + + + ShuffleAttributes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ShuffleAttributes

+

ShuffleAttributes is used to copy or rename arbitrary numbers of attributes at +the filtered locations. The deleteSource plugs may be used to remove the original +source attribute(s) after the shuffling has been completed. The replaceDestination +plugs may be used to specify whether each shuffle should replace already written +destination data with the same name.

+

An additional context variable ${source} can be used on the destination plugs +to insert the name of each source attribute. For example, to prefix all attributes +with user: set the source to * and the destination to user:${source}.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

shuffles

+

The attributes to be shuffled - arbitrary numbers of attributes may be shuffled +via the source/destination plugs. The deleteSource plug may be used to remove the +original attribute(s). The replaceDestination plug may be used to specify whether +each shuffle should replace already written destination data with the same name.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/ShufflePrimitiveVariables.html b/1.4.6.0/Reference/NodeReference/GafferScene/ShufflePrimitiveVariables.html new file mode 100644 index 000000000..4daf1aad4 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/ShufflePrimitiveVariables.html @@ -0,0 +1,629 @@ + + + + + + + ShufflePrimitiveVariables — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ShufflePrimitiveVariables

+

ShufflePrimitiveVariables is used to copy or rename arbitrary numbers of primitive +variables at the filtered locations. The deleteSource plugs may be used to remove +the original source primitive variable(s) after the shuffling has been completed. +The replaceDestination plugs may be used to specify whether each shuffle should +replace already written destination data with the same name.

+

An additional context variable ${source} can be used on the destination plugs +to insert the name of each source primitive variable. For example, to append ref +to all primitive variables set the source to * and the destination to ${source}ref.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

shuffles

+

The primitive variables to be shuffled - arbitrary numbers of primitive variables +may be shuffled via the source/destination plugs. The deleteSource plug may be +used to remove the original primitive variable(s). The replaceDestination plug may +be used to specify whether each shuffle should replace already written destination +data with the same name.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Sphere.html b/1.4.6.0/Reference/NodeReference/GafferScene/Sphere.html new file mode 100644 index 000000000..dd5c6366c --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Sphere.html @@ -0,0 +1,638 @@ + + + + + + + Sphere — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Sphere

+

Produces scenes containing a sphere.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

type

+

The type of object to produce. May be a SpherePrimitive or a Mesh.

+
+
+

radius

+

Radius of the sphere.

+
+
+

zMin

+

Limits the extent of the sphere along the lower pole. +Valid values are in the range [-1,1] and should always +be less than zMax.

+
+
+

zMax

+

Limits the extent of the sphere along the upper pole. +Valid values are in the range [-1,1] and should always +be greater than zMin.

+
+
+

thetaMax

+

Limits the extent of the sphere around the pole axis. +Valid values are in the range [0,360].

+
+
+

divisions

+

Controls tesselation of the sphere when type is Mesh.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/StandardAttributes.html b/1.4.6.0/Reference/NodeReference/GafferScene/StandardAttributes.html new file mode 100644 index 000000000..bc4bd06ff --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/StandardAttributes.html @@ -0,0 +1,715 @@ + + + + + + + StandardAttributes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

StandardAttributes

+

Modifies the standard attributes on objects - these should +be respected by all renderers.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

attributes

+

The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python.

+
+
+

attributes.visibility

+

Whether or not the object can be seen - invisible objects are +not sent to the renderer at all. Typically more fine +grained (camera, reflection etc) visibility can be +specified using a renderer specific attributes node. +Note that making a parent location invisible will +always make all the children invisible too, regardless +of their visibility settings.

+
+
+

attributes.doubleSided

+

Whether or not the object can be seen from both sides. +Single sided objects appear invisible when seen from +the back.

+
+
+

attributes.displayColor

+

The default colour used to display the object in the absence +of a specific shader assignment. Commonly used to control +basic object appearance in the Viewer.

+
+

Tip

+

For more detailed control of object appearance in the +Viewer, use the OpenGLAttributes node.

+
+
+
+

attributes.transformBlur

+

Whether or not transformation animation on the +object is taken into account in the rendered image. +Use the transformBlurSegments plug to specify the number +of segments used to represent the motion.

+
+
+

attributes.transformBlurSegments

+

The number of segments of transform animation to +pass to the renderer when transformBlur is on.

+
+
+

attributes.deformationBlur

+

Whether or not deformation animation on the +object is taken into account in the rendered image. +Use the deformationBlurSegments plug to specify the +number of segments used to represent the motion.

+
+
+

attributes.deformationBlurSegments

+

The number of segments of transform animation to +pass to the renderer when transformBlur is on.

+
+
+

attributes.linkedLights

+

The lights to be linked to this object. Accepts a set expression or +a space separated list of lights. Use “defaultLights” to refer to +all lights that contribute to illumination by default.

+
+
+

Examples

+

All the default lights plus the lights in the characterLights set +:

+

defaultLights | characterLights

+

All the default lights, but without the lights in the interiorLights +set :

+

defaultLights - interiorLights

+
+

Info : Lights can be added to sets either by using the sets plug +on the light node itself, or by using a separate Set node.

+
+
+
+

attributes.filteredLights

+

The lights to be filtered by this light filter. Accepts a +set expression or a space separated list of lights. +Use “defaultLights” to refer to all lights that +contribute to illumination by default.

+
+
+

attributes.automaticInstancing

+

By default, if Gaffer sees two objects are identical, it will pass them +to the renderer only once, saving a lot of memory. You can set this to +false to disable that, losing the memory savings. This can be useful +in certain cases like using world space displacement and wanting multiple +copies to displace differently. Disabling is currently only supported by +the Arnold render backend.

+
+
+

global

+

Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter.

+
+
+

extraAttributes

+

An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the attributes +CompoundDataPlug, with IECoreScene.ShaderNetwork being one example.

+

If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/StandardOptions.html b/1.4.6.0/Reference/NodeReference/GafferScene/StandardOptions.html new file mode 100644 index 000000000..a3f893c2c --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/StandardOptions.html @@ -0,0 +1,791 @@ + + + + + + + StandardOptions — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

StandardOptions

+

Specifies the standard options (global settings) for the +scene. These should be respected by all renderers.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

options

+

The options to be applied - arbitrary numbers of user defined options may be added +as children of this plug via the user interface, or using the CompoundDataPlug API via +python.

+
+
+

options.renderCamera

+

The primary camera to be used for rendering. If this +is not specified, then a default orthographic camera +positioned at the origin is used.

+
+
+

options.filmFit

+

How the aperture gate (the frame defined by the aperture) will +fit into the resolution gate (the framed defined by the data +window). Fitting is applied only if the respective aspect +ratios of the aperture and the resolution are different. The +following fitting modes are available:

+
    +
  • Horizontal: The aperture gate will fit horizontally between +the left/right edges of the resolution gate, while preserving +its aspect ratio. If the aperture’s aspect ratio is larger than +the resolution’s, the top/bottom edges of the aperture will be +cropped. If it’s smaller, then the top/bottom edges will +capture extra vertical scene content.

  • +
  • Vertical: The aperture gate will fit vertically between the +top/bottom edges of the resolution gate, while preserving its +aspect ratio. If the aperture’s aspect ratio is larger than the +resolution’s, the left/right edges of the aperture will be +cropped. If it’s smaller, then the left/right edges will +capture more horizontal scene content.

  • +
  • Fit: The aperture gate will fit horizontally (like +Horizontal mode) or vertically (like Vertical mode) inside +the resolution gate to avoid cropping the aperture, while +preserving its aspect ratio. If the two gates’ aspect ratios +differ, the aperture will capture extra horizontal or vertical +scene content.

  • +
  • Fill: The aperture gate will fill the resolution gate such +that none of the aperture captures extra scene content, while +preserving its aspect ratio. In other words, it will make the +opposite choice of the Fit mode. If the two gates’ aspect +ratios differ, the aperture will be horizontally or vertically +cropped.

  • +
  • Distort: The aperture gate will match the size of the +resolution gate. If their aspect ratios differ, the resulting +image will appear vertically or horizontally stretched or +squeezed.

  • +
+
+
+

options.renderResolution

+

The resolution of the image to be rendered.

+
+
+

options.pixelAspectRatio

+

The width / height aspect ratio of the individual pixels in +the rendered image.

+
+
+

options.resolutionMultiplier

+

Multiplies the resolution of the render by this amount.

+
+
+

options.renderCropWindow

+

Limits the render to a region of the image. The rendered image +will have the same resolution as usual, but areas outside the +crop will be rendered black. Coordinates range from (0,0) at +the top-left of the image to (1,1) at the bottom-right. The +crop window tool in the viewer may be used to set this +interactively.

+
+
+

options.overscan

+

Whether to enable overscan, which adds extra pixels to the +sides of the rendered image.

+

Overscan can be useful when camera shake or blur will be added +as a post-process. This plug just enables overscan as a whole – +use the Overscan Top, Overscan Bottom, Overscan Left and +Overscan Right plugs to specify the amount of overscan on +each side of the image.

+
+
+

options.overscanTop

+

The amount of overscan at the top of the image. Specified as a +0-1 proportion of the original image height.

+
+
+

options.overscanBottom

+

The amount of overscan at the bottom of the image. Specified as +a 0-1 proportion of the original image height.

+
+
+

options.overscanLeft

+

The amount of overscan at the left of the image. Specified as a +0-1 proportion of the original image width.

+
+
+

options.overscanRight

+

The amount of overscan at the right of the image. Specified as +a 0-1 proportion of the original image width.

+
+
+

options.depthOfField

+

Whether to render with depth of field. To ensure the effect is +visible, you must also set an f-stop value greater than 0 on +this camera.

+
+
+

options.defaultRenderer

+

Specifies the default renderer to be used by the Render and +InteractiveRender nodes.

+
+
+

options.includedPurposes

+

Limits the objects included in the render according to the values of their usd:purpose +attribute. The “Default” purpose includes all objects which have no usd:purpose attribute; +other than for debugging, there is probably no good reason to omit it.

+
+

Tip

+

Use the USDAttributes node to assign the usd:purpose attribute.

+
+
+
+

options.inclusions

+

A set expression that limits the objects included in the render to only those matched +and their descendants. Objects not matched by the set expression will be pruned from +the scene.

+
+

Tip

+

Cameras are included by default and do not need to be specified here.

+
+
+
+

options.exclusions

+

A set expression that excludes the matched objects from the render. Exclusions +affect both inclusions and additionalLights and cause the matching objects and +their descendants to be pruned from the scene.

+
+
+

options.additionalLights

+

A set expression that specifies additional lights to be included in the render. +This differs from inclusions in that only lights and light filters will be +matched by this set expression.

+
+
+

options.transformBlur

+

Whether or not transform motion is taken into +account in the renderered image. To specify the +number of transform segments to use for each +object in the scene, use a StandardAttributes node +with appropriate filters.

+
+
+

options.deformationBlur

+

Whether or not deformation motion is taken into +account in the renderered image. To specify the +number of deformation segments to use for each +object in the scene, use a StandardAttributes node +with appropriate filters.

+
+
+

options.shutter

+

The interval over which the camera shutter is open. Measured +in frames, and specified relative to the frame being rendered.

+
+
+

options.sampleMotion

+

Whether to actually render motion blur. Disabling this +setting while motion blur is set up produces a render where +there is no blur, but there is accurate motion information. +Useful for rendering motion vector passes.

+
+
+

options.performanceMonitor

+

Enables a performance monitor and uses it to output +statistics about scene generation performance.

+
+
+

extraOptions

+

An additional set of options to be added. Arbitrary numbers +of options may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an option. +This is convenient when using an expression to define the options +and the option count might be dynamic. It can also be used to +create options whose type cannot be handled by the options +CompoundDataPlug.

+

If the same option is defined by both the options and the +extraOptions plugs, then the value from the extraOptions +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/SubTree.html b/1.4.6.0/Reference/NodeReference/GafferScene/SubTree.html new file mode 100644 index 000000000..669162966 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/SubTree.html @@ -0,0 +1,630 @@ + + + + + + + SubTree — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SubTree

+

A node for extracting a specific branch from a scene.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

root

+

The location to become the new root for the output scene. +All locations below this will be kept, and all others will +be discarded.

+
+
+

includeRoot

+

Causes the root location to also be kept in the output scene, in +addition to its children. For instance, if the scene contains only +/city/street/house and the root is set to /city/street, then the +new scene will by default contain only /house - but the +includeRoot setting will cause it to contain /street/house +instead.

+
+
+

inheritTransform

+

Maintains the subtree’s world-space position by applying the root +location’s full transform to the subtree’s children.

+
+
+

inheritAttributes

+

Maintains the subtree’s attributes (including shader assignments) by +applying the root location’s full attributes to the subtree’s +children.

+
+
+

inheritSetMembership

+

Maintains the subtree’s membership in sets by transferring the +root location’s memberships to the subtree’s children.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Text.html b/1.4.6.0/Reference/NodeReference/GafferScene/Text.html new file mode 100644 index 000000000..19d412cbc --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Text.html @@ -0,0 +1,622 @@ + + + + + + + Text — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Text

+

Creates an object containing a polygon representation +of an arbitrary string of text.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

text

+

The text to output. This is triangulated into a mesh +representation using the specified font.

+
+
+

font

+

The font to use - this should be a .ttf font file which +is located on the paths specified by the IECORE_FONT_PATHS +environment variable.

+

Supported file extensions : ttf

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Transform.html b/1.4.6.0/Reference/NodeReference/GafferScene/Transform.html new file mode 100644 index 000000000..fbf12552e --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Transform.html @@ -0,0 +1,634 @@ + + + + + + + Transform — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Transform

+

Applies a transformation to the local matrix +of all locations matched by the filter.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

space

+

The space in which the transformation is specified. +Note that no matter which space is chosen, only the +local matrices of the filtered locations are ever modified. +They are simply modified in such as way as to emulate a +modification in the chosen space.

+

Local +: The transformation is specified in local space and +is therefore post-multiplied onto the local matrix.

+

Parent +: The transformation is specified in parent space and +is therefore pre-multiplied onto the local matrix.

+

World +: The transformation is specified in world space and +will therefore be applied as if the whole world was +moved. This effect is then applied on a per-location +basis to each of the filtered locations.

+

Reset Local +: The local matrix is replaced with the specified transform.

+

Reset World +: The transformation is specified as an absolute matrix +in world space. Each of the filtered locations will +be moved to this absolute position.

+
+
+

transform

+

The transform to be applied.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/TransformQuery.html b/1.4.6.0/Reference/NodeReference/GafferScene/TransformQuery.html new file mode 100644 index 000000000..7dba77bec --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/TransformQuery.html @@ -0,0 +1,633 @@ + + + + + + + TransformQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

TransformQuery

+

Queries a particular location in a scene and outputs the transform.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

scene

+

The scene to query the transform for.

+
+
+

location

+

The location within the scene to query the transform at.

+
+

Note

+

If the location does not exist then the query will not be +performed and all outputs will be set to their default values.

+
+
+
+

space

+

The space to query the transform.

+
+
+

relativeLocation

+

The location within the scene to query the transform for relative space mode.

+
+

Note

+

If the location does not exist then the query will not be +performed and all outputs will be set to their default values.

+
+
+
+

invert

+

Invert the result transform.

+
+
+

matrix

+

4x4 matrix of the requested transform.

+
+
+

translate

+

Translation component of requested transform.

+
+
+

rotate

+

Rotation component of requested transform (degrees).

+
+
+

scale

+

Scaling component of requested transform.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/UDIMQuery.html b/1.4.6.0/Reference/NodeReference/GafferScene/UDIMQuery.html new file mode 100644 index 000000000..7bdd89383 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/UDIMQuery.html @@ -0,0 +1,627 @@ + + + + + + + UDIMQuery — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

UDIMQuery

+

Gathering information about what UDIMs are present in meshes matching +the input scene and filter, and which meshes they belong to.

+

The output is a three level dictionary ( stored as CompoundObjects ), containing information about the selected UDIMs.

+

The keys of the top level are all the UDIMs containing part of the target meshes. +The keys of the second level are the meshes which touch that UDIM. +The keys of the third level are any attributes on that mesh which match extraAttributes, and the values of the third-level dictionary are the attribute values.

+

An example result, with two udims, and “attributes” set to “bake:resolution”, might look like this:

+
{
+                "1001" : {
+                        "/mesh1" : { "bake:resolution", 512 },
+                        "/mesh2" : { "bake:resolution", 1024 },
+                },
+                "1002" : {
+                        "/mesh1" : { "bake:resolution", 512 },
+                },
+}
+
+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

in

+

The scene to query UDIMs from.

+
+
+

uvSet

+

The name of the primitive variable which drives the UVs to compute UDIMs from. +Should be a Face-Varying or Vertex interpolated V2f.

+
+
+

attributes

+

A space separated list of attribute names ( may use wildcards ), to collect from meshes +which have UDIMs, and return as part of the output. Inherited attributes are included.

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

out

+

A 3 level dictionary of results stored in a CompoundObject, as described in the node description.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/UVSampler.html b/1.4.6.0/Reference/NodeReference/GafferScene/UVSampler.html new file mode 100644 index 000000000..f7f97bc17 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/UVSampler.html @@ -0,0 +1,651 @@ + + + + + + + UVSampler — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

UVSampler

+

Samples primitive variables from specified UV positions on +the surface of a source primitive, and transfers the +values onto new primitive variables on the sampling object.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to determine which objects in the +in scene will receive primitive variables sampled +from the sourceLocation in the source scene.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

source

+

The scene that contains the source primitive that +primitive variables will be sampled from.

+
+
+

sourceLocation

+

The location of the primitive in the source scene that +will be sampled from.

+
+
+

primitiveVariables

+

The names of the primitive variables to be sampled from the source +primitive. These should be separated by spaces and can use Gaffer’s +standard wildcards to match multiple variables. The sampled variables +are prefixed with prefix before being added to the sampling object.

+
+
+

prefix

+

A prefix applied to the names of the sampled primitive variables before +they are added to the sampling object. This is particularly useful when +sampling something like “P”, and not not wanting to modify the true +vertex positions of the sampling primitive.

+
+
+

status

+

The name of a boolean primitive variable created to record the success or +failure of the sampling operation.

+
+
+

uv

+

The primitive variable that provides the UV positions to +sample on the source primitive.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Unencapsulate.html b/1.4.6.0/Reference/NodeReference/GafferScene/Unencapsulate.html new file mode 100644 index 000000000..2031674fa --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Unencapsulate.html @@ -0,0 +1,610 @@ + + + + + + + Unencapsulate — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Unencapsulate

+

Expands capsules created by Encapsulate back into regular scene hierarchy. This discards the +performance advantages of working with capsules, but is useful for debugging, or when it is +necessary to alter the internals of a capsule.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

parent

+

Deprecated. Use filter input instead.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/UnionFilter.html b/1.4.6.0/Reference/NodeReference/GafferScene/UnionFilter.html new file mode 100644 index 000000000..18ef9b88b --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/UnionFilter.html @@ -0,0 +1,603 @@ + + + + + + + UnionFilter — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

UnionFilter

+

Combines several input filters, matching the union +of all the locations matched by them.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

enabled

+

The on/off state of the filter. When it is off, the +result of the first input is passed through unchanged.

+
+
+

out

+

The result of the filter. This should be connected into +the “filter” plug of a FilteredSceneProcessor.

+
+
+

in

+

The filters to be combined. Any number +of inputs may be added here.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/Wireframe.html b/1.4.6.0/Reference/NodeReference/GafferScene/Wireframe.html new file mode 100644 index 000000000..c8efd0ebc --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/Wireframe.html @@ -0,0 +1,630 @@ + + + + + + + Wireframe — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Wireframe

+

Creates a wireframe representation of a mesh. The wireframe +is created as a CurvesPrimitive.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

position

+

The primitive variable containing the positions to use +for the wireframe. This must have either Vertex or FaceVarying +interpolation and contain either V3fVectorData or V2fVectorData.

+
+

Tip

+

Use “uv” to create a wireframe representation of the +UVs for a mesh.

+
+
+
+

width

+

The width of the curves used to represent the wireframe.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferScene/index.html b/1.4.6.0/Reference/NodeReference/GafferScene/index.html new file mode 100644 index 000000000..85c9b8e08 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferScene/index.html @@ -0,0 +1,707 @@ + + + + + + + GafferScene — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ + +
+

GafferScene

+
+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferTractor/TractorDispatcher.html b/1.4.6.0/Reference/NodeReference/GafferTractor/TractorDispatcher.html new file mode 100644 index 000000000..82416b836 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferTractor/TractorDispatcher.html @@ -0,0 +1,694 @@ + + + + + + + TractorDispatcher — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

TractorDispatcher

+

Dispatches tasks by spooling them to a renderfarm +managed by Pixar’s Tractor software.

+

This dispatcher deliberately provides a very simple +one-to-one mapping between Gaffer’s nodes and plugs +and Tractor’s Tasks and attributes. This can be +customised on a site-by-site basis with user defaults +and expressions for the plugs, or for more complete +control, with TractorDispatcher.preSpoolSignal().

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

tasks

+

The tasks to be executed by this dispatcher.

+
+
+

framesMode

+

Determines the active frame range to be dispatched as +follows :

+
    +
  • CurrentFrame dispatches the current frame only, as +specified by the ${frame} context variable.

  • +
  • FullRange uses the full frame range as specified by the +${frameRange:start} and ${frameRange:end} +context variables.

  • +
  • CustomRange uses a user defined range, as specified by +the frameRange plug.

  • +
+
+
+

frameRange

+

The frame range to be used when framesMode is “CustomRange”.

+
+
+

jobName

+

A descriptive name for the job.

+
+
+

jobsDirectory

+

A directory to store temporary files used by the dispatcher.

+
+
+

service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed. The default +value matches all blades. Typically this default is +sufficient for the job itself, but more restrictive +values may be needed for the dispatcher.tractor.service +plugs on each dispatched node.

+
+
+

envKey

+

An arbitrary key passed to the remote Tractor blade, +to be used by environment handlers which configure +the way the blade launches commands.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferTractor/index.html b/1.4.6.0/Reference/NodeReference/GafferTractor/index.html new file mode 100644 index 000000000..c629c7b09 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferTractor/index.html @@ -0,0 +1,585 @@ + + + + + + + GafferTractor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ + +
+

GafferTractor

+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferUSD/USDAttributes.html b/1.4.6.0/Reference/NodeReference/GafferUSD/USDAttributes.html new file mode 100644 index 000000000..5f5ae5f85 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferUSD/USDAttributes.html @@ -0,0 +1,659 @@ + + + + + + + USDAttributes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

USDAttributes

+

Authors attributes which have specific meaning in USD, but which +do not influence Gaffer’s native behaviour in any way (in which +case they would belong on the StandardAttributes node).

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

attributes

+

The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python.

+
+
+

attributes.purpose

+

Specifies the purpose of a location to be default, render, +proxy or guide. See the USD documentation +for more details.

+
+

Note

+

Gaffer doesn’t assign any intrinsic meaning to USD’s +purpose. To control visibility using purpose, we recommend +using an AttributeQuery and Expression to query usd:purpose +and drive StandardAttributes.visibility appropriately.

+

Also note that native proxy workflows can be built using +Gaffer’s contexts, such that proxy or render geometry can appear +at the same location in the scene hierarchy, depending on the +value of a context variable. This has benefits when selecting +and filtering objects.

+
+
+
+

attributes.kind

+

Specifies the kind of a location to be any of the values +from USD’s kind registry. See the USD documentation +for more details.

+
+

Note

+

Gaffer doesn’t assign any intrinsic meaning to USD’s +kind.

+
+
+
+

global

+

Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter.

+
+
+

extraAttributes

+

An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single IECore.CompoundObject, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the attributes +CompoundDataPlug, with IECoreScene.ShaderNetwork being one example.

+

If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferUSD/USDLayerWriter.html b/1.4.6.0/Reference/NodeReference/GafferUSD/USDLayerWriter.html new file mode 100644 index 000000000..b1d6e61bf --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferUSD/USDLayerWriter.html @@ -0,0 +1,681 @@ + + + + + + + USDLayerWriter — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

USDLayerWriter

+

Takes two input scenes and writes a minimal USD file containing the +differences between them. This new file can then be layered in a USD +composition to transform the first scene into the second. This is useful for +baking modifications made in Gaffer into a USD file for consumption in other +hosts.

+

A typical use case might be to share lookdev authored in Gaffer, with a +workflow like the following :

+
    +
  • A SceneReader brings model.usd into Gaffer.

  • +
  • Shaders and attributes are applied in Gaffer, using Gaffer’s standard scene +processing nodes.

  • +
  • A USDLayerWriter is used to bake this lookdev into a new look.usd layer on +disk, with the SceneReader for model.usd connected to the base input +and the lookdev connected into the layer input.

  • +
  • A new USD file is created that layers look.usd over model.usd. This is +loaded into Gaffer or another host for lighting.

  • +
+
+

Note

+

To write a complete USD file (rather than a layer containing differences) +use the standard SceneWriter node.

+
+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

preTasks

+

Input connections to upstream nodes which must be +executed before this node.

+
+
+

postTasks

+

Input connections to nodes which must be +executed after this node, but which don’t +need to be executed before downstream nodes.

+
+
+

task

+

Output connections to downstream nodes which must +not be executed until after this node.

+
+
+

dispatcher

+

Container for custom plugs which dispatchers use to +control their behaviour.

+
+
+

dispatcher.batchSize

+

Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution batchSize will be ignored.

+
+
+

dispatcher.immediate

+

Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual.

+

When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings.

+
+
+

dispatcher.tractor

+

Settings that control how tasks are +dispatched to Tractor.

+
+
+

dispatcher.tractor.service

+

A Tractor “service key expression” used to select +blades on which tasks will be executed.

+
+
+

dispatcher.tractor.tags

+

A space separated list of tags that can be +used with Tractor’s limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count.

+
+
+

base

+

The base scene that the layer input is compared to.

+
+
+

layer

+

The scene to be written to fileName. This is compared to the +base scene, and only differences are written to the file.

+
+
+

fileName

+

The name of the USD file to be written.

+

Supported file extensions : usd, usda, usdc

+
+
+

out

+

A direct pass-through of the layer input.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferUSD/USDLight.html b/1.4.6.0/Reference/NodeReference/GafferUSD/USDLight.html new file mode 100644 index 000000000..c82c0c460 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferUSD/USDLight.html @@ -0,0 +1,660 @@ + + + + + + + USDLight — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

USDLight

+

Creates a scene with a single light in it.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

parameters

+

The parameters of the light shader - these will vary based on the light type.

+
+
+

defaultLight

+

Whether this light illuminates all geometry by default. When +toggled, the light will be added to the “defaultLights” set, which +can be referenced in set expressions and manipulated by downstream +nodes.

+
+
+

mute

+

Whether this light is muted. When toggled, the attribute “light:mute” +will be set to true. When not toggled, it will be omitted from the attributes.

+
+
+

visualiserAttributes

+

Attributes that affect the visualisation of this Light in the Viewer.

+
+
+

visualiserAttributes.scale

+

Scales non-geometric visualisations in the viewport to make them +easier to work with.

+
+
+

visualiserAttributes.maxTextureResolution

+

Visualisers that load textures will respect this setting to +limit their resolution.

+
+
+

visualiserAttributes.frustum

+

Controls whether applicable lights draw a representation of their +light projection in the viewer.

+
+
+

visualiserAttributes.lightFrustumScale

+

Allows light projections to be scaled to better suit the scene.

+
+
+

visualiserAttributes.lightDrawingMode

+

Controls how lights are presented in the Viewer.

+
+
+

visualiserAttributes.lookThroughAperture

+

Specifies the aperture used when looking through this light. Overrides the Viewer’s Camera Settings.

+
+
+

visualiserAttributes.lookThroughClippingPlanes

+

Specifies the clipping planes used when looking through this light. Overrides the Viewer’s Camera Settings.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferUSD/USDShader.html b/1.4.6.0/Reference/NodeReference/GafferUSD/USDShader.html new file mode 100644 index 000000000..41113b161 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferUSD/USDShader.html @@ -0,0 +1,616 @@ + + + + + + + USDShader — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

USDShader

+

Loads shaders from USD’s SdrRegistry. This includes shaders such as UsdPreviewSurface +and UsdUVTexture.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

name

+

The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

type

+

The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader.

+
+
+

attributeSuffix

+

Suffix for the attribute used for shader assignment.

+
+
+

parameters

+

Where the parameters for the shader are represented.

+
+
+

enabled

+

Turns the node on and off.

+
+
+

out

+

The output from the shader.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferUSD/index.html b/1.4.6.0/Reference/NodeReference/GafferUSD/index.html new file mode 100644 index 000000000..234ee9d6b --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferUSD/index.html @@ -0,0 +1,588 @@ + + + + + + + GafferUSD — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ + +
+

GafferUSD

+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferVDB/LevelSetOffset.html b/1.4.6.0/Reference/NodeReference/GafferVDB/LevelSetOffset.html new file mode 100644 index 000000000..8370e8dc0 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferVDB/LevelSetOffset.html @@ -0,0 +1,622 @@ + + + + + + + LevelSetOffset — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LevelSetOffset

+

Erodes or dilates a level set VDB.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

grid

+

Name of the level set grid to offset in the VDB object.

+
+
+

offset

+

Amount to offset the level set by in voxel units. A positive number will erode the surface and negative will dilate.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferVDB/LevelSetToMesh.html b/1.4.6.0/Reference/NodeReference/GafferVDB/LevelSetToMesh.html new file mode 100644 index 000000000..68c90cb23 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferVDB/LevelSetToMesh.html @@ -0,0 +1,627 @@ + + + + + + + LevelSetToMesh — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LevelSetToMesh

+

Converts a level set VDB object to a mesh primitive .

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

adjustBounds

+

Adjusts bounding boxes to account for the changes made to the object.

+
+

Caution

+

Adjusting boundings boxes has a performance penalty. +If you do not need accurate bounds or you know that the bounds +will only change slightly, you may prefer to turn this off.

+
+
+
+

grid

+

Name of the level set grid to create a mesh primitive from.

+
+
+

isoValue

+

Value which defines the isosurface to convert to a mesh primitive. +Usually this is set to zero but setting a small positive number will generate a dilated mesh and negative will create an eroded mesh.

+
+
+

adaptivity

+

Adaptively generate fewer polygons from level set. 0 - uniform meshing, 1 - maximum level of adaptivity.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferVDB/MeshToLevelSet.html b/1.4.6.0/Reference/NodeReference/GafferVDB/MeshToLevelSet.html new file mode 100644 index 000000000..9844470a8 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferVDB/MeshToLevelSet.html @@ -0,0 +1,620 @@ + + + + + + + MeshToLevelSet — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MeshToLevelSet

+

Converts a mesh primitive to a level set VDB object.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

grid

+

Name of the level set grid to create in the VDB object.

+
+
+

voxelSize

+

Size of the voxel in the level set grid. Smaller voxel sizes will increase resolution, take more memory & longer to process.

+
+
+

exteriorBandwidth

+

Defines the exterior width of the level set in voxel units.

+
+
+

interiorBandwidth

+

Defines the interior width of the level set in voxel units.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferVDB/PointsGridToPoints.html b/1.4.6.0/Reference/NodeReference/GafferVDB/PointsGridToPoints.html new file mode 100644 index 000000000..3459e0a62 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferVDB/PointsGridToPoints.html @@ -0,0 +1,620 @@ + + + + + + + PointsGridToPoints — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PointsGridToPoints

+

Converts a points grid in a VDB object to a points primitive.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

grid

+

Name of the points grid in the VDB to create a points primitive from.

+
+
+

names

+

The names of the primitive variables to be extracted from VDB points grid. +Names should be separated by spaces, and Gaffer’s +standard wildcard characters may be used.

+
+
+

invertNames

+

When on, the primitive variables matched by names +are not extracted, and the non-matching primitive +variables are extracted instead.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferVDB/PointsToLevelSet.html b/1.4.6.0/Reference/NodeReference/GafferVDB/PointsToLevelSet.html new file mode 100644 index 000000000..078e51454 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferVDB/PointsToLevelSet.html @@ -0,0 +1,648 @@ + + + + + + + PointsToLevelSet — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PointsToLevelSet

+

Converts a points primitive to an OpenVDB level set.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

width

+

The name of a float primitive variable specifying the width of each point. +The primitive variable may have either Vertex or Constant interpolation. +If the primitive variable doesn’t exist, a width of 1.0 is used.

+
+

Note

+

A point’s width needs to be at least 3x voxelSize to contribute to +the level set. Smaller points will be ignored, and reported as a warning.

+
+
+
+

widthScale

+

An additional multiplier on the width of each point.

+
+
+

useVelocity

+

Enables the creation of trails behind the points, based +on the velocity primitive variable.

+
+
+

velocity

+

The name of a V3f primitive variable specifying the velocity +of each point. Velocity is specified in local-space units per +second, and the trail is automatically scaled to represent the +motion within a single frame.

+
+
+

velocityScale

+

An additional multiplier applied to the velocity of each point.

+
+
+

grid

+

Name of the level set grid to be created.

+
+
+

voxelSize

+

Size of a voxel in the level set grid, specified in local space. Smaller voxel +sizes will increase resolution, but take more memory and computation time.

+
+
+

halfBandwidth

+

Defines the exterior and interior width of the level set in voxel units.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferVDB/SphereLevelSet.html b/1.4.6.0/Reference/NodeReference/GafferVDB/SphereLevelSet.html new file mode 100644 index 000000000..ce20fd26e --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferVDB/SphereLevelSet.html @@ -0,0 +1,629 @@ + + + + + + + SphereLevelSet — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SphereLevelSet

+

Creates a sphere level set.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs +an empty scene.

+
+
+

name

+

The name of the object in the output scene.

+
+
+

sets

+

A list of sets to include the object in. The +names should be separated by spaces.

+
+
+

transform

+

The transform applied to the object.

+
+
+

grid

+

The name of the sphere levelset grid in the created VDB object.

+
+
+

radius

+

Sphere radius in object space units.

+
+
+

center

+

Local center of the sphere level set in object space.

+
+
+

voxelSize

+

Size of the voxels in the created sphere levelset. Smaller voxel results in more detail but higher memory usage.

+
+
+

halfWidth

+

Width of the signed distance field in voxels.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferVDB/VolumeScatter.html b/1.4.6.0/Reference/NodeReference/GafferVDB/VolumeScatter.html new file mode 100644 index 000000000..a900e23ba --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferVDB/VolumeScatter.html @@ -0,0 +1,640 @@ + + + + + + + VolumeScatter — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

VolumeScatter

+

Scatter points according the voxel values of a VDB grid.

+
+

user

+

Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish.

+
+
+

out

+

The processed output scene.

+
+
+

enabled

+

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

+
+
+

in

+

The input scene

+
+
+

filter

+

The filter used to control which parts of the scene are +processed. A Filter node should be connected here.

+
+
+

parent

+

This plug has been deprecated in favour of using a filter to select the volume.

+
+
+

destination

+

The location where the points primitives will be placed in the output scene. +When the destination is evaluated, the ${scene:path} variable holds +the location of the source mesh, so the default value parents the points +under the mesh.

+
+

Tip

+

${scene:path}/.. may be used to place the points alongside the +source mesh.

+
+
+
+

name

+

The name given to the PointsPrimitive - +this will be placed under the location specified by +“destination”.

+
+
+

grid

+

Name of grid in VDBObject in which points will be scattered.

+
+
+

density

+

This density is multiplied with the value of the grid to produce a number of points per unit volume.

+
+
+

pointType

+

The render type of the points. This defaults to +“gl:point” so that the points are rendered in a +lightweight manner in the viewport.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/GafferVDB/index.html b/1.4.6.0/Reference/NodeReference/GafferVDB/index.html new file mode 100644 index 000000000..a982d6191 --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/GafferVDB/index.html @@ -0,0 +1,591 @@ + + + + + + + GafferVDB — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/NodeReference/index.html b/1.4.6.0/Reference/NodeReference/index.html new file mode 100644 index 000000000..a8dac138b --- /dev/null +++ b/1.4.6.0/Reference/NodeReference/index.html @@ -0,0 +1,593 @@ + + + + + + + Node Reference — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/ScriptingReference/CommonOperations/index.html b/1.4.6.0/Reference/ScriptingReference/CommonOperations/index.html new file mode 100644 index 000000000..041592fba --- /dev/null +++ b/1.4.6.0/Reference/ScriptingReference/CommonOperations/index.html @@ -0,0 +1,885 @@ + + + + + + + Common Operations — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Common Operations

+
+

Node Graphs

+
+

Create a node

+
import GafferScene
+node = GafferScene.Sphere()
+root.addChild( node )
+
+
+
+
+

Rename a node

+
node.setName( "newName" )
+
+
+
+
+

Get a node or plug name

+
name = node.getName()
+
+
+
+
+

Get a node or plug name relative to an ancestor

+
name = node["plugName"].relativeName( root )
+
+
+
+
+

Get a plug value

+
value = node["plugName"].getValue()
+
+
+
+
+

Set a plug value

+
node["plugName"].setValue( value )
+
+
+
+
+

Make a connection

+
destinationNode["destinationPlugName"].setInput( sourceNode["sourcePlugName"] )
+
+
+
+
+

Break a connection

+
node["plugName"].setInput( None )
+
+
+
+
+

Get a plug’s input connection

+
input = node["plugName"].getInput()
+
+
+
+
+

Get a plug’s output connections

+
outputs = node["plugName"].outputs()
+
+
+
+
+

Get all child plugs from a node

+
plugs = node.children( Gaffer.Plug )
+
+
+
+
+

Get the node from a plug

+
node = plug.node()
+
+
+
+
+

Get the parent of a node or plug

+
parent = node.parent()
+
+
+
+
+

Get a node’s ancestor of type Gaffer.ScriptNode

+
script = node.ancestor( Gaffer.ScriptNode )
+
+
+
+
+

Get a node by name

+
node = root["nodeName"]
+
+
+
+
+

Loop over all nodes

+
for node in root.children( Gaffer.Node ) :
+	...
+
+
+
+
+

Loop over child nodes of type GafferScene.Sphere

+
for node in GafferScene.Sphere.Range( root ) :
+	...
+
+
+
+
+

Loop over all descendant nodes of type Gaffer.Box

+
for node in Gaffer.Box.RecursiveRange( root ) :
+	...
+
+
+
+
+

Get the current filename

+
root["fileName"].getValue()
+
+
+
+
+

Serialize the node graph to file

+
root.serialiseToFile( "/path/to/file.gfr" )
+
+
+
+
+

Load a script

+
root["fileName"].setValue( "/path/to/file.gfr" )
+root.load()
+
+
+
+
+

Export a reference

+
root["boxToExport"].exportForReference( "/path/to/file.grf" )
+
+
+
+
+

Load a reference

+
referenceNode = Gaffer.Reference()
+root.addChild( referenceNode )
+referenceNode.load( "/path/to/file.grf" )
+
+
+
+
+

Query a script variable

+
root.context()["project:rootDirectory"]
+
+
+
+
+

Get selected nodes

+
root.selection()
+
+
+
+
+

Select a node

+
root.selection().clear()
+root.selection().add( root["nodeName"] )
+
+
+
+
+

Get the frame range

+
start = root["frameRange"]["start"].getValue()
+end = root["frameRange"]["end"].getValue()
+
+
+
+
+

Set the current frame

+
root.context().setFrame( frame )
+
+
+
+
+

Get the playback range

+
GafferUI.Playback.acquire( root.context() ).getFrameRange()
+
+
+
+
+

Set the playback range

+
GafferUI.Playback.acquire( root.context() ).setFrameRange( start, end )
+
+
+
+
+

Set node as numeric bookmark 1

+
Gaffer.MetadataAlgo.setNumericBookmark( root, 1, root["nodeName"] )
+
+
+
+
+

Get the node set as numeric bookmark 1

+
Gaffer.MetadataAlgo.getNumericBookmark( root, 1 )
+
+
+
+
+

Set a node as the focus node

+
root.setFocus( root["nodeName"] )
+
+
+
+
+

Get the currently focussed node

+
root.getFocus()
+
+
+
+
+
+

Metadata

+
+

Register a value for a plug/node

+
Gaffer.Metadata.registerValue( plug, "name", value )
+Gaffer.Metadata.registerValue( node, "name", value )
+
+
+
+
+

Query a value for a plug/node

+
Gaffer.Metadata.value( plug, "name" )
+Gaffer.Metadata.value( node, "name" )
+
+
+
+
+

Find plugs/nodes with specific metadata

+
Gaffer.Metadata.plugsWithMetadata( root, "name" )
+Gaffer.Metadata.nodesWithMetadata( root, "name" )
+
+
+
+
+
+

Scenes

+
+

Get an option

+
g = node["out"]["globals"].getValue()
+o = g["option:render:camera"].value
+
+
+
+
+

Get an object at a location

+
o = node["out"].object( "/path/to/location" )
+
+
+
+
+

Get the local transform at a location

+
matrix = node["out"].transform( "/path/to/location" )
+
+
+
+
+

Get the full (world) transform at a location

+
node["out"].fullTransform( "/path/to/location" )
+
+
+
+
+

Get the local bounding box of a location

+
bound = node["out"].bound( "/path/to/location" )
+
+
+
+
+

Get the world space bounding box of a location

+
bound = node["out"].bound( "/path/to/location" ) * node["out"].fullTransform( "/path/to/location" )
+
+
+
+
+

Get the local attributes of a location

+
attributes = node["out"].attributes( "/path/to/location" )
+attribute = attributes["name"].value
+
+
+
+
+

Get the full (inherited + local) attributes of a location

+
attributes = node["out"].fullAttributes( "/path/to/location" )
+attribute = attributes["name"].value
+
+
+
+
+

Recurse through the scene hierarchy

+
def visit( scene, path ) :
+
+	for childName in scene.childNames( path ) :
+		visit( scene, path.rstrip( "/" ) + "/" + str( childName ) )
+
+visit( node["out"], "/" )
+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/ScriptingReference/Expressions/index.html b/1.4.6.0/Reference/ScriptingReference/Expressions/index.html new file mode 100644 index 000000000..ef3e6a228 --- /dev/null +++ b/1.4.6.0/Reference/ScriptingReference/Expressions/index.html @@ -0,0 +1,659 @@ + + + + + + + Expressions — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ + +
+

Expressions

+
+

Time

+ + + + + + + + + + + + + + + + + + + + + +

Operation

Python

OSL

Get current time

context.getTime()

time

Get current frame

context.getFrame()

context( "frame" )

Get frame rate

context.getFramesPerSecond()

context( "framesPerSecond" )

+
+
+

Plugs

+ + + + + + + + + + + + + + + + + +

Operation

Python

OSL

Get value

value = parent["NodeName"]["plugName"]

value = parent.NodeName.plugName

Set value

parent["NodeName"]["plugName"] = value

parent.NodeName.plugName = value

+
+
+

Context Variables

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Operation

Python

OSL

Get variable

context["variableName"]

context( "variableName" )

Get with default

context.get( "variableName", default )

context( "variableName", default )

Get array element

context["variableName"][index]

contextElement( "variableName", index )

Get array element with default

a = context.get( "variableName", [] )
a[index] if len( a ) > index else default

contextElement( "variableName", index, default )

Get array element from end

context["variableName"][-index]

contextElement( "variableName", -index )

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/ScriptingReference/Metadata/index.html b/1.4.6.0/Reference/ScriptingReference/Metadata/index.html new file mode 100644 index 000000000..cef350440 --- /dev/null +++ b/1.4.6.0/Reference/ScriptingReference/Metadata/index.html @@ -0,0 +1,842 @@ + + + + + + + Metadata — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Metadata

+

Gaffer’s UIs for plugs and nodes are defined using a metadata convention. This +makes it easy to customise the UI for a specific node type, or even for a +specific node instance. This document provides a reference for the most common +metadata items.

+
+

General

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Name

Purpose

Example values

label

Label used instead of plug name

"My Label"

description

Describes the purpose of a node or plug

"Turns on the thingammajig"

icon

Name of an image file used to represent a node

"myAwesomeNode.png"

documentation:url

Link to node documentation

!http://www.gafferhq.org"

userDefault

Overrides the default value of a plug

10.5

preset:<name>

Specifies a named preset value

"preset:Max", 1

renameable

Enables renaming by user

True, False

deletable

Enables deletion by user

True, False

+
+
+

NodeEditor layout

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Name

Purpose

Example values

layout:divider

Places a divider after the plug

True

layout:index

Integer index in the layout order

0 (first), -1 (last)

layout:section

Specifies the section the plug belongs in

TabName.SectionName

layout:section:<name>:collapsed

Specifies whether the section is collapsed

True (collapsed), False (expanded)

layout:accessory

Places widget on same line as previous widget

True

layout:width

Specifies a fixed width for the widget

100

layout:minimumWidth

Specifies a minimum width for the widget

100

+
+
+

GraphEditor layout

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Name

Purpose

Example values

nodule:color

The colour of the plug

imath.Color3f( 0, 1, 0 )

connectionGadget:color

The colour of input connections

imath.Color3f( 1, 0, 0 )

nodeGadget:color

The colour of a node

imath.Color3f( 0, 0, 1 )

noduleLayout:section

The edge the plug appears on

"left", "right", "top", "bottom"

noduleLayout:visible

Shows/hides the plug

True (visible), False (hidden)

+
+
+

Viewer layout

+ + + + + + + + + + + + + + + + + + + + + +

Name

Purpose

Example values

layout:divider

Places a divider after the plug

True

layout:index

Integer index in the layout order

0 (first), -1 (last)

toolbarLayout:section

The edge of the viewer the plug appears on

"Left", "Right", "Top", "Bottom"

+
+
+

PlugValueWidgets

+

Custom widget types may be registered for use in the Node Editor by adding plugValueWidget:type metadata to a plug. Note that not all widget types are compatible with all plug types - the table below lists the relevant widget types by plug type.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Plug Type

Purpose

PlugValueWidgetType

Plug (and subclasses)

Hide the plug permanently

""

Plug (and subclasses)

Display the input connection

"GafferUI.ConnectionPlugValueWidget"

ValuePlug (and subclasses)

Show a menu of presets

"GafferUI.PresetsPlugValueWidget"

IntPlug

Display a checkbox

"GafferUI.BoolPlugValueWidget"

StringPlug

Allow multi-line text entry

"GafferUI.MultiLineStringPlugValueWidget"

StringPlug

Show a file chooser

"GafferUI.FileSystemPathPlugValueWidget"

StringVectorDataPlug

Show a file chooser

"GafferUI.FileSystemPathVectorDataPlugValueWidget"

+

These widget types may be further customised using additional metadata as follows

+
+

BoolPlugValueWidget

+ + + + + + + + + + + + + +

Name

Purpose

Example values

boolPlugValueWidget:displayMode

Change display style

"checkBox", "switch"

+
+
+

FileSystemPathPlugValueWidget

+

These options also apply to the FileSystemPathVectorDataPlugValueWidget.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Name

Purpose

Example values

path:bookmarks

Specify which bookmarks to use

"image"

path:leaf

Don’t accept directories

True, False

path:valid

Only accept files that exist

True, False

fileSystemPath:extensions

Specify valid file types

"jpg jpeg png"

fileSystemPath:extensionsLabel

Describe valid file types

"Web images"

fileSystemPath:includeSequences

Display file sequences

True

+
+
+

PresetsPlugValueWidget

+ + + + + + + + + + + + + +

Name

Purpose

Example values

presetsPlugValueWidget:allowCustom

Allow values not in preset list

True, False

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/ScriptingReference/SetExpressions/index.html b/1.4.6.0/Reference/ScriptingReference/SetExpressions/index.html new file mode 100644 index 000000000..f5ff39365 --- /dev/null +++ b/1.4.6.0/Reference/ScriptingReference/SetExpressions/index.html @@ -0,0 +1,741 @@ + + + + + + + Set Expressions — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Set Expressions

+

Set expressions are a convenient way to build sets from other sets or locations. For the following examples we will assume that the scene has the following hierarchy :

+
    +
  • A

  • +
  • B

  • +
  • C

  • +
  • D

    +
      +
    • E

    • +
    +
  • +
+

Set memberships in this imaginary scene are as follows.

+ + + + + + + + + + + + + + + +

set1

set2

set3

set4

A B C

B C D

C D E

E

+

The following operators are currently supported

+ + + + + + + + + + + + + + + + + + + + + + + +

Operator

Behaviour

|

Union, unites two sets

&

Intersection, intersects two sets

-

Difference, removes elements from sets

in

Descendant query, selects locations from one set which are parented under locations in another

containing

Ancestor query, selections locations from one set which are parents of locations in another

+
+

Simple Examples

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

SetExpression

Objects in resulting set

set1

A B C

set1 | set2

A B C D

set1 & set2

B C

set1 - set2

A

set1 - C

A B

set4 in set2

E

set2 containing set4

D

+

The last example illustrates the use of objects in set expressions. Gaffer will interpret them as a set with the specified object as its sole member. Gaffer will also conveniently interpret space separated lists of sets and objects as a set that contains all the elements in the list (think of it as Gaffer inserting the | for you).

+ + + + + + + + + + + + + + +

SetExpression

Objects in resulting set

set1 set2

A B C D

set1 D

A B C D

+

Note that you can build sets on-the-fly to be used in the expression by using these space separated list of sets and objects.

+ + + + + + + + + + + + + + + + + +

SetExpression

Objects in resulting set

set1 | (D E)

A B C D E

set1 & (A B D)

A B

set1 - (B C)

A

+
+
+

Operator Precedence

+

Operations in the expression are executed in the following order : -, &, containing and then in. The following examples demonstrate this in action.

+ + + + + + + + + + + + + + + + + +

SetExpression

Objects in resulting set

set1 | set3 & set4

A B C E

set1 - set2 | set4

A E

set1 - set3 & set2

B

+

Parenthesis can be used to explicitly change the order of evaluation. The following examples use the same sets and operations as before, and demonstrate the effect of changing the evaluation order.

+ + + + + + + + + + + + + + + + + +

SetExpression

Objects in resulting set

(set1 | set3) & set4

E

set1 - (set2 | set4)

A

set1 - (set3 & set2)

A B

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/ScriptingReference/StringSubstitutionSyntax/index.html b/1.4.6.0/Reference/ScriptingReference/StringSubstitutionSyntax/index.html new file mode 100644 index 000000000..63153d296 --- /dev/null +++ b/1.4.6.0/Reference/ScriptingReference/StringSubstitutionSyntax/index.html @@ -0,0 +1,621 @@ + + + + + + + String Substitution Syntax — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ + +
+

String Substitution Syntax

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Substitution

Syntax

Example

Result

Frame number

#

image.#.exr

image.1.exr

Padded frame number

####

image.####.exr

image.0001.exr

Home directory

~

~/gaffer/projects

/home/stanley/gaffer/projects

Context variable

${name}

${scene:path}

/world/sphere

Environment variable

${name}

/disk1/${USER}

/disk1/stanley

Escape special character

\\

\\$

$

+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/ScriptingReference/index.html b/1.4.6.0/Reference/ScriptingReference/index.html new file mode 100644 index 000000000..1e633867d --- /dev/null +++ b/1.4.6.0/Reference/ScriptingReference/index.html @@ -0,0 +1,589 @@ + + + + + + + Scripting Reference — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Reference »
  • +
  • Scripting Reference
  • +
  • +
  • +
+
+
+
+
+ + +
+

Scripting Reference

+ + +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/Reference/index.html b/1.4.6.0/Reference/index.html new file mode 100644 index 000000000..6ea761899 --- /dev/null +++ b/1.4.6.0/Reference/index.html @@ -0,0 +1,587 @@ + + + + + + + Reference — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Reference
  • +
  • +
  • +
+
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.0.0.html b/1.4.6.0/ReleaseNotes/1.0.0.0.html new file mode 100644 index 000000000..61327f2fd --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.0.0.html @@ -0,0 +1,833 @@ + + + + + + + 1.0.0.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.0.0

+
+

Note

+

This release requires Arnold version 7.1.0.0 or newer.

+
+
+

Features

+
    +
  • Viewer :

    +
      +
    • Added optional raytraced rendering, to provide high quality preview of lighting and shading. Initially only Arnold is supported, but other renderers will be added in future.

    • +
    • Added FPS counter option to Gadget menu.

    • +
    +
  • +
  • ImageReader : Improved support for multi-part OpenEXR files, including fixes for reading many non-standard-conforming files from 3rd party software (#4559). The new channelInterpretation plug controls the naming of channels loaded from multi-part files.

  • +
  • ImageWriter : Added support for writing multi-part OpenEXR files using a new layout plug. This includes presets for standard conforming single-part and multi-part files, and several presets that match Nuke’s behaviour.

  • +
  • ImageNode : Added support for multi-view images.

    +
      +
    • ImageNodes can now output multiple “views”. Views are effectively independent images, and may have separate data windows, formats, channels and metadata, and even be mixtures of deep and flat images.

    • +
    • The multi-view feature was originally intended for storing stereo renders, but may also may used for general processing where it is convenient to group multiple images into one stream.

    • +
    • A new 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.

    • +
    • Multi-view images can be read from and written to EXR files via the ImageReader and ImageWriter nodes.

    • +
    • Added new nodes specifically for working with multi-view images :

      +
        +
      • CreateViews : For combining single view images into a multi-view image.

      • +
      • SelectView : For choosing one view from a multi-view image as a single view image.

      • +
      • CopyViews : For combining views from multi-view sources.

      • +
      • DeleteViews : For removing views from multi-view images.

      • +
      • Anaglyph : For viewing stereo images in a format appropriate for red-blue anaglyph glasses.

      • +
      +
    • +
    • A new dropdown menu in the Viewer chooses which view is being displayed.

    • +
    +
  • +
  • ContextQuery : Added node to access a context variable value directly without needing to use an expression.

  • +
+
+
+

Improvements

+
    +
  • Viewer : Improved accuracy of OpenColorIO display transforms when applied using the GPU.

  • +
  • Outputs :

    +
      +
    • Added support for layerName string parameter, which can be used to customise the naming of channels in EXR outputs. Currently only supported for Arnold renders.

    • +
    • Added support for layerPerLightGroup boolean parameter, which automatically splits the outputs into separate layers, one for each light group.

    • +
    +
  • +
  • USD :

    +
      +
    • Added support for purpose-based material assignments in SceneReader and SceneWriter. To render or author such assignments, a ShuffleAttributes node must currently be used to shuffle to and from the standard shader attributes.

    • +
    • Added basic support for loading UsdLux lights. The data is available in Gaffer, but needs manual conversion to meet the requirements of a specific renderer.

    • +
    +
  • +
  • ImageReader/ImageWriter : Added support for JPEG 2000 (.jp2) images.

  • +
  • Spreadsheet : Added activeRowIndex plug, which outputs the index of the currently active row.

  • +
  • InteractiveArnoldRender : Added support for an updateInteractively bool parameter for render outputs. This can be used to request more frequent updates for AOVs other than the beauty image.

  • +
  • ChannelPlugValueWidget : Improved the ordering of channel names presented in the menu.

  • +
  • PresetsPlugValueWidget : The children of compound plugs are now shown when in “Custom” mode.

  • +
  • LightEditor/SceneViewInspector : Improved performance when viewing complex scenes, by improving cache usage during history queries.

  • +
  • Node menu : Removed unsupported Arnold shaders ramp_rgb and ramp_float. The OSL ColorSpline and FloatSpline shaders should be used instead.

  • +
  • Image Channel Selectors : Channel names are now shown in “natural order”. This means a numerical part of the name is compared numerically, instead of alphabetically (so “channel13” comes after “channel2”).

  • +
+
+
+

Fixes

+
    +
  • Seeds : Fixed point distribution generated on MacOS to match the point distribution generated on Linux.

  • +
  • RenderController : Fixed duplicate callback( Completed ) calls from updateInBackground() when priority paths are specified.

  • +
  • PresetsPlugValueWidget/FormatPlugValueWidget : Fixed handling of evaluation errors (now turns red instead of failing to draw).

  • +
  • ImageTestCase : Fixed bug in assertImagesEqual() where bad pixel data could go undetected when using ignoreDataWindow.

  • +
  • Merge : Fixed rare failure to update when changing which channels existed on input.

  • +
  • CollectScenes : An empty rootNameVariable value no longer causes the creation of a context variable named "". Instead, no context variable is created (but the scenes are still collected).

  • +
  • TransformQuery : Removed unnecessary elements from hash.

  • +
  • ViewportGadget :

    +
      +
    • Fixed bug which could cause setCamera() to emit cameraChangedSignal() even when the camera was unchanged.

    • +
    • Fixed setCenterOfInterest() so that it doesn’t emit cameraChangedSignal() if the center of interest is unchanged.

    • +
    • Added GIL release in setViewport() Python bindings.

    • +
    +
  • +
  • AnimationEditor : Fixed glitches in the drawing of tangent handles during drags.

  • +
  • ArnoldMeshLight : Fixed bug which caused ai:autobump_visibility attributes to be inadvertently modified.

  • +
  • ArnoldShader/ArnoldLight : Fixed potential buffer overrun when loading color parameters with gaffer.plugType metadata.

  • +
  • Plug :

    +
      +
    • The removeOutputs() method now also removes any outputs from child plugs. This is consistent with the setInput() method, which has always managed child plug inputs.

    • +
    • Fixed bug which meant that child output connections were not removed when a plug was removed from a node.

    • +
    +
  • +
  • Expression : Fixed error when updating an expression which was previously connected to a deleted spreadsheet row (#4614).

  • +
  • ArnoldRender : Fixed rendering of single-channel AOVs specified using Gaffer’s generic 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.

  • +
  • Constraint : Restricted targetVertex to positive integers.

  • +
  • ScriptContainer : Fixed typeName(), which was omitting the Gaffer:: prefix.

  • +
  • Text : Fixed wrapping bug that caused blank lines to be inserted if a single word was too long for the line.

  • +
  • SceneReader : Fixed loading of USD asset paths containing <UDIM> tokens.

  • +
+
+
+

API

+
    +
  • ImageNode : Added virtual hashViewNames() and computeViewNames() methods which must be implemented by derived classes (unless an input connection is made for out.viewNames).

  • +
  • ImagePlug :

    +
      +
    • Added viewNames plug for outputting the names of the views in an image.

    • +
    • Added ViewScope class for specifying the image:viewName context variable.

    • +
    • Added optional viewName arguments to the convenience accessors such as channelNames() and channelData().

    • +
    +
  • +
  • ImageAlgo :

    +
      +
    • Added optional viewName arguments to image(), imageHash() and tiles().

    • +
    • Added viewIsValid() function.

    • +
    • Added sortedChannelNames() function.

    • +
    +
  • +
  • PlugAlgo : Added optional value argument to canSetValueFromData().

  • +
  • RenderController :

    +
      +
    • Added Python bindings for optional callback argument to update() and updateMatchingPaths().

    • +
    • Added Python binding for updateInBackground().

    • +
    • Added pathForID(), pathsForIDs(), idForPath() and idsForPaths() methods. These make it possible to identify an object in the scene from a uint id AOV.

    • +
    +
  • +
  • TestCase : Added assertNodeIsDocumented() method.

  • +
  • ImageTestCase : Added metadataBlacklist argument to assertImagesEqual().

  • +
  • MenuButton : Added setErrored() and getErrored() methods.

  • +
  • SceneView :

    +
      +
    • Added registerRenderer() and registeredRenderers() methods. These allow any suitable IECoreScenePreview::Renderer to be used to draw the scene.

    • +
    • Added renderer.name plug to control which renderer is used.

    • +
    • Added renderer.arnold plug to control Arnold render settings.

    • +
    +
  • +
  • PlugLayout : Improved activator support. The layout:activator and layout: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.

  • +
  • ViewportGadget : Added a CameraFlags enum, which is used in cameraChangedSignal() to specify what aspects of the camera have changed.

  • +
  • NodeAlgo : Added support for presets on compound plugs. If all child plugs have a particular preset then the parent plug is considered to have it too, and calling applyPreset( parent, preset ) will apply it to all the children.

  • +
  • Signals :

    +
      +
    • Added a new Signals namespace with Signal, Connection, ScopedConnection and Trackable classes. This provides significant performance and memory usage improvements over the old boost::signals library.

    • +
    • Removed usage of boost::signals::detail::unusable as a substitute for the void return type in the Signal bindings. Custom SlotCallers may now use a standard void return type.

    • +
    • The following signals now use a CatchingCombiner so that exceptions in one slot will not interfere with calls to other slots :

      +
        +
      • ApplicationRoot : ClipboardSignal.

      • +
      • GraphComponent : UnarySignal and BinarySignal.

      • +
      • Gadget : VisibilityChangedSignal, EnterLeaveSignal and IdleSignal.

      • +
      • Node : UnaryPlugSignal, BinaryPlugSignal, ErrorSignal.

      • +
      • ScriptNode : ActionSignal, UndoAddedSignal.

      • +
      • ViewportGadget : UnarySignal.

      • +
      +
    • +
    • The following signals now handle exceptions thrown from C++ slots as well as Python slots :

      +
        +
      • Gadget : ButtonSignal, DragBeginSignal, DragDropSignal, KeySignal.

      • +
      +
    • +
    • The following signals no longer suppress exceptions thrown from Python slots :

      +
        +
      • StandardSet : MemberAcceptanceSignal.

      • +
      +
    • +
    +
  • +
  • Monitor : Subclasses may now override mightForceMonitoring() and forceMonitoring() in order to ensure the monitored processes always run, instead of being skipped when they are cached.

  • +
  • ValuePlug : Added hashCacheTotalUsage() function.

  • +
  • ScriptContainer : Added Python binding.

  • +
  • Version.h : Added versionString() function.

  • +
+
+
+

Breaking Changes

+
    +
  • ImagePlug : The image:viewName context variable must now be set when evaluating plugs other than viewNamesPlug(). The gui app provides a default, but standalone scripts may need to be adjusted to specify image:viewName explicitly.

  • +
  • ImageWriter/SceneWriter : The overrides for TaskNode virtual methods are now protected rather than public. Use the TaskPlug API instead.

  • +
  • ShaderQuery : addQuery() now creates query and out plugs with numeric suffixes starting at 0 (rather than 1).

  • +
  • TweakPlug and TweaksPlug :

    +
      +
    • Moved to Gaffer module.

    • +
    • Removed methods for tweaking shader networks.

    • +
    • Backwards compatibility is provided when loading old .gfr files.

    • +
    +
  • +
  • Arnold : Removed support for Arnold versions prior to 7.1.0.0.

  • +
  • CollectScenes : Changed behaviour when rootNameVariable is empty.

  • +
  • PopupWindow :

    +
      +
    • Removed sizeMode and closeOnLeave constructor arguments.

    • +
    • Removed visibility animation.

    • +
    • Removed drag&drop positioning.

    • +
    +
  • +
  • ViewportGadget : Added a changes argument to CameraChangedSignal.

  • +
  • ImageReader : Changed the default interpretation of channel names in multi-part OpenEXR files. Set the channelInterpretation plug to Legacy to preserve the old behaviour.

  • +
  • ImageWriter : Multi-part OpenEXR files are now written by default. Set the layout plug to Single Part to write a single-part file instead.

  • +
  • SubTree : Removed the / root location from generated sets, because root membership is unsupported elsewhere in Gaffer.

  • +
  • OSLShader : Removed prepareSplineCVsForOSL() method. Use IECoreScene::ShaderNetworkAlgo::expandSplineParameters() instead.

  • +
  • ArnoldMeshLight : The ai:autobump_visibility attributes are no longer modified. Use a separate ArnoldAttributes node if necessary.

  • +
  • Spreadsheet :

    +
      +
    • Renamed activeRowNames plug to enabledRowNames. Backwards compatibility is provided when loading old .gfr files.

    • +
    • Renamed ui:spreadsheet:activeRowNamesConnection metadata to ui:spreadsheet:enabledRowNamesConnection.

    • +
    +
  • +
  • Signals :

    +
      +
    • Replaced all usage of boost::signals with Gaffer::Signals. These are largely source-compatible, with the following changes :

      +
        +
      • Boost snake_case naming has been replaced with CamelCase.

      • +
      • Connection groups are not supported. Use connectFront() to connect in front of existing slots.

      • +
      • The Connection class has simple setBlocked()/getBlocked() accessors, rather than block()/unblock()/blocked() methods.

      • +
      +
    • +
    • Removed the Gaffer/BlockedConnection.h header file. BlockedConnection can now be found in the Signals namespace provided by Gaffer/Signals.h.

    • +
    • Remove the Gaffer/CatchingSignalCombiner.h header file. CatchingSignalCombiner can now be found as Signals::CatchingCombiner in Gaffer/Signals.h.

    • +
    • Moved all Python classes into the Gaffer.Signals submodule.

    • +
    • Deprecated the default value for the scoped argument to Signal.connect(). Pass scoped = True to maintain the previous behaviour, or consider using an unscoped connection.

    • +
    +
  • +
  • ViewportGadget : Removed RenderRequestSignal type. Use the identical UnarySignal instead.

  • +
  • Replaced all usage of boost::optional with std::optional.

  • +
  • Random : Renamed contextEntry plug to seedVariable. Old .gfr files will be converted automatically on loading.

  • +
  • SceneAlgo : Removed historyIDContextName() function. history() no longer uses an ID in the context to ensure fresh evaluations, it instead uses Monitor::forceMonitoring() to temporarily disable caching.

  • +
+
+
+

Build

+
    +
  • Moved minimum required C++ standard to C++17.

  • +
  • Updated to GCC 9.3.1 for Linux builds.

  • +
  • Updated to GafferHQ/dependencies 5.0.0 :

    +
      +
    • Alembic : Updated to version 1.8.3.

    • +
    • Blosc : Updated to 1.21.1.

    • +
    • Boost : Updated to version 1.76.0.

    • +
    • CMark : Updated to 0.29.0.

    • +
    • Cortex : Updated to 10.4.0.0.

    • +
    • CMark : Updated to 0.29.0.

    • +
    • HDF5 : Updated to 1.12.0.

    • +
    • LibFFI : Updated to 3.4.2.

    • +
    • LibPNG : Updated to 1.6.37.

    • +
    • LLVM : Updated to version 11.1.0.

    • +
    • OpenColorIO : Updated to version 2.1.1.

    • +
    • OpenJPEG : Added version 2.4.0.

    • +
    • OpenImageIO : Updated to version 2.3.11.0.

    • +
    • OpenShadingLanguage : Updated to version 1.11.17.0.

    • +
    • OpenSSL : Updated to 1.1.1i.

    • +
    • OpenVDB : Updated to version 9.1.0, and added nanovdb.

    • +
    • PySide : Updated to 5.15.4.

    • +
    • Python : Updated to 3.8.13 (MacOS only).

    • +
    • Qt : Updated to 5.15.4.

    • +
    • Subprocess32 : Now packaged as a regular module rather than as a .egg package.

    • +
    • TBB : Updated to version 2020.3.

    • +
    • USD : Updated to version 21.11.

    • +
    +
  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.1.0.html b/1.4.6.0/ReleaseNotes/1.0.1.0.html new file mode 100644 index 000000000..282d700b8 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.1.0.html @@ -0,0 +1,612 @@ + + + + + + + 1.0.1.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.1.0

+
+

Improvements

+
    +
  • TweakPlug : Added new tweak modes.

    +
      +
    • Min : Resulting value will be the lesser of the existing value and the tweak value. For values with multiple components, such as Color3f, each component is compared individually.

    • +
    • Max : Same as Min except the resulting value is the greater of the existing value and the tweak value.

    • +
    • ListAppend : Values in the tweak list are added to the end of the existing list. If a value is in both the existing list and the tweak list, it is removed from the existing list before being added.

    • +
    • ListPrepend : Same as ListAppend except the tweak list is added to the beginning of the existing list.

    • +
    • ListRemove : Values in the tweak list are removed from the existing list.

    • +
    +
  • +
  • Added horizontal scroll bars to the Light Editor, Scene Inspector and Shader Browser when their content is too wide to fit within the widget.

  • +
+
+
+

Fixes

+
    +
  • LightEditor :

    +
      +
    • Fixed error when pressing Return or Enter with no cells selected.

    • +
    • Fixed error when double-clicking the Name column.

    • +
    +
  • +
  • Catalogue :

    +
      +
    • Fixed bug that prevented saving of images.

    • +
    • Fixed bugs in column listing for multi-view images.

    • +
    +
  • +
  • ShaderQuery and ShaderTweaks : Fixed error TypeError: object of type 'NoneType' has no len() when clicking “Input” column of a shader row.

  • +
  • OSLObject/OSLImage : Fixed bug which resulted in undefined values for derivatives.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.2.0.html b/1.4.6.0/ReleaseNotes/1.0.2.0.html new file mode 100644 index 000000000..9fa1f853b --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.2.0.html @@ -0,0 +1,601 @@ + + + + + + + 1.0.2.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.2.0

+
+

Improvements

+
    +
  • TweakPlug : Using the ListAppend and ListPrepend modes to add to a non-existent list now creates a list with the new values. Using the ListRemove mode to modify a non-existent list results in a non-existent list. All other modes retain their current missingMode behavior.

  • +
  • ImageWriter : The openexr.dataType plug now accepts an expression or spreadsheet input to set per-channel data types.

  • +
+
+
+

Fixes

+
    +
  • ImageWriter : Fixed bug with color transform alpha handling when the alpha channel was not the last channel.

  • +
  • Viewer : Fixed images not displaying when the display window was offscreen.

  • +
  • UV Inspector : Fixed texture display (broken in 1.0.0.0).

  • +
  • Animation : Prevented negative zero slope.

  • +
  • Animation Editor :

    +
      +
    • Fixed glitch when dragging a tangent having an opposite tangent with (+/-) inf slope.

    • +
    • Fixed bug that caused exception to be raised when the parent node of an editable curve was removed.

    • +
    • Fixed bug that prevented signals from being disconnected when a key was deleted.

    • +
    +
  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.2.1.html b/1.4.6.0/ReleaseNotes/1.0.2.1.html new file mode 100644 index 000000000..78b16eff3 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.2.1.html @@ -0,0 +1,586 @@ + + + + + + + 1.0.2.1 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.2.1

+
+

Fixes

+
    +
  • TweakPlug : Added Min and Max tweak modes to the UI for numeric tweaks. These were previously only available through Python.

  • +
  • Arnold : Fixed rendering error for cubic curves with Vertex interpolation Quatf primitive variables.

  • +
  • ImageReader : Fixed reading of signed integer TIFF files, which were failing due to a missing colorspace configuration. Signed integer files are now assumed to contain linear data (#4772).

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.3.0.html b/1.4.6.0/ReleaseNotes/1.0.3.0.html new file mode 100644 index 000000000..91db409b9 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.3.0.html @@ -0,0 +1,665 @@ + + + + + + + 1.0.3.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.3.0

+

This release introduces support for the open source Cycles renderer. This is introduced as an opt-in feature preview intended for early testing and feedback as breaking changes can be expected while we continue to improve Cycles integration in future releases. As such, the use of Cycles is disabled by default but can be enabled via an environment variable. Additionally we’ve added support for viewing parameter history in the Light Editor, automatic render-time translation of UsdPreviewSurface shaders and UsdLuxLights for Arnold and made the usual small fixes and improvements.

+
+

Note

+

+

The Cycles feature preview can be enabled by setting the GAFFERCYCLES_FEATURE_PREVIEW environment variable to 1.

+
+
+

Features

+
    +
  • Cycles : Added initial support for the Cycles renderer.

  • +
  • Light Editor : Added a non-modal dialog to view the history of a parameter. It can be accessed by right-clicking a parameter in the Light Editor and selecting Show History.... Within the dialogue :

    +
      +
    • Double clicking a node name will open a Node Editor popup.

    • +
    • Dragging a node name into the Graph Editor will zoom to the node.

    • +
    • Double clicking, pressing Return or Enter on a parameter value or operation will open a plug popup to edit the value.

    • +
    +
  • +
+
+
+

Improvements

+
    +
  • USD :

    +
      +
    • Added automatic render-time translation of UsdPreviewSurface shaders and UsdLuxLights for Arnold.

    • +
    • The SceneReader now loads all UsdLuxLights into the defaultLights set so that they are linked by default.

    • +
    +
  • +
  • SceneReader :

    +
      +
    • Added support for Alembic visibility attributes.

    • +
    • Added loading of treatAsPoint and treatAsLine parameters from UsdLux lights.

    • +
    +
  • +
  • SceneWriter : Added support for Alembic visibility attributes.

  • +
  • ColorPlugValueWidget : Hid the color chooser button (sliders) for output plugs.

  • +
  • Arnold : Added metadata for new standard_volume shader parameters introduced in Arnold 7.1.3.0.

  • +
  • VectorDataWidget : Added a color swatch column for Color3f and Color4f elements. These are currently included in the RandomChoice node when choices is set to a list of colors, and for color primitive variables in the Primitive Inspector.

  • +
  • NameWidget : Added a check to prevent users from setting a node or plug name to a value starting with a double underscore.

  • +
  • ShaderTweaks : Added Create and Remove tweak modes.

  • +
+
+
+

Fixes

+
    +
  • Qt : Added missing QtUiTools module.

  • +
  • SceneReader : Fixed shader type for UsdLux lights. It was surface and is now light.

  • +
  • Fixed a bug in SceneAlgo::attributeHistory that would return a branching history from a ShaderTweaks node with inherit enabled.

  • +
  • Arnold : Fixed errors when making interactive render edits to lights with component-level connections between OSL shaders.

  • +
  • PathListingWidget :

    +
      +
    • Fixed bug where one more rows at the bottom of the list could not be selected.

    • +
    • Fixed error when dragging from shader browser name columns, shader browser input columns and Catalogue columns.

    • +
    +
  • +
  • PathFilter : Improved positioning of PathFilters created by dropping paths onto a node.

  • +
  • GraphEditor :

    +
      +
    • Improved handling of Backdrops when laying out nodes. Individual nodes are no longer pushed outside backdrops, and backdrops themselves are positioned as a group containing all their child nodes.

    • +
    • Improved positioning of pasted nodes, so that they are less likely to overlap with any node they are automatically connected to.

    • +
    +
  • +
+
+
+

API

+
    +
  • StandardLightVisualiser :

    +
      +
    • Added support for parameters specifying the width and height of quad lights, and the length of cylinder lights.

    • +
    • The coneAngleParameter metadata is now supported for all light types.

    • +
    +
  • +
+
+
+

Documentation

+
    +
  • Improved “Controls and Shortcuts” and added link in help menu.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to 10.4.1.0.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.4.0.html b/1.4.6.0/ReleaseNotes/1.0.4.0.html new file mode 100644 index 000000000..53a55cf19 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.4.0.html @@ -0,0 +1,622 @@ + + + + + + + 1.0.4.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.4.0

+
+

Features

+
    +
  • Edit Menu : Added “Duplicate with Inputs” menu item, with Ctrl+D shortcut.

  • +
  • OptionTweaks : Added node for tweaking options in a scene.

  • +
  • OptionQuery : Added node for querying options from a scene.

  • +
  • StandardAttributes : Added automaticInstancing plug to allow instancing to be disabled on selected locations. Currently supported only by the Arnold renderer.

  • +
+
+
+

Improvements

+
    +
  • TweakPlug : Added the ability to set InternedStringData from StringData.

  • +
  • GraphEditor : Added a warning for attempts to open the node creation menu in a read-only graph.

  • +
  • Light Editor :

    +
      +
    • Added explanation to cell popup when a parameter cannot be edited because there are no editable sources.

    • +
    • Added an error icon to a cell with an explanation in the tooltip when there is an error computing its value (#4805).

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • SceneReader :

    +
      +
    • Fixed reading of Alembic files with animated visibility.

    • +
    • Fixed reading of primitive variables from UsdGeomPointInstancers.

    • +
    +
  • +
  • GraphEditor : Fixed bugs which allowed new connections to be made in read-only graphs.

  • +
  • NodeEditor : Fixed bugs which allowed plugs to be added to read-only tweaks nodes.

  • +
  • CyclesOptions : Fixed errors in section summaries.

  • +
  • NoduleLayout : Fixed shutdown crashes triggered by custom gadgets implemented in Python.

  • +
  • ShaderTweaks : Fixed error when attempting to use a : in a parameter name.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to 10.4.1.2.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.5.0.html b/1.4.6.0/ReleaseNotes/1.0.5.0.html new file mode 100644 index 000000000..d7d1e020b --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.5.0.html @@ -0,0 +1,624 @@ + + + + + + + 1.0.5.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.5.0

+
+

Features

+
    +
  • Rename : Added a new node for renaming scene locations (#1201).

  • +
  • LookTransform : Added a new node for applying OpenColorIO looks to images.

  • +
+
+
+

Improvements

+
    +
  • SplinePlug : Added Constant interpolation mode.

  • +
  • SceneReader : Added reading of more Alembic GeomParam types. Specifically unsigned char, uint16, int16 and uint32 GeomParams are loaded as UCharVectorData, UShortVectorData, ShortVectorData and UIntVectorData PrimitiveVariables respectively.

  • +
  • SceneWriter : Added writing of more Alembic GeomParam types, mirroring the improved reading mentioned above.

  • +
  • Light Editor : Added the ability to select linked objects and to delete lights. Both commands can can be accessed by right-clicking a light name and selecting either ‘Select Linked Objects’ or ‘Delete’.

  • +
  • Graph Editor : When changing the root of the Graph Editor (such as entering or exiting a Box), framing is now restored specifically for the current Graph Editor. Previously, a single framing history was used for all Graph Editors.

  • +
+
+
+

Fixes

+
    +
  • GraphEditor : Fixed handling of errors on Dot.labelType and Dot.label plugs.

  • +
  • EditScope : Fixed mislocated plug nodules when connecting a new EditScope to a BoxIn, BoxOut or Box node.

  • +
  • Backdrop : Fixed bug selecting or moving a backdrop when zoomed out in the GraphEditor, where drag-resizing the top edge was incorrectly being given precedence.

  • +
  • CDL : Fixed handling of values for the direction plug. Previously, OCIO::TransformDirection enum values were being used directly as plug values, but OpenColorIO 2 broke compatibility by changing the enum. A new GafferImage::CDL::Direction enum provides stable values for use in the CDL.direction plug, insulating Gaffer from future changes.

  • +
  • ViewPlugValueWidget :

    +
      +
    • Fixed bug which caused images to be evaluated in the wrong context.

    • +
    • Fixed error handling bug which could prevent the NodeEditor from building.

    • +
    +
  • +
  • CropWindowTool :

    +
      +
    • Fixed bug which caused images to be evaluated in the wrong context.

    • +
    • Fixed bug handling images with non-default views.

    • +
    +
  • +
  • Cycles : Fixed rendering with a non-default crop window.

  • +
  • Arnold : Fixed handling of closure shader connections in USD materials exported from Maya.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to 10.4.2.1.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.5.1.html b/1.4.6.0/ReleaseNotes/1.0.5.1.html new file mode 100644 index 000000000..84611f2fb --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.5.1.html @@ -0,0 +1,590 @@ + + + + + + + 1.0.5.1 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.5.1

+
+

Fixes

+
    +
  • GafferImage : Fixed Context has no variable named "image:viewName" errors. If image:viewName is not provided by a context, GafferImage automatically falls back to a value of default.

  • +
+
+
+

API

+
    +
  • GUI config : Stopped adding an image:viewName variable to Script.variables. This was an attempt to provide fallbacks for legacy code that didn’t provide the image:viewName context variable, but it was only partially effective. It is unnecessary now that GafferImage has internal fallbacks instead.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.6.0.html b/1.4.6.0/ReleaseNotes/1.0.6.0.html new file mode 100644 index 000000000..423932fc1 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.6.0.html @@ -0,0 +1,601 @@ + + + + + + + 1.0.6.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.6.0

+
+

Improvements

+
    +
  • Constraint :

    +
      +
    • Added maintainReferencePosition plug. This allows the constraint to maintain the original position of the object at a specifed reference time.

    • +
    • Improved performance for UV constraints where the target has static geometry but an animated transform. One such benchmark shows a greater than 40x speedup.

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • Shape : Fixed unnecessary serialisation of internal connection.

  • +
  • ScaleTool :

    +
      +
    • Fixed oversensitive scaling when zoomed out in the Viewer.

    • +
    • Prevented uniform scaling from becoming negative.

    • +
    +
  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.6.1.html b/1.4.6.0/ReleaseNotes/1.0.6.1.html new file mode 100644 index 000000000..9740c8a50 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.6.1.html @@ -0,0 +1,593 @@ + + + + + + + 1.0.6.1 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.6.1

+
+

Fixes

+
    +
  • NodeEditor : Fixed update of section summaries when they are changed in the UI Editor.

  • +
  • ArnoldColorManager : Fixed broken presets for color_space_narrow and color_space_linear.

  • +
  • ArnoldDisplacement : Removed irrelevant shader name widget and Reload button.

  • +
  • ImageView : Fixed error with display of negative colors.

  • +
  • Spreadsheet :

    +
      +
    • Fixed bugs with inconsistent column ordering.

    • +
    • Fixed bug that allowed operations on hidden columns included through shift-selection (was seen by users as the disable hotkey unexpectedly affecting columns on other tabs).

    • +
    +
  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.6.2.html b/1.4.6.0/ReleaseNotes/1.0.6.2.html new file mode 100644 index 000000000..b620c3be5 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.6.2.html @@ -0,0 +1,595 @@ + + + + + + + 1.0.6.2 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.6.2

+
+

Fixes

+
    +
  • GraphEditor : Fixed crash when focussing an empty ContextVariables, NameSwitch or Loop node (#4944).

  • +
  • UI :

    +
      +
    • Fixed tooltips containing raw HTML.

    • +
    • Fixed stalls caused by Qt repeatedly accessing the same icon files.

    • +
    +
  • +
  • Viewer : Fixed context used to compute the view menu for the image being shown. On the first update, an empty context was being used instead of the script’s context.

  • +
  • DocumentationAlgo : Fixed handling of raw HTML by markdownToHTML().

  • +
  • Reference : Fixed unnecessary serialisation of connections from internal plugs to external plugs. These are serialised in the .grf file already, so do not need to be duplicated on the Reference node itself. This bug prevented changes to the internal connections from taking effect when reloading a modified .grf file, and could cause load failures when the connections were from an internal Expression (#4935).

  • +
  • MeshToLevelSet, LevelSetOffset : Fixed bug that could cause partial results to be returned if a previous operation was cancelled.

  • +
  • PlugValueWidget : Fixed unnecessary updates when calling setContext() with the same context.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.6.3.html b/1.4.6.0/ReleaseNotes/1.0.6.3.html new file mode 100644 index 000000000..9a6d3ccfd --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.6.3.html @@ -0,0 +1,585 @@ + + + + + + + 1.0.6.3 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.6.3

+
+

Fixes

+
    +
  • Catalogue : Fixed crashes when using the or keys immediately after adding or removing a column.

  • +
  • PathListingWidget : Fixed bug tracking the last selected path, which could cause crashes if the path was deleted or the columns were changed.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.6.4.html b/1.4.6.0/ReleaseNotes/1.0.6.4.html new file mode 100644 index 000000000..b8e059af6 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.6.4.html @@ -0,0 +1,586 @@ + + + + + + + 1.0.6.4 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.6.4

+
+

Fixes

+
    +
  • MessagesBinding : Fixed GIL management bug that could cause crashes when performing an interactive render.

  • +
  • Spreadsheet : Fixed crash when connecting a StringVectorDataPlug to a row’s name plug.

  • +
  • Documentation : Fixed “In this article” navigation column contents on pages containing figures.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.6.5.html b/1.4.6.0/ReleaseNotes/1.0.6.5.html new file mode 100644 index 000000000..8fb168f08 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.6.5.html @@ -0,0 +1,584 @@ + + + + + + + 1.0.6.5 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.6.5

+
+

Fixes

+
    +
  • NodeEditor : Fixed updates for the green “non-default-value” dots in plug labels.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.0.6.6.html b/1.4.6.0/ReleaseNotes/1.0.6.6.html new file mode 100644 index 000000000..b93f5a4ed --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.0.6.6.html @@ -0,0 +1,584 @@ + + + + + + + 1.0.6.6 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.0.6.6

+
    +
  • ShaderTweaks : Fixed Remove mode.

  • +
  • FilterQuery : Fixed bug which prevented the output from updating when the input scene changed (#5066).

  • +
  • Random : Fixed GIL management bug which could lead to hangs.

  • +
  • Arnold : Fixed rendering of token enum parameter values loaded from USD.

  • +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.0.0.html b/1.4.6.0/ReleaseNotes/1.1.0.0.html new file mode 100644 index 000000000..9dda0fbca --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.0.0.html @@ -0,0 +1,640 @@ + + + + + + + 1.1.0.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.0.0

+
+

Features

+
    +
  • Image Viewer : Added image comparisons and wipes. Press Q in Viewer to enable. The primary image is compared to an Output Index set on the currently viewed Catalogue. Comparison modes including Over, Under, Difference and Replace can be selected from a dropdown menu. A wipe can be positioned by dragging in the viewer, and toggled using W.

  • +
  • Catalogue : Added Output Index column which can be used to set particular images as numbered outputs that can be referenced from the Viewer and CatalogueSelect nodes.

  • +
+
+
+

Fixes

+
    +
  • Plug : Fixed bug that could prevent plugDirtiedSignal() from ever being emitted again if an exception was thrown during parenting. This could cause the UI to stop updating.

  • +
  • FileSystemPath (Windows only) :

    +
      +
    • . characters are now excluded from the path entries. These were being inserted in some cases even when the user did not input one.

    • +
    • Fix browsing UNC paths in file browsers.

    • +
    +
  • +
  • UI :

    +
      +
    • Fixed one pixel alignment issue with highlighted and disabled icons.

    • +
    • Improved appearance of adjoined widgets.

    • +
    • Clicking on a button no longer assigns focus to it.

    • +
    • Fixed appearance of disabled MenuButtons, so that they match the appearance of disabled Buttons.

    • +
    +
  • +
+
+
+

API

+
    +
  • Signals :

    +
      +
    • Added Trackable::disconnectTrackedConnections() method.

    • +
    • Added ScopedConnection move constructor and move assignment operator.

    • +
    +
  • +
  • ViewportGadget : Added setPostProcessShader(). This allows the main layer to be rendered to a framebuffer, and processed by a shader before being displayed. Useful for applying color transforms on the GPU after rendering.

  • +
  • GafferImageUI : Added OpenColorIOAlgo::displayTransformToFramebufferShader(). Converts an OCIO processor to a shader suitable for use with setPostProcessShader().

  • +
  • ImageView : ImageView now uses a color transform on the viewport instead of ImageGadget. Should not impact user visible behaviour, but paves the way for future work.

  • +
  • ImageGadget : Added functions for setting wipe and blend mode.

  • +
  • Path : Added virtual rootAndNames() method. This can be overridden to modify the root and names values as set by setFromString().

  • +
  • FileSystemPath :

    +
      +
    • Added support for Windows paths.

    • +
    • Added nativeString() function to return the path as an OS-specific string.

    • +
    • (Windows only) Paths beginning with a single / or \ not followed by a drive letter are interpreted as UNC paths.

    • +
    +
  • +
  • WidgetAlgo : Improved joinEdges() to support a wider range of widget types.

  • +
  • OpenColorIOTransform : Consolidated the duplicate Direction enums from CDL, LookTransform and LUT in to a single OpenColorIOTransform::Direction enum.

  • +
+
+
+

Breaking Changes

+
    +
  • ImageGadget : Removed setters and getters for DisplayTransform, UseGPU, Clipping, Exposure, Gamma. Instead use ViewportGadget::setPostProcessShader() to set up a GPU color transform, or set the plug values on ImageView.

  • +
  • ImageView : Using CPU color transforms is now deprecated. We can’t properly support wipes in CPU mode, and OCIO now offers full quality on the GPU, in addition to the performance being much better. While the CPU functionality still exists, the UI has been hidden.

  • +
  • Signals : Removed flawed ScopedConnection copy constructor and assignment operator. Use move construction and assignment instead.

  • +
  • ImagePlug : Removed unused viewName argument from viewNames() and viewNamesHash() methods.

  • +
  • StandardAttributes : Removed backwards compatibility for StandardAttributes nodes saved from Gaffer 0.95.0 (May 2014) and earlier. If necessary, resave affected files using a recent Gaffer version.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.1.0.html b/1.4.6.0/ReleaseNotes/1.1.1.0.html new file mode 100644 index 000000000..f1854e384 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.1.0.html @@ -0,0 +1,596 @@ + + + + + + + 1.1.1.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.1.0

+
+

Improvements

+
    +
  • LightEditor : Improved update performance, as a result of general improvements to the PathListingWidget that may improve performance elsewhere too.

  • +
+
+
+

Fixes

+
    +
  • Viewer : Fixed rendering of background in Replace comparison mode.

  • +
+
+
+

Build

+
    +
  • Fixed backwards compatibility with Boost 1.73 (broken in 1.1.0.0).

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.2.0.html b/1.4.6.0/ReleaseNotes/1.1.2.0.html new file mode 100644 index 000000000..c9ae7c3ab --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.2.0.html @@ -0,0 +1,650 @@ + + + + + + + 1.1.2.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.2.0

+
+

Improvements

+
    +
  • Viewer : Added support for selecting an image comparison node. This can be accessed by selecting the focus or selected node from the comparison widget at the top of the viewer, or by dragging an image node to the comparison widget.

  • +
  • Catalogue :

    +
      +
    • Improved performance when interacting with large Catalogues.

    • +
    • Added hover state to the output index column, to indicate clickability.

    • +
    • Improved default column layout, so output index column is more compact.

    • +
    +
  • +
  • Sets : Added “Select Affected Objects” to the following plugs’ right click menu :

    +
      +
    • Set expression and set name plugs

    • +
    • Spreadsheet cells connected to a set expression or set name plug

    • +
    • Plugs promoted from a set expression or set name plug

    • +
    +
  • +
  • PathFilter : Added “Select Affected Objects” to the following plugs’ right click menu :

    +
      +
    • Plugs promoted from a PathFilter.paths plug (an unpromoted PathFilter.paths plug supports this since 0.61.13.0)

    • +
    • Spreadsheet cells connected to a PathFilter.paths plug.

    • +
    • Spreadsheet row names when the spreadsheet selector is set to scene:path.

    • +
    +
  • +
  • Spreadsheet : Added support for metadata on the name and enabled plug of each row. Metadata registered on plugs in the default row is mirrored automatically onto all other rows.

  • +
  • ShuffleAttributes, ShufflePrimitiveVariables :

    +
      +
    • Added replaceDestination plugs that may be used to specify whether each shuffle replaces existing destination data with the same name.

    • +
    • Shuffles are now performed in the order they are defined, and separate shuffles may write to the same destination.

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • Catalogue : Removed incorrect error message on empty Catalogues.

  • +
  • Cycles :

    +
      +
    • Fixed crash rendering a scene containing a CoordinateSystem (#4865).

    • +
    • Fixed crash rendering a PointPrimitive with N primitive variable (#4876).

    • +
    • Fixed handling of Varying primitive variable interpolation (#4849).

    • +
    • Fixed handling of Constant Color3f primitive variables.

    • +
    • Fixed handling of indexed primitive variables.

    • +
    • Fixed "attribute edit required geometry to be regenerated" error when changing attributes on a camera.

    • +
    • Fixed cycles:shader:displacement_method attribute handling (#4893).

    • +
    • Fixed shader attribute substitutions (#4921).

    • +
    +
  • +
  • PathFilter : Fixed error when selecting a path element from a promoted PathFilter.paths plug (introduced in 0.61.13.0).

  • +
  • ImageView : Fixed error with display of negative colors.

  • +
  • NodeEditor : Fixed updated of section summaries when they are changed in the UI Editor.

  • +
  • ArnoldColorManager : Fixed broken presets for color_space_narrow and color_space_linear.

  • +
  • Spreadsheet :

    +
      +
    • Fixed bugs with inconsistent column ordering.

    • +
    • Fixed bug that allowed operations on hidden columns included through shift-selection (was seen by users as the disable hotkey unexpectedly affecting columns on other tabs).

    • +
    +
  • +
  • ArnoldDisplacement : Removed irrelevant shader name widget and Reload button.

  • +
+
+
+

API

+
    +
  • PathColumn : Added support for a different icon to be shown when a cell is hovered.

  • +
  • SetUI : Removed ui:scene:acceptsSet* metadata from entries that are promoted along with a plug.

  • +
  • MetadataAlgo : Added isPromotable() method.

  • +
  • StandardLightVisualiser : Added a muted boolean to wireframe light drawing methods.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.3.0.html b/1.4.6.0/ReleaseNotes/1.1.3.0.html new file mode 100644 index 000000000..c50ee1582 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.3.0.html @@ -0,0 +1,636 @@ + + + + + + + 1.1.3.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.3.0

+
+

Features

+
    +
  • Image Viewer :

    +
      +
    • Added “Match Display Windows” option to Compare Mode menu. This allows the comparison mode to directly view a low-res render over a high-res plate, providing better performance than scaling up the render using the node graph.

    • +
    • The Color Inspector now shows color values for both images when comparing. Picking a color by dragging from the image now selects the composited on-screen color, taking into account “Compare Mode” and the wipe.

    • +
    +
  • +
+
+
+

Improvements

+
    +
  • EditScope Menu :

    +
      +
    • Changed the order of listed EditScopes to be alphabetical.

    • +
    • Added an icon to menu items that are ancestors of the active EditScope.

    • +
    • Menu items that only have a single item in their sub-menu are now collapsed into the parent item.

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • Shader Viewer : Fixed (was broken in 1.1.2.0).

  • +
  • Image Viewer :

    +
      +
    • Fixed visual artifact when using a wipe with Replace compare mode on images with mismatched pixel aspect ratios.

    • +
    • Fixed context used to compute the view menu for the image being shown. On the first update, an empty context was being used instead of the script’s context.

    • +
    • Color Inspector :

      +
        +
      • Corrected half-pixel offset in measured pixel values.

      • +
      • Pixel location indicators are no longer affected by the display color transform.

      • +
      +
    • +
    +
  • +
  • GraphEditor : Fixed crash when focussing an empty ContextVariables, NameSwitch or Loop node (#4944).

  • +
  • UI :

    +
      +
    • Fixed tooltips containing raw HTML.

    • +
    • Fixed stalls caused by Qt repeatedly accessing the same icon files.

    • +
    +
  • +
  • DocumentationAlgo : Fixed handling of raw HTML by markdownToHTML().

  • +
  • Reference : Fixed unnecessary serialisation of connections from internal plugs to external plugs. These are serialised in the .grf file already, so do not need to be duplicated on the Reference node itself. This bug prevented changes to the internal connections from taking effect when reloading a modified .grf file, and could cause load failures when the connections were from an internal Expression (#4935).

  • +
  • MeshToLevelSet, LevelSetOffset : Fixed bug that could cause partial results to be returned if a previous operation was cancelled.

  • +
  • PlugValueWidget : Fixed unnecessary updates when calling setContext() with the same context.

  • +
+
+
+

API

+
    +
  • MenuDefinition : Added icon attribute support to subMenu items.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.4.0.html b/1.4.6.0/ReleaseNotes/1.1.4.0.html new file mode 100644 index 000000000..904f1b6d3 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.4.0.html @@ -0,0 +1,598 @@ + + + + + + + 1.1.4.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.4.0

+
+

Improvements

+
    +
  • Cycles : Added support for custom attributes with either a user: or render: prefix. These can be authored in Gaffer and then read at render time using Cycle’s attribute shader.

  • +
+
+
+

Fixes

+
    +
  • Catalogue : Fixed crashes when using the or keys immediately after adding or removing a column.

  • +
  • PathListingWidget : Fixed bug tracking the last selected path, which could cause crashes if the path was deleted or the columns were changed.

  • +
  • Image Viewer : Fixed dragging a color from the image view using a context with the wrong time, and an error that could show up when deleting the currently viewed image.

  • +
  • Cycles :

    +
      +
    • Fixed background shader bug that could cause a crash, or cause the initial render in the Cycles viewport to be blank.

    • +
    • Fixed light bug that triggered an assertion in Cycles debug builds.

    • +
    +
  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.5.0.html b/1.4.6.0/ReleaseNotes/1.1.5.0.html new file mode 100644 index 000000000..c6fbbb048 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.5.0.html @@ -0,0 +1,617 @@ + + + + + + + 1.1.5.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.5.0

+
+

Features

+
    +
  • PrimitiveVariableQuery : Added new node to query multiple primitive variables from a scene location.

    +
      +
    • Each query specifies the name and type of the primitive variable

    • +
    • Each query has a corresponding output plug with exists, interpolation, type and value child plugs.

    • +
    +
  • +
+
+
+

Improvements

+
    +
  • ArnoldOptions : Added support for texture_use_existing_tx, texture_auto_generate_tx and texture_auto_tx_path.

  • +
  • Arnold : Added support for attributes containing InternedStringData, as would be obtained by loading token primvars from a USD file.

  • +
  • Random : Added the outFloat plug to the NodeEditor, and moved output plugs into their own Outputs section.

  • +
+
+
+

Fixes

+
    +
  • Arnold :

    +
      +
    • Fixed deletion of ai:transform_type attribute during interactive renders. The object now reverts to the default transform type in this case.

    • +
    • Fixed broken Viewer after Arnold encountered an error (such as a missing texture).

    • +
    • Fixed Tools/Arnold/Flush Cache not working when no interactive renders are running.

    • +
    +
  • +
+
+
+

API

+
    +
  • TypedObjectPlug : Added V2fVectorDataPlug and V3iVectorDataPlug.

  • +
  • PlugAlgo : Added support for V2iVectorData, V3fVectorData and Color3fVectorData types in canSetValueFromData() and setValueFromData() functions.

  • +
  • VectorDataPlugValueWidget : Added support for V2iVectorData and Color3fVectorData plug types.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.6.0.html b/1.4.6.0/ReleaseNotes/1.1.6.0.html new file mode 100644 index 000000000..aef5e061d --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.6.0.html @@ -0,0 +1,617 @@ + + + + + + + 1.1.6.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.6.0

+
+

Features

+
    +
  • SetQuery : Added a new node for querying the set memberships of a location.

  • +
+
+
+

Improvements

+
    +
  • UIEditor : Added Allow Custom Values checkbox to the Widget Settings section for the Presets Menu widget. When on, this allows the user to enter their own custom values in addition to choosing presets from the menu.

  • +
  • Image View : Added support for custom presets for choosing catalogue outputs to compare to. This can be set up like Gaffer.Metadata.registerNodeValue( GafferImageUI.ImageView, "compare.catalogueOutput", "preset:MyPreset", "myNamespace:specialImage" ). The Catalogue won’t know how to deal with a request for “myNamespace:specialImage”, and will just output an error image, but this could be useful in pipelines where Catalogue’s are wrapped in custom nodes that can respond to this special value of the catalogue:imageName. If you want to provide a custom icon for your custom mode, Gaffer will search for an icon name catalogueOutput{preset name}.png.

  • +
  • Animation Editor : Added UI tooltips to menu items for TieMode and Interpolation.

  • +
  • CopyPrimitiveVariables : Added ignoreIncompatible plug which will cause the node to not error when attempting to copy primitive variables from the source object that are imcompatible with the destination object.

  • +
  • Arnold : Enabled support for using the layerName parameter with non-LPE outputs. This requires a minimum of Arnold 7.1.3.0, because it contains a fix for ARNOLD-12282.

  • +
  • ShaderQuery : Added “From Selection” menu item to the popup menus for the shader plug and parameter adder.

  • +
  • File browsers : Excessively long filter labels are now truncated, instead of making the widget too wide.

  • +
  • PathParameterValueWidget : The extensions specified by the parameter are now translated to fileSystemPath:extensions metadata, enabling filtering in the Gaffer file browser.

  • +
+
+
+

Fixes

+
    +
  • Viewer : Added missing bookmarks 1-4 to the image comparison menu.

  • +
  • MessagesBinding : Fixed GIL management bug that could cause crashes when performing an interactive render.

  • +
  • Spreadsheet : Fixed crash when connecting a StringVectorDataPlug to a row’s name plug.

  • +
  • Documentation : Fixed “In this article” navigation column contents on pages containing figures.

  • +
+
+
+

API

+
    +
  • Animation :

    +
      +
    • Added description metadata for Animation.Interpolation enum values that is used to generate UI tooltips.

    • +
    • Added description metadata for Animation.TieMode enum values that is used to generate UI tooltips.

    • +
    +
  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.6.1.html b/1.4.6.0/ReleaseNotes/1.1.6.1.html new file mode 100644 index 000000000..3bc081cb1 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.6.1.html @@ -0,0 +1,591 @@ + + + + + + + 1.1.6.1 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.6.1

+
+

Fixes

+
    +
  • NodeEditor : Fixed updates for the green “non-default-value” dots in plug labels.

  • +
  • Cycles :

    +
      +
    • Fixed handling of OSL shader component connections (#4926).

    • +
    • Fixed crash when attempting to use a non-existent OSL shader.

    • +
    • Fixed Unsupported socket "tiles" warning when loading the image_texture shader.

    • +
    +
  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.7.0.html b/1.4.6.0/ReleaseNotes/1.1.7.0.html new file mode 100644 index 000000000..7065b4c7e --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.7.0.html @@ -0,0 +1,628 @@ + + + + + + + 1.1.7.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.7.0

+
+

Features

+
    +
  • ContextVariableTweaks : Added a new node for tweaking the context used to evaluate upstream nodes.

  • +
+
+
+

Improvements

+
    +
  • Cycles :

    +
      +
    • Replaced size on portals and quad lights with separate width and height parameters, and renamed size parameter of disk lights to width.

    • +
    • Added use_camera, use_caustics and normalize parameters to lights.

    • +
    +
  • +
  • TweakPlug : Added a CreateIfMissing mode, to only create a new value if one does not currently exist.

  • +
  • OSLObject : Added support for attribute substitutions using <attr:myAttrName> syntax in string parameters, provided that useAttributes is turned on.

  • +
  • UIEditor : Increased maximum size of the “Button Click Code” editor.

  • +
+
+
+

Improvements

+
    +
  • NodeEditor : Added “Promote Value and Switch” context menu item for promoting NameValuePlugs to Boxes.

  • +
+
+
+

Fixes

+
    +
  • Viewer :

    +
      +
    • Fixed Default display transform so that it updates correctly when the default is changed via the Preferences dialogue, and when the context changes.

    • +
    • Fixed drawing of image pixels to the left of the display window.

    • +
    +
  • +
  • Cycles :

    +
      +
    • Fixed custom AOVs (for SVM shading mode only, Cycles doesn’t support custom AOVs in OSL mode) (#5044).

    • +
    • Fixed units for distant light angle (now degrees and not radians).

    • +
    • Fixed assignment of emission shader. Previously this was being assigned as a cycles:light attribute instead of cycles:surface (#5058).

    • +
    • Hid internal shader plugs which shouldn’t be exposed to the user (e.g. surface_mix_weight).

    • +
    +
  • +
  • UVInspector : Fixed update delay when changing display transform.

  • +
  • Random : Fixed GIL management bug which could lead to hangs.

  • +
  • ShaderTweaks : Fixed Remove mode.

  • +
  • FilterQuery : Fixed bug which prevented the output from updating when the input scene changed (#5066).

  • +
  • Arnold : Fixed rendering of token enum parameter values loaded from USD.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.8.0.html b/1.4.6.0/ReleaseNotes/1.1.8.0.html new file mode 100644 index 000000000..9309f4ced --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.8.0.html @@ -0,0 +1,609 @@ + + + + + + + 1.1.8.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.8.0

+
+

Features

+
    +
  • MeshSegments : Added a node for identifying faces in contiguous segments.

  • +
+
+
+

Improvements

+
    +
  • USD :

    +
      +
    • Added support for Arnold-USD’s convention for representing connections to individual indices of an array.

    • +
    • Added loading of float4 USD shader parameters as Color4 parameters in Gaffer.

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • Viewer : Fixed bug which made it impossible to switch back to a previously used display transform.

  • +
  • Cycles : Disabled auto-tiling mode for the viewport/interactive render mode, which caused odd/glitchy behaviour on larger than 2k renders.

  • +
  • HierarchyView : Fixed P and N editor focus hotkeys.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to 10.4.4.0.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.9.0.html b/1.4.6.0/ReleaseNotes/1.1.9.0.html new file mode 100644 index 000000000..17edbc3fe --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.9.0.html @@ -0,0 +1,618 @@ + + + + + + + 1.1.9.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.9.0

+
+

Improvements

+
    +
  • Arnold : Disabled ADP more thoroughly, using ARNOLD_ADP_DISABLE=1 for Arnold 7.1.4.0 and greater. Set ARNOLD_ADP_DISABLE=0 before running Gaffer if you wish to use ADP.

  • +
  • Cycles :

    +
      +
    • Added warning when a shader contains a parameter which does not exist in Cycles.

    • +
    • Added warning when a shader contains a parameter with an unsupported datatype.

    • +
    • Added warning when a shader contains an enum parameter with an invalid value.

    • +
    • Added support for passing InternedStringData to enum and string parameters.

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • Backups : Fixed error when a backup file contained characters that couldn’t be represented using the current locale. This could be triggered by a separate bug in OpenShadingLanguage that caused the locale to be changed unnecessarily (#5048).

  • +
  • Viewer :

    +
      +
    • Fixed crash when switching from Cycles to OpenGL rendering (#5051).

    • +
    • Fixed potential crash when destroying a raytraced viewport.

    • +
    +
  • +
  • Cyles :

    +
      +
    • Fixed crashes caused by providing unsupported data types in shader parameters.

    • +
    • Fixed support for Color4f values on colour shader parameters. This can be useful when loading non-standard USD files.

    • +
    • Fixed support for V[23]i values on vector shader parameters.

    • +
    • Fixed handling of colour array parameters.

    • +
    +
  • +
+
+
+

API

+
    +
  • TestCase : Added scopedLocale() method.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.9.1.html b/1.4.6.0/ReleaseNotes/1.1.9.1.html new file mode 100644 index 000000000..43cdce46e --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.9.1.html @@ -0,0 +1,585 @@ + + + + + + + 1.1.9.1 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.9.1

+
+

Fixes

+
    +
  • Cycles : Fixed crash triggered by unsupported shader parameters (#5147).

  • +
  • CompoundPlugValueWidget : Fixed errors when refreshing the widget.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.9.2.html b/1.4.6.0/ReleaseNotes/1.1.9.2.html new file mode 100644 index 000000000..e8347262f --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.9.2.html @@ -0,0 +1,592 @@ + + + + + + + 1.1.9.2 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.9.2

+
+

Fixes

+
    +
  • Tweak nodes : Fixed bugs which prevented the creation of new tweaks when an existing tweak had an input connection.

  • +
  • Preferences : Fixed bug which caused UI metadata to be serialised unnecessarily into ~/gaffer/startup/gui/preferences.py.

  • +
  • OpenGL Texture shader : Fixed bug which allowed transparent regions to obscure objects behind them.

  • +
  • Viewer :

    +
      +
    • Fixed visualisation of Arnold image nodes with non-default UV Coordinates settings.

    • +
    • Fixed Arnold selection bugs caused by the ai:fis_filter option.

    • +
    +
  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.9.3.html b/1.4.6.0/ReleaseNotes/1.1.9.3.html new file mode 100644 index 000000000..d14549835 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.9.3.html @@ -0,0 +1,584 @@ + + + + + + + 1.1.9.3 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.9.3

+
+

Fixes

+
    +
  • ImageReader : Made error message more descriptive when trying to access a channel that doesn’t exist.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.9.4.html b/1.4.6.0/ReleaseNotes/1.1.9.4.html new file mode 100644 index 000000000..97452b32d --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.9.4.html @@ -0,0 +1,584 @@ + + + + + + + 1.1.9.4 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.9.4

+
+

Fixes

+
    +
  • Viewer : Fixed bugs which could prevent an object from being updated if its computation was previously interrupted.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.9.5.html b/1.4.6.0/ReleaseNotes/1.1.9.5.html new file mode 100644 index 000000000..639b68854 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.9.5.html @@ -0,0 +1,584 @@ + + + + + + + 1.1.9.5 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.9.5

+
+

Fixes

+
    +
  • VectorDataWidget : Fixed bugs preventing the display of headers and values for matrix and box data.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.9.6.html b/1.4.6.0/ReleaseNotes/1.1.9.6.html new file mode 100644 index 000000000..88f66debe --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.9.6.html @@ -0,0 +1,584 @@ + + + + + + + 1.1.9.6 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.9.6

+
+

Fixes

+
    +
  • SceneReader : Fixed rounding errors which could cause the wrong sample to be read from a USD file. This was particularly noticeable for non-interpolable attributes such as visibility.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.1.9.7.html b/1.4.6.0/ReleaseNotes/1.1.9.7.html new file mode 100644 index 000000000..6d8331891 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.1.9.7.html @@ -0,0 +1,585 @@ + + + + + + + 1.1.9.7 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.1.9.7

+
+

Fixes

+
    +
  • EditMenu : Fixed errors using “Duplicate with Inputs” with certain configurations of Dot node (#5309).

  • +
  • Dot : Fixed the display of context-sensitive label values (#5330).

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.0.0.html b/1.4.6.0/ReleaseNotes/1.2.0.0.html new file mode 100644 index 000000000..aecaceb90 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.0.0.html @@ -0,0 +1,823 @@ + + + + + + + 1.2.0.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.0.0

+

This version enables Cycles support by default, as we believe we have made sufficient progress to allow wider testing. We may continue to make behaviour-changing updates if necessary though, so support is not yet considered final.

+
+

Note

+

Python 2 support has been removed. All builds are now using Python 3.

+
+
+

Features

+
    +
  • Windows : Added official builds for Windows.

  • +
  • HierarchyView : Added control over the Visible Set, which defines the locations within the scene that are loaded and rendered by the Viewer.

    +
      +
    • The Inclusions column adds locations to the Visible Set, so that they and their descendants are rendered in the Viewer without needing to be expanded in the HierarchyView.

    • +
    • The Exclusions column excludes locations from the Visible Set, so that they and their descendants are never rendered in the Viewer, regardless of any other expansions or inclusions.

    • +
    • Locations can have their Visible Set inclusion or exclusion toggled by clicking within the appropriate column. Shift-clicking will remove the location and any of its descendants from the Visible Set. When multiple locations are selected, edits to any of the selected locations will affect all selected locations.

    • +
    +
  • +
  • Mute/Solo : Added the ability to mute and solo lights.

    +
      +
    • A light can be muted by setting the light:mute attribute. If that attribute is not present, the light will not be muted.

    • +
    • One or more lights can be enabled exclusively via membership in the soloLights set. If that set has one or more members, only the lights in that set will emit. If the set is empty, all lights emit according to their mute state. If a light is both muted and in the soloLights set, it will emit.

    • +
    • Light Editor :

      +
        +
      • Added a “Mute” column for toggling a light’s mute attribute on and off.

      • +
      • Added a “Solo” column to quickly add and remove lights from the soloLights set.

      • +
      +
    • +
    • Lights : Added a mute toggle, which can be accessed in the node editor from the Light Linking tab.

    • +
    • Added a visual indication to lights in the viewport when they are muted. Muted lights use a dark gray outline instead of yellow.

    • +
    • Cycles : Muted lights are disabled in renders.

    • +
    • Arnold : Muted lights are disabled in renders.

    • +
    +
  • +
  • Animation :

    +
      +
    • Added new curve extrapolation modes to determine the shape of a curve outside the range of its keys.

      +
        +
      • Constant : Curve is extended as a flat line.

      • +
      • Linear : Curve is extended as a line with slope matching tangent in direction of extrapolation.

      • +
      • Cycle : Curve is repeated indefinitely.

      • +
      • CycleOffset : Curve is repeated indefinitely with each repetition offset in value to preserve continuity.

      • +
      • CycleFlop : Curve is repeated indefinitely with each repetition mirrored in time.

      • +
      • CycleFlip : Curve is repeated indefinitely with each repetition inverted in value and offset to preserve continuity.

      • +
      +
    • +
    • Added new curve tab in Animation Editor with controls for setting the extrapolation modes of a curve.

    • +
    +
  • +
+
+
+

Improvements

+
    +
  • Cycles : Updated to Cycles 3.4.

  • +
  • OSLObject, OSLImage : Improved performance when running heavy shaders on Linux (by 3x in one benchmark). This is achieved using OSL’s recently added batched shading API. In the event of any problem, the optimisation may be disabled by setting the environment variable GAFFEROSL_USE_BATCHED=0.

  • +
  • NodeEditor : Improved interactivity by moving computations onto background threads. The UI will no longer hang while the NodeEditor waits for the result of a slow computation.

  • +
  • LightEditor :

    +
      +
    • Added a “Disable Edit” command to the right-click menu, to easily disable tweaks in EditScopes (shortcut D).

    • +
    • Added a “Remove Attribute” command to the right-click menu, to delete attributes using the EditScope (shortcut Delete).

    • +
    • Adjustments made to the width of the “Name” column are now preserved when switching between sections.

    • +
    +
  • +
  • Isolate : The keepLights setting now also keeps light filters.

  • +
  • AttributeTweaks : Added Remove mode.

  • +
  • PathListingWidget : Added support for columns that can automatically stretch to make use of available space.

  • +
  • Animation Editor : For protruding tangents the slope and scale controls are now disabled (non editable) and display constrained values.

  • +
  • Expression : pathlib.Path values may now be assigned to StringPlugs.

  • +
  • Render : An error is now emitted if the render camera is hidden, instead of rendering through a default camera instead (#5131).

  • +
  • ResamplePrimitiveVariables : Extended the supported data types when resampling from a Constant primitive variable.

  • +
  • Viewer : If Arnold is available, then it is preferred over Appleseed for performing OSL shader previews. If neither is available, then Cycles will be used (#5084).

  • +
  • FormatPlugValueWidget, ChannelPlugValueWidget, ChannelMaskPlugValueWidget, RGBAChannelsPlugValueWidget, ViewPlugValueWidget : Added support for showing multiple plugs at once, as needed when multiple Spreadsheet cells are selected for editing.

  • +
  • SceneReader :

    +
      +
    • Improved read performance for sets in USD files, with a benchmark reading a moderately large set seeing more than 2x speedup.

    • +
    • Improved cancellation responsiveness when reading large sets from USD files.

    • +
    +
  • +
  • SceneWriter : Improved performance when writing sets to USD files.

  • +
  • Spreadsheet : Improved display of image formats.

  • +
+
+
+

Fixes

+
    +
  • Layouts : Fixed bug applying window size and position from saved layouts (#5042).

  • +
  • Arnold :

    +
      +
    • Fixed input connections to individual color and vector components when rendering with a GPU device.

    • +
    • The ai:GI_diffuse_depth and ai:GI_specular_depth options now default to 2 when they are left unspecified, matching the default values on the ArnoldOptions node.

    • +
    +
  • +
  • CompoundNumericPlugValueWidget : Fixed failure to construct with an empty list of plugs.

  • +
  • ChannelPlugValueWidget : Fixed compatibility with multi-view images.

  • +
  • FilteredSceneProcessor :

    +
      +
    • Fixed bugs which allowed read-only nodes to be edited.

    • +
    • Fixed undo for Remove menu item in Filter tab.

    • +
    +
  • +
  • NodeEditor : Fixed bugs in handling of “green dot” non-default-value indicators with nested plugs.

  • +
  • 3Delight : Fixed rendering with recent versions of 3Delight, which no longer use the DL_DISPLAYS_PATH to search for display drivers.

  • +
  • Metadata :

    +
      +
    • Fixed memory leak.

    • +
    • Fixed thread safety bug that prevented concurrent access to metadata for the same plug or node from multiple threads.

    • +
    +
  • +
  • ShufflePrimitiveVariables, ShuffleAttributes, OptionQuery, PrimitiveVariableQuery, ShaderQuery, ContextQuery, CreateViews, SetVisualiser, OSLImage, OSLObject, OSLCode, Outputs : Fixed bugs which allowed read-only nodes to be edited.

  • +
  • CodeWidget : Fixed auto-complete for pathlib.Path objects, and any other classes which throw AttributeError for an attribute advertised by dir().

  • +
  • Expression : Fixed non-deterministic parsing order for Python expressions (#4935).

  • +
  • FileSequencePathFilter : Fixed bug whereby files were considered to be part of a sequence if they were in a numbered directory. Now only numbers in the file’s name are considered.

  • +
  • BoolWidget : Fixed bug triggered by calling setImage() from within a with widgetContainer block.

  • +
  • LevelSetOffset, MeshToLevelSet, LevelSetToMesh, SphereLevelSet : Fixed bugs which could cause unnecessary repeated computations, or in the worst case, lead to deadlock.

  • +
  • ValuePlug : Fixed rare deadlock when a TaskParallel compute recurses to a Legacy compute with the same hash.

  • +
  • GafferTest : Fixed bug which caused parallelGetValue() to use the wrong context.

  • +
  • LightEditor : Fixed bug which could cause attribute edits to be made for a parent location instead of the desired one.

  • +
  • BackgroundMethod : Fixed bug that could cause the postCall to be called on a widget that had already been removed from the UI.

  • +
+
+
+

API

+
    +
  • Filesystem path handling : Adopted std::filesystem::path and pathlib.Path in the C++ and Python APIs respectively, with automatic conversion between the two. These simplify common use cases, and provide for more elegant cross-platform path handling.

    +
      +
    • ScriptNode : serialiseToFile(), executeFile() and importFile() now take filesystem::path arguments.

    • +
    • Reference :

      +
        +
      • load() now takes a filesystem::path argument.

      • +
      • fileName() now returns a filesystem::path argument.

      • +
      +
    • +
    • Box : exportForReference() now takes a filesystem::path argument.

    • +
    • ApplicationRoot :

      +
        +
      • savePreferences() now takes a filesystem::path argument.

      • +
      • preferencesLocation() now returns a filesystem::path.

      • +
      +
    • +
    • FileSystemPath :

      +
        +
      • Added a constructor that accepts a filesystem::path.

      • +
      • Added a standardPath() method returning a std::filesystem::path object in C++ and a pathlib.Path object in Python.

      • +
      +
    • +
    • StringPlug : Added a setValue() overload taking a filesystem::path.

    • +
    • Dispatcher : jobDirectory() now returns a filesystem::path.

    • +
    • Backups : File names are now represented using pathlib.Path.

    • +
    • TestCase : temporaryDirectory() now returns a pathlib.Path.

    • +
    • ShaderView : registerReferenceScene() now takes a filesystem::path.

    • +
    • Catalogue : save() and load() take a filesystem::path, and generateFileName() returns one.

    • +
    • ExtensionAlgo : exportExtension() now takes a pathlib.Path in the directory argument.

    • +
    +
  • +
  • PlugValueWidget : Added new API to provide asynchronous updates. The old _updateFromPlugs() and _plugConnections() methods are deprecated, and support for them will be removed in a future version.

  • +
  • PathColumn : Added setSizeMode() and getSizeMode() methods, and sizeMode constructor argument. These allow the size behaviour of a PathColumn to be configured.

  • +
  • EditScopeAlgo : Added acquireSetEdits() method.

  • +
  • TestCase : Added scopedLocale() method.

  • +
  • Animation :

    +
      +
    • The slope and scale of protruding tangents is now constrained to match the values of the sibling tangent.

    • +
    • Added curve.extrapolationChangedSignal() function, returns a signal that is called when a curve’s extrapolation has changed.

    • +
    • Added new api for curve extrapolation modes (see header Animation.h for full details).

    • +
    • Added description metadata for curve extrapolation modes that is used to generate UI tooltips.

    • +
    +
  • +
  • PlugAlgo : Added findDestination() utility method.

  • +
  • Style : renderAnimationCurve() function now takes a vector of curve vertices and an inKeyRange argument that indicates whether the specified curve vertices lie within the time range of the curve’s keys.

  • +
  • PlugAlgo : Added dependsOnCompute() utility method.

  • +
  • PathColumn : Added buttonPressSignal(), buttonReleaseSignal() and buttonDoubleClickSignal(). These allow a PathColumn to implement its own event handling.

  • +
  • Capsule : Removed attempts to detect invalidated Capsules.

  • +
  • VisibleSet/VisibleSetData : Added struct used to define a subset of the scene to be rendered based on expansions, inclusions, and exclusions. This is used to allow scene locations to be defined as always or never renderable, overriding the usual UI expansion behaviour.

  • +
  • ContextAlgo : Added setVisiblesSet(), getVisibleSet(), and affectsVisibleSet() methods.

  • +
  • SceneGadget : Added setVisibleSet(), and getVisibleSet() methods.

  • +
  • EditScopeAlgo : Added methods to modify and query modifications to set members in an Edit Scope.

  • +
  • Widget : Added support for a _postContructor() method, which is called after the widget is fully constructed. This can be useful for performing post-initialisation work from a base class.

  • +
  • GafferTest : Added ObjectPlug overloads for repeatGetValue() and parallelGetValue().

  • +
  • SceneTestCase : Added assertParallelGetValueComputesObjectOnce(). This can be used to check that expensive computes are using an appropriate cache policy.

  • +
  • Gaffer ( Python module ) : Added rootPath() and executablePath() methods.

  • +
  • TestLightFilter : Added new node to GafferSceneTest, to aid in testing of scenarios involving LightFilters.

  • +
+
+
+

Breaking Changes

+
    +
  • Python : Removed support for Python 2.

  • +
  • MaterialX : The majority of OSL shaders in shaders/MaterialX are no longer provided, as the OpenShadingLanguage project removed them and no direct equivalent exists in the MaterialX project itself. We recommend using alternative shaders, or if necessary, sourcing them from a previous Gaffer release.

  • +
  • Arnold : Changed the default values for the ai:GI_diffuse_depth and ai:GI_specular_depth options.

  • +
  • Locale : Removed LC_NUMERIC=C environment variable assignment from wrapper. This was a workaround for an OpenColorIO bug that has since been fixed.

  • +
  • Style : Changed the signature of the renderAnimationCurve() virtual function.

  • +
  • Signal : Removed disconnect( slot ) method. This was a performance hazard because it was linear in the number of connections. Use Connection::disconnect() instead, which is constant time.

  • +
  • GafferTest : Removed expectedFailure() decorator. Use unittest.expectedFailure() instead.

  • +
  • SceneWriter :

    +
      +
    • Sets are now only written on the first frame for each file written.

    • +
    • SceneInterface::writeSet() is now used in preference to SceneInterface::writeTags() for all non-legacy file formats.

    • +
    +
  • +
  • SceneReader : SceneInterface::readSet() is now used in preference to SceneInterface::readTags() for all non-legacy formats.

  • +
  • CatalogueUI : Hid OutputIndexColumn from public API.

  • +
  • ContextAlgo : Removed use of the ui:scene:expandedPaths context variable. Any code directly accessing ui:scene:expandedPaths should instead use the getExpandedPaths()/setExpandedPaths()/expand()/expandDescendants() methods provided by ContextAlgo.

  • +
  • SceneGadget : Removed setExpandedPaths() and getExpandedPaths() methods. setVisibleSet() and getVisibleSet() are now used instead.

  • +
  • GafferUI : Removed the setReadOnly() and getReadOnly() methods from the following widgets :

    +
      +
    • GafferUI.PlugValueWidget

    • +
    • GafferUI.NodeEditor

    • +
    • GafferUI.NodeUI

    • +
    • GafferUI.PlugLayout

    • +
    +
  • +
  • Reference : The fileName() Python binding now returns a pathlib.Path argument, or None for empty file names.

  • +
  • ApplicationRoot : The preferencesLocation() Python binding now returns a pathlib.Path argument.

  • +
  • StringPlug : setValue( std::filesystem::path & ) now uses path.generic_string() for the value, whereas before an automatic conversion would have used path.string() (the native string).

  • +
  • Dispatcher : the jobDirectory() Python binding now returns a pathlib.Path, or None if it is empty.

  • +
  • Context::EditableScope, ImagePlug::ChannelDataScope, ScenePlug::PathScope/SetScope : Removed deprecated functions which didn’t take pointers and required duplication of data.

  • +
  • ViewportGadget : Removed deprecated gadgetsAt() signature.

  • +
  • Isolate : The keepLights setting now also keeps light filters.

  • +
+
+
+

Build

+
    +
  • Updated to GafferHQ/dependencies 6.0.0 :

    +
      +
    • Cortex : Updated to version 10.4.5.0.

    • +
    • Cycles : Updated to version 3.4.

    • +
    • Embree : Updated to version 3.13.4.

    • +
    • Expat : Added version 2.5.0.

    • +
    • Fmt : Added version 9.1.0.

    • +
    • OpenColorIO : Updated to version 2.1.2.

    • +
    • OpenImageIO : Updated to version 2.4.8.0.

    • +
    • OpenShadingLanguage : Updated to version 1.12.9.0.

    • +
    • OpenSubdiv : Updated to version 3.4.4.

    • +
    • PyString : Added version 1.1.4.

    • +
    • USD :

      +
        +
      • Updated to version 23.02.

      • +
      • Enabled the OpenImageIO plugin. Among other things, this allows OpenEXR textures to be shown in usdview.

      • +
      +
    • +
    • YAML-CPP : Added version 0.7.0.

    • +
    +
  • +
  • 3Delight : Updated to 3Delight version 2.9.17.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.0.1.html b/1.4.6.0/ReleaseNotes/1.2.0.1.html new file mode 100644 index 000000000..fd3ca3142 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.0.1.html @@ -0,0 +1,584 @@ + + + + + + + 1.2.0.1 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.0.1

+
+

Fixes

+
    +
  • Viewer : Fixed crash displaying Arnold quad lights in portal mode.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.0.2.html b/1.4.6.0/ReleaseNotes/1.2.0.2.html new file mode 100644 index 000000000..adb00aa25 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.0.2.html @@ -0,0 +1,592 @@ + + + + + + + 1.2.0.2 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.0.2

+
+

Fixes

+
    +
  • Viewer : Fixed flickering and empty menu in the channel selector for the image view.

  • +
  • RGBAChannelsPlugValueWidget, ChannelPlugValueWidget, ChannelMaskPlugValueWidget :

    +
      +
    • Fixed unnecessary updates when channel data changed.

    • +
    +
  • +
  • RGBAChannelsPlugValueWidget : Fixed bug that prevented errors being shown.

  • +
  • Cycles : Fixed crash triggered by unsupported shader parameters (#5147).

  • +
  • CompoundPlugValueWidget : Fixed errors when refreshing the widget.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.1.0.html b/1.4.6.0/ReleaseNotes/1.2.1.0.html new file mode 100644 index 000000000..3fb5e6901 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.1.0.html @@ -0,0 +1,641 @@ + + + + + + + 1.2.1.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.1.0

+
+

Features

+
    +
  • SetEditor : Added a new editor UI for inspecting sets. This can be found in the tab next to the SceneInspector in the Standard layouts. Sets are displayed hierarchically using “:” characters in set names as separators.

  • +
  • ImageToPoints : Added a new node for converting images to points primitives.

  • +
  • MeshSplit : Added node for splitting a mesh into multiple meshes based on the values of a primitive variable. May be combined with the recently added MeshSegments to split meshes into connected parts.

  • +
+
+
+

Improvements

+
    +
  • USD : Added translation of UsdUVTexture’s scale, bias and fallback parameters to Arnold.

  • +
  • StringPlugValueWidget : Added support for converting StringVectorData values pasted or dropped onto the widget. The string value is formed by joining the string array using spaces.

  • +
  • Spreadsheet : Improved support for converting StringVectorData to StringData when dropping values on cells. The string value is formed by joining the string array using spaces.

  • +
  • CompoundPathFilter : Canceller is now passed to member filters.

  • +
  • PathListingWidget : Improved performance when sorting items based on the name column.

  • +
  • Scene : Improved performance computing the bounding box for a primitive.

  • +
  • aiQuadLight : Added width and height parameters.

  • +
+
+
+

Fixes

+
    +
  • Locale :

    +
      +
    • Reintroduced LC_NUMERIC=C environment variable assignment to wrapper. This was removed in 1.2.0.0 but is still necessary due to a bug in Cortex.

    • +
    • Fixed serialisation of .gfr files in locales with non-default numeric formatting (#5158).

    • +
    +
  • +
  • Tweak nodes : Fixed bugs which prevented the creation of new tweaks when an existing tweak had an input connection.

  • +
  • Preferences : Fixed bug which caused UI metadata to be serialised unnecessarily into ~/gaffer/startup/gui/preferences.py.

  • +
  • OpenGL Texture shader : Fixed bug which allowed transparent regions to obscure objects behind them.

  • +
  • Viewer :

    +
      +
    • Fixed visualisation of Arnold image nodes with non-default UV Coordinates settings.

    • +
    • Fixed Arnold selection bugs caused by the ai:fis_filter option.

    • +
    +
  • +
  • SceneReader : Invalid primitive variables in USD files are now skipped during loading, with a warning being emitted instead.

  • +
  • DeleteFaces : Fixed sudivision crease handling bug.

  • +
  • USD RectLight : Fixed the orientation of textures applied to the light to be oriented with the top-left of the image at the top-left of the quad light when viewed from an object receiving illumination.

  • +
+
+
+

Documentation

+
    +
  • Added more Python examples to the Scripting Reference “Common Operations” article.

  • +
  • Added instructions for installing and configuring Gaffer on Windows to the “Getting Started” guide.

  • +
+
+
+

API

+
    +
  • RGBAChannelsPlugValueWidget : Added support for rgbaChannelsPlugValueWidget:allowNone metadata.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.4.6.0.

  • +
  • Added support for Inkscape versions greater than 1.0.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.1.1.html b/1.4.6.0/ReleaseNotes/1.2.1.1.html new file mode 100644 index 000000000..982703d10 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.1.1.html @@ -0,0 +1,585 @@ + + + + + + + 1.2.1.1 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.1.1

+
+

Fixes

+
    +
  • TractorDispatcher : Fixed TypeError : unsupported operand types error that prevented dispatch.

  • +
  • ImageReader : Made error message more descriptive when trying to access a channel that doesn’t exist.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.10.0.html b/1.4.6.0/ReleaseNotes/1.2.10.0.html new file mode 100644 index 000000000..f0c6fb46d --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.10.0.html @@ -0,0 +1,598 @@ + + + + + + + 1.2.10.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.10.0

+
+

Improvements

+
    +
  • EditScopeUI : Added the ability to turn off visibility of selected objects in the viewer using the Ctrl+H shortcut.

  • +
+
+
+

Fixes

+
    +
  • Instancer : Fixed bug that could cause the scene:path context variable to be leaked into the evaluation of prototypes.set in rare circumstances.

  • +
  • NumericPlugValueWidget (#5335) :

    +
      +
    • Fixed bug causing the cursor position to be reset to the end if the number of digits in the plug value changed while incrementing/decrementing with the keyboard up/down arrow keys.

    • +
    • Fixed bug causing the cursor position to be reset to the end when incrementing an animated plug.

    • +
    • Fixed intermittent --- values when drag-changing an animated plug value.

    • +
    +
  • +
  • EditScopes : Fixed bug where the enabled state of AttributeEdits, OptionEdits and SetMembershipEdits did not have any effect. This fix will only apply to newly created AttributeEdits, OptionEdits and SetMembershipEdits.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.10.1.html b/1.4.6.0/ReleaseNotes/1.2.10.1.html new file mode 100644 index 000000000..9525b0fcb --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.10.1.html @@ -0,0 +1,592 @@ + + + + + + + 1.2.10.1 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.10.1

+
+

Fixes

+
    +
  • Viewer : Fixed visualisation of shaping cones for UsdLux lights, which were previously drawn at half the correct angle.

  • +
  • Arnold

    +
      +
    • Fixed translation of vector typed outputs defined as vector <name> in an output definition.

    • +
    • Fixed translation of shadow:enable and shadow:color parameters on UsdLux lights, which were previously ignored.

    • +
    +
  • +
  • BranchCreator : Fixed bug which could cause inconsistent hashes to be generated.

  • +
  • LightEditor : Fixed toggling values in cases where inherited light attributes were set by a script context variable without including a default.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.10.2.html b/1.4.6.0/ReleaseNotes/1.2.10.2.html new file mode 100644 index 000000000..1a36ff194 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.10.2.html @@ -0,0 +1,594 @@ + + + + + + + 1.2.10.2 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.10.2

+
+

Fixes

+
    +
  • Arnold : Fixed screen window export for Lentil cameras.

  • +
  • Application : Fixed the -threads argument to clamp the number of threads to the number of available hardware cores (#5403).

  • +
  • CompareFloat, CompareColor, CompareVector : Worked around crashes in OSL’s batched shading system (#5430).

  • +
  • GafferUI : Fixed TableView bug causing the horizontal scrollbar to potentially overlap the last row (#5328).

  • +
  • Viewer :

    +
      +
    • Fixed visualisation of Cycles point light size.

    • +
    • Fixed visualisation of Arnold light gobo textures with scaled UV coordinates.

    • +
    +
  • +
  • Dispatch App : Fixed bug that prevented setting specific dispatcher plug values from the command line (#5434).

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.10.3.html b/1.4.6.0/ReleaseNotes/1.2.10.3.html new file mode 100644 index 000000000..50770b2e1 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.10.3.html @@ -0,0 +1,584 @@ + + + + + + + 1.2.10.3 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.10.3

+
+

Fixes

+
    +
  • DispatchDialogue : Changed the button label for the results display from “Ok” to “Close”.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.10.4.html b/1.4.6.0/ReleaseNotes/1.2.10.4.html new file mode 100644 index 000000000..fa0554a6e --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.10.4.html @@ -0,0 +1,587 @@ + + + + + + + 1.2.10.4 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.10.4

+
+

Fixes

+
    +
  • GraphEditor : Removed dynamic raster-space sizing of focus icon, as it caused excessive overlap with other nodes at certain zoom levels and on certain high resolution displays (#5435).

  • +
  • StringPlugValueWidget : Fixed bug handling Esc.

  • +
  • Arnold : Fixed unnecessary opaque attribute deprecation warnings. These are now only emitted in the case that opaque has been explicitly turned off.

  • +
  • ShaderUI : Fixed bug causing identical but independent shaders in a shader network from being included in the shader browser.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.10.5.html b/1.4.6.0/ReleaseNotes/1.2.10.5.html new file mode 100644 index 000000000..a8f9f71f9 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.10.5.html @@ -0,0 +1,585 @@ + + + + + + + 1.2.10.5 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.10.5

+
+

Fixes

+
    +
  • NameSwitch : Fixed bug which prevented drag and drop reordering of rows with an input connection.

  • +
  • Scatter : Fixed loading of Scatter nodes saved from Gaffer 1.3+ (where the Seeds node was renamed to Scatter).

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.10.6.html b/1.4.6.0/ReleaseNotes/1.2.10.6.html new file mode 100644 index 000000000..c0eea3875 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.10.6.html @@ -0,0 +1,584 @@ + + + + + + + 1.2.10.6 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.10.6

+
+

Fixes

+
    +
  • Context : Fixed potential crash when setting a variable with ownership.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.2.0.html b/1.4.6.0/ReleaseNotes/1.2.2.0.html new file mode 100644 index 000000000..ca24fefc5 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.2.0.html @@ -0,0 +1,608 @@ + + + + + + + 1.2.2.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.2.0

+
+

Improvements

+
    +
  • Playback :

    +
      +
    • Added Ctrl+Right hotkey toggle for forward playback.

    • +
    • Added Ctrl+Left hotkey toggle for backward playback.

    • +
    • Pressing either of Right or Left will also stop playback.

    • +
    +
  • +
  • Transform Tools : Added O shortcut to cycle through the orientation modes.

  • +
+
+
+

Fixes

+
    +
  • Reference : Fixed bug reloading a Reference after changing the number of points in a SplinePlug. The complete edited spline is now maintained across a reload. If the spline has not been edited, then the value is updated from the .grf file as before (#5170).

  • +
  • DispatchDialogue : Fixed AttributeError: '__Implementation' object has no attribute 'message' error.

  • +
  • Catalogue : Fixed errors caused by empty image selections.

  • +
  • MultiLineStringPlugValueWidget : Fixed bug handling Esc.

  • +
  • PathListingWidget : Fixed issue with columns set to automatically stretch not resizing if column headers are hidden.

  • +
  • Viewer : Fixed bugs which could prevent an object from being updated if its computation was previously interrupted.

  • +
+
+
+

Documentation

+
    +
  • Updated the “Assembling The Gaffer Bot” tutorial to use Cycles instead of Appleseed.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.3.0.html b/1.4.6.0/ReleaseNotes/1.2.3.0.html new file mode 100644 index 000000000..d4a089f9a --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.3.0.html @@ -0,0 +1,632 @@ + + + + + + + 1.2.3.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.3.0

+
+

Features

+
    +
  • Arnold : Added support for Arnold 7.2.

  • +
  • PointsToLevelSet : Added a new node for converting points primitives into OpenVDB level sets.

  • +
+
+
+

Improvements

+
    +
  • ArnoldOptions : Exposed Arnold 7.2.1.0’s Global Light Sampling feature via a new lightSamples plug.

  • +
  • ArnoldAttributes : Added shadowAutoBumpVisibility plug, since Arnold 7.2.1.0 now correctly implements this feature.

  • +
  • Shader : Added support for shading input connections to splines. After double clicking on a spline to open the editor, you may select a control point, and then drag an input to the value control. Works in GafferImage, GafferObject and Arnold. Supports a max of 32 values in the spline.

  • +
  • FloatSpline and ColorSpline OSL shaders : Added a direction parameter, with options of U, V, Diagonal, Radial and Custom.

  • +
  • Constraint : Disabled the referenceFrame plug in the NodeEditor when keepReferencePosition is off.

  • +
+
+
+

Fixes

+
    +
  • OSLObject/OSLImage : Fixed missing + buttons in GraphEditor on Windows (#5222).

  • +
  • Viewer : Fixed missing VDB visualisations on Windows (#5223).

  • +
  • SceneReader : Fixed reading of USD primitives containing primvars:normals. These are now correctly loaded as a primitive variable called N, taking precedence over the UsdGeomPointBased normals attribute.

  • +
  • SceneWriter : Fixed writing of indexed normals to USD files, so that the indexing is retained on load. Note that this means that normals are now always written as primvars:normals and never via the UsdGeomPointBased normals attribute.

  • +
  • CompoundDataPlugValueWidget : Fixed bug which prevented the addition of new plugs when an existing plug had an input connection. This affected the ContextVariables, CustomOptions and CustomAttributes nodes, among others.

  • +
+
+
+

API

+
    +
  • NoduleLayout : Added a warning message when a required custom gadget has not been registered.

  • +
  • GafferUITest.TestCase : Added testing of NodeGadgets to assertNodeUIsHaveExpectedLifetime().

  • +
  • SceneView : Added Python binding for resolutionGate() method.

  • +
  • ViewportGadget : Added Python binding for RasterScope class.

  • +
  • OSLShader : Added support for visibleExpression and enabledExpression metadata in OSL shaders. These may provide an OSL expression to control the activation of parameters in Gaffer’s node editor.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.4.7.0.

  • +
+
+
+

Documentation

+
    +
  • Updated the “Anamorphic Camera Setup” example to use Cycles instead of Appleseed.

  • +
  • Updated the “Contact Sheet Generation” example to use Cycles instead of Appleseed.

  • +
  • Updated the “Macbeth Chart” example to use Cycles instead of Appleseed.

  • +
  • Updated the “Per-location Light Tweak Spreadsheet” example to use Cycles instead of Appleseed.

  • +
  • Updated the “Wedge Tests” example to use Cycles instead of Appleseed.

  • +
  • Updated the “Setting Up a Spreadsheet” tutorial to use Cycles instead of Appleseed.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.4.0.html b/1.4.6.0/ReleaseNotes/1.2.4.0.html new file mode 100644 index 000000000..42a0b733a --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.4.0.html @@ -0,0 +1,601 @@ + + + + + + + 1.2.4.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.4.0

+
+

Features

+
    +
  • FramingConstraint : Added a new node for moving cameras to frame a chosen target.

  • +
+
+
+

Improvements

+
    +
  • CollectImages : Added mergeMetadata plug. This allows the metadata from all collected images to be merged, whereas before only the metadata from the first image was passed through.

  • +
  • SpreadsheetUI : Added the ability to filter the rows displayed in a spreadsheet’s UI (#5092).

  • +
+
+
+

Fixes

+
    +
  • Arnold : Moved distance shader to the Shader/Utility section of the node menu (previously in Shader/Other).

  • +
  • Graph Editor : Fixed a bug for some video drivers that led to a crash when using nodes with icons.

  • +
  • Node Editor : Removed Gang/Ungang menu options from output plugs.

  • +
  • SpreadsheetUI : Fixed bug which prevented the addition of new rows and columns when an existing plug had an input connection (#5248).

  • +
  • VectorDataWidget : Fixed bugs preventing the display of headers and values for matrix and box data.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.5.0.html b/1.4.6.0/ReleaseNotes/1.2.5.0.html new file mode 100644 index 000000000..18f5f8e04 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.5.0.html @@ -0,0 +1,602 @@ + + + + + + + 1.2.5.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.5.0

+
+

Improvements

+
    +
  • SceneReader : Improved performance when computing bounds for complex USD stages containing scenegraph instancing.

  • +
+
+
+

Fixes

+
    +
  • SceneReader :

    +
      +
    • Fixed rounding errors which could cause the wrong sample to be read from a USD file. This was particularly noticeable for non-interpolable attributes such as visibility.

    • +
    • Fixed transforms loaded from USD files using the UsdGeomXformable::ResetXformStack operator.

    • +
    +
  • +
  • SceneWriter : The UsdShadeMaterialBindingAPI schema is now applied to all prims with material bindings, making the written files compatible with USD_SHADE_MATERIAL_BINDING_API_CHECK=strict mode.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.4.7.1.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.6.0.html b/1.4.6.0/ReleaseNotes/1.2.6.0.html new file mode 100644 index 000000000..26e3fbbf4 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.6.0.html @@ -0,0 +1,590 @@ + + + + + + + 1.2.6.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.6.0

+
+

Improvements

+
    +
  • SceneReader : Improved error messages when encountering unexpected problems reading USD files.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.4.8.0.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.7.0.html b/1.4.6.0/ReleaseNotes/1.2.7.0.html new file mode 100644 index 000000000..7a7fd772e --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.7.0.html @@ -0,0 +1,618 @@ + + + + + + + 1.2.7.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.7.0

+
+

Improvements

+
    +
  • SceneReader :

    +
      +
    • Improved performance when reading sets from USD compositions with many instances.

    • +
    • Improved performance when reading materials from USD instances.

    • +
    • Removed scene:path and scene:setName variables from context used to evaluate fileName, refreshCount and tags plugs. This prevents logical impossibilities like changing the file per location, and also reduces pressure on the hash cache.

    • +
    • Improved performance when USD files are queried for sets which don’t exist. This can be a substantial improvement when a complex USD file without sets is used within a node graph which adds many sets downstream.

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • SceneReader : Fixed loading of __cameras, __lights and usd:pointInstancers sets from USD instances.

  • +
  • Gaffer module : Delayed loading of config files until the Gaffer module is completely defined.

  • +
+
+
+

API

+
    +
  • SceneReader : Added environment variables to control cache policies.

    +
      +
    • GAFFERSCENE_SCENEREADER_OBJECT_CACHEPOLICY controls the policy for objects.

    • +
    • GAFFERSCENE_SCENEREADER_SETNAMES_CACHEPOLICY controls the policy for set names.

    • +
    • GAFFERSCENE_SCENEREADER_SET_CACHEPOLICY controls the policy for sets.

    • +
    • Default policies remain unchanged, but Standard policy may yield improved performance and +reduced memory usage for Alembic or USD files making heavy use of instancing.

    • +
    +
  • +
+
+
+

Build

+
    +
  • Cortex : Updated to 10.4.9.0.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.8.0.html b/1.4.6.0/ReleaseNotes/1.2.8.0.html new file mode 100644 index 000000000..8d369aaa2 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.8.0.html @@ -0,0 +1,612 @@ + + + + + + + 1.2.8.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.8.0

+
+

Improvements

+
    +
  • ArnoldAttributes : Added pointsMinPixelWidth plug.

  • +
  • EditScope : Hid the BoxIn.name and BoxOut.name plugs from the NodeEditor, since it is not editable and the name is always in or out respectively.

  • +
  • Limits : Increased soft file handle limit (RLIMIT_NOFILE) to match the hard limit (Linux only).

  • +
  • SceneReader :

    +
      +
    • Fixed I/O Exception errors triggered by closing and reopening the same USD file.

    • +
    • Increased the default limit for the number of open files to 2000 (or 25% of the file handle limit, whichever is lowest).

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • NodeEditor : Reverted change that prevented a plug being unlocked if static readOnly metadata was registered against it.

  • +
  • EditMenu : Fixed errors using “Duplicate with Inputs” with certain configurations of Dot node (#5309).

  • +
  • Dot : Fixed the display of context-sensitive label values (#5330).

  • +
+
+
+

API

+
    +
  • CatalogueUI : Made ImageListing widget public so it can be customized using the API.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to 10.4.9.1.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.2.9.0.html b/1.4.6.0/ReleaseNotes/1.2.9.0.html new file mode 100644 index 000000000..18be13332 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.2.9.0.html @@ -0,0 +1,624 @@ + + + + + + + 1.2.9.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.2.9.0

+
+

Caution

+

A bug fix in the handling of the ai:volume:step_scale attribute may change the appearance of Arnold volume renders.

+
+
+

Improvements

+
    +
  • DelightOptions : Added new options for modern 3Delight, as of version 2.9.39.

  • +
  • ShaderQuery and ShaderTweaks : Added a filter for shader parameter names in the shader browser (#5293).

  • +
  • ImageReader : Added availableFrames output plug, listing all the available frames in the current file sequence.

  • +
  • MatchPatternPathFilterWidget : Added the name of the property being filtered to the placeholder text.

  • +
  • OpenImageIOReader : The availableFrames plug no longer errors for a missing file sequence - instead it outputs an empty list.

  • +
  • PathListingWidget : Header data is now computed asynchronously, without locking the UI.

  • +
  • CollectScenes : Improved cancellation responsiveness for large lists of rootNames.

  • +
+
+
+

Fixes

+
    +
  • Arnold : Fixed bug that caused ai:volume:step_scale to be ignored if ai:volume_step was set explicitly to 0.0. This was different to the behaviour when ai:volume_step was not set at all.

  • +
  • LightEditor :

    +
      +
    • Fixed hang caused by the soloLights set triggering on an upstream Python expression or ComputeNode (#5365).

    • +
    • Fixed thread-safety bug that meant the LightEditor attempted to perform computes while the graph was being edited.

    • +
    +
  • +
  • OSLImage : Fixed bug preventing channels / layers from being deleted using the right-click menu.

  • +
  • HierarchyView : Fixed crash triggered by layouts with two or more HierarchyViews (#5364).

  • +
  • Context : Fixed crash triggered by a reentrant call to Context::set() from within a slot connected to Context::changedSignal().

  • +
+
+
+

API

+
    +
  • MatchPatternPathFilterWidget : Made the entries in the property menu configurable.

  • +
  • TweakPlug : Added PathMatcherData compatibility in Replace, Create, ListAppend, ListPrepend and ListRemove modes.

  • +
  • PlugAlgo :

    +
      +
    • Added support for creating a PathMatcherDataPlug from PathMatcherData in createPlugFromData().

    • +
    • Added support for getting PathMatcherData from a PathMatcherDataPlug in getValueAsData().

    • +
    +
  • +
  • EditScopeAlgo : Added support for editing options.

  • +
  • BackgroundTask : A warning is now emitted if the subject can not be associated with a ScriptNode for cancellation purposes.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.0.0.html b/1.4.6.0/ReleaseNotes/1.3.0.0.html new file mode 100644 index 000000000..9504d0df3 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.0.0.html @@ -0,0 +1,873 @@ + + + + + + + 1.3.0.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.0.0

+
+

Features

+
    +
  • MeshNormals : Added a new node for adjusting mesh normals.

  • +
  • VolumeScatter : Added a new node for scattering points throughout a volume.

  • +
  • Cycles : Updated to version 3.5.0.

  • +
  • LightTool : Added 3d viewer tool for manipulating lights. Manipulation of spot light cone and penumbra angles is currently supported.

  • +
+
+
+

Improvements

+
    +
  • 3D Viewer :

    +
      +
    • Added OpenColorIO colour management.

    • +
    • Added exposure, gamma and solo channel settings.

    • +
    • Ancestors and siblings of locations included in the Visible Set are no longer drawn while their ancestors are collapsed.

    • +
    • Added red wireframe colour to the bounding box of locations excluded from the Visible Set.

    • +
    +
  • +
  • UVInspector : Added exposure, gamma and solo channel settings.

  • +
  • ImageReader : The colorSpace widget now displays the name of the assumed colorspace when in Automatic mode.

  • +
  • ImageReader, ImageWriter : The colorSpace menu is now filtered using the file-io category, if the current OpenColorIO config provides it.

  • +
  • ImageReader, OpenImageIOReader : Added fileValid BoolPlug that outputs True if the required file exists for the current frame.

  • +
  • OpenColorIO :

    +
      +
    • Updated default config to ACES Studio 1.3.

    • +
    • Added openColorIO plug to ScriptNode, allowing the OpenColorIO config, working space, variables and display transform to be customised on a per-script basis.

    • +
    • Added automatic configuration of Arnold color manager from Gaffer’s OpenColorIO configuration. This may be overridden by using an ArnoldColorManager node to define an alternative color manager.

    • +
    • Improved colorspace menus :

      +
        +
      • Organised colorspaces into submenus by family.

      • +
      • Removed unwanted title-casing, so that names are now displayed verbatim.

      • +
      • Added control over the presence of roles by registering openColorIO:includeRoles metadata to the relevant plugs.

      • +
      +
    • +
    • Improved View display transform menu :

      +
        +
      • Ordered menu items to match the order in the OpenColorIO config.

      • +
      • Removed “Default” view.

      • +
      • Added menu options for changing the current Display.

      • +
      • Allowed the available views to be filtered using an openColorIO:activeViews metadata value registered on the View’s displayTransform.name plug. Values should be space-separated names, optionally containing wildcards.

      • +
      +
    • +
    • OpenColorIOContext : Added a new node that creates Gaffer context variables to define the OpenColorIO config used by upstream nodes. This allows different OpenColorIO configs to be used in different Gaffer contexts.

    • +
    • OpenColorIOTransform :

      +
        +
      • Improved performance.

      • +
      • Improved detection of no-op transforms, such as when converting between colorspace aliases like scene_linear and ACEScg.

      • +
      +
    • +
    • ColorSpace : Defaulted the input and output space to the current working space.

    • +
    • DisplayTransform : Defaulted the input space to the current working space, and the display and view to the defaults defined by the current OpenColorIO config.

    • +
    • ArnoldColorManager : Improved defaults to match Gaffer’s current OpenColorIO configuration.

    • +
    +
  • +
  • Seeds :

    +
      +
    • Renamed to Scatter.

    • +
    • Added sampling of primitive variables from the source mesh onto the scattered points, controlled using the new primitiveVariables plug.

    • +
    • Added referencePosition plug to allow point distribution to be fixed on animated meshes.

    • +
    • Added uv plug to allow the space within which the points are scattered to be controlled.

    • +
    • Added support for density primitive variable values above 1.

    • +
    • Improved numerical accuracy.

    • +
    • Improved performance.

    • +
    +
  • +
  • VectorDataPlugValueWidget : Computation errors are now reflected by a red background colour.

  • +
  • VectorWarp : Added Bilinear filter, for faster but lower quality warping.

  • +
  • Dilate, Erode, Median, Resample, Resize, ImageTransform, Blur, VectorWarp : Improved performance significantly. For example, a Blur with a large radius is now almost 6x faster.

  • +
  • RotateTool : Added the ability to rotate an axis whose plane of rotation is parallel or nearly parallel to the view.

  • +
  • OptionQuery : Added support for querying generic IECore::Object values using an ObjectPlug.

  • +
  • HierarchyView :

    +
      +
    • Added support for inclusion and exclusion of leaf level locations to the Visible Set.

    • +
    • Added F shortcut to expand ancestors and frame selected paths. This replaces the previous behaviour of automatic updates to expansion and framing in the HierarchyView on selection change.

    • +
    +
  • +
  • CyclesOptions :

    +
      +
    • Added useLightTree plug.

    • +
    • Added path guiding options.

    • +
    +
  • +
  • CyclesAttributes :

    +
      +
    • Added emissionSamplingMethod plug.

    • +
    • Added isCausticsCaster and isCausticsReceiver plugs.

    • +
    +
  • +
  • Render : Improved clearing of the compute and hash caches prior to rendering, potentially providing more memory to the renderer. Note that clearing is now only performed in the execute and dispatch apps.

  • +
+
+
+

Fixes

+
    +
  • UVInspector : Removed display transform from UV wireframes and grid.

  • +
  • Viewer :

    +
      +
    • Gamma is now applied after the display transform, not before.

    • +
    • Fixed image viewer’s active tile indicators from becoming stuck when a computation was cancelled.

    • +
    +
  • +
  • Expression : Fixed parsing of Python expressions combining subscripts ([]) and context methods (#3088, #3613, #5250).

  • +
  • ConnectionCreatorWrapper : Fixed bug which forced PlugAdder derived classes to implement updateDragEndPoint() unnecessarily.

  • +
  • Plug : Fixed bug which caused stale values to be retrieved from the cache for plugs that had been renamed.

  • +
  • ValuePlug : Fixed results when graph edits and computes are interleaved within a DirtyPropagationScope (#1971).

  • +
  • OpenColorIOTransform : Fixed error processing deep image tiles containing no samples.

  • +
  • Seeds :

    +
      +
    • Fixed duplicate points at triangle edges.

    • +
    • Fixed handling of points exactly at the density threshold.

    • +
    +
  • +
  • ObjectSource, Group : Prevented the creation of locations with invalid names - .., ... or anything containing / or a filter wildcard.

  • +
  • BranchCreator : Prevented the use of ... and other filter wildcards in the destination.

  • +
  • TranslateTool : Fixed dragging in a plane parallel to an orthographic view. Translation in that case now behaves the same as dragging an axis.

  • +
  • Window : Fixed handling of **kw constructor arguments. These were being passed to the QWidget constructor where they caused errors, instead of being passed to the ContainerWidget base class.

  • +
  • PresetsPlugValueWidget : Fixed label update for context-sensitive presets.

  • +
  • PlugValueWidget : Fixed value update when auxiliary plugs depend on the context but the primary plugs do not.

  • +
  • Cycles : Fixed handling of cycles:shader:volume_sampling_method and cycles:shader:volume_interpolation_method attributes, which were being ignored previously.

  • +
  • OptionQuery : Fixed bug which allowed duplicate queries to be added in the UI.

  • +
+
+
+

API

+
    +
  • GraphComponent :

    +
      +
    • Added an oldName argument to nameChangedSignal() slot signature.

    • +
    • Added a nameChanged() protected virtual method, which can be overridden to receive notifications of name changes before +they are made public by nameChangedSignal().

    • +
    • Colon (:) is now an allowed character in names.

    • +
    +
  • +
  • View : Added DisplayTransform add-on class which can be used to add colourspace management to any View.

  • +
  • ViewportGadget : A post-process shader can now be applied to any layer, not just the main one.

  • +
  • SceneGadget : Added setLayer() and getLayer() methods, which allow the destination Gadget::Layer to be specified.

  • +
  • TestCase : Added ignoreMessage() method, to register messages that should not be treated as test failures.

  • +
  • OpenColorIOTransform : Automated image pass-throughs when the transform() method returns a no-op. Derived classes no longer need to implement their own pass-through.

  • +
  • OpenColorIOTransformUI :

    +
      +
    • Added support for openColorIO:categories and openColorIO:includeRoles metadata to colorSpacePresetNames(). These may be registered on a per-plug basis to control the colorspaces shown for that plug.

    • +
    • Added support for openColorIO:extraPresetNames and openColorIO:extraPresetValues metadata to add presets not defined by the OpenColorIO config.

    • +
    +
  • +
  • OpenColorIOAlgo : Added a new namespace that allows the OpenColorIO config and working space to be defined via the Gaffer context.

  • +
  • OpenColorIOConfigPlug : Added a new plug type to aid in configuring the OpenColorIO context for a ScriptNode.

  • +
  • ImageReader/ImageWriter : Added a config argument to the DefaultColorSpaceFunction definition. This is passed the OpenColorIO config currently being used by the node.

  • +
  • ValuePlug :

    +
      +
    • Added Python bindings for derived classes’ ValueType type alias.

    • +
    • Added now argument to clearHashCache() method.

    • +
    +
  • +
  • Color4fVectorDataPlug : Added a plug type for storing arrays of Color4f.

  • +
  • TypedObjectPlug : Added default value for direction and defaultValue constructor arguments.

  • +
  • VectorDataWidget : Added setErrored() and getErrored() methods to control an error state. Errors are reflected by a red background colour.

  • +
  • PlugLayout :

    +
      +
    • Added support for layout:minimumWidth metadata.

    • +
    • Tabs are now hidden if all their child plugs are hidden by layout:visibilityActivator metadata.

    • +
    +
  • +
  • PlugValueWidget :

    +
      +
    • Added typeMetadata argument to create() to use an alternative key to plugValueWidget:type when looking up widget type.

    • +
    • Added _valuesDependOnContext() method which may be overridden by derived classes.

    • +
    +
  • +
  • PresetsPlugValueWidget : Added presetsPlugValueWidget:customWidgetType metadata, to allow the type for the custom widget to be specified.

  • +
  • TabbedContainer : Added setTabVisible() and getTabVisible() methods.

  • +
  • Removed use of RTLD_GLOBAL for loading Python modules.

  • +
  • SceneAlgo : Added validateName() function.

  • +
  • Sampler : Added visitPixels() method, which provides an optimised method for accessing all pixels in a region.

  • +
  • Handle::AngularDrag : Added isLinearDrag() method.

  • +
  • Widget : Added per-widget control over colour display transforms via new setDisplayTransform(), getDisplayTransform() and displayTransform() methods.

  • +
  • VisibleSet : Added VisibleSet::Visibility struct containing drawMode and descendantsVisible members.

  • +
  • ValuePlug : Improved getValue() performance, particularly when retrieving previously computed values from the cache. One benchmark shows a 50% reduction in runtime when the cache is under heavy contention from many threads.

  • +
  • PathListingWidget :

    +
      +
    • Added expandToSelection() method.

    • +
    • Added scrollToFirst() method to scroll to the first path found in the provided PathMatcher.

    • +
    +
  • +
+
+
+

Breaking Changes

+
    +
  • Appleseed : Removed Appleseed support. We suggest Cycles as an actively maintained open-source alternative.

  • +
  • ColorSwatch, ColorChooser, ColorChooserDialogue : Removed useDisplayTransform constructor argument. Use Widget.setDisplayTransform() instead.

  • +
  • GraphComponent : Changed slot signature for nameChangedSignal().

  • +
  • GLWidget :

    +
      +
    • A GL context is no longer available in _resize().

    • +
    • Removed BufferOptions.Double.

    • +
    +
  • +
  • GadgetWidget : Removed bufferOptions constructor argument.

  • +
  • ImageView :

    +
      +
    • Removed lutGPU plug.

    • +
    • Removed DisplayTransform methods. Use View::DisplayTransform instead.

    • +
    • Moved exposure, gamma, clipping and soloChannel plugs under a displayTransform parent plug.

    • +
    • Moved the displayTransform plug to displayTransform.name.

    • +
    +
  • +
  • ViewportGadget : Changed function signature for setPostProcessShader() and getPostProcessShader().

  • +
  • UVInspector : Moved the displayTransform plug to displayTransform.name.

  • +
  • ImageReader : Renamed None preset to Automatic.

  • +
  • ImageReader/ImageWriter : Added a config argument to DefaultColorSpaceFunction. If implementing such a function in Python, it can be compatible with both Gaffer 1.2 and 1.3 if the argument is declared as config = PyOpenColorIO.GetCurrentConfig().

  • +
  • OpenColorIOTransform :

    +
      +
    • Removed availableColorSpaces() and availableRoles() methods.

    • +
    • Deprecated context plug.

    • +
    +
  • +
  • OpenColorIO : Changed default config.

  • +
  • PathListingWidget : Removed expandNonLeaf argument from setSelection() and setSelectedPaths() methods.

  • +
  • Subprocess32 : Removed Python module.

  • +
  • Six : Removed Python module.

  • +
  • Gaffer : Class constructors are now declared explicit disabling implicit conversions.

  • +
  • Seeds :

    +
      +
    • Renamed to Scatter.

    • +
    • Bugs fixes have made small changes to the point distribution.

    • +
    +
  • +
  • ColorProcessor : Refactored virtual methods that must be implemented by derived classes :

    +
      +
    • Replaced processColorData() with colorProcessor() method that returns a ColorProcessorFunction.

    • +
    • Replaced affectsColorData() with affectsColorProcessor() and hashColorData() with hashColorProcessor().

    • +
    • Simplified implementation of pass-throughs when the color processor is a no-op. Derived classes may simply +return an empty ColorProcessorFunction, and everything else is taken care of in the base class.

    • +
    +
  • +
  • PlugValueWidget :

    +
      +
    • Removed support for deprecated layout:widgetType metadata. Use plugValueWidget:type metadata instead.

    • +
    • Removed useTypeOnly argument from create() function. Pass typeMetadata = None instead.

    • +
    +
  • +
  • MeshTangents : Changed the edge used by Mode::FirstEdge.

  • +
  • Handle::AngularDrag : Fixed mismatch between comment and implementation regarding the axis for zero rotation. The constructor arguments axis0 and axis1 were changed to normal and axis0 respectively.

  • +
  • Preferences : Removed displayColorSpace plug. Use the ScriptNode’s openColorIO plug instead.

  • +
  • GafferUI.DisplayTransform : Removed. Use Widget.setDisplayTransform() instead.

  • +
  • ColorSpace : The inputSpace and outputSpace default values are now interpreted as the working space rather than as invalid spaces. This means that a node where only one space has been specified is no longer a pass-through as it was before.

  • +
  • DisplayTransform :

    +
      +
    • The inputSpace default value is now interpreted as the working space rather than as an invalid space. This means that a node without inputSpace specified is no longer a pass-through as it was before.

    • +
    • The display and view default values are now interpreted as the default defined by the current OpenColorIO config, rather than as invalid values. This means that a node without display or view specified is no longer a pass-through as it was before.

    • +
    +
  • +
  • gaffer test : Replaced -performanceOnly flag with -category argument which may be set to performance for the same as the old -performanceOnly, or standard for the converse.

  • +
  • VisibleSet : Renamed VisibleSet::match() to visibility() and changed return type.

  • +
  • SceneView : Removed gridPlug() method.

  • +
  • TypedPlug : Moved implementation code from TypedPlug.inl to TypedPlugImplementation.h.

  • +
  • TypedObjectPlug : Moved implementation code from TypedObjectPlug.inl to TypedObjectPlugImplementation.h.

  • +
  • Xerces : Removed. This library was only needed by Appleseed.

  • +
  • CyclesAttributes : Replaced useMis with emissionSamplingMethod.

  • +
+
+
+

Build

+
    +
  • Boost :

    +
      +
    • Updated to version 1.80.0.

    • +
    • Stopped linking unnecessarily to iostreams, date_time, wave and system libraries.

    • +
    +
  • +
  • Cortex : Updated to version 10.5.0.0.

  • +
  • Cycles : Updated to version 3.5.0.

  • +
  • Imath : Added version 3.1.7.

  • +
  • MaterialX : Added version 1.38.4.

  • +
  • Minizip : Added version 3.0.9.

  • +
  • OpenColorIO : Updated to version 2.2.1.

  • +
  • OpenEXR :

    +
      +
    • Updated to version 3.1.7.

    • +
    • Stopped linking unnecessarily to the IlmImf library.

    • +
    +
  • +
  • OpenImageIO : Updated to version 2.4.11.0.

  • +
  • OpenPGL : Added version 0.4.1.

  • +
  • Partio : Added version 1.14.6.

  • +
  • PCG : Added latest version.

  • +
  • PyBind11 : Updated to version 2.10.4.

  • +
  • PySide : Updated to version 5.15.8.

  • +
  • Qt : Updated to version 5.15.8.

  • +
  • USD : Updated to version 23.05.

  • +
  • ZLib : Added version 1.2.13.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.1.0.html b/1.4.6.0/ReleaseNotes/1.3.1.0.html new file mode 100644 index 000000000..91ef2c491 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.1.0.html @@ -0,0 +1,641 @@ + + + + + + + 1.3.1.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.1.0

+
+

Features

+
    +
  • USDShader : Added a node for loading shaders from USD’s SdrRegistry. This includes shaders such as UsdPreviewSurface and UsdUVTexture, which are now available in the USD/Shader section of the node menu.

  • +
  • USDLight : Added a node for defining UsdLux lights. This is available from the USD/Light section of the node menu.

  • +
  • SceneReader, SceneWriter : Added limited support for reading and writing Usd Volume prims.

  • +
+
+
+

Improvements

+
    +
  • LightEditor : Added section displaying UsdLux shadow parameters.

  • +
  • Cycles : Added support for UsdLux lights.

  • +
  • LightTool : Added support for editing animated plugs.

  • +
  • Median, Erode, Dilate : Improved performance significantly for wide filters. Measured improvements of 100x faster for Erode/Dilate, and 10x faster for Median.

  • +
+
+
+

Fixes

+
    +
  • SceneWriter : Fixed writing of UsdLux lights.

  • +
  • Viewer : Fixed visualisation of shaping cones for UsdLux lights, which were previously drawn at half the correct angle.

  • +
  • DisplayTransform : Fixed missing view presets when display is at the default value (#5392).

  • +
  • Arnold

    +
      +
    • Fixed translation of vector typed outputs defined as vector <name> in an output definition.

    • +
    • Fixed translation of shadow:enable and shadow:color parameters on UsdLux lights, which were previously ignored.

    • +
    +
  • +
  • LightTool : Fixed bug causing non-settable plugs to be enabled, such as plugs with an expression as input or those using the default spreadsheet row for their value. This generated the error ERROR : EventSignalCombiner : Cannot set value for plug {plug} except during computation.

  • +
  • LightEditor : Fixed toggling values in cases where inherited light attributes were set by a script context variable without including a default.

  • +
  • GLWidget : Fixed rare crash when showing a GLWidget for the first time.

  • +
  • BranchCreator : Fixed bug which could cause inconsistent hashes to be generated.

  • +
  • Cycles :

    +
      +
    • Fixed rendering of meshes with faceted normals, which were previously being rendered as smooth. This applies to meshes without an N primitive variable, and meshes where N has Uniform or FaceVarying interpolation. Note that Cycles has no native support for FaceVarying interpolation so that in this case all faces are rendered faceted.

    • +
    • Fixed translation of Uniform N primitive variables. These are now available to be queried from the standard Ng attribute in Cycles.

    • +
    +
  • +
  • ImageSampler : Fixed handling of exceptional floating point values. Now returns inf if inf values are present in the image, rather than 3.4e38.

  • +
  • Merge :

    +
      +
    • Fixed the Difference operation to return correct values for exceptional floating point values. Now there is 0 difference between inf and inf, or NaN and NaN. Additionally, there is infinite difference between NaN and any other number, so assertImagesEqual will correctly report NaNs that don’t belong.

    • +
    • Fixed the Divide operation to return 0 for 0/0. This is consistent with how we previously handled fully black tiles, and avoids introducing NaN values which create problems in compositing.

    • +
    +
  • +
  • Median/Erode/Dilate : Fixed possible crash bug if there were NaNs in the input image.

  • +
  • ValuePlug : Fixed bug which caused ComputeNode::computeCachePolicy() to be called unnecessarily for input plugs in some circumstances. This could affect performance, particularly when the plug belonged to a node implemented in Python.

  • +
+
+
+

API

+
    +
  • OptionalValuePlug : Added a new plug type that pairs an enabled BoolPlug with a value ValuePlug.

  • +
  • Shader : Added support for using OptionalValuePlug to represent optional parameters.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.5.1.0.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.10.0.html b/1.4.6.0/ReleaseNotes/1.3.10.0.html new file mode 100644 index 000000000..1e1dce6e6 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.10.0.html @@ -0,0 +1,623 @@ + + + + + + + 1.3.10.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.10.0

+
+

Features

+
    +
  • LightPositionTool : Added tool to the scene viewer to place shadows. With a light selected, holding Shift + V and clicking on geometry will set the pivot point used for casting a shadow. Holding V and clicking sets the point to receive the shadow. The light is repositioned to be the same distance from the pivot, along the pivot-shadow point line, and oriented to face the shadow point.

  • +
+
+
+

Improvements

+
    +
  • ArnoldShader, ArnoldColorManager, CyclesShader : Improved browsers for file parameters (#5592, #5602) :

    +
      +
    • Added filtering by extension.

    • +
    • Added bookmarks.

    • +
    +
  • +
  • USDLight : Added file browser for shaping:ies:file parameter.

  • +
  • OpenColorIOContext : Added file browser for config plug.

  • +
  • Layouts : Added the ability to load layouts containing editors that aren’t currently available. This allows layouts containing new editors introduced in Gaffer 1.4 to be loaded in Gaffer 1.3.

  • +
  • TranslateTool, RotateTool : Added tooltip to the upper left corner of the Viewer explaining how to use the target modes.

  • +
  • LightTool : Changed the color of the non-highlighted handles to orange and the highlighted handles to cyan for consistency with other highlight colors.

  • +
  • Outputs : Variable substitutions are now applied to gaffer:context:* image metadata values. This is needed when the value of a context variable contains references to other variables, with the default value for project:rootDirectory being one example.

  • +
+
+
+

Fixes

+
    +
  • Arnold : Fixed translation of USD uchar attributes and shader parameters.

  • +
  • Orientation/Instancer : Now normalizes unnormalized quaternion inputs - this allows correctly processing files with primvars that contain unnormalized quaternions ( which it is possible to write from Houdini ).

  • +
+
+
+

API

+
    +
  • EditScopeAlgo : Added support for editing options for a specific render pass.

  • +
  • ArnoldShaderUI : Added support for Gaffer filebrowser metadata in Arnold .mtd files. The following fields are supported, and correspond directly to the metadata documented on the PathPlugValueWidget and FileSystemPathPlugValueWidget :

    +
      +
    • path:leaf

    • +
    • path:valid

    • +
    • path:bookmarks

    • +
    • fileSystemPath:extensions

    • +
    • fileSystemPath:extensionsLabel

    • +
    +
  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.11.0.html b/1.4.6.0/ReleaseNotes/1.3.11.0.html new file mode 100644 index 000000000..6fd631675 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.11.0.html @@ -0,0 +1,617 @@ + + + + + + + 1.3.11.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.11.0

+
+

Features

+
    +
  • 3Delight : Added support for USD SphereLight, RectLight, DiskLight, DistantLight, DomeLight and CylinderLight.

  • +
  • RenderPassEditor : Added a new editor UI for inspecting and editing render passes.

  • +
+
+
+

Improvements

+
    +
  • Arnold :

    +
      +
    • ArnoldShader : Added a colour space presets menu for the image shader.

    • +
    • Added specific warning for outputs with space in name.

    • +
    • Added normal and depth AOVs.

    • +
    +
  • +
  • CyclesShader : Added a colour space presets menu for the image_texture and environment_texture shaders (#5618).

  • +
+
+
+

Fixes

+
    +
  • Reference : Fixed bug where GAFFER_REFERENCE_PATHS was not being searched when performing “Duplicate as Box” action.

  • +
  • Outputs :

    +
      +
    • Fixed bug which meant that adding an output via the UI was not undoable.

    • +
    • Fixed bug which allowed outputs to be added to a read-only node via the UI.

    • +
    +
  • +
+
+
+

API

+
    +
  • ArnoldShaderUI : Added support for colorSpace widget type metadata, allowing an OpenColorIO colour space to be chosen.

  • +
  • PathColumn : Added CellData::foreground member, to provide additional control over foreground colours in the PathListingWidget.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.12.0.html b/1.4.6.0/ReleaseNotes/1.3.12.0.html new file mode 100644 index 000000000..6b24dde90 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.12.0.html @@ -0,0 +1,629 @@ + + + + + + + 1.3.12.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.12.0

+
+

Improvements

+
    +
  • SceneReader : Added basic loding of UsdGeomNurbsCurves, converting them to CurvesPrimitives (basis curves).

  • +
  • Console output : Every line is now prefixed with the message level.

  • +
  • RenderPasses : Added validation of render pass names entered in the names plug.

  • +
  • RenderPassEditor :

    +
      +
    • Added support for adding a new render pass to an EditScope by clicking the plus button at the bottom of the editor.

    • +
    • Added support for deleting selected render passes by clicking the minus button at the bottom of the editor, or by right-clicking one of the names and selecting ‘Delete Selected Render Passes’.

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • Viewer : Fixed context handling bug in the shader view (#5654).

  • +
  • PythonCommand : Fixed misleading results for repr( variables ) and str( variables ), which would suggest the dictionary was empty when it was not.

  • +
  • CompoundObject : Fixed crashes in Python bindings caused by passing None as a key.

  • +
  • Windows : Fixed “{path} was unexpected at this time.” startup error when environment variables such as PATH contain " characters.

  • +
  • PathListingWidget : Fixed bug which caused the pointer to be stuck displaying the “values” icon after dragging cells with no value.

  • +
  • SceneAlgo : Fixed computation of history through Expression nodes.

  • +
  • LightTool : Fixed crash when deleting the node being viewed.

  • +
  • USD : Fixed loading of Arnold lights previously exported from Gaffer to USD.

  • +
  • Catalogue : Fixed connection delays on Windows.

  • +
  • Context : Fixed potential crash when setting a variable with ownership.

  • +
+
+
+

Documentation

+
    +
  • Added Render Pass Editor shortcuts to the “Controls and Shortcuts” section.

  • +
  • Added Render Pass Editor (Arnold) example demonstrating use of the Render Pass Editor, as well as the RenderPasses and RenderPassWedge nodes.

  • +
+
+
+

API

+
    +
  • EditScopeAlgo : Added support for creating render passes.

  • +
  • RenderPasses : Added registerRenderPassNameWidget() and createRenderPassNameWidget() methods for registration and creation of the widget used for editing render pass names.

  • +
  • RenderPassEditor : Added addRenderPassButtonMenuSignal() to allow customisation of the add render pass button behaviour.

  • +
  • ConfirmationDialogue : The cancel button may now be omitted by passing cancelLabel = None to the constructor.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.5.6.2.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.13.0.html b/1.4.6.0/ReleaseNotes/1.3.13.0.html new file mode 100644 index 000000000..679798fbe --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.13.0.html @@ -0,0 +1,604 @@ + + + + + + + 1.3.13.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.13.0

+
+

Improvements

+
    +
  • Viewer : Added Ctrl+PgUp shortcut for displaying the RGBA image layer (or the first available layer if RGBA doesn’t exist).

  • +
  • RenderPassEditor :

    +
      +
    • Added “Inclusions”, “Exclusions” and “Additional Lights” columns, to provide control over the locations included in the render for each render pass.

    • +
    • Added the ability to display render passes grouped in a hierarchy generated from the render pass name. The default grouping uses the first token delimited by “_” from the render pass name, such that render passes named “char_gafferBot” and “char_cow” would be displayed under a “/char” group, while “prop_ball” and “prop_box” would be displayed under a “/prop” group.

    • +
    • Render pass grouping can be configured in a startup file by using GafferSceneUI.RenderPassEditor.registerPathGroupingFunction( f ), where f is a function that receives a render pass name and returns the path that the render pass should be grouped under.

    • +
    • Grouped display can be enabled by default in a startup file by using Gaffer.Metadata.registerValue( GafferSceneUI.RenderPassEditor.Settings, "displayGrouped", "userDefault", IECore.BoolData( True ) ).

    • +
    • Dragging cells selected from the “Name” column now provides a list of the selected render pass names, rather than their paths.

    • +
    • Disabled render pass names are now dimmed to more clearly indicate their state.

    • +
    +
  • +
  • RenderPassEditor, LightEditor, PathListingWidget : Boolean values are now displayed as checkboxes rather than 0 or 1.

  • +
  • StandardOptions : Added inclusions, exclusions and additionalLights plugs, to control which locations are included in a render based on set expressions entered on these plugs. These, plus the existing includedPurposes plug are now grouped under the “Render Set” section of the UI.

  • +
  • GafferScene : Registered the “RenderSetAdaptor” adapting the render:inclusions, render:exclusions and render:additionalLights options to prune scene locations before rendering.

  • +
+
+
+

API

+
    +
  • ScenePath : Added automatic conversion of a list of Python strings to a ScenePath.

  • +
  • RenderPassEditor : Added registerPathGroupingFunction() and pathGroupingFunction() methods.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.13.1.html b/1.4.6.0/ReleaseNotes/1.3.13.1.html new file mode 100644 index 000000000..9235931c6 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.13.1.html @@ -0,0 +1,590 @@ + + + + + + + 1.3.13.1 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.13.1

+
+

Fixes

+
    +
  • DocumentationAlgo : Fixed generation of duplicate entries for aliased nodes in exportNodeReference().

  • +
+
+
+

Documentation

+
    +
  • Node Reference : Removed duplicate entries for nodes that have been aliased by compatibility configs.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.14.0.html b/1.4.6.0/ReleaseNotes/1.3.14.0.html new file mode 100644 index 000000000..7dd46ff97 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.14.0.html @@ -0,0 +1,586 @@ + + + + + + + 1.3.14.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.14.0

+
+

Features

+
    +
  • Render, InteractiveRender : Added new nodes capable of rendering to any supported renderer, and using the render:defaultRenderer option to determine which to use by default.

  • +
  • StandardOptions : Added render:defaultRenderer option, allowing the scene globals to specify which renderer is used by the Render and InteractiveRender nodes.

  • +
  • RenderPassEditor : Added a column for the render:defaultRenderer option, allowing each pass to be rendered in a different renderer.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.15.0.html b/1.4.6.0/ReleaseNotes/1.3.15.0.html new file mode 100644 index 000000000..dc6fa2301 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.15.0.html @@ -0,0 +1,592 @@ + + + + + + + 1.3.15.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.15.0

+
+

Improvements

+
    +
  • Render, InteractiveRender : Added resolvedRenderer plug, which outputs the name of the renderer that will be used, taking into account the influence of the render:defaultRenderer option.

  • +
+
+
+

Fixes

+
    +
  • InteractiveRender : Fixed context used to evaluate scene globals when renderer is set to “Default”.

  • +
  • Instancer : Fixed handling of unindexed primvars in RootPerVertex mode.

  • +
  • ArnoldShader : Fixed startup errors caused by unknown values in widget metadata.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.16.0.html b/1.4.6.0/ReleaseNotes/1.3.16.0.html new file mode 100644 index 000000000..9251e0ade --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.16.0.html @@ -0,0 +1,592 @@ + + + + + + + 1.3.16.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.16.0

+
+

Improvements

+
    +
  • Shuffle : Added the ability to load Shuffles from Gaffer 1.4.

  • +
  • Instancer : Added support for Varying primitive variables whenever they are equivalent to (have the same size as) a Vertex primitive variable.

  • +
+
+
+

Fixes

+
    +
  • Encapsulate : Fixed bug which could cause unwanted cancellation when rendering or unencapsulating.

  • +
  • Unencapsulate : Fixed bug which prevented cancellation of long-running computes.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.16.1.html b/1.4.6.0/ReleaseNotes/1.3.16.1.html new file mode 100644 index 000000000..4a3c089b7 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.16.1.html @@ -0,0 +1,585 @@ + + + + + + + 1.3.16.1 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.16.1

+
+

Fixes

+
    +
  • NodeAlgo : Fixed presets inheritance for promoted plugs with multiple outputs.

  • +
  • TaskNode / GafferCortex : Fixed missing GIL releases that caused hang at ImageEngine

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.16.2.html b/1.4.6.0/ReleaseNotes/1.3.16.2.html new file mode 100644 index 000000000..45727cc59 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.16.2.html @@ -0,0 +1,584 @@ + + + + + + + 1.3.16.2 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.16.2

+
+

Fixes

+
    +
  • File Browser : Windows only : Fixed bug in HiddenFilePathFilter that caused sequences to be treated as though they are hidden files (#5810).

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.16.3.html b/1.4.6.0/ReleaseNotes/1.3.16.3.html new file mode 100644 index 000000000..162140da7 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.16.3.html @@ -0,0 +1,584 @@ + + + + + + + 1.3.16.3 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.16.3

+
+

Fixes

+
    +
  • ColorChooserPlugValueWidget : Fixed bug that allowed the editing of locked plugs and nodes.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.16.4.html b/1.4.6.0/ReleaseNotes/1.3.16.4.html new file mode 100644 index 000000000..0e1f8f607 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.16.4.html @@ -0,0 +1,585 @@ + + + + + + + 1.3.16.4 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.16.4

+
+

Fixes

+
    +
  • SceneWriter : Fixed writing of locations with names that are not valid USD identifiers.

  • +
  • LightPositionTool : Fixed bug that caused the target / pivot positions to be removed when placing a light with Z scale not equal to 1.0.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.2.0.html b/1.4.6.0/ReleaseNotes/1.3.2.0.html new file mode 100644 index 000000000..8d418ebd7 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.2.0.html @@ -0,0 +1,649 @@ + + + + + + + 1.3.2.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.2.0

+
+

Features

+
    +
  • LightTool : Added manipulator for quad lights.

  • +
  • Collect : Added a utility node for collecting the values of arbitrary inputs across a range of contexts.

  • +
+
+
+

Improvements

+
    +
  • Viewer :

    +
      +
    • Added visualisation of light filters for USD lights.

    • +
    • Added support for USD lights and shaders in the floating inspector panel.

    • +
    • Improved support for looking through USD spot lights.

    • +
    +
  • +
  • ShaderTweaks/ShaderQuery : Added presets for USD light and surface shaders.

  • +
  • Test app :

    +
      +
    • The -category argument now accepts a space-separated list of categories, optionally containing wildcards.

    • +
    • Added -excludedCategories and -showCategories arguments.

    • +
    • Added information about performance test timings to the output stream.

    • +
    +
  • +
  • LightToCamera : Added support for USD spot lights.

  • +
+
+
+

Fixes

+
    +
  • Viewer :

    +
      +
    • Fixed crash when visualising lights with a light filter intended for a different renderer.

    • +
    • Fixed visualisation of Cycles point light size.

    • +
    • Fixed visualisation of Arnold light gobo textures with scaled UV coordinates.

    • +
    +
  • +
  • Arnold :

    +
      +
    • Fixed screen window export for Lentil cameras.

    • +
    • Fixed writing of image metadata for empty strings and strings containing spaces. This fixes the malformed line "string 'gaffer:context:ocio:config'" warning.

    • +
    +
  • +
  • Application : Fixed the -threads argument to clamp the number of threads to the number of available hardware cores (#5403).

  • +
  • CompareFloat, CompareColor, CompareVector : Worked around crashes in OSL’s batched shading system (#5430).

  • +
  • PlugValueWidget : Fixed search for auxiliary plugs of output plugs. In this case, the inputs are now searched instead of the outputs.

  • +
  • GafferUI : Fixed TableView bug causing the horizontal scrollbar to potentially overlap the last row (#5328).

  • +
  • Dispatch App : Fixed bug that prevented setting specific dispatcher plug values from the command line (#5434).

  • +
+
+
+

API

+
    +
  • ThreadMonitor : Added new class for tracking the threads used to perform processes.

  • +
  • PlugAlgo : Added findSource() method.

  • +
  • TestRunner :

    +
      +
    • Added CategorisedTestMethod decorator used to assign categories to test methods.

    • +
    • Added categories() static method to return the list of available categories in a test suite.

    • +
    • Added filterCategories() static method to skip tests according to included and excluded categories.

    • +
    +
  • +
+
+
+

Documentation

+
    +
  • Removed release notes for versions prior to 1.0.0.0.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.3.0.html b/1.4.6.0/ReleaseNotes/1.3.3.0.html new file mode 100644 index 000000000..bb59dc89b --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.3.0.html @@ -0,0 +1,651 @@ + + + + + + + 1.3.3.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.3.0

+
+

Features

+
    +
  • 3Delight :

    +
      +
    • Added support for VDB volume objects.

    • +
    • Added support for vdbVolume shader.

    • +
    • Added support for volumeshader and displacementshader attributes.

    • +
    • Added support for spline parameters in shaders.

    • +
    +
  • +
+
+
+

Improvements

+
    +
  • SceneReader : Added support for reading from in-memory USD stages using a filename of the form stageCache:{id}.usd where {id} specifies a stage which has been inserted in the UsdUtilsStageCache.

  • +
  • Resample, Resize, Blur, ImageTransform : Improved performance, resulting in a 3x speedup in an obscure case, and a 5-10% speedup in more common cases.

  • +
  • ImageSampler : Added interpolate plug to control interpolation. Previously created ImageSamplers are unaffected, but interpolation is off by default for newly created ImageSamplers.

  • +
  • 3Delight :

    +
      +
    • Moved shaders to 3Delight/Shader menu and removed outdated shaders from the menu.

    • +
    • Shaders (including light shaders) are only loaded from the osl subdirectory of the 3Delight installation.

    • +
    • Primitive variables named uv are now automatically renamed st for compatibility with the uvCoord shader’s expectation.

    • +
    • Added a default uvCoord shader during internal shader network preprocessing to shader parameters that do not have an input connection.

    • +
    +
  • +
  • SetEditor : Added columns for controlling the Visible Set membership of set members. These allow the current members of a set to be included or excluded from the Visible Set by clicking within the Set Editor’s Inclusions and Exclusions columns.

  • +
+
+
+

Fixes

+
    +
  • SceneReader :

    +
      +
    • Fixed handling of invalid values on the following USD attributes :

      +
        +
      • PointBased : positions, normals, velocities, accelerations.

      • +
      • Curves : widths.

      • +
      • PointInstancer : ids, protoIndices, orientations, scales, velocities, accelerations, angularVelocities.

      • +
      • Points : ids, widths. +Invalid values are now ignored with a warning, instead of loading as invalid primitive variables.

      • +
      +
    • +
    • Fixed treatment of unconnected material outputs. If they were “authored” but not connected to a source, they were incorrectly being treated as valid attributes, and were being loaded as empty ShaderNetworks which caused problems elsewhere.

    • +
    +
  • +
  • DispatchDialogue : Changed the button label for the results display from “Ok” to “Close”.

  • +
  • Viewer : Fixed display of infinite values in the pixel inspectors. These were being incorrectly displayed as nan instead of inf.

  • +
  • OptionTweaks : Fixed bug that prevented multiple tweaks being made to the same option in one node.

  • +
+
+
+

API

+
    +
  • SceneAlgo :

    +
      +
    • Added findAll() method, for finding all scene locations matching a predicate.

    • +
    • Added findAllWithAttribute() method, for finding all scene locations with a particular attribute.

    • +
    +
  • +
  • ThreadState : Added process() method.

  • +
  • Process : Added const overload for handleException() method. The non-const version will be removed in future.

  • +
  • ContextMonitor : Added Statistics::variableHashes() method, allowing introspection of specific variable values.

  • +
+
+
+

Build

+
    +
  • MacOS : Fixed compilation with Clang 13.

  • +
  • Cortex : Updated to version 10.5.2.0.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.4.0.html b/1.4.6.0/ReleaseNotes/1.3.4.0.html new file mode 100644 index 000000000..e8d7b0bf9 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.4.0.html @@ -0,0 +1,625 @@ + + + + + + + 1.3.4.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.4.0

+
+

Improvements

+
    +
  • Viewer : Added per-purpose control over which locations are shown in the viewer, according to their usd:purpose attribute.

    +
      +
    • The Drawing Mode dropdown menu can be used to to choose the visible purposes.

    • +
    • The default purposes can be specified in a startup file using Gaffer.Metadata.registerValue( GafferSceneUI.SceneView, "drawingMode.includedPurposes.value", "userDefault", IECore.StringVectorData( [ "default", "proxy" ] ) ).

    • +
    +
  • +
  • StandardOptions : Added includedPurposes plug, to control which locations are included in a render based on the value of their usd:purpose attribute.

  • +
  • 3Delight : Added additional output presets.

  • +
+
+
+

Fixes

+
    +
  • GraphEditor : Removed dynamic raster-space sizing of focus icon, as it caused excessive overlap with other nodes at certain zoom levels and on certain high resolution displays (#5435).

  • +
  • StringPlugValueWidget : Fixed bug handling Esc.

  • +
  • Arnold : Fixed unnecessary opaque attribute deprecation warnings. These are now only emitted in the case that opaque has been explicitly turned off.

  • +
  • ShaderUI : Fixed bug causing identical but independent shaders in a shader network from being included in the shader browser.

  • +
  • Encapsulate :

    +
      +
    • Fixed bug where global attributes (from the point of encapsulation) were baked into the contents of the capsule instead of being inherited naturally (from the node being rendered).

    • +
    • Fixed motion blur so that global settings are now taken from the downstream node being rendered, not from the input to the Encapsulate node.

    • +
    +
  • +
+
+
+

API

+
    +
  • SceneTestCase : Added assertScenesRenderSame() method.

  • +
  • RenderController : Added missing updateRequired() Python binding.

  • +
  • CapturingRenderer :

    +
      +
    • Added capturedObjectNames() method.

    • +
    • Added capturedName() and capturedLinkTypes() methods to CapturedObject class.

    • +
    +
  • +
+
+
+

Build

+
    +
  • Fixed compilation with Boost versions prior to 1.74.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.5.0.html b/1.4.6.0/ReleaseNotes/1.3.5.0.html new file mode 100644 index 000000000..451c237b7 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.5.0.html @@ -0,0 +1,617 @@ + + + + + + + 1.3.5.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.5.0

+
+

Features

+
    +
  • ImageScatter : Added a new node for scattering points across an image, with density controlled by an image channel.

  • +
+
+
+

Improvements

+
    +
  • Viewer : Changed the default image comparison (wipe) mode from Over to Replace.

  • +
  • Spreadsheet :

    +
      +
    • Popups for string cells and row names are now sized to fit their column.

    • +
    • Added “Triple” and “Quadruple” width options to the spreadsheet row name popup menu.

    • +
    +
  • +
  • Node : Improved performance when casting Python-derived types to ComputeNode.

  • +
+
+
+

Fixes

+
    +
  • ValuePlug : Fixed performance regression (introduced in 1.3.1.0) getting values from plugs without an input connection. This could severely affect scene generation times in some cases.

  • +
  • NameSwitch : Fixed bug which prevented drag and drop reordering of rows with an input connection.

  • +
  • PythonEditor :

    +
      +
    • Fixed output for print() calls with multiple arguments, which was previously spread across multiple lines.

    • +
    • Fixed bug that prevented editors being destroyed at the right time.

    • +
    +
  • +
  • FileSystemPath : Fixed bug on Windows where paths on an exFAT partition were not considered valid.

  • +
+
+
+

API

+
    +
  • Sampler : Added populate() method, which populates the internal tile cache in parallel, and subsequently allows sample() to be called concurrently.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.6.0.html b/1.4.6.0/ReleaseNotes/1.3.6.0.html new file mode 100644 index 000000000..89d1e01e9 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.6.0.html @@ -0,0 +1,642 @@ + + + + + + + 1.3.6.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.6.0

+
+

Features

+
    +
  • LightTool :

    +
      +
    • Added manipulator for disk and point light radii.

    • +
    • Added manipulators for cylinder length and radius.

    • +
    +
  • +
  • Tools Menu : Added “Metadata/Clean Up” menu item to optimise file size by removing redundant metadata.

  • +
+
+
+

Improvements

+
    +
  • CollectScenes : Improved performance when computing sets, with a 3x speedup being seen in one particular benchmark.

  • +
  • LightTool : Changed spot light and quad light edge tooltip locations so that they follow the cone and edge during drag.

  • +
  • Arnold : Improved speed of translation of encapsulated scenes when using many threads.

  • +
  • CollectImages : Added addLayerPrefix plug, to allow the layer prefix to be omitted in the case that the input images are already prefixed.

  • +
  • OSL Expression : Added support for getting an element of an array context variable using contextElement( variableName, index ) or contextElement( variableName, index, defaultValue ). Negative indices can be used to get elements relative to the end of the array.

  • +
+
+
+

Fixes

+
    +
  • ValuePlug : Fixed hangs and poor performance caused by plugs depending on upstream plugs with an identical hash (#4978).

  • +
  • Filter : Fixed bug which allowed the scene:path context variable to “leak” upstream via the Filter.enabled plug. This caused unnecessary evaluations of the input, and also provided a loophole via which the filter result could be made inconsistent with respect to descendant and ancestor matches.

  • +
  • Windows :

    +
      +
    • Fixed a bug preventing anything except strings from being copied and pasted.

    • +
    • Fixed likely cause of crash when resizing Spreadsheet column width (#5296).

    • +
    +
  • +
  • Reference : Fixed rare reloading error.

  • +
  • PlugLayout : Fixed lack of update when layout:customWidget:* metadata changes.

  • +
  • Dispatch app : Removed unnecessary and misleading “Execute” button.

  • +
  • SceneAlgo : Fixed history queries for ScenePlug.object in networks with nodes derived from ObjectProcessor. These include : CameraTweaks, ClosestPointSampler, CollectPrimitiveVariables, CopyPrimitiveVariables, CurveSampler, DeleteCurves, DeleteFaces, DeletePoints, MapOffset, MapProjection, MeshDistortion, MeshNormals, MeshSegments, MeshTangents, MeshToPoints, MeshType, Orientation, PointsType, PrimitiveSampler, PrimitiveVariables, ReverseWinding, ShufflePrimitiveVariables and UVSampler (#5406).

  • +
  • Metadata : Fixed redundant copying of metadata when promoting plugs.

  • +
  • OpenColorIO : Fixed hang when opening a script which didn’t yet have the openColorIO.config plug.

  • +
  • Context : Fixed bug preventing the retrieval of V2iVectorData, V2fVectorData, V3iVectorData and V3fVectorData from a context.

  • +
+
+
+

API

+
    +
  • Process : Added acquireCollaborativeResult() method, providing an improved mechanism for multiple threads to collaborate on TBB tasks spawned by a single process they all depend on.

  • +
  • ValuePlug : Added Default CachePolicy and deprecated Standard, TaskIsolation and Legacy policies.

  • +
  • Metadata :

    +
      +
    • Added RegistrationTypes enum that allows the different types of registrations to be identified.

    • +
    • Added improved registeredValues() and value() overloads that provide finer-grained queries based on the type of registration.

    • +
    • Deprecated instanceOnly and persistentOnly arguments in favour of new registrationTypes arguments.

    • +
    • Prevented renameable and deletable metadata from being copied during plug promotion.

    • +
    +
  • +
  • MetadataAlgo : Added deregisterRedundantValues() method.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.5.3.0.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.6.1.html b/1.4.6.0/ReleaseNotes/1.3.6.1.html new file mode 100644 index 000000000..d7c5b3599 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.6.1.html @@ -0,0 +1,604 @@ + + + + + + + 1.3.6.1 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.6.1

+
+

Fixes

+
    +
  • Catalogue : Fixed bugs which caused additional images to appear when changing light groups or crop in an Arnold render (#4267, #4633).

  • +
  • Instancer :

    +
      +
    • Fixed failure to update encapsulated instancers when prototype properties changed during interactive renders.

    • +
    • Prevented unnecessary updates for encapsulated instancers when prototype globals changed.

    • +
    +
  • +
  • Process : Fixed bug which caused a No result found exception to be thrown when a more descriptive exception should have been thrown instead.

  • +
  • Shader : Added support for reading from USD token attributes in <attr:> string parameter substitutions.

  • +
+
+
+

API

+
    +
  • Display : Added driverClosed() method.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.5.4.0.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.7.0.html b/1.4.6.0/ReleaseNotes/1.3.7.0.html new file mode 100644 index 000000000..1e5d5f864 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.7.0.html @@ -0,0 +1,606 @@ + + + + + + + 1.3.7.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.7.0

+
+

Improvements

+
    +
  • ArnoldShader : Improved support for camera projections by exposing the camera plug on the camera_projection shader.

  • +
  • Instancer :

    +
      +
    • Improved scene generation for encapsulated instancers significantly, with some production scenes now generating 5-7x faster.

    • +
    • Added omitDuplicateIds plug, to determine whether points with duplicate IDs are ignored or should trigger an error.

    • +
    +
  • +
  • ScenePathPlugValueWidget : Added fallback to browsing the focussed scene when no other scene can be found. This makes the widget suitable for use on ShaderNodes.

  • +
  • Windows : Disabled Arnold’s ADP usage and crash reporting module by default. Users can enable it by setting ARNOLD_ADP_DISABLE=0 for Arnold versions after 7.1.4.0 or ARNOLD_ADP_OPTIN=1 for earlier versions.

  • +
+
+
+

Fixes

+
    +
  • Catalogue : Fixed performance regressive when saving interactive renders with multiple AOVs (introduced in 1.3.6.1).

  • +
+
+
+

API

+
    +
  • Capsule : Added protected renderOptions() and throwIfNoScene() methods.

  • +
  • ScenePath : Added support for passing nullptr for the scene.

  • +
  • ArnoldShaderUI : Added support for camera widget type metadata, to add a camera browser to a string parameter.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.8.0.html b/1.4.6.0/ReleaseNotes/1.3.8.0.html new file mode 100644 index 000000000..4a7af8e9d --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.8.0.html @@ -0,0 +1,639 @@ + + + + + + + 1.3.8.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.8.0

+
+

Features

+
    +
  • Viewer : Added “Snapshot To Catalogue” command to the right-click menu of the 3D view.

  • +
  • RenderPasses : Added new nodes for working with render passes. Render passes are defined as a list of names stored in the renderPass:names option in the scene globals, and can be used to dispatch tasks that vary based on those names. This can be useful for purposes such as producing multiple renders with varying object visibility and shading, or for writing variations of a scene to individual files.

    +
      +
    • RenderPasses : Added a new node for appending render passes to the scene globals.

    • +
    • DeleteRenderPasses : Added a new node for removing render passes from the scene globals.

    • +
    • RenderPassWedge : Added a new node for causing upstream tasks to be dispatched in a range of contexts where the value of the renderPass context variable is varied based on the render pass names defined in the renderPass:names option.

    • +
    +
  • +
+
+
+

Improvements

+
    +
  • GraphEditor : Added drag & drop of files into the graph editor, automatically creating a SceneReader, ImageReader or Reference node as appropriate.

  • +
  • ImageTransform, Resample : Improved performance for non-separable filters without scaling, with 2-6x speedups in some benchmark cases.

  • +
  • Outputs : Included renderPass in the filename for newly created Arnold, Cycles and 3Delight outputs. Allowing rendered images to be written to a specific directory based on the name of the current render pass.

  • +
  • GUI Config : Included renderPass in the default filename when writing ass files from an ArnoldRender node.

  • +
  • NameSwitch/Spreadsheet : Added “Render Pass” preset to selector plug.

  • +
+
+
+

Fixes

+
    +
  • InteractiveRender : Fixed unnecessary updates to encapsulated locations when deforming an unrelated object.

  • +
  • InteractiveArnoldRender : Fixed creation of new Catalogue image when editing output metadata or pixel filter.

  • +
  • GraphEditor : Fixed error caused by additional connections to dragEnterSignal().

  • +
  • Windows Scene/OpenGL/Shader Menu : Removed \ at the beginning of menu items.

  • +
  • Arnold :

    +
      +
    • Fixed translation of UsdPreviewSurface normal maps.

    • +
    • Fixed translation of UsdPreviewSurface specularColor fallback value.

    • +
    +
  • +
  • Scene History : Fixed error caused by Alt+E keypress on panels other than the Viewer, HierarchyView, LightEditor or NodeEditor.

  • +
  • ImageReader : Fixed crashes caused by null ustring metadata values.

  • +
  • Exception handling : Fixed memory leak caused by translation of IECore::Exception from C++ to Python and back again.

  • +
+
+
+

API

+
    +
  • SceneGadget : Added snapshotToFile() method.

  • +
  • SceneAlgo :

    +
      +
    • Added history() overload for returning computation history independent of a scene location, this is useful when generating history from the globals.

    • +
    • Added optionHistory() method which returns a computation history for one specific option.

    • +
    +
  • +
  • Widget : Added handling for drag & drop from an external application via the existing dragEnterSignal(), dragMoveSignal(), dragLeaveSignal() and dropSignal() signals.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.5.4.2.

  • +
  • Instancer : Fixed ambiguous reference compilation errors when building with Boost 1.70.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.3.9.0.html b/1.4.6.0/ReleaseNotes/1.3.9.0.html new file mode 100644 index 000000000..9b651bb50 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.3.9.0.html @@ -0,0 +1,603 @@ + + + + + + + 1.3.9.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.3.9.0

+
+

Improvements

+
    +
  • 3Delight : Added support for subdivision corners and creases.

  • +
  • SetEditor :

    +
      +
    • Added “Selection” column displaying the number of currently selected members for each set.

    • +
    • Added “Hide Empty Selection” checkbox. When on, the SetEditor will only display sets with currently selected members.

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • TransformTools : Fixed editing of XYZ component plugs with individual input connections, such as when only a single component is promoted to a Box.

  • +
  • AttributeQuery, OptionQuery, PrimitiveVariableQuery, ShaderQuery : Added support for querying values of all numeric data types, whereas before queries were limited to bool, int and float values.

  • +
+
+
+

API

+
    +
  • PlugAlgo : setPlugFromData() now supports conversions from all numeric data types to BoolPlug, IntPlug and FloatPlug values.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.4.0.0.html b/1.4.6.0/ReleaseNotes/1.4.0.0.html new file mode 100644 index 000000000..23e018d26 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.4.0.0.html @@ -0,0 +1,982 @@ + + + + + + + 1.4.0.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.4.0.0

+
+

Note

+

This release introduces linux-gcc11 builds which are only compatible with Linux distributions using glibc 2.28 or higher. +These specific linux-gcc11 builds are intended for testing purposes while we upgrade our toolchain and dependencies to better align +with VFX Platform 2023, and should be considered “beta” in advance of a stable release in Gaffer 1.5.

+
+
+

Features

+
    +
  • Arnold : Added support for Arnold 7.3. Note that a minimum of 7.3.1.0 is required, meaning that 7.3.0.0 is not supported.

  • +
  • Cycles :

    +
      +
    • Updated to version 4.0.2.

    • +
    • Added support for CUDA and Optix devices (GCC 11 and Windows builds only).

    • +
    +
  • +
  • Dispatcher : Dispatchers are now TaskNodes, allowing them to be nested in a task graph. Possibilities include :

    +
      +
    • Using a LocalDispatcher and a Wedge to launch multiple TractorDispatcher jobs.

    • +
    • Using a nested LocalDispatcher to perform a group of tasks on a single blade within a TractorDispatcher job.

    • +
    +
  • +
  • SelectionTool : Added select mode plug. When set to anything except Standard using the SelectionTool causes the actual scene location selected to potentially be modified from the originally selected location. Selection modifiers work identically for deselection. Currently, two selectors are implemented :

    +
      +
    • USD Kind : When selecting, the first ancestor location with a usd:kind attribute matching the chosen list of USD Kind will ultimately be selected. USD’s Kind Registry includes Assembly, Component, Group, Model and SubComponent by default and can be extended via USD startup scripts.

    • +
    • Shader Assignment : When selecting, the first ancestor location with a renderable and direct (not inherited) shader attribute will ultimately be selected. This can be used to select either surface or displacement shaders.

    • +
    +
  • +
  • GraphEditor : Added X shortcut for removing connections between nodules. Hold X then left click to remove all connections under the cursor. Hold X then left drag to draw a line, all connections that intersect with the line will be removed once the drag is ended (#788).

  • +
  • LightPosition Tool : Added a variation on the shadow placement tool to place highlights. Lights are positioned such that they will create a specular highlight at the target point.

  • +
  • DeepSlice : Added a new node for clipping out part of an image based on depth.

  • +
  • MeshTessellate : Added a new node for increasing the polycount of subdivision meshes.

  • +
  • ImageInspector : Added a new panel for inspecting image format, metadata and channel statistics.

  • +
+
+
+

Improvements

+
    +
  • Arnold :

    +
      +
    • OSL shaders with connections from multiple outputs are no longer duplicated on export to Arnold.

    • +
    • Gaffer’s native OpenColorIO config is now automatically translated to Arnold. Use an ArnoldColorManager node to override this behaviour.

    • +
    +
  • +
  • ArnoldShader : Added parameter tooltips based on help metadata provided by Arnold.

  • +
  • CyclesOptions : Improved device selection UI.

  • +
  • 3Delight :

    +
      +
    • Added NSI screen static sampling pattern option (dl:staticsamplingpattern).

    • +
    • Added support for layerName parameter in output definitions.

    • +
    • Added support for filter parameter in output definitions.

    • +
    • Added camera overscan support.

    • +
    • Added support for reading dl: and user: attributes from shaders.

    • +
    • Added importanceSampleFilter plug to DelightOptions, providing denoiser-compatible output.

    • +
    • Added support for external procedurals.

    • +
    • Matched DelightOptions default values for oversampling and shadingSamples to 3Delight’s own default values.

    • +
    • NSI scene description export format is now based on file extension - .nsi for binary and .nsia for ASCII.

    • +
    +
  • +
  • EditScope : Added a summary of edits in the NodeEditor, with the ability to select the affected objects and quickly navigate to the processor nodes.

  • +
  • GraphEditor :

    +
      +
    • The source node for any location can be located by dragging the location into the GraphEditor from the Viewer or HierarchyView.

    • +
    • Removed all renderer-specific Render and InteractiveRender nodes from the node menu. These nodes still exist for backwards compatibility with old scenes, but the generic Render and InteractiveRender nodes should now be used instead.

    • +
    • Improved logic used to connect a newly created node to the selected nodes.

    • +
    +
  • +
  • GraphComponent : Node and Plug names may now start with a numeric digit.

  • +
  • LocalDispatcher :

    +
      +
    • Added a new dockable LocalJobs editor, to replace the floating window previously accessible via the “Execute/Local Jobs” menu item.

    • +
    • Task output is now shown in the UI.

    • +
    • Jobs are no longer removed from the UI as soon as they complete.

    • +
    • Incomplete jobs are now killed automatically when the application is closed, after prompting to confirm that shutdown should go ahead.

    • +
    +
  • +
  • LightPositionTool : The tool is now only visible for members of the __lights set, instead of all objects.

  • +
  • Catalogue : Added imageNames output plug, containing the names of all images in the Catalogue. Among other things this can be used to drive a Wedge or ContactSheet node and a CatalogueSelect.

  • +
  • ImageReader : Added fileValid = False metadata to images from missing frames, when missingFrameMode is Black or Hold.

  • +
  • Collect : Added the ability to collect StringVectorData inputs.

  • +
  • Toolbars : Changed hotkey behavior to toggle any tool on and off. Exclusive tools such as the Translate and Crop Window tools activate the first tool (currently Selection Tool) when they are toggled off.

  • +
  • CropWindowTool : Added Alt + C for toggling both the crop window tool and the relevant crop window enabled plug.

  • +
  • TaskList, FrameMask : Reimplemented in C++ for improved performance.

  • +
  • Cache : Increased default computation cache size to 8Gb. Call Gaffer.ValuePlug.setCacheMemoryLimit() from a startup file to override this.

  • +
  • Dispatcher : Reduced internal overhead of dispatch() call, with one benchmark showing around a 3x speedup.

  • +
  • ScriptWindow : Added “Save” option to dialogue shown when closing a window containing unsaved changes.

  • +
  • Resize :

    +
      +
    • Added support for deep images.

    • +
    • Added “Nearest” filter.

    • +
    +
  • +
  • Shuffle :

    +
      +
    • Reimplemented to match ShuffleAttributes and ShufflePrimitiveVariables.

      +
        +
      • Any number of shuffles can be added using the UI.

      • +
      • Wildcards can be used to match multiple source channels, and expressions can be used to map them to destination channels.

      • +
      • Source channels can optionally be deleted after shuffling.

      • +
      • Overwriting of destination channels can optionally be avoided.

      • +
      +
    • +
    • Added missingSourceMode plug to determine behaviour when a source channel doesn’t exist.

    • +
    +
  • +
  • NodeEditor : Improved image channel selectors :

    +
      +
    • Added “Custom” option, to allow strings to be entered manually.

    • +
    • Added right-click context menu.

    • +
    +
  • +
  • Switch : Added connectedInputs output plug.

  • +
  • Backdrop : Improved drawing order for nested backdrops :

    +
      +
    • Larger backdrops are automatically drawn behind smaller ones, so that nested backdrops will always appear on top.

    • +
    • Added a depth plug to assign a manual drawing depth for the rare cases where the automatic depth is unwanted.

    • +
    +
  • +
  • ImageStats : Added areaSource plug, allowing area to be driven by the input display window or data window.

  • +
  • ScenePlug, ImagePlug : Child plugs are now serialisable. Among other things, this enables them to be driven by expressions (#3986).

  • +
  • Premultiply : Added useDeepVisibility plug, which weights samples according to their visibility based on the opacity of samples in front.

  • +
  • ImageReader : Improved multithreading of EXR reads. This can result in a performance improvement of around 4X for large images.

  • +
  • Added OIIO config that disables OIIO threading by default. This simplifies our threading model, and has no impact on performance for our main use cases. If read performance of Gaffer compositing using non-EXR formats, such as Tiff, is important to you, you may want to add your own config to turn OIIO threading back on.

  • +
  • Wireframe :

    +
      +
    • Improved performance ~3x.

    • +
    • Improved cancellation responsiveness.

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • Arnold :

    +
      +
    • Fixed rendering of shaders imported from HtoA via USD.

    • +
    • Fixed USD export of shaders to use outputs:out instead of outputs:DEFAULT_OUTPUT.

    • +
    • Fixed rendering of osl shaders using the code parameter.

    • +
    +
  • +
  • Cycles :

    +
      +
    • Fixed hangs and crashes when using non-default session modes such as SVM shading.

    • +
    • Fixed failure to render background light in batch renders (#5234).

    • +
    • Fixed failure to update when reverting a background shader to previous values.

    • +
    +
  • +
  • 3Delight :

    +
      +
    • Fixed failure to change sampling pattern per frame.

    • +
    • Fixed Resolution Multiplier support.

    • +
    • Fixed UI visibility of angle parameter for distant lights, which was previously hidden.

    • +
    • Fixed export of Varying primitive variables on meshes (#5781).

    • +
    • Fixed loading of surface shaders such as dlStandard so that they can be connected to the inputs of shaders such as dlLayeredMaterial.

    • +
    +
  • +
  • Widget :

    +
      +
    • Fixed bug that prevented Gadgets from receiving drops from another application.

    • +
    • Fixed errors when dragging from another application onto widgets that didn’t expect it.

    • +
    +
  • +
  • Gadget : Fixed access to DragDropEvent.sourceWidget and DragDropEvent.destinationWidget from Python slots connected to a Gadget’s DragDropSignals.

  • +
  • GraphGadget : Fixed unwanted highlighting of nodes when custom drag & drop handlers were active.

  • +
  • Viewer : Fixed selection overlay glitches with an Arnold skydome_light and an empty selection.

  • +
  • GafferTest, GafferImageTest : Fixed import of these modules if the Gaffer module had not been imported previously.

  • +
  • ViewportGadget : Fixed selection issues with Intel GPUs (#901, #2788).

  • +
  • TransformTool : Fixed alignment of green “value changed” icon for orientation plugs.

  • +
  • PlugAlgo :

    +
      +
    • Updated canSetValueFromData(), setValueFromData() and getValueAsData() with support for missing types.

    • +
    • Fixed promotion of CompoundDataPlugs with non-dynamic children, such as the Camera.renderSettingOverrides plug.

    • +
    +
  • +
  • Catalogue :

    +
      +
    • Fixed undo for image reordering via drag & drop.

    • +
    • Fixed bugs caused by reordering images using GraphComponent::reorderChildren().

    • +
    +
  • +
  • Expression : setExpression() now respects configs that provide backwards compatibility for old plug names.

  • +
  • FlatImageProcessor : Fixed bug that could cause an input to be evaluated with an invalid image:viewName.

  • +
  • Collect : Fixed display of results collected from TypedObjectPlug inputs.

  • +
  • BackgroundTask : Fixed potential deadlock caused by destroying a BackgroundTask from Python while it was still running.

  • +
  • Dispatcher : The job directory is no longer created when dispatch is cancelled by a slot connected to preDispatchSignal().

  • +
  • LocalDispatcher :

    +
      +
    • Fixed delays and zombie processes caused by shutting down Gaffer while background jobs were running. Background jobs are now killed before Gaffer exits instead.

    • +
    • Stopped failed jobs jumping to the end of the Local Jobs UI.

    • +
    • Fixed message log update.

    • +
    • Fixed Job.statistics() errors on Windows, ensuring that a pid is always returned when available.

    • +
    +
  • +
  • ImageStats :

    +
      +
    • Fixed output of infinite values, which were previously being clamped.

    • +
    • Results for min/max now correctly reflect zero values outside the data window.

    • +
    +
  • +
  • NodeMenu, NodeEditor : userDefault metadata is now evaluated in the script context, so it can depend on script variables.

  • +
  • DeepState : Fixed handling of NaN values and samples where ZBack is less than Z.

  • +
  • Premultiply : Fixed handling of non-existent alpha channel.

  • +
  • ColorToVector : Fixed parameter types.

  • +
  • Windows : Removed “Error(s) running Gaffer” shutdown message. It was misleading when errors originated in the renderer rather than Gaffer itself.

  • +
+
+
+

API

+
    +
  • SelectionTool : Added static registerSelectMode() method for registering a Python or C++ function that will modify a selected scene path location. Users can choose which mode is active when selecting.

  • +
  • EditScopeUI : Added an API for customising the EditScope’s NodeEditor with summaries for each processor :

    +
      +
    • ProcessorWidget provides a base class for custom widgets, and a factory mechanism for registering them against processors.

    • +
    • SimpleProcessorWidget provides a base class for widgets with a simple summary label and optional action links.

    • +
    +
  • +
  • TractorDispatcher : The preSpoolSignal() now provides an additional taskData argument to slots, which maps from Tractor tasks to information about the Gaffer tasks they will execute.

  • +
  • LabelPlugValueWidget : Added optional labelPlugValueWidget:showValueChangedIndicator metadata entry. If a plug has this entry set to False, the icon next to the label that indicates the value has changed will not be shown. Defaults to True if the value is not set.

  • +
  • TypedObjectPlug : Added Python bindings for the default values of the defaultValue constructor argument.

  • +
  • Box2fVectorDataPlug : Added new plug type for storing arrays of Box2f.

  • +
  • Catalogue : Deprecated image:index metadata.

  • +
  • ImageGadget : Removed textureLoader() method.

  • +
  • Pointer : Added fileName() method.

  • +
  • ExtensionAlgo : Added exportNode() and exportNodeUI() functions.

  • +
  • Widget : Added a 0.5 pixel offset to ButtonEvent.line objects passed to mouse event signals such as buttonPressSignal() and dragMoveSignal()

  • +
  • PathColumn :

    +
      +
    • Added CellData::sortValue member, to provide additional control over sorting in the PathListingWidget.

    • +
    • Added missing Python binding for headerData() method.

    • +
    +
  • +
  • StandardPathColumn :

    +
      +
    • Added constructor which allows the full header CellData to be specified.

    • +
    • Added missing Python binding for property() method.

    • +
    +
  • +
  • IconPathColumn :

    +
      +
    • Added constructor which allows the full header CellData to be specified.

    • +
    • Added prefix() and property() accessors.

    • +
    +
  • +
  • Window : Added preCloseSignal(), which allows connected slots to prevent a window from being closed.

  • +
  • LocalDispatcher :

    +
      +
    • Added Job.status() and Job.statusChangedSignal() methods.

    • +
    • Added Job.messages() and Job.messagesChangedSignal() methods.

    • +
    • Added Job.frameRange(), Job.environmentCommand() and Job.startTime() methods.

    • +
    • Added Job.cpuUsage() and Job.memoryUsage() methods.

    • +
    • Added JobPool.addJob() and JobPool.removeJob() methods.

    • +
    +
  • +
  • GafferTractor : Added tractorAPI() method used for accessing the tractor.api.author module.

  • +
  • GafferTractorTest : Added tractorAPI() method which returns a mock API if Tractor is not available. This allows the GafferTractor module to be tested without Tractor being installed.

  • +
  • ParallelAlgo : Added canCallOnUIThread() function.

  • +
  • Label : Added textSelectable constructor argument.

  • +
  • ShufflesPlug :

    +
      +
    • Added ignoreMissingSource argument to shuffle().

    • +
    • Added shuffleWithExtraSources() method.

    • +
    +
  • +
  • ShufflePlugValueWidget : Widgets for the source and destination plugs can now be customised using standard plugValueWidget:type metadata.

  • +
  • ImageTestCase : in assertImageEqual function, maxDifference may now be a tuple, to specify an asymmetric range.

  • +
  • Editor : Added Settings class, which should be used to store settings for subclasses. See LightEditor and ImageInspector for examples.

  • +
  • DeepPixelAccessor : Added utility class for accessing deep samples while abstracting away the underlying tile storage.

  • +
  • Color3fPlug : Added setValue( V3f() ) overload.

  • +
+
+
+

Documentation

+
    +
  • Updated with generic Render and InteractiveRender nodes in place of deprecated renderer-specific nodes.

  • +
+
+
+

Breaking Changes

+
    +
  • Arnold : Removed support for Arnold 7.1.

  • +
  • Cycles : Updated to version 4.0.2.

  • +
  • 3Delight :

    +
      +
    • Changed default layer names for outputs.

    • +
    • Changed NSI scene description export with .nsi file extension from ASCII to binary (.nsia is used for ASCII now).

    • +
    +
  • +
  • InteractiveRenderTest : Subclasses must now return the shader output plug from creation methods such as _createConstantShader().

  • +
  • StandardLightVisualiser : Added attributeName argument to surfaceTexture() virtual method.

  • +
  • CyclesAttributes : Removed the cycles:dupliGenerated and cycles:dupliUV attributes.

  • +
  • CyclesOptions :

    +
      +
    • Changed hairShape default value to “ribbon”, to match Cycles’ and Blender’s own defaults.

    • +
    • Removed useFrameAsSeed plug. The frame is now automatically used as the seed if seed is not set.

    • +
    • Removed all texture cache options. These had never been exposed in the UI because this never became an official Cycles feature.

    • +
    • Removed cryptomatteAccurate. This feature is no longer present in Cycles.

    • +
    • Removed cycles:integrator:sampling_pattern option. This is intended only for debugging, but is still available via a CustomOptions node.

    • +
    +
  • +
  • Pointer :

    +
      +
    • Removed Pointer( const ImagePrimitive * ) constructor.

    • +
    • Removed image() method.

    • +
    +
  • +
  • Render : Changed render:includedPurposes default to "default", "render".

  • +
  • Backdrop : Changed default drawing order. Use the new depth plug to override the order if necessary.

  • +
  • ValuePlug : Removed deprecated getObjectValue() overload.

  • +
  • Preferences : Removed cache plug.

  • +
  • TaskNode :

    +
      +
    • The Task constructor no longer takes a copy of the context, so the context must not be modified after being passed.

    • +
    • Removed Task( taskNode, context ) constructor. Use Task( taskNode["task"], context ) instead.

    • +
    +
  • +
  • Dispatcher :

    +
      +
    • Removed createMatching() method.

    • +
    • Removed non-const TaskBatch accessors frames() and preTasks().

    • +
    • Made TaskBatch constructors private.

    • +
    • The job directory is no longer available in slots connected to preDispatchSignal().

    • +
    • Removed nodes arguments from dispatch signals. Use the dispatcher["tasks"] plug instead.

    • +
    • Removed script and context arguments from frameRange() method. The current frame and full frame range are now queried from the current context.

    • +
    +
  • +
  • DispatcherUI :

    +
      +
    • Removed appendMenuDefinitions(), appendNodeContextMenuDefinitions(), executeSelected() and repeatPrevious() functions.

    • +
    • Removed DispatcherWindow class.

    • +
    +
  • +
  • LocalDispatcher :

    +
      +
    • Removed JobPool.jobFailedSignal().

    • +
    • Removed JobPool.failedJobs() method. Failed jobs now remain in place in the main jobs() container.

    • +
    • Removed Job.failed() and Job.killed() methods. Use Job.status() instead.

    • +
    • Removed Job.execute() method. This should not have been public.

    • +
    • Removed Job.messageHandler() method. Use Job.messages() instead.

    • +
    • Removed Job.description() method.

    • +
    • Removed Job.statistics() method. Use Job.memoryUsage() and Job.cpuUsage() instead.

    • +
    • JobPool no longer derives from RunTimeTyped.

    • +
    +
  • +
  • LocalDispatcherUI : Removed appendMenuDefinitions() function.

  • +
  • Process : Removed non-const variant of the handleException() method.

  • +
  • StringPlug : Removed deprecated precomputedHash argument from getValue() method.

  • +
  • OpenColorIOContext : Removed configEnabledPlug(), configValuePlug(), workingSpaceEnabledPlug() and workingSpaceValuePlug() methods. Use the OptionalValuePlug child accessors instead.

  • +
  • Windows launch script : Removed the hardcoded /debugexe switch used when GAFFER_DEBUG is enabled, making it possible to use debuggers other than Visual Studio. Debug switches can be added to the GAFFER_DEBUGGER environment variable instead.

  • +
  • Enums : Replaced IECore.Enum types with standard Python types from the enum module.

  • +
  • Shuffle :

    +
      +
    • Removed ChannelPlug type. Use Gaffer.ShufflePlug instead.

    • +
    • Renamed channels plug to shuffles plug, matching nodes such as ShuffleAttributes and ShufflePrimitiveVariables.

    • +
    +
  • +
  • ShuffleUI : Removed nodeMenuCreateCommand().

  • +
  • ImageStatsUI : Removed postCreate().

  • +
  • OSLShader : Output parameters are now loaded onto the out plug for all types (surface, displacement etc), not just shader.

  • +
  • DelightOptions : Changed default values for oversampling and shadingSamples plugs.

  • +
  • SceneProcessor : Subclasses no longer serialise internal connections to the out plug.

  • +
  • ImageProcessor : Internal connections to the out plug are no longer serialised.

  • +
  • USD : Removed Embree Hydra delegate.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.5.6.2.

  • +
  • Cycles : Updated to version 4.0.2.

  • +
  • Embree : Updated to version 4.3.0.

  • +
  • Imath : Updated to version 3.1.9.

  • +
  • MaterialX : Updated to version 1.38.8.

  • +
  • LibWebP : Added version 1.3.2.

  • +
  • OpenEXR :

    +
      +
    • Updated to version 3.1.12.

    • +
    • Applied patches from the following pull requests :

      +
        +
      • https://github.com/AcademySoftwareFoundation/openexr/pull/1591

      • +
      • https://github.com/AcademySoftwareFoundation/openexr/pull/1684

      • +
      +
    • +
    +
  • +
  • OpenImageIO : Updated to version 2.5.8.0.

  • +
  • OpenPGL : Updated to version 0.5.0.

  • +
  • OpenShadingLanguage : Updated to version 1.12.14.0.

  • +
  • OpenSubdiv : Updated to version 3.5.1.

  • +
  • OpenSSL : Removed.

  • +
  • OpenVDB : Updated to version 10.1.0.

  • +
  • PsUtil : Added version 5.9.6.

  • +
  • PySide : Updated to version 5.15.12.

  • +
  • Python : Updated to version 3.10.13.

  • +
  • Qt :

    +
      +
    • Updated to version 5.15.12.

    • +
    • Removed QtPurchasing library.

    • +
    • Removed QtNetworkAuth library.

    • +
    +
  • +
  • USD : Updated to version 23.11.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.4.1.0.html b/1.4.6.0/ReleaseNotes/1.4.1.0.html new file mode 100644 index 000000000..38effd1f4 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.4.1.0.html @@ -0,0 +1,615 @@ + + + + + + + 1.4.1.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.4.1.0

+
+

Features

+
    +
  • MeshTessellate/MeshType : Added support for special-purpose subdiv options: interpolateBoundary, faceVaryingLinearInterpolation, triangleSubdivisionRule.

  • +
+
+
+

Improvements

+
    +
  • Group : Added sets plug, to control what sets the group belongs to.

  • +
  • 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.

    • +
    • Added “Matte Inclusions” and “Matte Exclusions” columns, providing control over the scene locations used as holdout mattes in each render pass.

    • +
    +
  • +
+
+
+

Fixes

+
    +
  • NameSwitch : Fixed NodeEditor tab order, so that the Settings tab precedes the Advanced tab.

  • +
  • NodeAlgo : Fixed presets inheritance for promoted plugs with multiple outputs.

  • +
  • TaskNode / GafferCortex : Fixed missing GIL releases that caused hang at ImageEngine.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.5.7.0.

  • +
  • OpenEXR : Updated to version 3.1.13.

  • +
  • USD : Added sdrOsl, for inclusion of OSL shaders in the Sdr Registry.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.4.2.0.html b/1.4.6.0/ReleaseNotes/1.4.2.0.html new file mode 100644 index 000000000..be02ea679 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.4.2.0.html @@ -0,0 +1,642 @@ + + + + + + + 1.4.2.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.4.2.0

+
+

Features

+
    +
  • ContactSheet : Added new node for creating contact sheets from multiple input images.

  • +
  • LightPositionTool : Added Diffuse mode for placing lights along the normal of the target position.

  • +
+
+
+

Improvements

+
    +
  • TweakPlug : ListAppend, ListPrepend and ListRemove modes are now supported for string values. In this case, the string is treated as a space-separated list.

  • +
  • Cycles :

    +
      +
    • Changed default value for principled_bsdf.specular_ior_level to 0.5, matching Blender.

    • +
    • Added support for uv.tangent and uv.tangent_sign primitive variables to assist in rendering with normal maps (#5269).

    • +
    +
  • +
  • AttributeQuery, PrimitiveVariableQuery, ContextQuery, OptionQuery, ShaderQuery : Added support for querying arrays of length 1 as their equivalent scalar types.

  • +
  • CodeWidget : Added Ctrl+L shortcut for selecting all text on the current line.

  • +
  • AttributeTweaks, CameraTweaks, ShaderTweaks, OptionTweaks, PrimitiveVariableTweaks :

    +
      +
    • Added support for a {source} token which is substituted with the original value when tweaking a string in Replace mode.

    • +
    • Added tooltips documenting the tweak modes.

    • +
    +
  • +
  • 3Delight : Added automatic render-time translation of UsdPreviewSurface shaders to 3Delight.

  • +
  • USDLight :

    +
      +
    • Added Arnold-specific extension parameters.

    • +
    • Added parameter tooltips.

    • +
    +
  • +
  • LightEditor : Added columns for Arnold-specific parameters on USD lights.

  • +
  • Switch : Added deleteContextVariables plug.

  • +
+
+
+

Fixes

+
    +
  • Viewer : Fixed Cycles shader balls.

  • +
  • TweakPlug : Fixed incorrect results and potential crashes in list modes.

  • +
  • USD : Fixed Unsupported value type "StringData" for parameter "input" warning when converting UsdTransform2d shaders with no in connections to Arnold.

  • +
  • File Browser : Windows only : Fixed bug in HiddenFilePathFilter that caused sequences to be treated as though they are hidden files (#5810).

  • +
+
+
+

API

+
    +
  • PlugAlgo : setValueFromData() and canSetValueFromData() now support conversion of arrays of length 1 to their equivalent scalar types.

  • +
  • BoxPlug : Added Python bindings for ValueType, PointType and ChildType type aliases.

  • +
  • RenderPassEditor : Added deregisterColumn() method.

  • +
  • DocumentationAlgo : Added table and strikethrough support to markdownToHTML().

  • +
  • LightEditor : Added columnName parameter to registerParameter() method, matching the behaviour of RenderPassEditor.registerOption().

  • +
  • USDShader : Added support for loading from the UsdSchemaRegistry as well as from the SdrRegistry. This is now used when loading UsdLuxLights.

  • +
  • PlugLayout : Added support for activators in Boxes and extension nodes by allowing layout:activator:activatorName metadata to contain a Python string to be executed. Execution is performed in an environment where a parent variable refers to node or plug represented by the layout, and from which plug values can be obtained.

  • +
  • ContactSheetCore : Added a new node to do provide the basis for networks that create contact sheets from multiple input images.

  • +
+
+
+

Build

+
    +
  • MacOS : Fixed issue where Python.framework may not be found when building with a prebuilt dependencies package.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.4.3.0.html b/1.4.6.0/ReleaseNotes/1.4.3.0.html new file mode 100644 index 000000000..c18bfd2c4 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.4.3.0.html @@ -0,0 +1,625 @@ + + + + + + + 1.4.3.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.4.3.0

+
+

Features

+
    +
  • 3Delight : Added “3Delight Cloud” renderer, for rendering using the 3Delight cloud.

  • +
+
+
+

Improvements

+
    +
  • Arnold : If it exists, an ai:volume attribute is preferred over an ai:surface attribute when resolving shaders for volumes.

  • +
  • Cycles :

    +
      +
    • Updated the UI of Cycles shaders and lights for ease of use and to match Blender conventions.

    • +
    • Hide certain parameters based on UI selections.

    • +
    • Renamed and reordered parameters and created sections to match Blender.

    • +
    • Changed all the Cycles items in the Gaffer tab menu to title case.

    • +
    +
  • +
  • PythonCommand : Added standard popup menu to command widget in NodeEditor.

  • +
+
+
+

Fixes

+
    +
  • Arnold :

    +
      +
    • Fixed rendering of ai:volume shaders loaded from USD (#5830).

    • +
    • Renamed Arnold/Globals/Imager menu option to Arnold/Globals/Imagers so that the actual ArnoldImager node menu option wasn’t overwritten.

    • +
    +
  • +
  • CodeWidget : Fixed errors handling highlights which spanned more than one line, such as triple-quoted strings in the PythonEditor.

  • +
  • NodeEditor : Fixed broken layouts caused by computation errors in plugs used by section summaries.

  • +
  • ColorChooserPlugValueWidget : Fixed bug that allowed the editing of locked plugs and nodes.

  • +
+
+
+

API

+
    +
  • SceneAlgo : Added mechanism for scoping render adaptors to specific clients and/or renderers.

  • +
+
+
+

Build

+
    +
  • Fixed issue where gaffer wrapper may not exist when calling usdGenSchema from a clean build.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.4.4.0.html b/1.4.6.0/ReleaseNotes/1.4.4.0.html new file mode 100644 index 000000000..800588123 --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.4.4.0.html @@ -0,0 +1,634 @@ + + + + + + + 1.4.4.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.4.4.0

+
+

Features

+
    +
  • RenderPassEditor :

    +
      +
    • Added type column for configuring specific passes to render with a predefined type. We provide default configurations of a number of render pass types, these can be modified to suit specific workflows via the RenderPassShader node or by registering new types and processors via the RenderPassTypeAdaptor in a startup file.

    • +
    • The default render pass type configurations include :

      +
        +
      • A “shadow” type for catching shadows cast by caster locations on catcher locations.

      • +
      • A “reflection” type for catching reflections cast by caster locations on catcher locations. The roughness of the reflective material can be configured per catcher location by creating a user:renderPass:reflectionCatcher:roughness float attribute.

      • +
      • A “reflectionAlpha” type for catching reflection mattes cast by caster locations on catcher locations. The colour of the matte can be configured per caster location by creating a user:renderPass:reflectionCaster:color Color3f attribute.

      • +
      +
    • +
    +
  • +
  • RenderPassShader : Added new node for overriding a shader used by a render pass type.

  • +
+
+
+

Improvements

+
    +
  • 3Delight :

    +
      +
    • Added support for multipart EXR renders by using the same file name parameter on multiple outputs.

    • +
    • Added support for scalarformat, colorprofile, filterwidth and arbitrary custom NSI outputlayer and outputdriver attributes.

    • +
    • Updated the default output presets to include scalarformat, colorprofile, filter and filterwidth output parameters.

    • +
    +
  • +
  • LightPositionTool : Changed the pointer to notEditable when using keyboard combinations that do not apply to the current tool mode.

  • +
  • LightEditor : Added the ability to register columns for editing any parameter in a light’s shader network. The parameter to edit is registered in the form shaderName.parameterName when calling GafferSceneUI.LightEditor.registerParameter.

  • +
  • PathFilterUI : Added the ability to drag and drop scene paths onto Box and Reference nodes. Doing so will create a new PathFilter with the selected paths if none is connected, or update an existing connected PathFilter.

  • +
+
+
+

Fixes

+
    +
  • SceneReader, SceneWriter : Fixed handling of Arnold-specific parameters on UsdLux lights.

  • +
  • SceneWriter : Fixed import of treatAsPoint and treatAsLine parameters on UsdLux lights.

  • +
  • Linux : Fixed crashes at startup on platforms - including RHEL 9.4 - with a more recent glibc (#5856).

  • +
  • LightPositionTool : Fixed bug that allowed a non-light object to be moved by clicking or dragging the target or pivot.

  • +
  • OptionQuery : Fixed bug which allowed the scene:path context variable to leak into the context used to evaluate the globals.

  • +
+
+
+

API

+
    +
  • ShaderPlug : Added parameterSource() method returning the ValuePlug responsible for generating a parameter in a shader network.

  • +
  • ParameterInspector : Added the ability to inspect parameters on any shader in a light or shader’s shader network.

  • +
  • RenderPassTypeAdaptor :

    +
      +
    • Added registration methods for defining render pass types and processors.

    • +
    • Added registerAutoTypeFunction() method to define a function used to automatically derive the render pass type from the render pass name when the renderPass:type option value is “auto”.

    • +
    +
  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.4.5.0.html b/1.4.6.0/ReleaseNotes/1.4.5.0.html new file mode 100644 index 000000000..6f9498f5c --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.4.5.0.html @@ -0,0 +1,638 @@ + + + + + + + 1.4.5.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.4.5.0

+
+

Features

+
    +
  • ShaderTweaks : Added support for creating ShaderTweakProxy nodes that allow making input connections to the original network.

  • +
  • 3Delight : Added interactive Viewer renderer.

  • +
+
+
+

Improvements

+
    +
  • SetFilter, StandardAttributes, StandardOptions : Added syntax highlighting and auto-complete for set expressions.

  • +
  • NodeEditor, UIEditor, PythonEditor : Added popup hint for the Ctrl+Return shortcut.

  • +
  • CodeWidget : Added highlighting of braces and operators.

  • +
  • RenderPassEditor : Added preset menu for choosing a render pass type from the list of available registered types. An “auto” type is included in the list when an auto type function has been registered.

  • +
  • OptionTweaks : Tweak value plugs can now access metadata registered globally to option:{tweakName}, where {tweakName} is the value of the tweak’s name plug.

  • +
  • Spreadsheet : Added support for metadata to be automatically forwarded from plugs downstream of a column’s out plug to the column’s default row.

  • +
+
+
+

Fixes

+
    +
  • CodeWidget :

    +
      +
    • Removed unwanted \n prefix in lines passed to Completers.

    • +
    • Prevented spurious emission of editingFinishedSignal() when showing the completions menu.

    • +
    • Prevented the completion menu from popping up inappropriately when the highlighter was changed.

    • +
    +
  • +
  • MultiLineTextWidget :

    +
      +
    • Fixed rendering of disabled widgets, which now show faded text.

    • +
    • Fixed behaviour of editingFinishedSignal() to match TextWidget : it is now also emitted when the text is activated (see activatedSignal()).

    • +
    +
  • +
  • MultiLineStringMetadataWidget : The Ctrl+Return shortcut now updates the metadata value immediately.

  • +
  • UIEditor : The Ctrl+Return shortcut now updates the button code immediately.

  • +
  • Cryptomatte :

    +
      +
    • Fixed errors when the input image didn’t contain the main RGBA channels.

    • +
    • Fixed inaccurate hash.

    • +
    +
  • +
  • SceneAlgo : Fixed exception handling for Python render adaptors. Previously an exception during adaptor construction caused a SystemError.

  • +
  • InteractiveRender :

    +
      +
    • Fixed crash triggered by a render adaptor depending on its renderer input to adapt the scene globals.

    • +
    • Removed unintentional ability for render adaptors to change the renderer being used.

    • +
    +
  • +
+
+
+

API

+
    +
  • TextWidget : Added selectedText() convenience method.

  • +
  • MultiLineTextWidget : Added setSelection() and getSelection() methods.

  • +
  • SetExpressionPlugValueWidget : Added new editor for set expressions, with syntax highlighting and auto-complete.

  • +
  • RenderPassTypeAdaptor : Added autoTypeFunction() method.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/1.4.6.0.html b/1.4.6.0/ReleaseNotes/1.4.6.0.html new file mode 100644 index 000000000..781eb876e --- /dev/null +++ b/1.4.6.0/ReleaseNotes/1.4.6.0.html @@ -0,0 +1,612 @@ + + + + + + + 1.4.6.0 — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

1.4.6.0

+
+

Improvements

+
    +
  • EditScopePlugValueWidget : Added icon representing the Edit Scope node colour.

  • +
+
+
+

Fixes

+
    +
  • LightPositionTool : Fixed bug that caused the target/pivot positions to be lost when placing a light with Z scale not equal to 1.0.

  • +
  • SceneWriter :

    +
      +
    • Fixed writing of locations with names that are not valid USD identifiers.

    • +
    • Fixed handling of shader parameters not supported in USD, such as texture inputs to OpenGLShader.

    • +
    +
  • +
  • SceneReader : Fixed duplicate loading of arnold:* attributes on lights. These are now omitted, since they are converted to parameters on the light shader itself.

  • +
  • ShaderTweaks : Fixed potential crash if a ShaderTweakProxy was used to accidentally create a cyclic connection.

  • +
  • Spreadsheet : Fixed “Sets”, “Operators” and “Select Affected Objects” popup menu items, which were broken in 1.4.5.0.

  • +
+
+
+

Build

+
    +
  • Cortex : Updated to version 10.5.8.0.

  • +
+
+
+

API

+
    +
  • Menu : Menu items with “checkBox” enabled now draw their checked indicator in place of their “icon” when both are defined.

  • +
  • Image : Added createSwatch() static method.

  • +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/ReleaseNotes/index.html b/1.4.6.0/ReleaseNotes/index.html new file mode 100644 index 000000000..761514ecb --- /dev/null +++ b/1.4.6.0/ReleaseNotes/index.html @@ -0,0 +1,665 @@ + + + + + + + Release Notes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithImages/AnatomyOfAnImage/index.html b/1.4.6.0/WorkingWithImages/AnatomyOfAnImage/index.html new file mode 100644 index 000000000..70298f55b --- /dev/null +++ b/1.4.6.0/WorkingWithImages/AnatomyOfAnImage/index.html @@ -0,0 +1,675 @@ + + + + + + + Anatomy of an Image — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Anatomy of an Image

+
+

Tip

+

+In this article, if a term is vital to describing images in Gaffer, its first occurence will be highlighted in bold.

+
+

Gaffer’s image nodes output data that describe a 2D image. In this article, we will outline the structure and terminology associated with an image.

+

Image properties can be broken into two areas:

+
    +
  • Global properties of the whole image

  • +
  • Channel data (pixels)

  • +
+

This is merely a conceptual division to help understand how Gaffer processes images: when building graphs, there is no significant practical divide between any of an image’s properties. All of them are subject to modification by image nodes.

+
+

Note

+

+Users familiar with OpenEXR will recognize that Gaffer shares many of the same image property terms. The main divergence is that Gaffer refers to them generically as properties rather than attributes.

+
+
+

Image properties

+
+

Format

+

Format describes the image’s output format in pixel width, height, and aspect ratio. Typical values for this correspond to standards such as Full HD, 2K UHD, 4K UHD, etc. Custom formats are also supported.

+

The format property can be conceived of as the combination of OpenEXR’s display window and pixel aspect ratio attributes.

+
+

Display window

+

Display window is the rectangular region that represents the final boundary of the output image. Its values are the coordinates of the bottom-left and top-right corners of the region.

+
+
+

Pixel aspect ratio

+

Pixel aspect ratio is a floating-point value that specifies the ratio between the width and height of a pixel. The default value is 1.0 (square pixels), which is the most commonly used. Non-default values would typically only be used when working with anamorphic source images.

+
+
+
+

Data window

+

Data window is the rectangular region that defines the usable processing area of the image. Its values are the coordinates of the bottom-left and top-right corners of the region.

+

The data window differs from the display window in that only the pixels inside it are processed during a node computation. Its position and size are independent of the display window. There are useful rendering applications in making it bigger (overscan rendering, blurring, lens distortion, and camera shake) and smaller (isolating a sub-region of pixels for performance, or cropping out negative space) than the display window.

+
+A sample of an image with non-identical data window and display window, with annotated corner coordinate values +
+

Figure A: The data and display windows for an image with overscan. Notice that there is pixel data beyond the boundaries of the display window.

+
+
+
+
+

Metadata

+

Metadata is a list of arbitrary, strongly typed name-value pairs that represent non-pixel data in the image. A common source of image metadata is Exif/TIFF tags generated by a source image’s camera(s). Compatible metadata types consist of the common string, integer, float, V2i, Box2i, etc. types that are available for Gaffer plugs, and some additional types such as TimeCode, unsigned integers, and vector data types.

+

Gaffer can read, add, and remove metadata from an image, but it assigns no specific meaning to any particular value. For a node graph to respond to a metadata value, it will need to be accessed by an Expression node.

+
+

Note

+

+Gaffer follows the OpenImageIO conventions for metadata naming, as specified in Appendix B of the project’s Programmer Documentation.

+
+
+
+

Channel names

+

Channel names is a list of arbitrary names specifying the channels in the image. The default channel names are R, G, B, and A for standard additive color images.

+

Additional channels are grouped into layers using a prefix-based naming convention. For example, diffuse.R, diffuse.G and diffuse.B are the RGB channels of the diffuse layer. By convention, Z identifies a depth channel, and any other name identifies an auxiliary channel.

+
+

Note

+

+Gaffer follows the OpenEXR convention for channel names.

+
+
+
+

Channel data

+

Channel data contains each channel’s list of pixel values. Internally, Gaffer represents pixels as 32-bit floating point values, which are converted to and from other bit depths by the ImageReader or ImageWriter nodes, as needed.

+

Channel data contains no positional information. When an image’s pixel data is processed by a computation, the pixels of each channel are grouped into 128x128 pixel tiles, which are arranged in rows and columns to form the complete image. Images can be computed in parallel, on a per-tile, per-channel basis.

+
+
+

Image coordinate system

+
+A checkerboard pattern on a cartesian graph, with a standout pixel and non-overlapping data and display windows +
+

Figure B: A model of the image coordinate system in Gaffer.

+
+
+

Gaffer’s image coordinate system is defined on an integer grid, with the origin in the bottom-left, and one unit equal to one pixel. As y values increase, the image grows upwards. A pixel is referenced by the x and y coordinates of its bottom-left corner.

+

Pixel areas, such as data and display windows, form a rectangle between the coordinates of the bottom-left corner of their bottom-left pixel and the top-right corner of their top-right pixel.

+

When sub-pixel values are needed for a process, such as rotating an image on a pivot point, the coordinate system uses floating-point values, with (x + 0.5, y + 0.5) being the pixel centre.

+
+

Note

+

+The OpenEXR coordinate system has two counterintuitive aspects:

+
    +
  • As y values increase, the image grows downward.

  • +
  • Pixel areas do not incorporate the furthest pixel’s outer edge, leading to unintuitive width and height ranges, e.g. 0–1919 and 0–1079 for Full HD.

  • +
+

In order to make manipulating images more intuitive for users, the Gaffer coordinate system differs from these aspects by design.

+
+
+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithImages/index.html b/1.4.6.0/WorkingWithImages/index.html new file mode 100644 index 000000000..efdef5c9e --- /dev/null +++ b/1.4.6.0/WorkingWithImages/index.html @@ -0,0 +1,585 @@ + + + + + + + Working with Images — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Working with Images
  • +
  • +
  • +
+
+
+
+
+ + +
+

Working with Images

+

Here you can find information on how to read and manipulate 2d images, and how Gaffer interprets image data.

+ + +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithScenes/AnatomyOfACamera/index.html b/1.4.6.0/WorkingWithScenes/AnatomyOfACamera/index.html new file mode 100644 index 000000000..5d5ddcaa6 --- /dev/null +++ b/1.4.6.0/WorkingWithScenes/AnatomyOfACamera/index.html @@ -0,0 +1,695 @@ + + + + + + + Anatomy of a Camera — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Anatomy of a Camera

+
+

Tip

+

+In this article, if a term is vital to describing cameras in Gaffer, its first occurence will be highlighted in bold.

+
+

The camera in Gaffer is designed to accommodate two related but sometimes divergent conceptions of a camera: the idealized “CG” cameras that we use in software, and the real cameras used in photography and cinematography.

+

+

Fundamentally, current mainstream renderers use the CG camera model. However, many users are well-versed in the operating principles of real cameras, in particular the properties of aperture and focal length. Some DCC and scene format developers have made an effort to integrate these properties into their projects, to make camera construction easier for this audience. Gaffer does the same.

+

Therefore, when using Gaffer, and in its scene data, a camera can be thought in terms of, and defined by, aperture and focal length. Cameras in Gaffer are also fully compatible with the Alembic and USD scene formats. Within a scene, a camera’s properties are stored as special values known as parameters.

+
+

Camera model

+
+

Projection

+

By default, Gaffer supports cameras with either perspective or orthographic projection. Perspective projection can be thought of as a horizontal and a vertical field of view that form a viewing frustum. Orthographic projection can be thought of as collimating light to create parallel projection lines.

+

Three parameters determine camera projection:

+
    +
  • projection

  • +
  • aperture

  • +
  • focalLength

  • +
+
+Perspective and orthographic cameras in Gaffer +
+

Figure 1. The projection parameters of the two default camera types.

+
+
+

When the projection parameter is set to perspective, the angle of view can be controlled in the application by either the Field of View plug (as for a CG camera), or the Aperture and Focal Length plugs (as for a real camera). These latter two plugs replicate camera film back/sensor size, and lens focal length, respectively. When using these plugs, the user does not need to convert camera/lens projection into an angle, making it straightforward to replicate a real camera that was used in a shot. In the scene data, perspective is always stored as the aperture and focalLength parameters, even if the Field of View plug is used.

+

When the projection parameter is set to orthographic, the size of the orthographic view is controlled by the Orthographic Aperture plug. In this mode, the corresponding aperture parameter defines the width and height of the film back/sensor, in world space units.

+

Keep in mind that even though the scene describes projection with optical analogues, the result is still an approximation of a real camera. As with any CG camera, the implementation breaks with reality:

+
    +
  • With perspective projection, the aperture and focalLength parameters are dimensionless – numbers without units of measure. They are interoperable with values that define equivalent horizontal and vertical fields of view.

  • +
  • As mentioned earlier, the term aperture does not refer to an opening in a lens, but rather a rectangular region in 3D space that receives the image. It is, for practical purposes, equivalent to the film back/sensor. Since there is no lens, the image does not flip vertically before “hitting” this aperture.

  • +
  • Other than focal length, lenses are not truly accounted for, except for when adding depth of field blur to the final image.

  • +
+
+
+

Aperture offset

+

The apertureOffset parameter represents the amount by which the aperture is shifted parallel to the image plane.

+
+Aperture offset in Gaffer +
+

Figure 2. The aperture offset parameters, applicable to either projection type.

+
+
+

The scale of the offset depends on the projection. With perspective projection, the offset is proportional to the field of view (when the Field of View plug is used) or to the camera’s unit of measure (e.g. millimeter; when the Aperture and Focal Length plugs are used).

+
+
+

Depth of field blur

+

Four parameters determine depth of field blur:

+
    +
  • focalDistance

  • +
  • fStop

  • +
  • focalLengthWorldScale

  • +
  • focalLength

  • +
+

In order to simulate depth of field blur, the camera needs a virtual opening: a circle in 3D space on a plane perpendicular to the camera’s direction. In effect, this is a lens aperture. From this circle, Gaffer calculates the angle of incidence of light coming from objects at a distance greater or less than the focalDistance. The larger the circle, the stronger the depth of field blur. The smaller the circle, the weaker.

+
+Depth of field blur in Gaffer +
+

Figure 3. An approximation of depth of field blur in Gaffer.

+
+
+
+

Important

+

+The term lens aperture has a meaning near to its real-world counterpart – it really can be thought of as a round opening in space.

+
+

The fStop and focalDistance parameters are identical to f-number and focus distance in real lenses. They allow easy replication of real lens settings.

+

The third parameter, focalLengthWorldScale, sets the scale between the camera’s unit of measure and the world space’s unit of measure. Because the circle occupies 3D space, the circle must be measured in world space units. Complicating things is the fact that the world space units might not be measured in millimeters. The scene could use any scale – centimeter, meter, foot, kilometer, etc. Therefore, the scale factor between them must be defined.

+

For depth of field, lens aperture is calculated with the formula:

+
lens aperture = (focalLength × focalLengthWorldScale) / fStop
+
+
+

For example, assume a lens with a focalLength of 50mm, an fStop of 4, and a world space measured in centimeters (default for Alembic/USD). First, we need to scale the focal length from mm to cm. Using a focalLengthWorldScale of 0.1 yields 50mm × 0.1 = 0.5cm. This is the lens aperture at its widest. Dividing by the fStop of 4 results in the stopped-down lens aperture of 0.5cm / 4 = 0.125cm.

+
+
+
+

Cameras in the scene

+
+

Camera data

+

Within the scene paradigm, a camera, just like any other scene component, starts with a location in the scene hierarchy. To define a camera, the location must have the following data:

+
    +
  • Transform: The vectors that define the position and orientation of the camera.

  • +
  • Object: A special camera object at the location. Instead of geometry, the object stores camera data, called parameters.

    +
      +
    • Parameters: The crucial values that define a camera, such as the perspective type, field of view/aperture, and depth of field settings. If defined, a special kind of optional parameter, called a render override, will supercede one of the scene’s render options during computation and rendering.
      +

    • +
    +
  • +
  • Sets: A list of sets the location belongs to. By default, every camera is assigned to an automatic “Cameras” set, accessible in the API by the __cameras variable.
    +

  • +
+
+
+

Data flow

+

Like geometry, cameras are represented as objects at locations in the scene hierarchy. To actually look through a camera (either in a Viewer, or during a render), Gaffer needs additional information, such as the resolution and film fit. This information is provided in the scene globals as render options, and combined with the camera’s data at the point of use. Below is a description of this data flow, with a demonstration of how a camera can optionally override these render options.

+
+Camera data flow in a node graph +
+

Figure 4. The camera data flow through a node graph, with data passing between a Camera node, CameraTweaks node, and a StandardOptions node.

+
+
+

Each Camera node creates a camera, appearing in the scene hierarchy as its own location (by default called /camera). Each location will have its respective data. The locations and their data are passed to downstream scene nodes, like normal.

+

A downstream CameraTweaks node can add, remove, modify, or replace parameters of one or more cameras in the scene. Standard camera parameters can be removed: strictly speaking, there are no mandatory camera parameters, as Gaffer will supply fallback defaults. The addition of parameters with custom names and values is supported.

+

Camera and CameraTweaks nodes can add render overrides, which are a special kind of camera parameter. When a Viewer or a renderer looks through the camera, if a parameter has the same name as a render option, its value will take precedence over that option. An override can be added before its equivalent render option exists in the scene.

+

At a later point in the graph, a StandardOptions node selects the camera to use, and defines the scene’s render options. If the camera has any render overrides, their values will supercede those of their equivalent render options.

+

Finally, all camera parameters and render options are passed to the renderer. All these data are used in combination by the renderer to calculate the image projection map, the image size, the motion blur, and the depth of field blur in the render.

+
+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithScenes/AnatomyOfAScene/index.html b/1.4.6.0/WorkingWithScenes/AnatomyOfAScene/index.html new file mode 100644 index 000000000..7a2e0d081 --- /dev/null +++ b/1.4.6.0/WorkingWithScenes/AnatomyOfAScene/index.html @@ -0,0 +1,660 @@ + + + + + + + Anatomy of a Scene — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Anatomy of a Scene

+
+

Tip

+

+In this article, if a term is vital to describing scenes in Gaffer, its first occurence will be highlighted in bold.

+
+

A scene node in Gaffer outputs data structured to describe a 3D scene. In this article we will describe this structure and the terminology associated with it.

+

The structure of a scene can be broken down into two main areas:

+
    +
  • Hierarchy

  • +
  • Globals

  • +
+
+

Scene hierarchy

+

In common with most DCCs, Gaffer represents a 3D scene as a hierarchy or tree structure. We refer to positions within this tree as locations, specified by their path within the scene, e.g. /world/city/building01. Locations are arranged via parent-child relationships, such that /world/city is considered the parent of the child /world/city/building01. Do not confuse locations in the scene hierachy with nodes in the node graph; nodes output scenes, but are not part of them.

+

+

Each location has a number of properties that describe the content of the scene at that point in the hierarchy. They can be inspected in the Selection tab of the Scene Inspector. Each property of each location is computed independently, allowing Gaffer to generate the scene lazily on demand.

+

+
+

Important

+

+In this article, “property” only refers generically to a piece of data that describes a scene. It does not carry the more specific meanings from other DCCs.

+
+
+

Transform

+

The transform contains a 4x4 matrix storing the local transformation of the location. It is used to position the location in 3D space using a combination of translation, rotation and scaling.

+

+
+
+

Bound

+

The bound contains the union of the bounding box of the location’s contents and of the contents of all of its descendants. This is stored relative to the location’s local space. The bound may be computed independently of the contents themselves.

+

+
+
+

Object

+

When a location contains a 3D object, such as a primitive or a camera, it is stored in the object property. Although any location can have an object, typically they are only stored at leaf locations.

+

+
+

Primitive variables

+

Primitive variables are properties of primitives (example primitive types include meshes, curves, and points). Common examples are “P”, which stores vertex positions, “N” which stores normals and “uv” which stores texture coordinates. In addition to these, objects can store any number of additional variables. Primitive variables can store a single value for the whole object, or can store values per-face, per-vertex or per-face-vertex.

+
+
+
+

Attributes

+

The attributes store an arbitrary number of named values for the location. Gaffer defines standard attributes for object visibility, motion blur, and more. Additional attributes are defined to provide renderer-specific settings for things such as shader assignment, ray visibility and tessellation. Custom attributes may additionally be created by users for any purpose, often to control shading variation.

+

Locations inherit attributes from their parent, with attributes local to the location overriding any equivalent attribute from the parent.

+
+

Note

+

+Maya users should note that attributes in Gaffer are not equivalent to attributes in Maya’s Attribute Editor. The equivalent term in Gaffer is plug. An attribute in Gaffer always refers to a property of a scene.

+

Katana users may be accustomed to thinking of every property in a scene as an attribute. In Gaffer, attributes only refer to arbitrary values for the location. Transforms, geometry, and bounds are not attributes.

+

Users familiar with RenderMan may be reassured to know that Gaffer derives its use of the term attribute from RenderMan. Gaffer and RenderMan attributes are very much alike.

+
+

+
+
+
+

Globals

+

The globals are properties of a scene as a whole, rather than a particular location.

+
+

Options

+

The options are typically used to define render settings. Gaffer defines standard options for settings such as render resolution, pixel aspect ratio, and overscan. Additional options are defined to provide renderer-specific settings for things such as ray depth, sampling, and logging. Users can create custom options to store arbitrary information.

+
+
+

Outputs

+

The outputs define the images to be generated by the renderer. They specify things such as output data, filename, filetype and filtering.

+
+

Note

+

+Both options and outputs in Gaffer can be considered similar to render globals in Maya.

+
+
+
+

Sets

+

Sets are collections of paths specifying a subset of locations within the scene. They are typically used to specify which locations a node acts upon. Gaffer automatically maintains a set containing all lights and a set containing all cameras. Users can create arbitrary custom sets of their own.

+
+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithScenes/Camera/index.html b/1.4.6.0/WorkingWithScenes/Camera/index.html new file mode 100644 index 000000000..e030b8385 --- /dev/null +++ b/1.4.6.0/WorkingWithScenes/Camera/index.html @@ -0,0 +1,801 @@ + + + + + + + Camera — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Camera

+

Gaffer’s cameras setups are quite flexible, allowing for a variety of camera types, measurement systems, and industry-standard formats. With this freedom, you can simulate many common camera and lens setups.

+

+

In this article, we will assume you are fairly familiar with camera terminology and the settings of real cameras and lenses.

+

Before you begin, we highly recommend you read Anatomy of a Camera.

+
+

Camera basics

+

Each Camera node (Scene > Source > Camera) adds a scene containing a single location (/camera by default) with a camera object. When previewing the scene in the Viewer, the camera object is represented by a wireframe model. The width and size of the frustum on the model roughly corresponds to the angle of view and aspect ratio of the camera.

+

+

Scenes can support multiple cameras, but renderers typically work with one at a time. The StandardOptions node, placed downstream, sets which camera in the scene to use for a given render.

+

When looking through a camera, the Viewer matches its projection, so the scene will appear as foreshortened or as flat as dictated by the projection parameters. This lets you preview the precise framing and composition of the scene. Additionally, a frame overlay appears in the Viewer, showing the aperture gate, the resolution gate, and the crop window.

+

+
+

Tip

+

+If the aperture gate isn’t visible, that means it is identical to the resolution gate.

+
+
+
+

Instructions

+
+

Manipulating a camera

+
+

Selecting, translating, and rotating a camera

+

Like other objects in the scene, the camera can be manipulated in the Viewer. You can select it by clicking it or dragging a marquee around it, rotate it with the Rotate Tool (W), and translate it with the Translate Tool (E).

+

+
+
+

Selecting a look-through camera for a Viewer

+

Each Viewer can be set to look through a camera in the scene, rather than the default free camera. This can be quite useful if the scene has multiple cameras and you need to preview each in a separate Viewer at once, such as in a scene with witness cameras, or if you simply want to compare the flat-shaded scene to its render preview.

+

+

To select a look-through camera for a Viewer:

+
    +
  1. In the Viewer, click . A drop-down menu of objects will appear.

  2. +
  3. Select either Render Camera for the current scene’s render camera (if defined by a StandardOptions node), or a camera from the Camera sub-menu (a list of all cameras in the current scene).

  4. +
+
+
+

Translating and rotating the look-through camera

+

With the Camera Tool toggled on, you can translate and rotate the look-through camera with the camera controls.

+

+
+

Note

+

+The shortcuts for the clipping plane affect the clipping plane of the default free camera, not the look-through camera.

+
+
+
+

Orbiting with the look-through camera

+

Like the default free camera, you can set the look-through camera to focus on an object in the scene, and orbit it around that object’s position.

+

+

To orbit with the look-through camera:

+
    +
  1. Make sure the Camera Tool (T) is activated.

  2. +
  3. Select an object in the scene.

  4. +
  5. Hit F. The camera will aim at the object and adjust position.

  6. +
  7. Use the camera controls to orbit around the object.

  8. +
+
+
+
+

Constructing a perspective camera

+

When constructing a camera with perspective projection, there are two projection modes available: Field Of View, and Aperture and Focal Length. With Field Of View, you can provide an angle of view, like with a typical CG camera. With Aperture and Focal Length, you can replicate the real projection settings of a camera/lens setup by inputting its actual aperture and focal length settings.

+

To construct a perspective camera:

+
    +
  1. Create a Camera node (Scene > Source > Camera).

  2. +
  3. In the Node Editor, set the Projection plug to Perspective.

  4. +
+

Then, assign the projection parameters using one of the perspective modes:

+
+

Using field of view

+

+
    +
  1. Set the Perspective Mode plug to Field Of View.

  2. +
  3. Input an angle for the Field Of View plug, in degrees.

  4. +
  5. For the Aperture Aspect Ratio plug, input an appropriate horizontal-to-vertical ratio for the image. For example, a 16:9 frame would be 1.778.

  6. +
+
+
+

Using aperture and focal length

+

+
    +
  1. Set the Perspective Mode plug to Aperture and Focal Length.

  2. +
  3. For the Aperture plug, select the appropriate camera from the list of standard camera film backs/sensors. If the camera you need is not available:

    +
      +
    1. Select Custom. Two new plug fields will appear. Fill in: +

      +
        +
      • aperture.x: The horizontal film back/sensor length, typically in millimeters.

      • +
      • aperture.y: The vertical film back/sensor length, typically in millimeters.

      • +
      +
    2. +
    3. Set the Focal Length plug to an appropriate lens focal length. This is typically in millimeters.

    4. +
    +
  4. +
+
+

Important

+

+You can set the Aperture and Focal Length plugs as numbers in any unit of measure (millimeter, centimeter, inch, etc.), so long as they use the same unit of measure, and the lengths are proportional to each other. For example, if the film back is in millimeters, then the focal length should also be in millimeters.

+
+
+
+
+

Offsetting a camera

+

The offset is the amount by which the camera view is shifted parallel to the image plane. This parameter is used in special cases, such as simulating a tilt-shift lens, rendering tiles for a panorama, or matching a plate that has been asymmetrically cropped.

+

+

A camera’s Aperture Offset plug controls the horizontal and vertical offset. The length of one unit of offset depends on the projection type of the camera:

+
    +
  • Perspective projection:

    +
      +
    • Field Of View mode: 1 offset = 1 whole horizontal field of view (for example, 45°).

    • +
    • Aperture and Focal Length mode: 1 offset = 1 aperture unit of measure (for example, 1 millimeter).

    • +
    +
  • +
  • Orthographic projection: 1 offset = 1 world space unit.

  • +
+
+
+

Adding depth of field blur

+

+

Depth of field is controlled as if the camera had a lens, with plugs analogous to real lens settings – F Stop and Focus Distance plugs. You can use these settings to replicate the depth of field of a real lens.

+
+

Tip

+

+If you need to preview depth of field blur, render the scene through an interactive renderer.

+
+

To add depth of field blur:

+
    +
  1. Select the Camera node in the Graph Editor.

  2. +
  3. In the Node Editor, switch to the Depth of Field tab.

  4. +
  5. Input an appropriate F Stop plug value for the lens aperture. The higher the number, the less depth of field blur.

  6. +
  7. Select a Focal Length World Scale plug value. This is the scale factor between the camera’s focal length unit of measure and the world space unit of measure. For example, if the focal length is measured in millimeters but the world is measured in centimeters, select Millimeters to Centimeters (0.1). For most scenes and scene formats, use this scale. If the scale you need isn’t provided, select Custom and input a custom scale.

  8. +
  9. Input the Focus Distance plug value between the camera and the object(s) in focus, in world space units. +

  10. +
  11. On a downstream StandardOptions node, enable the Depth Of Field plug (click ) and turn it on. +

  12. +
+
+

Important

+

+Depth of field information will only be passed to the renderer if the Camera node’s F Stop plug is greater than 0 and a downstream StandardOptions node has its Depth of Field Blur plug enabled and turned on. Otherwise, your render will not have depth of field blur.

+
+
+
+
+

Render overrides and camera tweaks

+

Depending on your workflow and pipeline process, and how upstream data is inherited by your graph (such as from Reference nodes), you may find yourself in situations where you need to:

+
    +
  • Introduce a camera that, to work correctly, must override one or more of the scene’s render options (such as the film fit), preempting the downstream StandardOptions node.

  • +
  • Override an upstream camera’s parameters, or preempt the downstream render options, without modifying the associated nodes.

  • +
  • Completely override a camera to create a custom camera type.

  • +
+

You can resolve these by enabling the Camera node’s render overrides, employing a CameraTweaks node, or a combination of both.

+
+

Render overrides

+

A render override is a special camera parameter that overrides a corresponding render option.

+

+

Since an override is a parameter, and thus data on the camera’s object, it does not modify the actual render option. It instead takes precedence over the render option during computation or rendering. An override can be tweaked or removed at a later point in the graph. If removed, the corresponding render option will come into effect again.

+

To activate a render override:

+
    +
  1. Select a Camera node in the Graph Editor.

  2. +
  3. In the Node Editor, switch to the Render Overrides tab.

  4. +
  5. Enable the override (click ) and adjust its plug values as needed.

  6. +
+
+
+

Camera tweaks

+

+

The CameraTweaks node (Scene > Object > Camera Tweaks) is a special node that adds any number of adjustments, known as as camera tweaks, to render options and camera parameters. A camera tweak can also add custom camera parameters to the scene data.

+

+

Multiple tweaks can be applied to the same parameter or render option. If so, they apply their operations in sequence.

+

Every tweak from the CameraTweaks node is applied to every camera specified by the node’s filter.

+

To add a camera tweak:

+
    +
  1. Create a CameraTweaks node at a point in the graph that is downstream of the target camera(s).

  2. +
  3. Create a PathFilter node, add the path location(s) of the camera(s) to it, and connect it to the filter plug of the CameraTweaks node.

  4. +
  5. Select the CameraTweaks node.

  6. +
  7. In the Node Editor, click and select a parameter or render option to tweak. The tweak will appear in the editor as a compound plug.

  8. +
  9. Enable the tweak (click ).

  10. +
  11. Assign the tweak operation:
    +

    +
      +
    • Mode: The operation to apply between the new value and old value of the parameter or render option. You have a choice between Replace, Add, Multiply, and Remove. String values cannot be multiplied/added/subtracted. For example, with default parameter value A, operation Multiply, and new value B, the tweak would apply A × B.

    • +
    • Value: The new value to use in the operation.

    • +
    +
  12. +
+
+
+
+

Example graphs

+
+

Anamorphic camera setup

+

+

This can be loaded in Gaffer from Help > Examples > Rendering > Anamorphic Cameras.

+

A setup that replicates an anamorphic camera and lens, by rendering with a non-square pixel aspect ratio.

+
+
+

Spherical camera in Arnold

+

+

This can be loaded in Gaffer from Help > Examples > Rendering > Spherical Cameras (Arnold).

+

A camera with spherical projection that is compatible with the Arnold renderer. To achieve this, a CameraTweaks node overrides certain camera parameters to create a custom projection type. The tweaks are:

+

+
+

Tip

+

+Other renderers will likely use similar means to achieve spherical cameras.

+
+
+

Note

+

+Due to a bug, when rendering a spherical camera for Arnold, the filmFit tweak must be set to Horizontal, not Distort.

+
+
+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithScenes/LightLinking/index.html b/1.4.6.0/WorkingWithScenes/LightLinking/index.html new file mode 100644 index 000000000..2885cf65f --- /dev/null +++ b/1.4.6.0/WorkingWithScenes/LightLinking/index.html @@ -0,0 +1,780 @@ + + + + + + + Light Linking — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Light Linking

+

When lighting a scene, you will sometimes need to selectively control whether a piece of geometry is illuminated by a particular light, both for artistic purposes and to cut down on rendering time. The relationships that determine whether a light applies to an object are collectively known as light linking, and are controlled by the object’s linkedLights attribute.

+

+
+

Note

+

+The only supported renderer that currently implements light linking is Arnold.

+
+
+

Tip

+

+Maya users will be familiar with the concept of light-centric (light-to-object) and object-centric (object-to-light) light linking. The procedure for linking lights in Gaffer is similar to object-centric linking.

+
+
+

Mechanics of light linking

+

From the light side of things, by default, each light is a member of a set named “defaultLights”, and will cast light on every object in the scene. Each light’s node has a Default Light plug, which is checked by default. If unchecked, the light is removed from “defaultLights”, and, from then on, will only illuminate objects that are expressly linked to it.

+

+

From the object side of things, by default, an object is lit by all lights belonging to the “defaultLights” set. To bring about any other behaviour, such as having the object only lit by one light, a linkedLights attribute must be added to the object’s location in the hierarchy, and the attribute must specify one or more lights, or sets of lights. The linkedLights attribute follows standard inheritance rules for attributes in the hierarchy, so if the object doesn’t have the linkedLights attribute, but one of its ancestors does, it will inherit the attribute.

+
+The linkedLights attribute of an object as it appears in the Scene Inspector. +
+

The linkedLights attribute of an object, as it appears in the Scene Inspector.

+
+
+
+
+

Instructions

+

In a graph, in order to actually link a light to an object, you must connect a StandardAttributes node downstream of the object, filter for the object’s location, and then add a set expression to the Linked Lights plug.

+

+

+

Once the Linked Lights plug is toggled on, the linkedLights attribute is added to the object’s location. The value of the Linked Lights plug is a set expression, which can consist of individual light locations, set names, or both. We will cover how to filter for both types below.

+
+

Important

+

+The Linked Lights plug is an exclusive list. If you toggle the plug and leave the list blank, the object will not be illuminated by any lights at all. +In order to link a particular light in addition to all default lights to an object, you must include defaultLights in the set expression, for example defaultLights /group/light.

+
+
+

Linking by location

+

To link a light by location, simply add the light’s full location to the set expression. No additional node is needed.

+

+
+

Important

+

+When linking a light by its location, the path you provide must be the final location of the light within the hierarchy as delivered to the render node. For example, if you link to a light at /group/light, but later in the graph you shuffle the hierarchy and the light exists at /building/lights/light, the renderer will look for the light at the original location, find nothing there, and then the link will fail. Therefore, you would unintuitively need to target a downstream location in an upstream part of the graph.

+
+
+
+

Linking by set

+

In setups with more than a few lights, managing a set expression with multiple light locations is prone to user error, and tedious to maintain. That’s why it’s usually better to link objects to one or more sets containing lights, as the term set expression suggests. Put another way, you can perform set-centric light linking. The end result would still be the same, in that specific objects are linked to specific lights.

+

A light can be added to any number of custom sets using the Sets plug on the light’s node, or a separate Set node. Custom sets are separate and do not affect the “defaultLights” set.

+

+

+

To link one or more lights by a set, simply add it to the set expression.

+

+

Be aware that if an object belongs to multiple sets with light linking, the object will only inherit the linkedLights attribute from the last set that was linked in the graph, as shown in the illustration below.

+

+
+
+
+

Example scenario

+

Here we’ll explore an example scenario where link lighting would be appropriate, and then propose a way to set it up.

+
+

An artistically-lit scene

+

Picture a scene where a giant robot attacks a highly detailed metropolitan city at night. For dramatic effect, let’s say we want the robot’s eyes to shine with some menacing red highlights. What’s more, on the robot’s chest is affixed the logo of its evil creator, and we want to make sure the audience can just make out the logo, regardless of the ambient illumination. With a photorealism mindset, both of these lights would be conceits, as they would have no plausible light source. Even so, with their inclusion, the scene becomes more evocative.

+

+

To achieve both of these highlights, we could add special lights in front of the robot’s eyes and chest. But, by default, these lights would also illuminate the rest of the robot, and everything else in the scene. This may not achieve our artistic intent, and could also affect render time and memory usage.

+
+
+

Light linking solution

+

Let’s consider a possible light link setup for this scene, with the goal of achieving our artistic intent while reducing the impact of the special lights on render time and memory.

+
+
+

Lights

+ + + + + + + + + + + + + + + + + + + + + + + + + +

Location

Default Light plug value

Special light sets

/lights/sky

True

/lights/moon

True

/lights/eyes

False

“lights:eyes”

/lights/logo

False

“lights:logo”

+
+
+

Objects

+ + + + + + + + + + + + + + + + + + + + +

Location

Linked Lights expression

/assets/…

-

/assets/GAFFERBOT/[etc]/L_eyeLens001_REN

defaultLights lights:eyes

/assets/GAFFERBOT/[etc]/R_eyeLens001_REN

defaultLights lights:eyes

/assets/GAFFERBOT/[etc]/C_torso009_REN

defaultLights lights:logo

+
+
+

Results

+

The above set expressions link the special lights and sets. The eyes are linked to all lights plus the eye light’s set; the logo is linked to all lights plus the logo light’s set. The result is that the special lights only illuminate the subjects we want them to: the eye light hits the eyes, and the logo light hits the logo.

+

+ + + + + + + + + + + + + + + + + +

Set name

Set members

“defaultLights”

/lights/sky /lights/moon

“lights:eyes”

/lights/eyes

“lights:logo”

/lights/logo

+ + + + + + + + + + + + + + + + + + + + +

Object

Linked lights

/assets/…

/assets/GAFFERBOT/[etc]/L_eyeLens001_REN

/lights/sky /lights/moon /lights/eyes

/assets/GAFFERBOT/[etc]/R_eyeLens001_REN

/lights/sky /lights/moon /lights/eye

/assets/GAFFERBOT/[etc]/C_torso009_REN

/lights/sky /lights/moon /lights/logo

+
+
+
+

Example graphs

+
+

Light linking basics

+
+

Help > Examples > Lighting > Light Linking Basics (Arnold)

+
+

+

This example contains the various permutations of light linking on objects:

+
    +
  1. No link (default)

  2. +
  3. Link to a light’s location

  4. +
  5. Link to a set containing a light

  6. +
  7. Link to a set and the “defaultLights” set

  8. +
  9. Link to a non-default light

  10. +
  11. Link to a blank expression

  12. +
+
+
+

Light linking city attack

+
+

Help > Examples > Lighting > Light Linking City Attack (Arnold)

+
+

+

In this example, a supersized version of our mascot, Gaffy, is throwing a tantrum, and attacking a city. Two special and unrealistic light sources are added to the scene, in order to add highlights to Gaffy’s eyes and chest logo. This graph contains the light-link setup described in the above example scenario.

+
+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithScenes/index.html b/1.4.6.0/WorkingWithScenes/index.html new file mode 100644 index 000000000..bb2976618 --- /dev/null +++ b/1.4.6.0/WorkingWithScenes/index.html @@ -0,0 +1,588 @@ + + + + + + + Working with Scenes — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Working with Scenes
  • +
  • +
  • +
+
+
+
+
+ + +
+

Working with Scenes

+

Here you can find information on how to read, manipulate, and construct 3D scenes, and how Gaffer interprets scene data.

+ + +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithTheNodeGraph/BoxNode/index.html b/1.4.6.0/WorkingWithTheNodeGraph/BoxNode/index.html new file mode 100644 index 000000000..6f0f59b38 --- /dev/null +++ b/1.4.6.0/WorkingWithTheNodeGraph/BoxNode/index.html @@ -0,0 +1,830 @@ + + + + + + + Box Node — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Box Node

+

A Box node (Utility > Box) is a container for holding a nested node network inside a node graph. The network contained by a Box is called a sub-graph. A sub-graph can only be viewed if you enter its containing Box. You can use Boxes to organize and add modularity to your node graphs. +

+
+

Usage

+

Boxes are powerful tools for structuring, organizing, and abstracting node graphs. They are the primary structure that adds modular capabilities to your graphs, and can form the backbone of multi-user, multi-stage pipelines. With Boxes, you can author discrete graphs with custom UI and documentation, enabling you to share methods, processes, workflows, and tricks across your facility or work group without needing to code new modules.

+

In their most basic uses, you can simplify large graphs by wrapping up complicated portions in Boxes, or sub-divide a graph into a series of component sub-graphs.

+

+

You can also nest Boxes, to maintain modularity and simplicity in your sub-graphs.

+

+

In more advanced uses, Boxes serve to export (and occasionally import) saved sub-graphs, known as reference scripts. When you export a Box, it preserves any custom UI, descriptions, tooltips, and documentation links in the network and on the Box itself, giving you the ability to document the network’s purpose and function for other users.

+

+
+
+

Box data flow

+

Like any other node, a Box can have in and out plugs. It can take plugs from the main graph, make their data available to the sub-graph, and then output them back into the main graph.

+
+

BoxIn and BoxOut nodes

+

While you can connect the nodes inside a Box to the main graph, you cannot view both the main graph and a sub-graph in the same Graph Editor. To compensate, a sub-graph’s main input and output connections are represented by the special BoxIn (Utility > BoxIn) and BoxOut (Utility > BoxOut) nodes. When a Box has in or out plugs, these nodes behave as proxies for them in the sub-graph. The names of the BoxIn and BoxOut nodes will match the names of their corresponding plugs on the Box, and vice versa.

+

+
+ +
+
+

Instructions

+

The following instructions cover the fundamental component actions you can perform with Boxes. You can combine these actions to set up Boxes in an almost limitless number of configurations and arrangements.

+
+

Boxing up nodes

+

The most basic action you can perform with a Box is to select a bunch of nodes and wrap them up in a new Box. +To box up a bunch of nodes:

+
    +
  1. Select one or more nodes in the Graph Editor.

  2. +
  3. Create a Box (Utility > Box).

  4. +
+

+

The selected nodes will be replaced by a Box. If they were connected to other nodes in the main graph, the Box and the sub-graph will automatically populate with corresponding in and out plugs to maintain the connections.

+

+
+
+

Entering and exiting a Box

+

The Graph Editors can only view the main graph or a sub-graph at a time. To navigate between them, you must enter or exit the Box, or open a new Graph Editor.

+
+

Entering

+

To enter a Box:

+
    +
  1. Select the Box.

  2. +
  3. Hover the cursor over the Graph Editor, then hit .

  4. +
+
+
+

Entering through a new Graph Editor

+

To enter a Box through a new Graph Editor:

+
    +
  • Right-click the Box, then select Show Contents… from the context menu. The new Graph Editor will appear in a tab on the same panel as the first Graph Editor.

  • +
+
+
+

Exiting

+

To exit a Box:

+
    +
  • Hover the cursor over the Graph Editor, then hit .

  • +
+
+
+
+

Connecting a Box to the main graph

+

You can connect the main graph to the sub-graph by adding in and out plugs to the Box. There are two main methods to accomplish this.

+

The simplest way to connect a Box to a main graph is to promote a node’s main in or out plug:

+
    +
  1. Enter the Box.

  2. +
  3. Right-click an in or out plug on a node in the sub-graph, then select Promote to Box. The plug will become available on the Box in the main graph.

    +
      +
    • If the plug is an in array plug, such as the input of a Group node, you can instead select Promote Array to Box.

    • +
    +
  4. +
  5. Exit the Box, and connect the new plug to a node in the main graph.

  6. +
+

+

Alternatively, dragging a connection to a on the Box creates a corresponding BoxIn or BoxOut node in the sub-graph:

+

+
+
+

Setting up a Box for pass-through

+

By default, you cannot disable a Box. If it has in and out plugs set up, you also cannot automatically interject it by dropping it over a connection. The BoxOut node has a special PassThrough plug, which, when connected to a BoxIn node, provides data pass-through, which enables dropping onto connections and disabling.

+

+
+

Important

+

+The BoxIn node and its connected BoxOut node with the PassThrough plug become the main plugs that connect when you drag and drop the Box over a connection.

+
+

To set up a Box for disabling and pass-through:

+
    +
  1. Enter the Box.

  2. +
  3. Connect the PassThrough plug to a BoxIn node.

  4. +
+

+
+
+

Promoting and demoting a plug

+

Any plug in the sub-graph can be promoted to the Box. If the plug is not the main in or out plug of the node, it will become available for editing on the Box node. If you no longer need a plug on a Box, you can demote (remove) it from the Box.

+
+

Promoting a plug

+

To promote a plug to a Box:

+
    +
  1. In the sub-graph, select the node.

  2. +
  3. In the Node Editor:

    +
      +
    • Single element plug: right-click the plug value, then select Promote to Box from the context menu.

    • +
    • Multi-element plug: right-click the plug name, then select Promote to Box from the context menu.

    • +
    • Compound plug: right-click the plug name, then select Promote to Box . +The plug will become locked.

    • +
    +
  4. +
+

When promoted, the following plug types will also add a plug to the Box in the Graph Editor:

+
    +
  • Floating-point number

  • +
  • Multi-element plug

  • +
  • Compound plug

  • +
+

Once promoted, you can set the name and value of the plug on the Box using the Node Editor. If the promotion added a plug to the Box in the Graph Editor, you can drive its value by connecting it to a node.

+

+
+
+

Demoting a plug

+

Promoted plugs can be demoted (removed) from the Box, either on source node in the sub-graph, or on the Box itself.

+
+

Note

+

+Demoting a plug does not delete it from the sub-graph.

+
+

To demote a plug:

+
    +
  1. Enter the Box.

  2. +
  3. Select the node with the promoted plug.

  4. +
  5. In the Node Editor, right-click the plug label, then select Unpromote from Box from the context menu.

  6. +
+

+
+

Tip

+

+For faster results, you can unpromote a plug on the Box itself by first right-clicking the plug label in the Node Editor, then selecting Delete or Unpromote from Box from the context menu.

+
+
+
+
+

Editing the UI of a Box

+
+

Adjusting plug position

+

Like other utility nodes with addable plugs, you can reposition and rearrange the plugs on a Box. You can move a plug to any edge of the Box in the Graph Editor, or adjust the order of the plugs on an edge.

+
+

Note

+

+An addable plug () cannot be moved or re-ordered. You must connect or promote a plug to it first.

+
+

To adjust the position of a plug on a node, first right-click the plug in the Graph Editor. The context menu will open. Then:

+
    +
  • Move the plug to a different node edge:

    +
      +
    • Select Move To, then select Top/Bottom, or Left/Right.

    • +
    +
  • +
  • Re-order plugs on a node edge:

    +
      +
    • Select Move Up/Move Down, or Move Left/Move Right.

    • +
    +
  • +
+

+
+
+

Renaming and relabelling plugs

+

You can rename and relabel any plug on a Box in the Graph Editor, including a main in or out plug, to clarify its function.

+

Plug names differ from plug labels. A plug’s name is its actual name when referenced in the node graph, and will appear when you hover over the plug in the Graph Editor; its label is how it appears in the Node Editor. Renaming a plug in the Graph Editor changes its name, while renaming a plug in the Node Editor actually changes its label.

+

To rename a plug:

+
    +
  1. In the Graph Editor, right click the plug, then select Rename… from the context menu. A renaming dialogue will open.

  2. +
  3. Type a new name, then click Rename.

  4. +
+
+

Tip

+

+Since BoxIn and BoxOut nodes behave as proxies for the main in and out plugs, you can modify their node names to rename the corresponding plugs on the Box.

+
+

To relabel a plug:

+
    +
  1. Select the node with the plug.

  2. +
  3. In the Node Editor, double-click the plug label,

  4. +
  5. Type a new label.

  6. +
+
+
+

Metadata and appearance

+

The metadata plugs of a Box, which comprise its name, description, documentation URL, and color, can be edited to better describe and provide support information for it. These plugs are preserved when the Box is exported as a reference script, so their values are crucial for authoring custom Reference nodes.

+
    +
  • Name: The node’s name. Same as the name plug.

  • +
  • Description: Text that appears in the tooltip and the Node Editor. Can be adjusted to explain the Box’s purpose, contents, and connections.

    +
    +

    Tip

    +

    +You can format the Description plug using Markdown syntax.

    +
    +
  • +
  • Documentation URL: The main help link for the Box (visited by clicking in the Node Editor). Can be edited to point to a location with custom documentation on your studio filesystem or the internet.

  • +
  • Color: Determines the color of the Box in the Graph Editor.

  • +
+

To edit the metadata and appearance of a Box:

+
    +
  1. Select the Box.

  2. +
  3. In the Node Editor, click , then select Edit UI…. The UI Editor will open.

  4. +
  5. Edit the Name, Description, Documentation URL, and Color values as needed.

  6. +
+

+
+
+
+

Exporting and importing a reference script

+

A Box, its sub-graph, its promoted plugs, and its metadata can all be exported as a single reference script. A Box can also import a reference script, which will add (not replace) the contents of the script to its sub-graph.

+
+

Tip

+

+Unlike the Reference node, when you load a reference script into a Box, its contents are writeable, meaning you can edit the sub-graph of the reference.

+
+

To export a Box as a reference script, or import a reference script into a Box:

+
    +
  1. Select the Box.

  2. +
  3. In the Node Editor, click .

  4. +
  5. Select Export Reference or Import Reference. A file dialogue will open.

  6. +
  7. Using the file dialogue, export or import a .grf file.

  8. +
+
+
+
+

Example graphs

+
+

Box basics

+

+

This can be loaded in Gaffer from Help > Examples > Box Basics.

+

A very simple Box with in and out plugs, promoted plugs, and custom UI.

+
+
+
+

Limitations

+
+

Attribute history focus

+

If you use the attribute history to find a node, and the node is inside a Box, the Graph Editor will focus on the whole node graph, rather than the Box.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithTheNodeGraph/Contexts/index.html b/1.4.6.0/WorkingWithTheNodeGraph/Contexts/index.html new file mode 100644 index 000000000..a85a5684d --- /dev/null +++ b/1.4.6.0/WorkingWithTheNodeGraph/Contexts/index.html @@ -0,0 +1,747 @@ + + + + + + + Contexts — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Contexts

+

A Context is a bundle of variables provided to each operation performed by a node. Nodes need a subset of these variables to tell them which fragment of the scene or image to generate. You can add your own variables to the graph, to control the behaviour of upstream nodes.

+

Contexts are central to Gaffer’s processing of 2D and 3D data in a graph, as well as its deferred evaluation engine. Contexts allow nodes to deal with data in small slices rather than as a whole, and generate exactly what is needed. They are the core of every node operation. Depending on the data being processed, a typical variable inside a Context is responsible for specifying one aspect of the scene or image fragment being generated, such as:

+
    +
  • Frame number

  • +
  • Scene location

  • +
  • Image tile

  • +
  • Image channel

  • +
+

Gaffer automatically manages Contexts during processing. These are silently passed upstream, from node to node as they compute requested data. Certain nodes can also add and modify their own variables, for use in driving graph behaviour.

+

There is no single interface in Gaffer for manually controlling and inspecting a Context in its entirety, but nodes like NameSwitch, Spreadsheet, and Expression can add Context-dependent behaviour to graphs, and the Python API provides methods for creating and inspecting Contexts.

+
+

Nodes and Contexts

+

In order to provide a background for why Contexts are necessary, we should look at what kind of workload a node would be up against without them.

+

Let’s consider a 3D scene. Keeping in mind how scenes are structured, imagine it is filled with hundreds of thousands of locations. Clearly, not every location can be processed at once. Gaffer needs a way to divide up the work to compute the locations one at a time.

+

This is where Contexts come in. In Gaffer, at no point does a node operate on the entire scene/image. Contexts break the scene/image down into digestible fragments, so each node only generates the parts that they were told to, while deferring the rest. Each computing thread has its own Context, so multiple threads may be processing different parts of the scene/image in parallel, greatly improving efficiency and performance.

+
+A scene file being sliced up by location. +
+

Figure A: Contexts allow a scene file to be processed in slices, one location at a time.

+
+
+
+
+

Context flow

+

While scene and image data flows down the graph, Contexts flow upstream.

+

Computation begins when a node is queried to compute a value for its output plug, by something such as a dispatcher or an editor in the interface. At the start of the computation, whatever made the request creates a Context and sets its variables to specify the target location, set, image tile, channel, etc.

+

The Context then passes up to any plugs that contribute to the output value. When an input plug on the queried node is connected to a plug on an upstream node, it pulls on that upstream plug to retrieve its value. If necessary, the upstream node may need to compute in turn, to produce the upstream plug’s value. This pull-compute reaction occurs up through the graph until all required plug values have been calculated to create an output value for the original queried node.

+
+Illustration of Contexts flowing through a network. +
+

Figure B: A visualization of Context and computation flow:

+
+
+
+
    +
  1. A suitable Context is created. The node’s output plug is queried. The node begins computation.
  2. +
  3. The node's in plugs are computed. If connected, they pull on connected input plugs, and pass along the Context.
  4. +
  5. A chain reaction of plug value pulling and Context passing ensues.
  6. +
  7. Once the last input plugs in the chain are computed, input plugs begin delivering values to the plugs that pulled on them.
  8. +
  9. A chain reaction of plug value returning ensues.
  10. +
  11. The out plug is computed.
  12. +
+
+

Some nodes modify the variables inside the Context before they pass it upstream. One example is a node that simply adds a new variable, like a CollectScenes node, which adds a variable that contains the name of the current root location being added to the scene. Another example would be a node that changes a value, such as the TimeWarp node, which can adjust the frame variable so that the upstream nodes compute for a different part of the frame range.

+
+
+

Context Variables

+

An individual variable inside a Context is called a Context Variable. Within the graph, Context Variables are a means of wielding Contexts to drive values, and can be employed to powerful effect to iterate and optimize results.

+

All Context Variables reside inside their Contexts, and are assignable. Any Context Variable present in a node’s Context during processing can have its value expanded in an Expression node, or string plug with string substitution syntax.

+

There are a handful of special Context Variables that are worth noting, which we will informally refer to here as built-in Context Variables.

+
+

Built-in Context Variables

+

Built-in Context Variables are hard-coded variables that scene and image nodes read for specifying scene and image fragments to generate. These are the variables that allow Contexts to specify the smallest part of the scene/image at a time. They are declared and assigned values automatically by the node processes themselves.

+

For a full list of built-in Context Variables and their purposes, see the Context Variables reference.

+

For a scene computation, the most common built-in Context Variables present are:

+
    +
  • frame

  • +
  • scene:path

  • +
+

For an image computation, the most common Context Variables present are:

+
    +
  • frame

  • +
  • image:tileOrigin

  • +
  • image:channelName

  • +
+
+

Tip

+

frame and scene:path will most likely be the only built-in Context Variables that you explicitly reference in plugs.

+
+

When Contexts are passed from plug to plug in a scene network, there are two facts you should remember for scene:path:

+
    +
  • Shader networks: To improve performance, shader networks do not support the use of scene:path, and consequently you cannot use it in string substitutions. As a workaround, you can use a CustomAttributes node to generate an attribute that varies with scene:path, and then have the shader network reference that attribute.

  • +
  • Globals: When scene globals are computed, the scene:path Context Variable is not present in the Context, as location paths are not relevant.

  • +
+
+
+

Other Context Variables

+

All other Context Variables must be declared and initialized, either in the graph itself or in the Gaffer app that’s executing the graph. They can handle all the same value types as plug, such as string, int, float, vector, matrix, etc. These other Context Variables are often used to pass an arbitrary variable value upstream.

+

A Context Variable created at the root of the graph is referred to as a global Context Variable. Global Context Variables are always passed into all Contexts, regardless of which node is being executed. They are declared and initialized in the Variables tab of the Settings window (File > Settings…), and can be overridden in individual networks. For a list of the default global Context Variable names, see Global Context Variables.

+

Some nodes create and add Context Variables, such as ContextVariables, Wedge, CollectScenes, and CollectImages nodes. They each have at least one string plug that generates a Context Variable to vary upstream behaviour. For convenience, some of these string plugs have default variable names, but you can provide your own. For a list of the nodes with default node Context Variable names, see Node default Context Variables.

+
+
+
+

Contexts in action

+

Let’s work through a series of practical examples of wielding Contexts in scene and image networks. Each of these modify the Context to achieve a result, but all demonstrate the same principles: Contexts start at the queried node, and flow up the graph to upstream connected plugs.

+
+

Reading a Context Variable with a string plug

+A basic scene network where a string plug substitutes a Context Variable. +

In this most basic example, a ContextVariables node inserts a message string Context Variable into the Context. Then, through string substitution, the upstream Text node reads the variable (${message}). When the scene is computed, the geometry displays the value of the variable: received.

+
+
+

Editor focus and Context flow

+

Let’s put Context flow into practice, and examine how editor focus can trip you up with regards to Context flow. This is a very common mistake to make when first learning how to wield Contexts.

+

Let’s reuse the above network, which we demonstrated by focusing the editors on the ContextVariables node. As we mentioned earlier, focusing an editor on a node queries it. Let’s see what happens when we focus on the Text node, instead.

+The prior network, but the scene hasn't computed. +

The editors are focused on it, but no geometry is visible. We can quickly tell that the node in fact did compute, because its location is visible in the Hierarchy View. The Text plug substituted the message Context Variable with an empty string, because it didn’t exist.

+

This is because the Text node cannot reach downstream to read message. Contexts start at the queried node, and then move up when computing plugs pull on their inputs. We need the ContextVariables node to compute before the Text node, so it can insert message into the Context and pass it up. In the interface, the only way to see the result of message is to query the ContextVariables node or something downstream of it. Therefore for the purposes of this network, to see the results of a successful substitution of message, we need to focus the editors on the ContextVariables node.

+
+
+

Context Variables in expressions

+

Like any other plug, when an Expression node drives a plug, that plug will pass along its Context during computation. The expression code can then read the values of the Context Variables with Python or OSL. For a full list of methods for accessing Context Variables in Python and OSL, see the Expressions reference.

+
+

Important

+

The Expression node does not support creating or modifying Context Variables.

+
+

In this network, we drive the vertical translation of a cube primitive with the frame number. The frame will produce a different height result when the provided Context contains a different frame value.

+A basic scene network, where an expression uses a Context Variable to drive a plug. +

When the node calculates its Transform plug, for the y value of its translation, it queries the Expression node. The Expression node, in turn, calculates the frame number from the Context:

+The Expression node's code from the prior network. +
+

Tip

+

In Python, since accessing Context Variables with dictionary syntax does not allow you to define a fallback value, your expression could cause errors when the Context Variable is not defined, which will usually be the case at most nodes of the graph. We therefore recommend using the context.get() method and providing a fallback value, so the method always returns a value.

+
+
+
+

Context Variables and the Random node

+A scene with duplicated cubes in a line, without any randomization. +

In this next example, a cube has been duplicated several times, with each copy translated further to the side. We want to apply a random vertical translation to each cube by adjusting a Transform node. To do this, we must drive the Transform node’s plug with a Random node, and the Random node will map a unique value to each of the scene’s paths.

+The same scene, with random height translation. +The plugs of the Random node, with the Context Entry referencing `scene:path` to vary the translation per location. +

Here the Random node drives the y-translate of a Transform node filtered to the cubes. Its Context Entry plug targets scene:path. Set up this way, the Random node derives a random value between -1 and 1 from the current path in the Context. From there, this random value is passed to the Transform node, and translates the cube’s height.

+

Since each location’s path is unique, the randomized values are based on the scene:path Context Variable, and the Transform node is filtered to every location in the scene, we end up with per-location random height on each sphere.

+
+

Important

+

In order to provide random results that can repeatedly match the set of random values to the locations/tiles in the same order, the Random node’s values are derived from its seed in conjunction with a Context Variable in its Context Entry plug.

+
+

We should note that for this network to function properly, the connected PathFilter node must filter for every location, so it has a value of *.

+
+
+

Querying results with Contexts

+The same randomly-translated cube graph. +

In the example above, we created a plug value that varies across Contexts via scene:path. As such, you won’t be able to see the plug’s actual values used during computation. This is because the Node Editor can only display one plug value at a time, and generally does so using the graph’s global context. But, it is sometimes essential to know the exact value of a plug given a particular Context.

+

You can do this with the Python API, by establishing a temporary Context and then querying the plug given a specific value of scene:path.

+

First, let’s try querying the y-translate value for the Transform node from the previous example in the Python Editor:

+
print( root["Transform"]["transform"]["translate"]["y"].getValue() )
+
+
+When a Python plug query occurs on its own, the return value is based on the Global context. +

This simply gives us a height passed by the Random node with a blank location, which none of the cubes actually use. What we need is a statement along the lines of “given the cube at location X, what height is the transform?” In fact, the following code effectively does that, by first creating a Context and then querying the plug in it:

+
context = Gaffer.Context( root.context() )
+context["scene:path"] = IECore.InternedStringVectorData( ["cube2"] )
+with context:
+    print( root["Transform"]["transform"]["translate"]["y"].getValue() )
+
+
+When a Python plug query occurs inside of an appropriate Context, the return value matches what occurs in the computed graph. +

The translate value of the plug matches the cube’s height as seen in the Scene Inspector:

+The queried location in the Scene Inspector. +

Observe that we first established scene:path, which uses the InternedStringVectorData type, and that the path itself doesn’t contain a forward slash (/).

+
+
+

Contexts in parallel branches

+

When two plugs in parallel branches are driven by a shared input plug, their Contexts are not shared with that input plug. During computation, each branch is processed in isolation. Take, for example, the following network:

+A network that splits into two branches at the top. Nodes in the separate branches are connected to the same upstream Expression node. +The expression code drives a plug in each respective node. +

The Text plug of both branch’s Text node is driven by a single Expression node. Despite the expression code making calls to both Context Variables, it only substitutes the one that is present in the Context in the branch that is currently computing. When the left branch is computed, only apples is defined, so only it returns its proper string. Conversely, when the right branch is computing, only oranges is defined, so you only see its string.

+

The same principle applies when the branches are split at the bottom. In this next image network, the image is overlaid with author and description text if versionAuthor or versionDescription Context Variables are defined.

+A network that splits into two branches at the bottom. +The expression code drives a plug in the main branch, but will be empty if the appropriate Context Variables haven't been assigned. +

When the ImageWriter_DailyOverlay node on the left is executed, the Context Variables are added to the graph, and Expression node substitutes the text. When the ImageWriter node on the right is executed, the text is empty, because its branch isn’t connected to the ContextVariables node.

+
+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithTheNodeGraph/PerformanceBestPractices/index.html b/1.4.6.0/WorkingWithTheNodeGraph/PerformanceBestPractices/index.html new file mode 100644 index 000000000..8e5d5aefb --- /dev/null +++ b/1.4.6.0/WorkingWithTheNodeGraph/PerformanceBestPractices/index.html @@ -0,0 +1,698 @@ + + + + + + + Performance Best Practices — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Performance Best Practices

+

As with most VFX processes and software, a Gaffer node graph is subject to performance considerations. Both its stucture and the expressions and statements that go into it can result in undesirably slow evaluation. Since the cause(s) of a slow graph might not be immediately apparent, developing a basic understanding of how Gaffer evaluates graphs, as well as the complexity pitfalls users commonly encounter, will help you ensure optimum performance.

+

Here we will discuss the performance implications of various choices you might make in your Gaffer graphs, and provide some guidelines for keeping them running smoothly.

+
+

Scene complexity and node graph structure

+

Gaffer is designed to gracefully handle very large scenes by deferring the generation of each location until requested by the user or the renderer. It is also designed to be flexible, affording the user a great deal of control in how scenes are generated. These two goals can sometimes be at odds.

+

A very rough estimate for the complexity of a scene can be made by considering the number of its locations, and the number of nodes through which each location passes. For instance, we might say that 10 locations passing through 10 nodes – 10 * 10 = 100 – is roughly equivalent to 20 locations passing through 5 nodes – 20 * 5 = 100. When you consider that most scenes are comprised of a number of assets, each with an associated shader look, you can use this knowledge to structure your node graphs for the best performance.

+

Consider a scene containing 4 assets, with the geometry cache for each imported into Gaffer through separate SceneReader nodes. Each asset has a lookdev setup from an accompanying Reference node, placed downstream of the SceneReader nodes. This presents us with two options for structuring the node graph. We can either:

+
    +
  • Graph1: Group all the assets together, and then apply the lookdev nodes in series.

  • +
+

+
    +
  • Graph2: First apply the lookdev nodes, and then group all the resulting scenes together.

  • +
+

+

For the sake of simplicity, let’s assume that each asset’s scene contains 1000 locations, and each lookdev subgraph contains 100 nodes. Now we can estimate each graph’s performance load.

+
graph1 = locations * nodes
+       = (locationsPerModel * numberOfAssets) * (nodesPerLook * numberOfAssets)
+       = (1000 * 4) * (100 * 4)
+       = 4000 * 400
+       = 1600000
+
+graph2 = locations * nodes
+       = locationsPerModel * numberOfAssets * nodesPerLook
+       = 1000 * 4 * 1000
+       = 400000
+
+
+

This results in a performance difference with a factor of 4, just from simple graph restructuring. This difference is tied to the number of assets: if the scene had 100 assets, we would be looking at a performance difference with a factor of 100.

+

Formally, we can state that grouping second has linear complexity with respect to the number of assets, while grouping first has quadratic complexity. Practically, that means that grouping second is a dramatically better approach, and should be the first consideration when structuring large graphs.

+
+

Tip

+

+Apply lookdev to component scenes and assets before combining them into a single scene, and combine them as late as possible in the node graph.

+
+

The above guideline applies primarily to applying looks to published assets, and should not discourage you from editing large scenes. Much of Gaffer’s flexibility and power comes from the ability to edit a large scene after it is built, which is invaluable when making edits on a per-shot or per-sequence basis.

+
+
+

Path wildcards

+

The '...' wildcard in a path expression means “match any number of names.” So, in a large geographical scene, '/world/.../house' would return:

+
    +
  • '/world/village/house'

  • +
  • '/world/country/state/metropolis/neighbourhood/street/house'

  • +
+

This can be very useful, but it comes at a price. Certain operations in Gaffer require the scene hierarchy to be searched for all matches below a particular location. The wildcard '...' tells the expression to go deeper, searching at every level of the hierarchy for any child (or a child of a child of a child) that matches. For large scenes, this becomes very expensive.

+
+

Caution

+

+Limit the use of '...' in path expressions.

+
+

The most expensive expression possible is '/.../something', because it instructs Gaffer to “search every location of the whole scene.” While this can be necessary at times, it is likely that a more precise wildcard search will provide the same results, with better performance.

+

For instance, if you know that all the matching results are within a single asset, an expression such as /AssetA/.../something will limit the search to that asset only. Alternatively, if you know that all the matches are at a specific depth, expressions such as /*/something or /*/*/something would yield the same result without needing to visit deeper locations. Small changes such as this can have a significant impact on scene performance, so it is always worth your time to make your expressions as precise as possible.

+
+

Note

+

+The '...' wildcard isn’t always costly. For simple nodes such as ShaderAssignment and Attributes, the performance difference is negligible. Those nodes can operate on a single location in isolation, and never need to consider the big picture of the scene as a whole. Generally, only hierarchy-altering nodes such as Prune and Isolate are particularly performance sensitive to the '...' wildcard. In general, it is best to keep wary of '...'.

+
+
+
+

Expressions

+

Python is an excellent language, but with its limited multithreading support, it is not the quickest. In contrast, OSL is reasonably quick, and multithreads well. In situations where an expression will be evaluated frequently (such as once per scene location), the equivalent OSL expression can give significantly improved performance over Python. For instance, tests using a per-instance expression of 100,000 instances yielded a 2× speedup in total scene generation time when using one thread, and a 16× speedup when using 12 threads.

+
+

Tip

+

+In expressions where performance is a concern, use OSL instead of Python.

+
+

However, Python should not be entirely avoided. It can access databases, the filesystem, and the Gaffer and Cortex modules, providing far more flexibility than OSL. Typically, if a Python expression does not access context["scene:path"] or another frequently changing variable, Gaffer’s caching mechanisms will ensure that the expression will be run only once, keeping everything running as smoothly as possible.

+
+
+

Instancing

+

The Instancer node is capable of generating a very high number of locations, so it too can have a significant performance impact. Because it also supports per-instance variation through the use of expressions on its upstream instance graph, it must evaluate the entire instance graph for every given instance.

+

Keep in mind the rough complexity metric of complexity = numberOfLocations * numberOfNodes from earlier, and consider these guidelines when using the Instancer node:

+
    +
  • Use the Instancer node carefully and with moderation.

  • +
  • Use a minimum of nodes to generate the input for the upstream instance graph that connects to the Instancer node’s in plug. If necessary, consider baking the instance graph to a cache and loading it in with a SceneReader node.

  • +
  • Use a minimum of nodes below the Instancer node to modify the scene containing all the resulting instances.

  • +
  • Group or parent the instances into the main scene as late as possible in the node graph.

  • +
  • Try and assign shaders and set attributes at a location in the scene hierarchy above all the instances, rather than on a per-instance basis.

  • +
+
+
+

Performance monitor

+

Gaffer has a performance monitor and a stats app that can be used to measure and compare the real performance of your graph.

+
+

Tip

+

+When performance is critical, use the performance monitor or the stats app.

+
+
+
+

Contexts

+

The number of unique Contexts used to compute a graph can increase the memory overhead and compute time it requires. The number of unique Contexts is dependent on the structure of the graph and the use of nodes that add or change Context Variables. As a general rule, the number of Contexts necessary for a particular graph is exponentially proportional to its number of locations or channels, sets, and iterative nodes like Loop or CollectScenes. Hundreds of thousands of Contexts could be needed for a moderately complex graph.

+

The main performance pitfall you want to avoid is leakage, which is when nodes compute upstream plugs with unnecessarily varying Contexts.

+

An example case of Context leakage would be a network that iterates on a scene:

+A scene with multiple cowboy robots rotated along the x-axis. +

If we look at the graph, we can see that the collect:rootName Context Variable is used to vary the object’s rotations. However, when the network is computed, collect:rootName is passed to the SceneReader, even though it doesn’t use it:

+The graph for the prior scene, using a CollectScenes node to duplicate the robots. +

Despite being unaffected by collect:rootName, the SceneReader node will nonetheless be repeatedly checked in memory to verify that it doesn’t vary with the Context Variable.

+

The more optimal solution would be to delete the Context Variable with a DeleteContextVariables node above the last node that uses it. We can directly compare the effect this has on the number of Contexts used by running the stats app, by annotating the script with the -contextMonitor and -annotatedScript options:

+The graph, but with annotated performance stats. +The graph with stats again, but a DeleteContextVariables node inserted, greatly reducing the number of Contexts used in the scene generation. +

Observe how the SceneReader and Group nodes are queried with around 10 times fewer unique Contexts.

+
+
+

Annotating scripts with performance data

+

The above graphs with per-node performance annotations were automatically generated by the stats app using the built-in -annotatedScript option. This feature will make a copy of the monitored script and add each node’s performance statistics as graph metadata.

+

To annotate a script with performance data, use the following command:

+
gaffer stats <script> -performanceMonitor -annotatedScript <annotatedScript>
+
+
+

For more details on the stats app’s command-line options, see the stats app reference.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithTheNodeGraph/SpreadsheetNode/index.html b/1.4.6.0/WorkingWithTheNodeGraph/SpreadsheetNode/index.html new file mode 100644 index 000000000..4428fbe9e --- /dev/null +++ b/1.4.6.0/WorkingWithTheNodeGraph/SpreadsheetNode/index.html @@ -0,0 +1,869 @@ + + + + + + + Spreadsheet Node — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Spreadsheet Node

+The Spreadsheet node +

The Spreadsheet node (Utility > Spreadsheet) provides a tabular interface for mapping the values of one or more plugs to specific conditions in the graph. When one of the conditions is met, the spreadsheet applies all the values tied to that condition.

+

Unlike spreadsheet tools found in other applications, the Gaffer spreadsheet isn’t designed to adjust the same plug on multiple nodes at the same time. Instead, each column connects to an individual plug on a specific node, allowing you to easily vary its value based on the current Context. This makes Spreadsheets similar to the Random or Expression nodes, both in how they are created and what they affect. The main difference is that the table-based interface of the spreadsheet simplifies the management of a range of potential values across multiple plugs.

+
+The Spreadsheet node's interface +
+

Figure 1. The Node Editor acts as the Spreadsheet node’s editable interface.

+
+
+

A spreadsheet is most useful when you need to map different plug values to Context Variable values. It can save you from having to fork a network multiple times with the same type of node with varying values, or from scripting large numbers of Context-conditional statements in one or more Expression nodes.

+

In production environments, spreadsheets are particularly effective at managing multi-render and multi-shot graphs while keeping them simple and easy to maintain. In a multi-shot rendering graph, a common temptation is to branch the graph, with separate render options nodes for each shot. But to save space and complexity, you could instead use a single branch and vary the node with a Spreadsheet node.

+
+A render options network without and with a Spreadsheet node. +
+

Figure 2. Two graphs that vary render options per shot. The graph on the left forks separate branches and options nodes for each shot, while the graph on the right uses a single branch and a Spreadsheet node.

+
+
+
+

Mechanics

+
+An annotated breakdown of the Spreadsheet node's interface +
+

Figure 3. A breakdown of the Spreadsheet node’s interface.

+
+
+

On a spreadsheet, each column drives a plug in the graph. Each row consists of a string pattern, an enabled switch, and a plug value per column. The selector is a string that is checked against each pattern. If the selector matches a pattern, the respective values in that pattern’s row apply to their connected plugs.

+

During processing, the Selector plug undergoes expansion, substituting any Context Variables enclosed in ${} using standard string substitution syntax. Any non-string values, such as the built-in ${frame}, are also substituted as strings. Alternatively, the selector could consist only of plain text, for example a multi-part string composed by an Expression node elsewhere in the graph. The expanded string is then matched against each pattern using standard Gaffer pattern matching (*, ?, [ABC], [!ABC], [A-Z], [!A-Z]), from top row to bottom row. Finally, the first enabled row with a pattern that matches the pattern has the values in its row applied to the respective connected plugs.

+

The first row is called Default, and has no pattern. This is the fallback row that applies when all of the patterns fail to match the selector.

+
+

Tip

+

Because rows are matched from top to bottom, when matching both specific and general cases in the same spreadsheet, you must order the rows from most specific to least specific. For example, if row A has pattern /assets/robotA, row B has /assets/robotB, and row C has /assets/robot*, place row C last. Otherwise, when they match, the general case will be selected over the specific cases.

+
+

Rows can be disabled. A disabled row will be ignored during selector matching.

+

Individual cells within rows can also be disabled. If a row applies, any disabled cells in it fall back to the Default row’s values. Only the whole cell can be disabled: you cannot selectively disable elements of a connected vector or compound plug.

+

A Spreadsheet node’s connections to other nodes are visualized in the Graph Editor like so:

+
+A Spreadsheet node's auxiliary connections +
+

Figure 4. Auxiliary connections from a Spreadsheet node to its connected nodes in the Graph Editor.

+
+
+

Since spreadsheets connect to plugs, once a column has been connected to a plug, that plug’s value can only be adjusted from the spreadsheet’s interface.

+
+
+

Instructions

+
+

Creating a Spreadsheet node from a plug

+

The easiest way to create a Spreadsheet node is to initialize it from a plug you want to drive on an existing node, similar to how you would for an Expression or Random node.

+

To create a Spreadsheet node from an existing node’s plug:

+
    +
  1. Select the existing node.

  2. +
  3. In a Node Editor, right-click the target plug, then select Create Spreadsheet… from the context menu.

  4. +
+

A Spreadsheet node will be added next to the existing node, and a new Node Editor window that is focused on it will open. The first column will be connected to the target plug. When editing the column’s cells, they will imitate the plug’s interface, including multi-element plugs, enabled switches, color previews and pickers, etc.

+
+
+

Connecting plugs to a Spreadsheet node

+

There are quick methods for connecting a plug from a node in the graph to an existing Spreadsheet node.

+

To drive a plug from an existing Spreadsheet node, select the target node, then, in a Node Editor, perform one of the procedures below based on the target plug’s contents.

+
+

Basic plug

+Adding a basic plug +

Right-click the plug’s value or label, then select a spreadsheet from the Add to Spreadsheet sub-menu.

+
+
+

Vector plug, whole

+Adding a whole vector plug +

Right-click the plug’s label, then select a spreadsheet from the Add to Spreadsheet sub-menu.

+
+
+

Vector plug, element

+Adding a single element of a vector plug +

Right-click the element, then select a spreadsheet from the Add to Spreadsheet sub-menu.

+
+
+

Compound plug

+Adding a compound plug +

Right-click the plug’s label, then select a spreadsheet from the Add to Spreadsheet () sub-menu.

+

If the compound plug has an enabled switch, the switch will be tied to the cell’s enabled state: disabling the cell disables the switch. This is to prevent the confusion that would arise from overlapping enabled states. A compound plug cell can be disabled in the Default row, letting you disable the plug when none of the rows apply.

+Disabled compound plug in the spreadsheet interface and the Node Editor +
+
+

Tweak plug

+Adding a tweak plug +

Right-click any editable element of the tweak plug, then select a spreadsheet from the Add to Spreadsheet (Tweak) sub-menu.

+

Once connected, the corresponding column will imitate the tweak plug’s elements, including the enabled switch and the tweak mode.

+

The enabled switch is tied to the cell’s enabled state: disabling the cell disables the tweak. A tweak plug cell can be disabled in the Default row, letting you bypass the tweak entirely when none of the rows apply.

+
+
+
+

Working with a spreadsheet

+

The spreadsheet generally behaves like a traditional ‘office’ spreadsheet application:

+
    +
  • Single-click a cell to select it.

  • +
  • Double-click a cell to edit its value.

  • +
  • Use the arrow keys and Return to navigate/edit cells.

  • +
  • Shift/Ctrl click to extend the selection to cover multiple cells.

  • +
+

When multiple cells are selected, they can be copied and pasted between rows, columns or even different spreadsheets. If all the values are of the same type, the whole selection can be edited in one go to quickly change multiple values.

+
+

Note

+

Right-click menu items and keyboard shortcuts always operate on the whole selection.

+
+
+
+

Disconnecting a plug from a spreadsheet

+

To disconnect a plug from a spreadsheet, right-click the plug’s column header, then select Delete Column from the context menu.

+

The column and all of its values will be removed, and the plug will be disconnected from the spreadsheet.

+
+
+

Disabling and enabling a cell

+A disabled cell in the Default row +

To disable a cell:

+
    +
  • Right-click it, then select Disable Cell from the context menu.

  • +
  • Double-click the cell to edit it, then click .

  • +
  • Single-click to select the cell, then press the D key.

  • +
+

To enable a cell:

+
    +
  • Right-click it, then select Enable Cell from the context menu.

  • +
  • Double-click the cell to edit it, then click .

  • +
  • Single-click to select the cell, then press the D key.

  • +
+
+

Note

+

If the affected plug is a compound or tweak plug, the enabled state of the cell is tied to the plug’s enabled switch. Disabling the cell disables the plug, and vice versa.

+
+
+
+

Setting up per-location variation

+

A Spreadsheet node can map plug values to specific locations in the scene, with the row patterns targeting their paths. This feature could be used to accomplish per-location changes, such as tweaking the intensities of a select number of lights, or toggling object ray visibility across a scene.

+

To set up a spreadsheet for per-location variation, set its Selector plug to ${scene:path}.

+

In a per-location network, many of the common node types you are likely to drive with the spreadsheet will require a filter node to function. Depending on the scope of the per-location changes, there are two ways you can set up the filter.

+
+

General case with location-specific exceptions

+

This setup is for when you want to broadly affect locations in a scene in the same way, with exception locations – such as toggling the ray visibility attribute of certain locations.

+Spreadsheet with per-location variation, with a general value +

Set up the node filters as normal, then define the values that apply to most of the locations in the spreadsheet’s Default row. Each exception can then be defined by an additional row, with its pattern determining the location path(s).

+

The filter can be any filter node/network. Note: You must ensure that the filters match any locations specified in the spreadsheet’s row patterns, or those rows will have no effect.

+
+
+

Location-specific values only, with no general case

+

This setup is for when you only want to affect a few locations in the scene, each with their own values – such as light or shader tweaks. In this case we connect the filter directly to the spreadsheet, so you will not need to manually keep the filter in sync with the spreadsheet rows. It is also more performant.

+Spreadsheet with per-location variation, with specific values only +

The filter can only be a PathFilter node. The spreadsheet must be connected to the filter’s Paths plug (see instructions below). The paths in the spreadsheet’s row patterns will then drive the paths in the PathFilter node. The node then only affects locations explicitly matched by its rows. +The values for each location you wish to affect are then defined by a row, with its pattern determining the location path(s). Note that with this setup, the Default row is only used to determine values for individually disabled cells on any given row.

+

To drive a PathFilter node’s paths with a Spreadsheet node:

+
    +
  1. Select the PathFilter node.

  2. +
  3. In the Node Editor, click , then select Create Spreadsheet… or select an existing Spreadsheet from the Connect to Spreadsheet sub-menu. The spreadsheet’s Selector plug will be filled with ${scene:path}.

  4. +
  5. In the spreadsheet interface, click to add a row, then insert the location’s path into the pattern. This also adds thethis pattern to the PathFilter’s paths list, since as they are connected.

  6. +
  7. Repeat step 3 for each location you wish to affect.

  8. +
+

From here on, you will only be able to add paths to the filter by adding rows to the spreadsheet. If necessary, you can edit the patterns to include wildcards to match against multiple similar paths or children of this location.

+
+

Important

+

When a spreadsheet’s Selector plug consists of ${scene:path}, row patterns will use the PathFilter’s wildcard matching logic instead of the more typical string matching rules. This means that * will match immediate children only, and ... will match all grandchildren.

+
+

Instead of manually typing or copy-pasting paths into patterns, you can use a shortcut to quickly add rows based on locations:

+
    +
  1. Select the Spreadsheet node, or open a new Node Editor for it.

  2. +
  3. Select one or more locations in the Hierarchy View.

  4. +
  5. Click and drag the selection from the Hierarchy View onto in the Node Editor.

  6. +
+

For each dragged location, a new row will be added, with its pattern consisting of the scene path.

+
+
+
+

Displaying the Spreadsheet node’s name in the Graph Editor

+A Spreadsheet with its full name displayed in the Graph Editor +

To save space, the Spreadsheet node’s name is hidden by default in the Graph Editor, and it appears like a Dot or Expression node with the label #.

+

To display a Spreadsheet node’s name in the Graph Editor:

+
    +
  1. In the Graph Editor, right-click the node.

  2. +
  3. Select Show Name from the context menu.

  4. +
+

The node will assume the height of a normal node, with enough width to encompass the full text of its name.

+
+
+

Managing patterns

+

Patterns can be resized, but not reordered.

+
+

Resizing a pattern

+

Patterns can have one of three preset widths:

+The three pattern widths in the Spreadsheet node interface +

To resize a pattern, right-click the pattern, then select Width > Half, Single, or Double.

+
+
+
+

Managing columns

+

Columns can be renamed, resized and reordered.

+
+

Renaming a column

+

To rename a column:

+
    +
  1. Right-click the column header, then select Set Label…. The Set Label dialog will appear.

  2. +
  3. Type a new column name, then click Set.

  4. +
+
+
+

Resizing a column

+

Columns can either have automatic width based on their name, or manual width:

+
    +
  • Automatic column width: Double-click the column header’s right edge.

    +Automatically resizing a column +
  • +
  • Manual column width: Click and drag the column header’s right edge.

    +Manually resizing a column +
  • +
+
+
+

Reordering columns

+

To reorder a column, click and drag its label left or right.

+Reordering a column +
+
+
+

Managing sections

+

Columns can be organized into sections. Sections appear as tabs above the columns.

+Column sections in the Spreadsheet node interface +

When one or more sections exist in a spreadsheet, any unorganized columns are placed into a default Other section. Further, when adding a new plug to the spreadsheet, you will need to choose a destination section for it.

+
+

Creating a section

+

To create a section and add a column to it:

+
    +
  1. Right-click the column header, then select Move to Section > New…. The Move to Section dialog will appear.

  2. +
  3. Type a section a name, then click Move.

  4. +
+

To add a plug to a spreadsheet and place it in a section:

+
    +
  1. Select the target node.

  2. +
  3. In a Node Editor, right-click the plug value or label, as appropriate.

  4. +
  5. From the context menu, select Add to Spreadsheet > [spreadsheet name] > [section name].

  6. +
+
+
+

Renaming a section

+

To rename a section:

+
    +
  1. Right-click its label, then select Rename from the context menu. The Rename section dialog will appear.

  2. +
  3. Type a new section name, then click Rename.

  4. +
+
+
+

Reordering a section

+

To reorder a section, click and drag its label left or right.

+Reordering a section +
+
+

Transferring columns in a section

+

To transfer all columns from one section to another, right-click the source section’s label, then select Move Columns To > [destination section].

+

If you are transferring columns from the last remaining custom section to the Other section, all columns will be pooled together, and the section area will hide.

+
+
+

Deleting a section

+

To delete a section, right-click its label, then select Delete from the context menu. To delete all sections in the spreadsheet, select Remove Sectioning.

+
+
+
+
+

Example graphs

+
+

Per-location Transform Spreadsheet

+Preview of the Per-location Transform Spreadsheet example +

This can be loaded in Gaffer from Help > Examples > Scene Processing > Per-location Transform Spreadsheet

+

In this example, an asset has multiple locations translated and rotated by one network of a Transform, PathFilter, and Spreadsheet node. This is accomplished by setting the Spreadsheet node up to apply transform values per location.

+
+
+

Per-location Light Tweak Spreadsheet

+Preview of the Per-location Light Tweak Spreadsheet example +

This can be loaded in Gaffer from Help > Examples > Rendering > Per-location Light Tweak Spreadsheet

+

In this example, multiple lights in a scene have their parameters tweaked by one network of a ShaderTweaks, PathFilter, and Spreadsheet node. This is accomplished by setting up the Spreadsheet node to apply tweak values per location.

+
+
+

Multi-shot Render Spreadsheet

+Preview of the Multi-shot Render Spreadsheet example +

This can be loaded in Gaffer from Help > Examples > Rendering > Multi-shot Render Spreadsheet

+

In this example, the graph is structured to handle the beauty render of multiple shots, each with slight differences in render settings. A Spreadsheet node drives the per-shot variations by modifying the renderer’s Options nodes in response to different values of a ${shot} Context Variable.

+
+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithTheNodeGraph/TutorialSettingUpASpreadsheet/index.html b/1.4.6.0/WorkingWithTheNodeGraph/TutorialSettingUpASpreadsheet/index.html new file mode 100644 index 000000000..5dd63c492 --- /dev/null +++ b/1.4.6.0/WorkingWithTheNodeGraph/TutorialSettingUpASpreadsheet/index.html @@ -0,0 +1,654 @@ + + + + + + + Tutorial: Setting Up a Spreadsheet — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Tutorial: Setting Up a Spreadsheet

+

In this tutorial, we will cover how to set up a Spreadsheet node in a graph from start to finish. As you will see throughout, spreadsheets are like enhanced Expression nodes: they let you set up different conditional plug values without writing multiple if statements in Python. Just like Expression nodes, Spreadsheet nodes are open-ended and have a wide variety of uses, so what we show here only represents one possible case.

+

We will be creating a multi-shot graph designed to batch render four shots, which changes its render options based on the current shot. For simplicity, we will omit the actual asset and task/preview nodes, the setups for which are covered in the Assembling the Gaffer Bot tutorial. You can view a working sample of this graph in Help > Examples > Rendering > Multi-shot Render Spreadsheet.

+
+

Adding the Options nodes

+

First, we’ll create a StandardOptions node (Scene > Globals > Standard Options). We will use it to define the render resolution and camera used for each shot.

+StandardOptions node in Graph Editor +

Next, connect a downstream CyclesOptions node (Cycles > Globals > Options). We will use it to adjust the render samples per shot. You can use other renderers’ equivalent nodes, but the particular options and their names will differ.

+CyclesOptions node in Graph Editor +
+
+

Adding a global Context Variable

+

Now, in order for our multi-shot graph to work, we need to declare and initialize a Context Variable that will determine the current shot. It would be most useful if this value were available at all times, so let’s make this a global Context Variable. Go File > Settings… to open the graph’s settings. In the Variables tab, click plus, then select Add > String from the context menu. For the variable’s name on the left, type shot, and for the value, type 1.

+The shot global Context Variable in the Settings window +

Now the graph will have a Context Variable that defines the current shot.

+
+
+

Creating a Spreadsheet node

+

It’s time to create and start setting up a Spreadsheet node to vary the options based on the current shot. Select the CyclesOptions node, then, in the Node Editor, expand the Sampling section. Right-click the Samples plug’s label, and select Create Spreadsheet…. A new Spreadsheet node will appear in the Graph Editor, and a new Node Editor window focused on it will open. It will have a column corresponding to the Samples plug with its current value.

+Spreadsheet node in the Graph Editor and a new Node Editor window +

You will notice the column’s cells are disabled at first – this is because the plug we connected has an enabled switch that was turned off. The connection action assumes the plug should remain in its initial state before connection, unless we specify otherwise. We can keep this in mind if we need to run test renders with and without our changes: simply disabling the appropriate cell in the current shot’s row will make it fall back to the default.

+

For the time being, let’s make the spreadsheet vary this one plug. In the Node Editor window, type ${shot} for the Selector plug. Notice how we use the ${<variableName>} variable substitution syntax here. If we wanted, we could include other text, like a path or a multi-part string such as ${sequence}/${shot}.

+The spreadsheet with a value in the Selector plug +

The spreadsheet is now prepped to expand our one Context Variable, and we can dictate each render’s samples based on the shot.

+
+
+

Adding rows and columns

+

Let’s add a row for our first shot. You’ll notice that beneath the Default row there’s a blank row. This will be the first row that is compared against the selector during processing. Click the row’s pattern on the left, then type the first shot number, 1. Let’s assume this shot is noisy, and we need more samples. Enable the row’s first cell (right-click > Enable Cell), and set its value to 2048 (double-click it, then type the number).

+The spreadsheet with row 1 values +

You’ll notice that the Default row has taken the value of the Samples plug, 1024, and is disabled. This will be the plug’s fallback value for when ${shot} doesn’t match any row’s pattern, which would be the case if a new shot is added to our project. If we wanted a different fallback value, we could enable the cell and change it. Since this graph is responsible for the main render settings, let’s specify the render samples in all cases. So, enable the column’s cell in the Default row.

+The spreadsheet with enabled Default cell +

Before we go any further, let’s adjust the formatting of the spreadsheet, and make our column thinner so it takes up less space. Double-click the right edge of the column to automatically resize it.

+The spreadsheet with a clean column +

Next, let’s add a new row for our second shot. Click and a new row will be added. Let’s give it a pattern of 2 for shot 2. Let’s assume this shot has strong motion blur that requires more samples than the default to render cleanly. Enable the Samples cell, and give it a value of 1536.

+The spreadsheet with row 2 +

Let’s connect a second plug to the spreadsheet before adding any more rows. Select the StandardOptions node. In the Node Editor, right-click the Resolution plug label (under the Camera section), then select Add to Spreadsheet > Spreadsheet. This little menu is convenient when you need to connect a plug to an existing spreadsheet.

+The spreadsheet with render resolution column added +

Doing so creates a new column named Render Resolution, though we’re free to adjust how this is presented by editing the column label. Right-click the column header, then select Set Label… from the context menu. Type Resolution into the dialog and confirm. Afterwards, double-click the right edge of the column to automatically resize it.

+The spreadsheet with render resolution column added +

Much better. Now go ahead and add the Resolution Multiplier and Render Camera plugs.

+The spreadsheet with resolution multiplier and render camera columns added +
+
+

Dressing up the Spreadsheet node

+

While we’re at it, so we don’t confuse our spreadsheet with any future spreadsheets, let’s give it a proper name. In the Graph Editor, right-click the Spreadsheet node, then select Show Name. It will now appear like a regular node with its full name visible. Back in the Node Editor window, give it a name of Spreadsheet_RenderOptions.

+The spreadsheet's full name in the Graph Editor +

Great! This will make wrangling multiple spreadsheets in the graph much easier.

+

Next, adjust the new columns and fill their values like so:

+The spreadsheet with resolution values +
+
+

Accounting for sub-conditions

+

Let’s pretend there has been a change of plans on the project, and shot 2 has been split into shots 2A and 2B, and there could even be further sub-divisions down the line. We could also assume that only 2B has the motion blur issue, and that only 2A needs the adjusted resolution. We’ll need to account for 2A and 2B, and any future shot names starting with 2. So, edit row 2 to be 2A, and add a new 2B row.

+The spreadsheet with rows 2A and 2B +

Next, let’s account for any further sub-shots of 2. This is where we can put wildcards into play. Like many strings in Gaffer, a spreadsheet’s patterns support wildcards. So, to account for any letter after 2, we can simply use 2* for the pattern. Let’s add a new row, setting up these shots to render with an alternate camera and resolution multiplier.

+The spreadsheet with row 2* +
+

Tip

+

+You may be wondering, why doesn’t the general case go first? During processing, a spreadsheet’s rows are checked from top to bottom, and apply the first row that matches. So, if we put the 2* row above 2A and 2B, it would apply for all of the sub-shots. As a general rule, if you want to account for both specific cases and a general case in patterns, you must put the general cast last.

+
+

Excellent! The graph will now render correctly for 2A and 2B, and will respond to any further sub-shots of 2 that we haven’t anticipated.

+
+
+

Conclusion

+

As you can see, the Spreadsheet node is a powerful tool, with an interface that lets you easily map values to various specific conditions.

+

This was a fairly simple spreadsheet, demonstrating part of the render setup portion of a CG pipeline. Spreadsheets have a place in any graph where lots of bespoke or manually-adjusted variation is needed for one or more plugs.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithTheNodeGraph/TutorialUsingTheOSLCodeNode/index.html b/1.4.6.0/WorkingWithTheNodeGraph/TutorialUsingTheOSLCodeNode/index.html new file mode 100644 index 000000000..f82a94232 --- /dev/null +++ b/1.4.6.0/WorkingWithTheNodeGraph/TutorialUsingTheOSLCodeNode/index.html @@ -0,0 +1,635 @@ + + + + + + + Tutorial: Using The OSLCode Node — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Tutorial: Using The OSLCode Node

+

Gaffer allows the creation of networks of predefined OSL shaders to be used in renderering and image and geometry processing, without any coding required. But sometimes the shader you want doesn’t exist, or it’s easier to express your ideas through a few lines of code. In these situations, the OSLCode node allows OSL source code to be entered directly, to create new shaders on the fly.

+
+

A one line shader

+

Start by creating an OSLCode node in the Graph Editor. With this selected, the Node Editor will display a blank shader to be edited.

+

+

We’ll start by adding some parameters (inputs and outputs) for the shader.

+
    +
  • Click on the upper and choose “Float” from the menu. This creates an input parameter which takes a floating point number.

  • +
  • Double click the “Input1” label that appears, and rename the parameter to width.

  • +
  • Enter the value 0.025 into the width field.

  • +
  • Click on the lower and choose “Color” from the menu. This creates an output color parameter.

  • +
  • Double click the “Output1” label, and rename the parameter to “stripes”.

  • +
+

+

We can now enter any OSL code we want to generate the output from the input. Start by entering the following :

+
stripes = aastep( 0, sin( v * M_PI / width ) )
+
+
+

Now hit Ctrl + Enter to update the shader. The Viewer will update to show a shader ball with the shader on it, and adjusting the width parameter will update the render interactively.

+

+
+

Tip

+

Enter the names for input and outputs into the code easily by dragging +their labels into the code editor. This is especially useful for color +spline inputs, where some special syntax is required to evaluate the spline.

+
+
+
+

Adding some more features

+

Let’s add a bit of color and some wobble to our shader, to demonstrate a few more features of OSL :

+
    +
  • Add a color input and rename it to color1.

  • +
  • Add another color input and rename it to color2.

  • +
  • Click on the colour swatches to pick some tasteful hues.

  • +
+

Now update the code :

+
float vv = v + 0.05 * pnoise( u * 20, 4 );
+float m = aastep( 0, sin( vv * M_PI / width ) );
+stripes = mix( color1, color2, m );
+
+
+

And as before, hit Ctrl + Enter to update the shader.

+

+

No doubt you didn’t come here to learn how to make blue and red wobbly stripes, but you are now armed with the ability to add inputs and outputs, edit code and view the results interactively, so are hopefully in a position to create the shader you do want.

+
+

Tip

+

Explore the available functions in OSL and add them easily to the code by right-clicking, then browsing the Insert sub-menu.

+
+
+
+

OSL resources

+

This short tutorial has only scratched the surface of what can be done with Open Shading Language. The following resources are a good place to learn more :

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithTheNodeGraph/UsingThePerformanceMonitor/index.html b/1.4.6.0/WorkingWithTheNodeGraph/UsingThePerformanceMonitor/index.html new file mode 100644 index 000000000..306811391 --- /dev/null +++ b/1.4.6.0/WorkingWithTheNodeGraph/UsingThePerformanceMonitor/index.html @@ -0,0 +1,613 @@ + + + + + + + Using the Performance Monitor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ + +
+

Using the Performance Monitor

+

Gaffer contains a built-in performance monitor, which can help diagnose and optimize a node graph’s performance. With the monitor active, performance statistics will be sent to the standard output (stdout) during dispatched renders.

+
+

Note

+

+Performance statistics using the performance monitor cannot be generated for IPR rendering.

+
+

To turn on the performance monitor:

+
    +
  1. Create a StandardOptions node.

  2. +
  3. In the Graph Editor, connect the StandardOptions node just prior to your script’s render task node.

  4. +
  5. In the Node Editor, with the StandardOptions node still selected, navigate to Statistics > Settings.

  6. +
  7. Toggle the Performance Monitor plug’s switch, and then check its box.

    +

    +
  8. +
+

When you dispatch your script to the renderer, performance data will output to the stdout in your terminal. If you are dispatching to a render farm, the farm will receive the stdout.

+

As an alternative, the stats app allows the same monitoring to be performed from the command line, without the need to dispatch the script.

+
+

Annotating scripts with performance data

+

The stats app can generate annotations that display per-node performance and Context data by using the built-in -annotatedScript option. This feature will make a copy of the monitored script and add each node’s performance statistics as graph metadata. +To annotate a script with performance data, use the following command:

+
gaffer stats <script> -performanceMonitor -annotatedScript <annotatedScript>
+
+
+

If you’d like the annotations to contain information about the number of Contexts used, replace -performanceMonitor with -contextMonitor. +For more details on the stats app’s command-line options, see the stats app reference.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithTheNodeGraph/index.html b/1.4.6.0/WorkingWithTheNodeGraph/index.html new file mode 100644 index 000000000..fd2bfa020 --- /dev/null +++ b/1.4.6.0/WorkingWithTheNodeGraph/index.html @@ -0,0 +1,591 @@ + + + + + + + Working with the Node Graph — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Working with the Node Graph
  • +
  • +
  • +
+
+
+
+
+ + +
+

Working with the Node Graph

+

Here you can learn the fundamentals of constructing and editing node graphs in Gaffer.

+ + +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithThePythonScriptingAPI/ThePythonEditor/index.html b/1.4.6.0/WorkingWithThePythonScriptingAPI/ThePythonEditor/index.html new file mode 100644 index 000000000..8b8a0e25d --- /dev/null +++ b/1.4.6.0/WorkingWithThePythonScriptingAPI/ThePythonEditor/index.html @@ -0,0 +1,674 @@ + + + + + + + The Python Editor — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

The Python Editor

+

The Python Editor is a type of editor in the main Gaffer application that can execute arbitrary Python code with a built-in interpreter. It enables you to modify the node graph, try commands and syntax, and inspect data. In the default layout, it resides in the bottom-right panel, in a tab next to the Hierarchy View.

+

Each Python Editor is a separate instance. Python modules that you import will remain loaded in that particular editor for its lifetime. However, you never need to import the Gaffer or IECore modules. They are loaded by default.

+

The Python Editor is split into two areas. The bottom-half is the input field. The top-half is the output. The input field of the Python Editor functions like a basic plain text editor. You can type, select, cut, copy, paste, and execute code.

+

+

The output field behaves like a typical console output. It records the output stream, including return values and errors. Errors appear in red.

+

+
+

Caution

+

+Code in Expression nodes is handled by a separate interpreter, and the syntax between them and the Python Editor should not be considered safely compatible.

+
+
+

Instructions

+
+

Executing code

+

Executing code will erase the input field, just like in a debug console. However, if you highlight any part of the code, only that part will execute, and the whole input will be preserved.

+

To execute code with the Python Editor:

+
    +
  1. Enter code into the input field.

  2. +
  3. Hit Ctrl + Enter.

  4. +
+
+

Tip

+

+A useful debugging trick is to highlight any part of the input code in order to preserve the whole input for reuse.

+
+
+
+

Accessing elements and data from other editors

+

The Python Editor can access the same graph elements (nodes and plugs) and scene and image data results (locations, objects, and so on) visible in the various other editors. However, this requires inputting precise dictionary syntax, data types, and code. Instead of typing out the exact code, you can use a shortcut: simply click and drag the element or data from the editor into the Python Editor’s input field.

+

+

The specific shortcut for dragging depends on the source editor:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Element

Source editor

Shortcut

Cursor

Example code result

Node(s)

Graph Editor

Middle-click and drag

Nodes

root['Sphere']

Plug

Node Editor

Click and drag

Plug

root['Sphere']['radius']

Plug value

Node Editor

Middle-click and drag

Values

2.7

Object(s)

Viewer

Click and drag

Objects

['/sphere']

Scene location(s)

Hierarchy View

Click and drag

Objects

['/sphere']

Scene data

Scene Inspector

Click and drag

Values

V3f(1.5, 2.7, 3.9)

+
+

Note

+

+When pulling scene data, remember to consider the evaluated node’s effect on the scene hierarchy, because an object’s location in the hierarchy can vary from node to node. For example, if a Group node puts a sphere in /group/sphere, but you query the Group node using the original /sphere path, you will have queried a location that no longer exists, as far as that node is concerned.

+
+
+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialNodeGraphEditingInPython/index.html b/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialNodeGraphEditingInPython/index.html new file mode 100644 index 000000000..069948be2 --- /dev/null +++ b/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialNodeGraphEditingInPython/index.html @@ -0,0 +1,788 @@ + + + + + + + Tutorial: Node Graph Editing in Python — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Tutorial: Node Graph Editing in Python

+

In Gaffer, you can interactively manipulate node graphs in Python using the Python Editor. Gaffer’s API is fairly frugal, so learning a few fundamental concepts and tasks will go a long way. In this tutorial, we will give you a quick tour of these fundamentals. Using only Python, you will create a simple graph that consists of a camera and a mauve sphere:

+

+

By the end of this tutorial, you should have an understanding of the following topics in Python:

+
    +
  • The Python Editor

  • +
  • Importing modules

  • +
  • Creating nodes

  • +
  • Node and plug references

  • +
  • Setting plug values

  • +
  • Node connections

  • +
  • Deleting nodes

  • +
+
+

Note

+

+For this tutorial, we will assume you are familiar with the Python language.

+
+

Before you begin, we highly recommend you complete the Assembling the Gaffer Bot tutorial.

+
+

The Python Editor

+

With the built-in Python Editor, you can build and modify the node graph, test API code and syntax, return plug values, and query scenes and images. In the default layout, the editor is in the bottom-right panel, under a tab next to the Hierarchy View.

+

The bottom-half of the Python Editor is the code input field. The top-half is the code output log. Try executing a “Hello, World!” command:

+
    +
  1. Type print( "Hello, World!" ) into the input field.

  2. +
  3. Hit Ctrl + Enter to execute the code.

  4. +
+

+
+
+

Creating nodes

+

In the Gaffer API, each node is an instance (in the programming sense) of a class, with each class belonging to a particular Python module. In order to create a node sourced from a module, you will first need to import that module.

+
+

Tip

+

+A list of each of Gaffer’s default modules can be found in the Node Reference.

+
+

Since the scene will require a sphere primitive, import the GafferScene module, and then create a Sphere node:

+
import GafferScene
+mySphere = GafferScene.Sphere()
+root.addChild( mySphere )
+
+
+

+

Notice that the node was added with the addChild() method to the root variable. The addChild() method is the core method for adding nodes and plugs to the node graph. The root variable references the root of the node graph. All nodes in the graph are ultimately children of the root. If you declared the node variable without adding it to the root variable, it would exist in memory (all variables in Python are objects), but it would not yet be part of the graph.

+

Helpfully, once you import a module, it will remain loaded in that Python Editor (however, if you open a new Python Editor, you will need to import it again). The rest of the nodes you will need for this graph also come from the GafferScene module, so add them next:

+
myShader = GafferScene.OpenGLShader()
+myShaderAssignment = GafferScene.ShaderAssignment()
+myFilter = GafferScene.PathFilter()
+myCamera = GafferScene.Camera()
+myGroup = GafferScene.Group()
+root.addChild( myShader )
+root.addChild( myShaderAssignment )
+root.addChild( myFilter )
+root.addChild( myCamera )
+root.addChild( myGroup )
+
+
+

+
+
+

Referencing nodes without variables

+

Nodes that do not have variables can be referenced by dragging and dropping them in the interface:

+
    +
  1. Middle-click and drag a node from the Graph Editor (the cursor will change to ).

  2. +
  3. Release the selection onto the input field of the Python Editor.

  4. +
+
+
+

Loading shaders

+

Before we move on to plugs, you should complete the node creation process by loading a shader into the OpenGLShader node. Shader nodes start out blank, so there is one additional step required, which is to load a shader configuration. For this graph, all you need is a simple color. Load a constant shader with the loadShader() method:

+
myShader.loadShader( 'Constant' )
+
+
+
+
+

Referencing plugs

+

Since a node’s default plugs are created automatically, they have no assigned variables, so you will need to reference them another way. In the API, plugs in the graph (and also, in fact, the nodes and the root variable) can each be treated like a Python dictionary, with key-value pairs. When editing plug values, it is usually necessary to first reference them in dictionary syntax.

+

For example, you could reference the Radius plug of the Sphere node like this:

+
mySphere['radius']
+
+
+

+
+

Caution

+

+Because Python dictionaries do not have built-in overwrite protection, you can accidentally and irrecoverably replace nodes and plugs with assignments that use existing node names, like root['Sphere'] = .... Use dictionary syntax with care.

+
+

Just like with nodes, you can insert a reference to a plug by dragging. Try inserting a reference to Radius plug of the Sphere node:

+
    +
  1. Select the Sphere node in the Graph Editor.

  2. +
  3. Click and drag the label of the Radius plug from the Node Editor (the cursor will change to ).

  4. +
  5. Release it onto the input field of the Python Editor.

  6. +
+

A reference to root['Sphere']['radius'] will be inserted. This is identical to mySphere['radius'] from earlier. Notice how when you drag and drop plugs, the reference is formatted in dictionary syntax.

+
+

Important

+

+Dragging and dropping plugs is a core technique when using the Python Editor. It can speed up your node graph editing and inspecting considerably.

+
+
+
+

Retrieving a plug value

+

The getValue() method retrieves a plug’s value. Try it on the Cs (color) plug of the OpenGLShader node:

+
myShader['parameters']['Cs'].getValue()
+
+
+

There is also a shortcut for grabbing a plug value, which involves Shift + clicking and dragging the plug label from a Node Editor (the cursor will change to ) and releasing it onto the input field of the Python Editor:

+

+
+

Tip

+

+The above shortcut can also be very handy in regular use. For instance, if you need to know the type and format of a particular plug’s value, dragging it into the Python Editor will reveal it.

+
+
+
+

Editing a plug value

+

The setValue() method edits plug values. It functions on plugs with both single and multi-element data types.

+ +

Editing plugs with one element is simple. All you need to provide is the value. Try increasing the radius of the sphere:

+
mySphere['radius'].setValue( 4 )
+
+
+

+

When editing a plug with multiple elements, such as a vector, color, matrix, etc., you can either edit all the values at once, or one at a time. Editing all the values at once requires formatting the value in the type’s syntax. Most of the multi-element types belong to the imath utility module, so before you can edit them, you will first need to import it.

+
+
+

Editing the remaining plugs

+

In this next part, we will step you through the remaining plug edits for your node graph. For each of the following plugs you edit, you will see little to no change, because the nodes are not yet connected. Think of these steps as preparing the plugs.

+

3-color plugs (colors with no alpha channel) use the Color3f() type, so first, import imath and set the OpenGLShader node’s Cs plug:

+
import imath
+myShader['parameters']['Cs'].setValue( imath.Color3f( 0.25, 0.75, 0.25 ) )
+
+
+

+

Next, adjust the camera position, but this time specify only the z-axis value of the transform, with dictionary syntax:

+
myCamera['transform']['translate']['z'].setValue( 8 )
+
+
+

+

Finally, add a location to the paths plug of the PathFilter node:

+
import IECore
+myFilter['paths'].setValue( IECore.StringVectorData( [ '/sphere' ] ) )
+
+
+

The above code is more advanced than what we have shown so far, but you will likely need it at some point when editing node graphs. Any time you edit a plug that can take multiple strings, you will need to format the strings as a list, with IECore.StringVectorData(). When using this method, remember to first import the IECore module.

+
+
+

Connecting nodes

+

Nodes do not connect together: their plugs do. The setInput() method connects a destination plug to a source plug.

+

The input and output plugs on scene nodes that are visible in the Graph Editor follow this naming scheme:

+
    +
  • Output (bottom edge of node): out

  • +
  • Input (top edge of node): in

  • +
  • Filter input (right edge of node): filter

  • +
  • Shader input (left edge of node): shader

  • +
+
+

Note

+

+You are not limited to connecting the default plugs visible in the Graph Editor. The setInput() method can connect most pairs of plugs.

+
+

For example, to connect scene node A to scene node B, an in plug of node B is connected to the out plug of node A.

+

Since the ShaderAssignment node has all three types of scene node input plugs, start by connecting it:

+
myShaderAssignment['in'].setInput( mySphere['out'] ) # Main input/output
+myShaderAssignment['shader'].setInput( myShader['out'] ) # Shader input/output
+myShaderAssignment['filter'].setInput( myFilter['out'] ) # Filter input/output
+
+
+

+

A node that takes multiple input scenes, like the Group node, is slightly different. Its in plug is an ArrayPlug that consists of multiple children, each a separate scene input accessed via integer index:

+
myGroup['in'][0].setInput( myShaderAssignment['out'] )
+myGroup['in'][1].setInput( myCamera['out'] )
+
+
+

+
+

Caution

+

+Scene nodes with an ArrayPlug input automatically maintain one free child, so that there is always at least one input available. Make sure to connect their child plugs in order: ['in'][0], ['in'][1], ['in'][2], etc. Connecting them out-of-order will return an error.

+
+

As you probably noticed, the graph looks tangled up, but that’s a consequence of scripting a graph piece-by-piece. Correct this by selecting all the nodes, and then hitting Ctrl + L.

+

+

Much better!

+
+

Tip

+

+When creating a node graph using Python, if you add the nodes, declare variables for them, connect them, and then add them to root all at once, they will automatically and evenly lay themselves out. In fact, that is essentially what Gaffer scripts do when loaded.

+
+

Here is the final graph:

+

+
+
+

Deleting nodes

+

There’s one final common operation you may want to perform on nodes using Python: deletion. Nodes and plugs both have a removeChild() method. Try removing the Sphere node:

+
root.removeChild( mySphere )
+
+
+
+
+

Recap

+

That covers the most common methods and tasks when using Python to edit node graphs. As we have shown, you have the capacity to accomplish almost all interface actions in Python, demonstrating the power and flexibility of the API.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialQueryingAScene/index.html b/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialQueryingAScene/index.html new file mode 100644 index 000000000..a2e1cd3b3 --- /dev/null +++ b/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialQueryingAScene/index.html @@ -0,0 +1,750 @@ + + + + + + + Tutorial: Querying a Scene — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Tutorial: Querying a Scene

+

Gaffer has a simple API for querying the scenes that are output from nodes. In this tutorial we’ll see how to use this API to traverse a scene hierarchy and examine its state.

+
+

Making a scene

+

First off, we’ll create a simple scene using a network of basic nodes. Cut and paste the following into the Graph Editor to build the network. There’s no need to worry about the details of this part - it’s just a convenient way to create the network we need for the tutorial. If you do take a look though, you’ll see examples of the commands needed to create nodes, set values and make connections.

+
import Gaffer
+import GafferScene
+import IECore
+import imath
+
+__children = {}
+
+__children["Sphere"] = GafferScene.Sphere( "Sphere" )
+parent.addChild( __children["Sphere"] )
+__children["Sphere"].addChild( Gaffer.V2fPlug( "__uiPosition", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Sphere"].addChild( Gaffer.V2fPlug( "__uiPosition1", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Plane"] = GafferScene.Plane( "Plane" )
+parent.addChild( __children["Plane"] )
+__children["Plane"].addChild( Gaffer.V2fPlug( "__uiPosition", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Plane"].addChild( Gaffer.V2fPlug( "__uiPosition1", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Group"] = GafferScene.Group( "Group" )
+parent.addChild( __children["Group"] )
+__children["Group"]["in"].addChild( GafferScene.ScenePlug( "in1", flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Group"]["in"].addChild( GafferScene.ScenePlug( "in2", flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Group"].addChild( Gaffer.V2fPlug( "__uiPosition", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Group"].addChild( Gaffer.V2fPlug( "__uiPosition1", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Camera"] = GafferScene.Camera( "Camera" )
+parent.addChild( __children["Camera"] )
+__children["Camera"].addChild( Gaffer.V2fPlug( "__uiPosition", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Camera"].addChild( Gaffer.V2fPlug( "__uiPosition1", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Group1"] = GafferScene.Group( "Group1" )
+parent.addChild( __children["Group1"] )
+__children["Group1"]["in"].addChild( GafferScene.ScenePlug( "in1", flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Group1"]["in"].addChild( GafferScene.ScenePlug( "in2", flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Group1"].addChild( Gaffer.V2fPlug( "__uiPosition", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Group1"].addChild( Gaffer.V2fPlug( "__uiPosition1", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["StandardOptions"] = GafferScene.StandardOptions( "StandardOptions" )
+parent.addChild( __children["StandardOptions"] )
+__children["StandardOptions"].addChild( Gaffer.V2fPlug( "__uiPosition", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["StandardOptions"].addChild( Gaffer.V2fPlug( "__uiPosition1", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["CustomAttributes"] = GafferScene.CustomAttributes( "CustomAttributes" )
+parent.addChild( __children["CustomAttributes"] )
+__children["CustomAttributes"]["attributes"].addChild( Gaffer.NameValuePlug( "", Gaffer.StringPlug( "value", defaultValue = '', flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ), True, "member1", Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic ) )
+__children["CustomAttributes"].addChild( Gaffer.V2fPlug( "__uiPosition", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["CustomAttributes"].addChild( Gaffer.V2fPlug( "__uiPosition1", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["PathFilter"] = GafferScene.PathFilter( "PathFilter" )
+parent.addChild( __children["PathFilter"] )
+__children["PathFilter"].addChild( Gaffer.V2fPlug( "__uiPosition", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["PathFilter"].addChild( Gaffer.V2fPlug( "__uiPosition1", defaultValue = imath.V2f( 0, 0 ), flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic, ) )
+__children["Sphere"]["transform"]["translate"].setValue( imath.V3f( 0, 1, 0 ) )
+__children["Sphere"]["__uiPosition"].setValue( imath.V2f( 8.01966095, 9.80717945 ) )
+__children["Plane"]["transform"]["rotate"].setValue( imath.V3f( 90, 0, 0 ) )
+__children["Plane"]["dimensions"].setValue( imath.V2f( 10, 10 ) )
+__children["Plane"]["divisions"].setValue( imath.V2i( 2, 2 ) )
+__children["Plane"]["__uiPosition"].setValue( imath.V2f( -4.33150482, 9.96185112 ) )
+__children["Group"]["in"][0].setInput( __children["Plane"]["out"] )
+__children["Group"]["in"][1].setInput( __children["Sphere"]["out"] )
+__children["Group"]["name"].setValue( 'geometry' )
+__children["Group"]["__uiPosition"].setValue( imath.V2f( 2.26130295, -1.60483646 ) )
+__children["Camera"]["transform"]["translate"].setValue( imath.V3f( 0, 1.10000002, 5.30000019 ) )
+__children["Camera"]["__uiPosition"].setValue( imath.V2f( 20.4540863, 9.92141724 ) )
+__children["Group1"]["in"][0].setInput( __children["Group"]["out"] )
+__children["Group1"]["in"][1].setInput( __children["Camera"]["out"] )
+__children["Group1"]["name"].setValue( 'world' )
+__children["Group1"]["__uiPosition"].setValue( imath.V2f( 8.91635609, -12.811451 ) )
+__children["StandardOptions"]["in"].setInput( __children["CustomAttributes"]["out"] )
+__children["StandardOptions"]["options"]["renderCamera"]["value"].setValue( '/world/camera' )
+__children["StandardOptions"]["options"]["renderCamera"]["enabled"].setValue( True )
+__children["StandardOptions"]["options"]["renderResolution"]["enabled"].setValue( True )
+__children["StandardOptions"]["__uiPosition"].setValue( imath.V2f( 10.4163561, -29.6934471 ) )
+__children["CustomAttributes"]["in"].setInput( __children["Group1"]["out"] )
+__children["CustomAttributes"]["filter"].setInput( __children["PathFilter"]["out"] )
+__children["CustomAttributes"]["attributes"]["member1"]["name"].setValue( 'myString' )
+__children["CustomAttributes"]["attributes"]["member1"]["value"].setValue( 'aaa' )
+__children["CustomAttributes"]["__uiPosition"].setValue( imath.V2f( 10.4163561, -22.0981121 ) )
+__children["PathFilter"]["paths"].setValue( IECore.StringVectorData( [ '/world/geometry/sphere' ] ) )
+__children["PathFilter"]["__uiPosition"].setValue( imath.V2f( 21.2740936, -12.715106 ) )
+
+del __children
+
+
+
+
+

Our first scene queries

+

Scenes are output from nodes through the out plug found at the bottom of each node. We make queries by calling methods of this plug. To refer to the plug in the Python Editor, we can either type a reference to it in directly, or middle-mouse drag it from the Graph Editor to the Python Editor. To query the output of the StandardOptions node we’ll be using the following :

+
root["StandardOptions"]["out"]
+
+
+

Note that we’re just using Python dictionary syntax to access a node by name and then to access a named plug within it. This plug is the gateway to our queries, so let’s make our first query by getting the global settings from within the scene - these are settings created by the various Options nodes.

+
g = root["StandardOptions"]["out"]["globals"].getValue()
+print( type( g ) )
+print( g.keys() )
+print( g["option:render:camera"].value )
+print( g["option:render:resolution"].value )
+
+
+

There are a couple of things to note here. Firstly, although the out plug appears as a single plug in the Graph Editor, it actually has several child plugs, which allow different aspects of the scene to be queried. We accessed the globals plug using dictionary syntax, and then retrieved its value using the getValue() method. The result was an IECore::CompoundObject which we can pretty much treat like a dictionary, with the minor annoyance that we need to use .value to actually retrieve the final value we want.

+

The option:render:camera globals entry tells us that the user wants to render through a camera called /world/camera, so let’s try to retrieve the object representing the camera. Just as the globals within the scene were represented by a globals plug, the objects are represented by an object plug. Maybe we can get the camera out using a simple getValue() call as before?

+
g = root["StandardOptions"]["out"]["object"].getValue()
+Gaffer.ProcessException : line 1 : Group1.out.object : Context has no variable named "scene:path"
+
+
+

That didn’t work out so well did it? The problem is that whereas the globals are global, different objects are potentially available at each point in the scene hierarchy - we need to say which part of the hierarchy we want the object from. We do that as follows :

+
with Gaffer.Context( root.context() ) as context :
+	context["scene:path"] = IECore.InternedStringVectorData( [ 'world', 'camera' ] )
+	camera = root["StandardOptions"]["out"]["object"].getValue()
+	print( camera )
+
+
+

The Context class is central to the way Gaffer works - a single plug can output entirely different values depending on the Context in which getValue() is called. Here we provided a Context as a path within the scene, but for an image node we’d provide a Context with a tile location and channel name. Contexts allow Gaffer to multithread efficiently - each thread uses it’s own Context so each thread can be querying a different part of the scene or a different location in an image. That was a bit wordy though wasn’t it? For now let’s pretend we didn’t even take this detour and let’s use a utility method that does the same thing instead :

+
camera = root["StandardOptions"]["out"].object( "/world/camera" )
+
+
+

Much better. Let’s take a look at what we got :

+
print( camera.parameters().keys() )
+print( camera.parameters()["projection"].value )
+print( camera.parameters()["focalLength"].value )
+print( camera.parameters()["clippingPlanes"].value )
+
+
+

Again, the camera looks a lot like a dictionary, so queries aren’t too hard.

+
+
+

Further queries

+

Having our camera is all well and good, but we don’t know where it is located spatially. It might come as no surprise to find that transforms are represented as another child plug alongside globals and object, and that we can query it in the same way. This time we’ll skip that pesky Context stuff entirely, and use another utility method :

+
transform = root["StandardOptions"]["out"].transform( "/world/camera" )
+print( transform )
+
+
+

That gave us the local transform for the camera in the form of a matrix - we could also use the fullTransform() method if we wanted the global transform.

+

That’s about all we want to know about the camera, but what about that sphere? Does it have any properties we might be interested in? We should be able to guess by now that we can get at the object and transform in the same way as we did for the camera :

+
sphereObject = root["StandardOptions"]["out"].object( "/world/geometry/sphere" )
+sphereTransform = root["StandardOptions"]["out"].transform( "/world/geometry/sphere" )
+
+
+

But what about the CustomAttributes node that was applied to the sphere? How can we query what that did? Not surprisingly, the attributes of the sphere are retrieved via an attributes plug, or for the lazy Context dodgers amongst us, an attributes() utility method :

+
a = root["StandardOptions"]["out"].attributes( "/world/geometry/sphere" )
+print( a.keys() )
+print( a["myString"].value )
+
+
+

If the sphere had a shader assigned to it, that would appear as a["shader"], but we’ve deliberately left that out for now to keep this tutorial renderer agnostic.

+
+
+

Traversing the hierarchy

+

One of the key features of the queries above was that they were random access - we could query any location in the scene at any time, without needing to query the parent locations first. That’s all well and good, but until now we’ve been using prior knowledge of the scene structure to decide what to query. In a real situation, our code doesn’t know that /world/geometry/sphere even exists. We need a means of querying the structure of the scene first, so that we can then query the contents at each location. Oddly enough, the structure is just communicated with another plug alongside the others - this time one called childNames. And oddly enough, there’s a utility method to help us get its value within the proper Context. Let’s start at the root and see what we can find :

+
print( root["StandardOptions"]["out"].childNames( "/" ) )
+print( root["StandardOptions"]["out"].childNames( "/world" ) )
+
+
+

Rather than continue this manual exploration, let’s write a simple recursive function to traverse the scene and print what it finds :

+
def visit( scene, path ) :
+
+	print( path )
+	print( "\tTransform : " + str( scene.transform( path ) ) )
+	print( "\tObject : " + scene.object( path ).typeName() )
+	print( "\tAttributes : " + " ".join( scene.attributes( path ).keys() ) )
+	print( "\tBound : " + str( scene.bound( path ) ) + "\n" )
+	for childName in scene.childNames( path ) :
+		visit( scene, path.rstrip( "/" ) + "/" + str( childName ) )
+
+visit( root["StandardOptions"]["out"], "/" )
+
+
+

That’s pretty much all there is to it. There’s a little more to learn in terms of the APIs for the particular Cortex objects that might be returned by a query, but the above examples hopefully provide a good starting point for exploration.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialStartupConfig1/index.html b/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialStartupConfig1/index.html new file mode 100644 index 000000000..d48a099f5 --- /dev/null +++ b/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialStartupConfig1/index.html @@ -0,0 +1,708 @@ + + + + + + + Tutorial: Startup Config 1; Custom Global Context Variables — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Tutorial: Startup Config 1; Custom Global Context Variables

+

Gaffer actually consists of multiple applications split between its major functions, such as GUI (the main application interface), Dispatch, Execute, and Stats. These applications are easy to extend and customize. On startup, each can load any number of arbitrary Python scripts, called startup configs, from one or more paths. Each startup config can call API hooks for extending or adding functionality to its parent app.

+

In this three-part tutorial, we will walk through the following example startup configs that extend the GUI app:

+
    +
  1. customVariables.py: Adds a custom global Context Variable to node graphs.

  2. +
  3. customBookmarks.py: Adds file path bookmarks to the various file browsers in Gaffer’s interface.

  4. +
  5. customNodes.py: Adds a custom entry to the node menu.

  6. +
+

In this first config, we will add a global Context Variable) called ${project:resources} that points to the /resources directory in the Gaffer installation directory. This Context Variable will make it slightly easier to reach the directory from any string plug that load files. Since we’ll add the Context Variable using a startup config, it will be automatically added to every node graph Gaffer opens or creates.

+

+
+

Global Context Variables

+

Before we begin, a quick aside. A global Context Variables is a Context Variable that exists at the node graph’s root, and which is available to every node and plug at every point in the graph. You can view all of a graph’s global Context Variable in the Variables tab of the the settings menu (File > Settings).

+

+

All startup configs can modify not only their app, but graphs as well. For instance, all graphs automatically receive the above project:name and project:rootDirectory Context Variables from the GUI app’s default startup config. These global Context Variables help determine where to save the graph, and where to export renders and caches. Thus, in their standard construction, Gaffer graphs already depend on file path substitutions.

+

In your studio pipeline, you could adopt this approach, and assign additional global Context Variables to path components inside your file system. These path components could then be concatenated into full paths to your geometry, textures, rigs, cameras, reference scripts, etc., thus incorporating your pipeline’s file structure into Gaffer. For example, consider this path built out of global Context Variables:

+
"/${showPath}/${sequencePath}/${shotPath}/${assetPath}"
+
+
+

If each global Context Variable were assigned to a path component, during a render, the evaluation engine could interpret it to something like:

+
"/SHOW_001/SEQ_001/SHOT_001/gafferBot"
+
+
+

Of course, this is merely an example. The exact structure and naming convention of the path components would depend on your file system.

+

One advantage of employing global Context Variables is that they are portable between Gaffer deployments. When you save a graph, all of its plugs are included in the script file. Since a global Context Variable is just a plug, it will be saved, and another user (or system) can read and execute the script, even if they don’t have the same Gaffer configuration as you.

+

With all that out of the way, onto the first startup config.

+
+
+

customVariables.py

+

Copy this code to a new a customVariables.py file in ~/gaffer/startup/gui:

+
 1import IECore
+ 2import Gaffer
+ 3
+ 4def __scriptAdded( container, script ) :
+ 5
+ 6    variables = script["variables"]
+ 7
+ 8    if "projectResources" not in variables :
+ 9            projectResources = variables.addMember(
+10                    "project:resources",
+11                    IECore.StringData( "${GAFFER_ROOT}/resources/" ),
+12                    "projectResources"
+13            )
+14
+15    Gaffer.MetadataAlgo.setReadOnly( variables["projectResources"]["name"], True )
+16
+17application.root()["scripts"].childAddedSignal().connect( __scriptAdded, scoped = False )
+
+
+

Let’s break down what’s going on here.

+

After importing the necessary modules, we declare a function that we will use to modify the current graph:

+
4def __scriptAdded( container, script ) :
+
+
+

Both the keyword arguments we pass are implicit, and particular to the signal that will call this function; we leave them as-is.

+

Inside the function, we grab the variables plug, which contains all of the graph’s global Context Variables. Then, we add a new Context Variable using the addMember() method.

+
 6    variables = script["variables"]
+ 7
+ 8    if "projectResources" not in variables :
+ 9            projectResources = variables.addMember(
+10                    "project:resources",
+11                    IECore.StringData( "${GAFFER_ROOT}/resources/" ),
+12                    "projectResources"
+13            )
+
+
+

The addMember() method takes three arguments:

+
    +
  1. Name: The Context Variable name as it is accessed within the graph, in variable substitutions and Python/OSL expressions. The colon in project:resources has no significance to the interpreter; colons are used merely by convention and for readability.

  2. +
  3. Value: The Context Variable’s default value. You can use any standard plug types, such as floats, integers, V3f, V2i, etc. If the type comes from a module (such as IECore or imath), make sure to import it first.

  4. +
  5. Plug name: The plug name for the Context Variable, accessible from the Python Editor and the API.

  6. +
+
+

Tip

+

+To retrieve the value of a global Context Variable in the Python Editor_], you must point to its value key in the plug dictionary:

+
root["variables"]["plugName"]["value"].getValue()
+
+
+
+

Notice that in the value we provided, we used the ${GAFFER_ROOT} substitution as a path component, since it already points to the installation directory. String Context Variables can be made of compound and nested variables, just like environment variables in a terminal.

+

We then finish the function by setting the variable’s name to read-only, to protect it from accidentally being renamed by the user:

+
15    Gaffer.MetadataAlgo.setReadOnly( variables["projectResources"]["name"], True )
+
+
+

We wrap up the config by adding our function to an event signal that fires when node graphs are opened and created in the main application:

+
17application.root()["scripts"].childAddedSignal().connect( __scriptAdded, scoped = False )
+
+
+

Notice the use of the application variable. This is a special variable that refers to the startup config’s parent application.

+
+
+

Testing the global Context Variable

+

Now we can test the startup config in a live graph. If you haven’t already, save customVariables.py, then launch a new instance of Gaffer. In the empty graph, take a look at the global Context Variables found in the Variables tab of the graph’s settings (File > Settings). You should see the new project:resources variable pointing to the correct path.

+

+

Success! Now every node graph you open or create will have the project:resources global Context Variable added to it. Try using the variable to load Gaffy’s scene cache:

+
    +
  1. Create a SceneReader node.

  2. +
  3. In the Node Editor, set the File Name plug to ${project:resources}/gafferBot/caches/gafferBot.scc.

  4. +
+

If all went well, Gaffy’s geometry cache should have loaded in the graph.

+

+

As mentioned earlier, if we wanted to, we could make the path more granular, perhaps by assigning a global Context Variable to each its child directories.

+
+
+

Environment variables and Context Variables

+

Before concluding the first startup config of this tutorial, we should clarify one point about variable substitutions and path components.

+

In string plugs, both environment variables and Context Variables use the same variable substitution syntax: ${variable}. It bears reminding you that they are not, however, the same. Context Variables can be modified during the node graph’s execution, while control over environment variables is outside Gaffer’s scope.

+

In the application, you can test whether a string will substitute for an environment variable in the Python Editor, like so:

+
import os
+
+"GAFFER_ROOT" in os.environ  # True
+"projectResources" in os.environ  # False
+
+
+

Notice how this is standard Python, and the lack of ${} characters.

+

If your studio uses environments variables to define file system directories or path components, it might be a better choice to use them, rather than global Context Variables, in your file paths inside graphs.

+
+
+

Quick recap

+

Adding custom global Context Variables to your node graphs is a fairly simple affair. With them, you can add any typed value, such as strings, and introduce modularity to your graphs’ default values.

+

In the next part of this tutorial, we will demonstrate some actual GUI modification, with a startup config that adds bookmarks to Gaffer’s file browsers.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialStartupConfig2/index.html b/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialStartupConfig2/index.html new file mode 100644 index 000000000..a361af14c --- /dev/null +++ b/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialStartupConfig2/index.html @@ -0,0 +1,685 @@ + + + + + + + Tutorial: Startup Config 2; Custom Bookmarks — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Tutorial: Startup Config 2; Custom Bookmarks

+

In this second startup config of the tutorial, we will add default path bookmarks to Gaffer’s file browsers.

+

+

In the file browsers inside the Gaffer application, users have the option of bookmarking file paths. In a studio pipeline, it could be beneficial to provide artists with some centrally-deployed bookmarks to relevant locations on the file system. Giving every artist a common set – or a project-specific set – of bookmarks could help standardize their workflows. User path bookmarks are maintained separately from default bookmarks, so the artists’ personal bookmarks would not be at risk.

+

With GUI again as our target app, this config will:

+
    +
  • Add a default bookmark, available to all file browsers in Gaffer.

  • +
  • Add a category-specific default bookmark, available only to image-related file browsers.

  • +
  • Set the starting directory for image-related file browsers.

  • +
+
+

customBookmarks.py

+

Copy this code to a new a customBookmarks.py file in ~/gaffer/startup/gui:

+
 1import os
+ 2import Gaffer
+ 3import GafferUI
+ 4
+ 5bookmarks = GafferUI.Bookmarks.acquire( application )
+ 6resourcesPath = os.path.expandvars( "$GAFFER_ROOT/resources" )
+ 7bookmarks.add( "Resources", resourcesPath )
+ 8
+ 9bookmarks = GafferUI.Bookmarks.acquire( application, category = "image" )
+10picturesPath = os.path.expandvars( "$HOME/Pictures" )
+11bookmarks.add( "Pictures", picturesPath )
+
+
+

Let’s break down what this config does.

+
+

Adding a default bookmark

+

Path bookmarks exist separately in each application instance, so we must first acquire the bookmarks from the the correct Gaffer window. We do this by passing the special application variable to the acquire method:

+
5bookmarks = GafferUI.Bookmarks.acquire( application )
+
+
+

Then, we simply pass a name for the bookmark and a file system path using the add() method.

+
+

Important

+

+Bookmarks are stored as plain strings, not typed plugs. Any variable substitutions therein must be formatted like they would be in a terminal, without curly braces (for example, $variable).

+
+

Since we’re targeting the Gaffer installation directory, we use the $GAFFER_ROOT variable substitution to stand in for the GAFFER_ROOT environment variable, and expand it using a standard Python method:

+
6resourcesPath = os.path.expandvars( "$GAFFER_ROOT/resources" )
+7bookmarks.add( "Resources", resourcesPath )
+
+
+

That’s all we need to add a default bookmark to Gaffer’s file browsers. Try testing the config:

+
    +
  1. If you haven’t already, save customBookmarks.py, then launch a new instance of Gaffer.

  2. +
  3. Create a SceneReader node (Scene > File > Reader).

  4. +
  5. In the Node Editor, click .

  6. +
  7. In the file browser, click .

  8. +
+

If all goes well, Resources should be in the list of bookmarks:

+

+

You may have noticed that we used a global Context Variable for a path in the first startup config of this tutorial, but not here. The reason is simply that global Context Variables are plugs stored per-node graph, whereas path bookmarks are stored in the application.

+
+
+

Adding a category-specific default bookmark

+

The next section of the code adds another default bookmark, but this time to a specific category, which is a string keyword you can associate with various parts of the GUI. If a node has a category that matches a bookmark’s category, file browsers for that node will contain that bookmark.

+

To add a bookmark to a category, we acquire all of the application’s the bookmarks like before, only we provide a string as the category keyword argument. The category keyword for the default image nodes is simply image`.

+
 9bookmarks = GafferUI.Bookmarks.acquire( application, category = "image" )
+10picturesPath = os.path.expandvars( "$HOME/Pictures" )
+11bookmarks.add( "Pictures", picturesPath )
+
+
+

This should bookmark your ~/Pictures direcotry for all image node file browsers. Try testing it:

+
    +
  1. Create a Catalogue node.

  2. +
  3. In the Node Editor, In the Images tab, click .

  4. +
  5. In the file browser, click . Pictures should be in the list of bookmarks.

  6. +
+

+

Since this points to a directory in the user’s home folder, this isn’t the most realistic example for a bookmark in a studio pipeline, but it should provide an example basis from which to incorporate your own asset and resource locations as bookmarks. Using Python string manipulation, you can compose multi-component strings from several Context Variables or environment variables that point to locations in your file system.

+
+
+

Setting the file browser default path

+

When you open the file browser for an empty string plug, it begins at a default path. This path is actually another bookmark, which you can also change through the API. Let’s try setting the default path for all image nodes.

+

Since the bookmarks variable we declared earlier only contains bookmarks belonging to the image category, and we already have the picturesPath variable that points to ~/Pictures, we can reuse both in combination with the setDefault() method.

+

Add the following to the end of the config:

+
12bookmarks.setDefault( picturesPath )
+
+
+

Now, try testing an image node’s default file browser path:

+
    +
  1. Save customBookmarks.py, then launch a new instance of Gaffer.

  2. +
  3. Create a Catalogue node.

  4. +
  5. In the Node Editor, in the Images tab, click .

  6. +
+

If all goes well, the file path should default to ~/Pictures.

+

+
+

Caution

+

+We recommend removing this last line from the config, as it will override the default file browser paths for image nodes with an unrealistic filesystem path that has little utility in a studio environment.

+
+
+
+
+

Quick recap

+

As you can see, the runtime Python objects of an app, in this case the GUI’s bookmarks, can be modified easily with startup configs. In the last startup config of this tutorial, we will edit the node menu by adding a custom node to it.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialStartupConfig3/index.html b/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialStartupConfig3/index.html new file mode 100644 index 000000000..6f140f1f1 --- /dev/null +++ b/1.4.6.0/WorkingWithThePythonScriptingAPI/TutorialStartupConfig3/index.html @@ -0,0 +1,690 @@ + + + + + + + Tutorial: Startup Config 3; Custom Node Menu Entries — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Tutorial: Startup Config 3; Custom Node Menu Entries

+

In this final part of the multi-part startup config tutorial, we will demonstrate a startup config that adds a custom entry to the node menu.

+

+

For your convenience, we’ve shipped Gaffer with a “MacbethTexture” reference graph. Using OSL, this reference procedurally generates a texture of a Macbeth chart on-the-fly, which should come in handy in lookdev and lighting graphs. Our custom node menu entry will insert a Reference node, and then load this reference graph.

+

From a user’s perspective, the node’s custom icon, colour, name, and its presence in the node menu will make it appear and behave like it came from a compiled module. Since it is merely a disguised Reference node, no additional code development or compilation was actually needed to build it. Its only requirement is that the end user or system has the reference graph on disk (already fulfilled, since we will use a reference that shipped with Gaffer). In a studio context, a node menu entry like this would require the reference file to be distributed on the file system, or otherwise shared in some way.

+

We hope that you can use this config as a springboard for adding other custom entries to the node menu. With this solution’s simplicity, TDs and artists alike can publish new nodes and add them to the menu.

+
+

customNodes.py

+

As with the other startup configs in this tutorial, this one will run in the GUI app. Copy this code to a new customNodes.py file in ~/gaffer/startup/gui:

+
 1import Gaffer
+ 2import GafferUI
+ 3import os
+ 4
+ 5def __macbethTexture() :
+ 6
+ 7    return Gaffer.Reference( "MacbethTexture" )
+ 8
+ 9def __macbethTexturePostCreator( node, menu ) :
+10
+11    node.load(
+12            os.path.expandvars( "$GAFFER_ROOT/resources/examples/references/macbethTexture.grf" )
+13    )
+14
+15nodeMenu = GafferUI.NodeMenu.acquire( application )
+16nodeMenu.append(
+17    path = "/Custom/MacbethTexture",
+18    nodeCreator = __macbethTexture,
+19    postCreator = __macbethTexturePostCreator,
+20    searchText = "MacbethTexture"
+21)
+
+
+

There are three parts to this simple config: a function for adding a node, a function for modifying the node after it’s created, and the call that adds these functions to the node menu. Let’s take a quick look at each.

+
+

The node creation function

+

After importing the necessary modules, the first and simplest step is to declare the menu function. When the user selects the custom entry from the node menu, this is the function that the menu calls. All this function must do is return a node type. It has no relevant arguments for us here.

+
5def __macbethTexture() :
+6
+7    return Gaffer.Reference( "MacbethTexture" )
+
+
+

There is one small detail we should note. On load, references can modify their containing Reference node’s UI metadata, but not the node’s name. We therefore have to set the node’s name ourselves (line 8, MacbethTexture). Otherwise, the node would appear in the graph with the generic name Reference. The same must be done when renaming any standard node.

+
+
+

The node post-creation function

+

Next, onto the post-creation function, which modifies the recently-created node. It requires two implicit keyword arguments, node and menu. The first simply refers to the node. The second refers to the node menu, which we will cover in the next section. For this entry, all we need to do is load a reference script into our new Reference node:

+
 9def __macbethTexturePostCreator( node, menu ) :
+10
+11    node.load(
+12            os.path.expandvars( "$GAFFER_ROOT/resources/examples/references/macbethTexture.grf" )
+13    )
+
+
+
+

Tip

+

You may have noticed that on line 12 we use os.path.expandvars to expand $GAFFER_ROOT. If you kept the startup config from Part 1 of this tutorial, you can instead use:

+
11resourcesPath = script["variables"]["projectResources"]["value"].getValue()
+12node.load( resourcesPath + "/examples/references/macbethTexture.grf" )
+
+
+

With this approach, you can integrate contextual paths from your pipeline directly into the config.

+
+

In this particular example of a node menu function, we don’t modify any of the node’s plugs, but we could – such as automatically setting its Mode plug to 1. Any such additional node customization would go into the function, here.

+
+
+

Adding the functions to the node menu

+

To finish the config, we add both functions to the node menu. This part is as simple as grabbing calling append() on the node menu itself:

+
15nodeMenu = GafferUI.NodeMenu.acquire( application )
+16nodeMenu.append(
+17    path = "/Custom/MacbethTexture",
+18    nodeCreator = __macbethTexture,
+19    postCreator = __macbethTexturePostCreator,
+20    searchText = "MacbethTexture"
+21)
+
+
+

Line 14 merely grabs the node menu object from the application variable. Recall that we did the same in the custom bookmarks startup config.

+

The append() convenience method is quite useful, as it wraps several other behind-the-scenes utility functions and makes the node’s creation undoable. We pass four arguments to it:

+
    +
  1. path: The path to the node within the node menu’s hierarchy. Each position in the hierarchy is separated by a forward slash. If a parent position doesn’t exist yet, it will be created automatically.

  2. +
  3. nodeCreator: The node creation function. We don’t pass any arguments to it.

  4. +
  5. postCreator: The node post-creation function. We don’t pass any arguments to this one, either, but both the node and the menu itself are implicitly passed to it; recall the node and menu keyword arguments we mentioned earlier.

  6. +
  7. searchText: The menu entry’s keyword search text. This is typically the same as the node name. Capitalization is ignored.

  8. +
+

That’s all! You can add more customized nodes to this config with similar ease, as long as each is managed by its own separate function and registered to the node menu with an append() call.

+
+
+
+

Testing the node menu entry

+

Let’s try testing the custom node. If you haven’t already, save the startup config, then launch a new instance of Gaffer. In the Graph Editor, the new entry should appear in the node menu under Custom > MacbethTexture, and will create a MacbethTexture node when selected.

+

+
+
+

Example graphs

+
+

Macbeth chart

+

+

This can be loaded in Gaffer from Help > Examples > Rendering > Macbeth Chart.

+

A scene with a simulated Macbeth chart using the custom node in this tutorial.

+
+
+
+

Recap

+

Each of the three startup configs in this tutorial series provided relatively simple examples, but we hope to have demonstrated that with just a bit of Python and a few files, you can easily customize the startup of the Gaffer’s apps to suit your worklflow and pipeline needs.

+
+
+

See also

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/WorkingWithThePythonScriptingAPI/index.html b/1.4.6.0/WorkingWithThePythonScriptingAPI/index.html new file mode 100644 index 000000000..6ec5b521f --- /dev/null +++ b/1.4.6.0/WorkingWithThePythonScriptingAPI/index.html @@ -0,0 +1,607 @@ + + + + + + + Working with the Python Scripting API — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Working with the Python Scripting API
  • +
  • +
  • +
+
+
+
+
+ +
+

Working with the Python Scripting API

+

With its core architecture built from a combination of C++ and Python, Gaffer ships with a convenient Python scripting API. A significant portion of the project uses Python: nodes are exposed to Python in the main application, the node graph file formats are Python scripts, much of the GUI is written in Python, and the various Gaffer applications are configured by Python scripts. Through the main application’s built-in Python Editor, you can interactively build and modify the node graph, test expressions, and inspect data. What’s more, with a modicum of knowledge in Python and the Gaffer architecture, you can configure and customize each Gaffer application to suit your studio or pipeline needs.

+
+

Important

+

+With regards to node graphs, do not confuse the use of the scripting API with expressions inside Expression nodes. The scripting API can be applied in the main application to interactively modify, inspect, test, and debug a node graph. Expressions, on the other hand, are bits of code stored on Expression nodes inside a graph, that allow you to dynamically change plug values during the graph’s execution.

+
+
+

Python scripting in graphs

+

In Gaffer, a script is a set of serial Python instructions for building a node graph. When Gaffer saves a .gfr or .grf file, the script serializer traverses the nodes, connections, and plug values, and assembles a series of Python instructions to recreate the graph later. Serialization also comes into play when you copy and paste nodes. If you copy nodes from a graph and paste the clipboard into a text editor, the resulting text will be the recipe for those nodes in Python.

+

Gaffer node graphs are stored on disk as Python scripts with the .gfr file extension. References stored on disk are also Python scripts, but with the .grf extension and a slightly different structure.

+

Do not confuse scripts with active node graphs or expressions: when a node graph is open in Gaffer, or in the middle of executing, its nodes and plugs are stored in memory as C++ objects. All a scripts does is provide a list of instructions Gaffer on how to build a graph, which Gaffer can interpret.

+
+
+

Python scripting API basics

+ +
+
+

Intermediate Python scripting API

+ + +
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/_images/activeRenderPass.png b/1.4.6.0/_images/activeRenderPass.png new file mode 100644 index 000000000..194ca82fb Binary files /dev/null and b/1.4.6.0/_images/activeRenderPass.png differ diff --git a/1.4.6.0/_images/addObjects.png b/1.4.6.0/_images/addObjects.png new file mode 100644 index 000000000..164b0b084 Binary files /dev/null and b/1.4.6.0/_images/addObjects.png differ diff --git a/1.4.6.0/_images/blank.png b/1.4.6.0/_images/blank.png new file mode 100644 index 000000000..dd67766c9 Binary files /dev/null and b/1.4.6.0/_images/blank.png differ diff --git a/1.4.6.0/_images/bookmarks.png b/1.4.6.0/_images/bookmarks.png new file mode 100644 index 000000000..3b1f2f7ea Binary files /dev/null and b/1.4.6.0/_images/bookmarks.png differ diff --git a/1.4.6.0/_images/cameraOff.png b/1.4.6.0/_images/cameraOff.png new file mode 100644 index 000000000..0c3948299 Binary files /dev/null and b/1.4.6.0/_images/cameraOff.png differ diff --git a/1.4.6.0/_images/collapsibleArrowRight.png b/1.4.6.0/_images/collapsibleArrowRight.png new file mode 100644 index 000000000..2aebdcf82 Binary files /dev/null and b/1.4.6.0/_images/collapsibleArrowRight.png differ diff --git a/1.4.6.0/_images/conceptContextsContextVariablesInExpressions.png b/1.4.6.0/_images/conceptContextsContextVariablesInExpressions.png new file mode 100644 index 000000000..b68f8e243 Binary files /dev/null and b/1.4.6.0/_images/conceptContextsContextVariablesInExpressions.png differ diff --git a/1.4.6.0/_images/conceptContextsContextVariablesInExpressionsNodeEditor.png b/1.4.6.0/_images/conceptContextsContextVariablesInExpressionsNodeEditor.png new file mode 100644 index 000000000..3f4a1ac8a Binary files /dev/null and b/1.4.6.0/_images/conceptContextsContextVariablesInExpressionsNodeEditor.png differ diff --git a/1.4.6.0/_images/conceptContextsEditorFocus.png b/1.4.6.0/_images/conceptContextsEditorFocus.png new file mode 100644 index 000000000..7eaa8a2ce Binary files /dev/null and b/1.4.6.0/_images/conceptContextsEditorFocus.png differ diff --git a/1.4.6.0/_images/conceptContextsInParallelBranches.png b/1.4.6.0/_images/conceptContextsInParallelBranches.png new file mode 100644 index 000000000..d9738ad13 Binary files /dev/null and b/1.4.6.0/_images/conceptContextsInParallelBranches.png differ diff --git a/1.4.6.0/_images/conceptContextsInParallelBranchesDownstream.png b/1.4.6.0/_images/conceptContextsInParallelBranchesDownstream.png new file mode 100644 index 000000000..9fb710104 Binary files /dev/null and b/1.4.6.0/_images/conceptContextsInParallelBranchesDownstream.png differ diff --git a/1.4.6.0/_images/conceptContextsInParallelBranchesDownstreamNodeEditor.png b/1.4.6.0/_images/conceptContextsInParallelBranchesDownstreamNodeEditor.png new file mode 100644 index 000000000..c53ca5dec Binary files /dev/null and b/1.4.6.0/_images/conceptContextsInParallelBranchesDownstreamNodeEditor.png differ diff --git a/1.4.6.0/_images/conceptContextsInParallelBranchesNodeEditor.png b/1.4.6.0/_images/conceptContextsInParallelBranchesNodeEditor.png new file mode 100644 index 000000000..0068f7dc7 Binary files /dev/null and b/1.4.6.0/_images/conceptContextsInParallelBranchesNodeEditor.png differ diff --git a/1.4.6.0/_images/conceptContextsQueryingResults.png b/1.4.6.0/_images/conceptContextsQueryingResults.png new file mode 100644 index 000000000..fb800f5df Binary files /dev/null and b/1.4.6.0/_images/conceptContextsQueryingResults.png differ diff --git a/1.4.6.0/_images/conceptContextsQueryingResultsFixedPythonEditor.png b/1.4.6.0/_images/conceptContextsQueryingResultsFixedPythonEditor.png new file mode 100644 index 000000000..656f8222b Binary files /dev/null and b/1.4.6.0/_images/conceptContextsQueryingResultsFixedPythonEditor.png differ diff --git a/1.4.6.0/_images/conceptContextsQueryingResultsPythonEditor.png b/1.4.6.0/_images/conceptContextsQueryingResultsPythonEditor.png new file mode 100644 index 000000000..d73453c2c Binary files /dev/null and b/1.4.6.0/_images/conceptContextsQueryingResultsPythonEditor.png differ diff --git a/1.4.6.0/_images/conceptContextsQueryingResultsSceneInspector.png b/1.4.6.0/_images/conceptContextsQueryingResultsSceneInspector.png new file mode 100644 index 000000000..086c5e3e2 Binary files /dev/null and b/1.4.6.0/_images/conceptContextsQueryingResultsSceneInspector.png differ diff --git a/1.4.6.0/_images/conceptContextsRandomNode1.png b/1.4.6.0/_images/conceptContextsRandomNode1.png new file mode 100644 index 000000000..8a7ccefd1 Binary files /dev/null and b/1.4.6.0/_images/conceptContextsRandomNode1.png differ diff --git a/1.4.6.0/_images/conceptContextsRandomNode2.png b/1.4.6.0/_images/conceptContextsRandomNode2.png new file mode 100644 index 000000000..b4bff8798 Binary files /dev/null and b/1.4.6.0/_images/conceptContextsRandomNode2.png differ diff --git a/1.4.6.0/_images/conceptContextsRandomNode2NodeEditor.png b/1.4.6.0/_images/conceptContextsRandomNode2NodeEditor.png new file mode 100644 index 000000000..43943ed83 Binary files /dev/null and b/1.4.6.0/_images/conceptContextsRandomNode2NodeEditor.png differ diff --git a/1.4.6.0/_images/conceptContextsReadingContextVariable.png b/1.4.6.0/_images/conceptContextsReadingContextVariable.png new file mode 100644 index 000000000..25b0d127f Binary files /dev/null and b/1.4.6.0/_images/conceptContextsReadingContextVariable.png differ diff --git a/1.4.6.0/_images/conceptPerformanceBestPracticesContextsGraphEditor.png b/1.4.6.0/_images/conceptPerformanceBestPracticesContextsGraphEditor.png new file mode 100644 index 000000000..a5b1b626e Binary files /dev/null and b/1.4.6.0/_images/conceptPerformanceBestPracticesContextsGraphEditor.png differ diff --git a/1.4.6.0/_images/conceptPerformanceBestPracticesContextsImprovedStats.png b/1.4.6.0/_images/conceptPerformanceBestPracticesContextsImprovedStats.png new file mode 100644 index 000000000..501aa8677 Binary files /dev/null and b/1.4.6.0/_images/conceptPerformanceBestPracticesContextsImprovedStats.png differ diff --git a/1.4.6.0/_images/conceptPerformanceBestPracticesContextsStats.png b/1.4.6.0/_images/conceptPerformanceBestPracticesContextsStats.png new file mode 100644 index 000000000..20812e333 Binary files /dev/null and b/1.4.6.0/_images/conceptPerformanceBestPracticesContextsStats.png differ diff --git a/1.4.6.0/_images/conceptPerformanceBestPracticesContextsViewer.png b/1.4.6.0/_images/conceptPerformanceBestPracticesContextsViewer.png new file mode 100644 index 000000000..69f7e95fa Binary files /dev/null and b/1.4.6.0/_images/conceptPerformanceBestPracticesContextsViewer.png differ diff --git a/1.4.6.0/_images/editorFocusMenuFocusNode.png b/1.4.6.0/_images/editorFocusMenuFocusNode.png new file mode 100644 index 000000000..2210fa17c Binary files /dev/null and b/1.4.6.0/_images/editorFocusMenuFocusNode.png differ diff --git a/1.4.6.0/_images/editorFocusMenuNodeSelection.png b/1.4.6.0/_images/editorFocusMenuNodeSelection.png new file mode 100644 index 000000000..005dea814 Binary files /dev/null and b/1.4.6.0/_images/editorFocusMenuNodeSelection.png differ diff --git a/1.4.6.0/_images/exampleAnamorphicCameraSetup.png b/1.4.6.0/_images/exampleAnamorphicCameraSetup.png new file mode 100644 index 000000000..3e45a39e1 Binary files /dev/null and b/1.4.6.0/_images/exampleAnamorphicCameraSetup.png differ diff --git a/1.4.6.0/_images/exampleBoxBasics.png b/1.4.6.0/_images/exampleBoxBasics.png new file mode 100644 index 000000000..5b324fae2 Binary files /dev/null and b/1.4.6.0/_images/exampleBoxBasics.png differ diff --git a/1.4.6.0/_images/exampleGaffyAttacksResults.png b/1.4.6.0/_images/exampleGaffyAttacksResults.png new file mode 100644 index 000000000..0859c6e51 Binary files /dev/null and b/1.4.6.0/_images/exampleGaffyAttacksResults.png differ diff --git a/1.4.6.0/_images/exampleGaffyAttacksScene.png b/1.4.6.0/_images/exampleGaffyAttacksScene.png new file mode 100644 index 000000000..ba270d1a4 Binary files /dev/null and b/1.4.6.0/_images/exampleGaffyAttacksScene.png differ diff --git a/1.4.6.0/_images/exampleLightLinkingBasics.png b/1.4.6.0/_images/exampleLightLinkingBasics.png new file mode 100644 index 000000000..d5c0e3a72 Binary files /dev/null and b/1.4.6.0/_images/exampleLightLinkingBasics.png differ diff --git a/1.4.6.0/_images/exampleLightLinkingCityAttack.png b/1.4.6.0/_images/exampleLightLinkingCityAttack.png new file mode 100644 index 000000000..6317b5db3 Binary files /dev/null and b/1.4.6.0/_images/exampleLightLinkingCityAttack.png differ diff --git a/1.4.6.0/_images/exampleMacbethChart.png b/1.4.6.0/_images/exampleMacbethChart.png new file mode 100644 index 000000000..9bc31f794 Binary files /dev/null and b/1.4.6.0/_images/exampleMacbethChart.png differ diff --git a/1.4.6.0/_images/exampleMultiShotRenderSpreadsheet.png b/1.4.6.0/_images/exampleMultiShotRenderSpreadsheet.png new file mode 100644 index 000000000..f7a1372a1 Binary files /dev/null and b/1.4.6.0/_images/exampleMultiShotRenderSpreadsheet.png differ diff --git a/1.4.6.0/_images/examplePerLocationLightTweakSpreadsheet.png b/1.4.6.0/_images/examplePerLocationLightTweakSpreadsheet.png new file mode 100644 index 000000000..35f2cc65f Binary files /dev/null and b/1.4.6.0/_images/examplePerLocationLightTweakSpreadsheet.png differ diff --git a/1.4.6.0/_images/examplePerLocationTransformSpreadsheet.png b/1.4.6.0/_images/examplePerLocationTransformSpreadsheet.png new file mode 100644 index 000000000..24fd1c583 Binary files /dev/null and b/1.4.6.0/_images/examplePerLocationTransformSpreadsheet.png differ diff --git a/1.4.6.0/_images/exampleSphericalCameraSetupArnold.png b/1.4.6.0/_images/exampleSphericalCameraSetupArnold.png new file mode 100644 index 000000000..7f1bbb9a6 Binary files /dev/null and b/1.4.6.0/_images/exampleSphericalCameraSetupArnold.png differ diff --git a/1.4.6.0/_images/exampleSphericalCameraSetupArnoldTweaks.png b/1.4.6.0/_images/exampleSphericalCameraSetupArnoldTweaks.png new file mode 100644 index 000000000..714950535 Binary files /dev/null and b/1.4.6.0/_images/exampleSphericalCameraSetupArnoldTweaks.png differ diff --git a/1.4.6.0/_images/gafferImageCoordinates.png b/1.4.6.0/_images/gafferImageCoordinates.png new file mode 100644 index 000000000..98e168874 Binary files /dev/null and b/1.4.6.0/_images/gafferImageCoordinates.png differ diff --git a/1.4.6.0/_images/gafferImageWindows.png b/1.4.6.0/_images/gafferImageWindows.png new file mode 100644 index 000000000..ba410bfc1 Binary files /dev/null and b/1.4.6.0/_images/gafferImageWindows.png differ diff --git a/1.4.6.0/_images/gafferSceneUICameraTool.png b/1.4.6.0/_images/gafferSceneUICameraTool.png new file mode 100644 index 000000000..9e7a4794c Binary files /dev/null and b/1.4.6.0/_images/gafferSceneUICameraTool.png differ diff --git a/1.4.6.0/_images/gafferSceneUIRotateTool.png b/1.4.6.0/_images/gafferSceneUIRotateTool.png new file mode 100644 index 000000000..e2e6d18cf Binary files /dev/null and b/1.4.6.0/_images/gafferSceneUIRotateTool.png differ diff --git a/1.4.6.0/_images/gafferSceneUIRotateTool1.png b/1.4.6.0/_images/gafferSceneUIRotateTool1.png new file mode 100644 index 000000000..e2e6d18cf Binary files /dev/null and b/1.4.6.0/_images/gafferSceneUIRotateTool1.png differ diff --git a/1.4.6.0/_images/gafferSceneUITranslateTool.png b/1.4.6.0/_images/gafferSceneUITranslateTool.png new file mode 100644 index 000000000..fdfd104de Binary files /dev/null and b/1.4.6.0/_images/gafferSceneUITranslateTool.png differ diff --git a/1.4.6.0/_images/gafferSceneUITranslateTool1.png b/1.4.6.0/_images/gafferSceneUITranslateTool1.png new file mode 100644 index 000000000..fdfd104de Binary files /dev/null and b/1.4.6.0/_images/gafferSceneUITranslateTool1.png differ diff --git a/1.4.6.0/_images/gear.png b/1.4.6.0/_images/gear.png new file mode 100644 index 000000000..4dda21b0e Binary files /dev/null and b/1.4.6.0/_images/gear.png differ diff --git a/1.4.6.0/_images/gear1.png b/1.4.6.0/_images/gear1.png new file mode 100644 index 000000000..4dda21b0e Binary files /dev/null and b/1.4.6.0/_images/gear1.png differ diff --git a/1.4.6.0/_images/graphEditorAllNodes.png b/1.4.6.0/_images/graphEditorAllNodes.png new file mode 100644 index 000000000..7827cef5b Binary files /dev/null and b/1.4.6.0/_images/graphEditorAllNodes.png differ diff --git a/1.4.6.0/_images/graphEditorBackgroundLightNode.png b/1.4.6.0/_images/graphEditorBackgroundLightNode.png new file mode 100644 index 000000000..a57208e11 Binary files /dev/null and b/1.4.6.0/_images/graphEditorBackgroundLightNode.png differ diff --git a/1.4.6.0/_images/graphEditorFirstShaderNodes.png b/1.4.6.0/_images/graphEditorFirstShaderNodes.png new file mode 100644 index 000000000..19165b993 Binary files /dev/null and b/1.4.6.0/_images/graphEditorFirstShaderNodes.png differ diff --git a/1.4.6.0/_images/graphEditorGroupConnections.png b/1.4.6.0/_images/graphEditorGroupConnections.png new file mode 100644 index 000000000..c8664ff63 Binary files /dev/null and b/1.4.6.0/_images/graphEditorGroupConnections.png differ diff --git a/1.4.6.0/_images/graphEditorGroupFirst.png b/1.4.6.0/_images/graphEditorGroupFirst.png new file mode 100644 index 000000000..57e527805 Binary files /dev/null and b/1.4.6.0/_images/graphEditorGroupFirst.png differ diff --git a/1.4.6.0/_images/graphEditorGroupSecond.png b/1.4.6.0/_images/graphEditorGroupSecond.png new file mode 100644 index 000000000..66fe54488 Binary files /dev/null and b/1.4.6.0/_images/graphEditorGroupSecond.png differ diff --git a/1.4.6.0/_images/graphEditorPathFilterNode.png b/1.4.6.0/_images/graphEditorPathFilterNode.png new file mode 100644 index 000000000..e1ab95b7b Binary files /dev/null and b/1.4.6.0/_images/graphEditorPathFilterNode.png differ diff --git a/1.4.6.0/_images/graphEditorRearrangedNodes.png b/1.4.6.0/_images/graphEditorRearrangedNodes.png new file mode 100644 index 000000000..1e7e356bb Binary files /dev/null and b/1.4.6.0/_images/graphEditorRearrangedNodes.png differ diff --git a/1.4.6.0/_images/graphEditorRenderSettings.png b/1.4.6.0/_images/graphEditorRenderSettings.png new file mode 100644 index 000000000..c41c14e58 Binary files /dev/null and b/1.4.6.0/_images/graphEditorRenderSettings.png differ diff --git a/1.4.6.0/_images/graphEditorSecondShaderNodes.png b/1.4.6.0/_images/graphEditorSecondShaderNodes.png new file mode 100644 index 000000000..104842c79 Binary files /dev/null and b/1.4.6.0/_images/graphEditorSecondShaderNodes.png differ diff --git a/1.4.6.0/_images/graphEditorShaderAssignmentConnections.png b/1.4.6.0/_images/graphEditorShaderAssignmentConnections.png new file mode 100644 index 000000000..fd39cfd36 Binary files /dev/null and b/1.4.6.0/_images/graphEditorShaderAssignmentConnections.png differ diff --git a/1.4.6.0/_images/hierarchyView.png b/1.4.6.0/_images/hierarchyView.png new file mode 100644 index 000000000..9fbc4827c Binary files /dev/null and b/1.4.6.0/_images/hierarchyView.png differ diff --git a/1.4.6.0/_images/hierarchyViewExpandedTwoLevels.png b/1.4.6.0/_images/hierarchyViewExpandedTwoLevels.png new file mode 100644 index 000000000..a8c5d9d74 Binary files /dev/null and b/1.4.6.0/_images/hierarchyViewExpandedTwoLevels.png differ diff --git a/1.4.6.0/_images/illustrationApertureOffset.png b/1.4.6.0/_images/illustrationApertureOffset.png new file mode 100644 index 000000000..2ee83ca98 Binary files /dev/null and b/1.4.6.0/_images/illustrationApertureOffset.png differ diff --git a/1.4.6.0/_images/illustrationBoxBasics.png b/1.4.6.0/_images/illustrationBoxBasics.png new file mode 100644 index 000000000..45756f133 Binary files /dev/null and b/1.4.6.0/_images/illustrationBoxBasics.png differ diff --git a/1.4.6.0/_images/illustrationBoxInBoxOutNodes.png b/1.4.6.0/_images/illustrationBoxInBoxOutNodes.png new file mode 100644 index 000000000..221b3c0f1 Binary files /dev/null and b/1.4.6.0/_images/illustrationBoxInBoxOutNodes.png differ diff --git a/1.4.6.0/_images/illustrationBoxNesting.png b/1.4.6.0/_images/illustrationBoxNesting.png new file mode 100644 index 000000000..d541b5051 Binary files /dev/null and b/1.4.6.0/_images/illustrationBoxNesting.png differ diff --git a/1.4.6.0/_images/illustrationBoxReferences.png b/1.4.6.0/_images/illustrationBoxReferences.png new file mode 100644 index 000000000..d49624eee Binary files /dev/null and b/1.4.6.0/_images/illustrationBoxReferences.png differ diff --git a/1.4.6.0/_images/illustrationBoxUses.png b/1.4.6.0/_images/illustrationBoxUses.png new file mode 100644 index 000000000..a1e674774 Binary files /dev/null and b/1.4.6.0/_images/illustrationBoxUses.png differ diff --git a/1.4.6.0/_images/illustrationCameraDataFlow.png b/1.4.6.0/_images/illustrationCameraDataFlow.png new file mode 100644 index 000000000..5e63c9a78 Binary files /dev/null and b/1.4.6.0/_images/illustrationCameraDataFlow.png differ diff --git a/1.4.6.0/_images/illustrationCamerasRealCG.png b/1.4.6.0/_images/illustrationCamerasRealCG.png new file mode 100644 index 000000000..c3897c37e Binary files /dev/null and b/1.4.6.0/_images/illustrationCamerasRealCG.png differ diff --git a/1.4.6.0/_images/illustrationContextsFlow.png b/1.4.6.0/_images/illustrationContextsFlow.png new file mode 100644 index 000000000..15f3d0964 Binary files /dev/null and b/1.4.6.0/_images/illustrationContextsFlow.png differ diff --git a/1.4.6.0/_images/illustrationContextsSlices.png b/1.4.6.0/_images/illustrationContextsSlices.png new file mode 100644 index 000000000..b39dd5294 Binary files /dev/null and b/1.4.6.0/_images/illustrationContextsSlices.png differ diff --git a/1.4.6.0/_images/illustrationDepthOfField.png b/1.4.6.0/_images/illustrationDepthOfField.png new file mode 100644 index 000000000..c29a86444 Binary files /dev/null and b/1.4.6.0/_images/illustrationDepthOfField.png differ diff --git a/1.4.6.0/_images/illustrationLightLinking.png b/1.4.6.0/_images/illustrationLightLinking.png new file mode 100644 index 000000000..ef6924c8d Binary files /dev/null and b/1.4.6.0/_images/illustrationLightLinking.png differ diff --git a/1.4.6.0/_images/illustrationLightLinkingMultipleSets.png b/1.4.6.0/_images/illustrationLightLinkingMultipleSets.png new file mode 100644 index 000000000..526910810 Binary files /dev/null and b/1.4.6.0/_images/illustrationLightLinkingMultipleSets.png differ diff --git a/1.4.6.0/_images/illustrationPerspectiveOrthographic.png b/1.4.6.0/_images/illustrationPerspectiveOrthographic.png new file mode 100644 index 000000000..4ce35c25e Binary files /dev/null and b/1.4.6.0/_images/illustrationPerspectiveOrthographic.png differ diff --git a/1.4.6.0/_images/illustrationPromotedPlug.png b/1.4.6.0/_images/illustrationPromotedPlug.png new file mode 100644 index 000000000..acce64c79 Binary files /dev/null and b/1.4.6.0/_images/illustrationPromotedPlug.png differ diff --git a/1.4.6.0/_images/illustrationSpreadsheetNodePerLocationGeneral.png b/1.4.6.0/_images/illustrationSpreadsheetNodePerLocationGeneral.png new file mode 100644 index 000000000..058cb4a7e Binary files /dev/null and b/1.4.6.0/_images/illustrationSpreadsheetNodePerLocationGeneral.png differ diff --git a/1.4.6.0/_images/illustrationSpreadsheetNodePerLocationSpecific.png b/1.4.6.0/_images/illustrationSpreadsheetNodePerLocationSpecific.png new file mode 100644 index 000000000..bc7977b11 Binary files /dev/null and b/1.4.6.0/_images/illustrationSpreadsheetNodePerLocationSpecific.png differ diff --git a/1.4.6.0/_images/info.png b/1.4.6.0/_images/info.png new file mode 100644 index 000000000..282f88b83 Binary files /dev/null and b/1.4.6.0/_images/info.png differ diff --git a/1.4.6.0/_images/interfaceCameraNode.png b/1.4.6.0/_images/interfaceCameraNode.png new file mode 100644 index 000000000..d911acd4c Binary files /dev/null and b/1.4.6.0/_images/interfaceCameraNode.png differ diff --git a/1.4.6.0/_images/interfaceCameraParameters.png b/1.4.6.0/_images/interfaceCameraParameters.png new file mode 100644 index 000000000..f4b8543e2 Binary files /dev/null and b/1.4.6.0/_images/interfaceCameraParameters.png differ diff --git a/1.4.6.0/_images/interfaceCameraSets.png b/1.4.6.0/_images/interfaceCameraSets.png new file mode 100644 index 000000000..11c629d2e Binary files /dev/null and b/1.4.6.0/_images/interfaceCameraSets.png differ diff --git a/1.4.6.0/_images/interfaceCameraTweaksNode.png b/1.4.6.0/_images/interfaceCameraTweaksNode.png new file mode 100644 index 000000000..1e8cc65ae Binary files /dev/null and b/1.4.6.0/_images/interfaceCameraTweaksNode.png differ diff --git a/1.4.6.0/_images/interfaceCameraVisualizer.png b/1.4.6.0/_images/interfaceCameraVisualizer.png new file mode 100644 index 000000000..1f4550cb1 Binary files /dev/null and b/1.4.6.0/_images/interfaceCameraVisualizer.png differ diff --git a/1.4.6.0/_images/interfaceDefaultLightPlug.png b/1.4.6.0/_images/interfaceDefaultLightPlug.png new file mode 100644 index 000000000..014d295e0 Binary files /dev/null and b/1.4.6.0/_images/interfaceDefaultLightPlug.png differ diff --git a/1.4.6.0/_images/interfaceFrameOverlay.png b/1.4.6.0/_images/interfaceFrameOverlay.png new file mode 100644 index 000000000..f3e305caf Binary files /dev/null and b/1.4.6.0/_images/interfaceFrameOverlay.png differ diff --git a/1.4.6.0/_images/interfaceLightLinkSetupGraphEditor.png b/1.4.6.0/_images/interfaceLightLinkSetupGraphEditor.png new file mode 100644 index 000000000..244ff044b Binary files /dev/null and b/1.4.6.0/_images/interfaceLightLinkSetupGraphEditor.png differ diff --git a/1.4.6.0/_images/interfaceLightSetGraphEditor.png b/1.4.6.0/_images/interfaceLightSetGraphEditor.png new file mode 100644 index 000000000..c006ef874 Binary files /dev/null and b/1.4.6.0/_images/interfaceLightSetGraphEditor.png differ diff --git a/1.4.6.0/_images/interfaceLightSetNodeEditor.png b/1.4.6.0/_images/interfaceLightSetNodeEditor.png new file mode 100644 index 000000000..461df3d45 Binary files /dev/null and b/1.4.6.0/_images/interfaceLightSetNodeEditor.png differ diff --git a/1.4.6.0/_images/interfaceLinkedLightsAttribute.png b/1.4.6.0/_images/interfaceLinkedLightsAttribute.png new file mode 100644 index 000000000..7abfd08c7 Binary files /dev/null and b/1.4.6.0/_images/interfaceLinkedLightsAttribute.png differ diff --git a/1.4.6.0/_images/interfaceLinkedLightsPlug.png b/1.4.6.0/_images/interfaceLinkedLightsPlug.png new file mode 100644 index 000000000..bc5ecb75c Binary files /dev/null and b/1.4.6.0/_images/interfaceLinkedLightsPlug.png differ diff --git a/1.4.6.0/_images/interfacePassthroughPlug.png b/1.4.6.0/_images/interfacePassthroughPlug.png new file mode 100644 index 000000000..0fd5a096b Binary files /dev/null and b/1.4.6.0/_images/interfacePassthroughPlug.png differ diff --git a/1.4.6.0/_images/interfacePythonEditorError.png b/1.4.6.0/_images/interfacePythonEditorError.png new file mode 100644 index 000000000..18526991d Binary files /dev/null and b/1.4.6.0/_images/interfacePythonEditorError.png differ diff --git a/1.4.6.0/_images/interfacePythonEditorOutput.png b/1.4.6.0/_images/interfacePythonEditorOutput.png new file mode 100644 index 000000000..0dfac157c Binary files /dev/null and b/1.4.6.0/_images/interfacePythonEditorOutput.png differ diff --git a/1.4.6.0/_images/interfaceSpreadsheetNode.png b/1.4.6.0/_images/interfaceSpreadsheetNode.png new file mode 100644 index 000000000..91ce450e8 Binary files /dev/null and b/1.4.6.0/_images/interfaceSpreadsheetNode.png differ diff --git a/1.4.6.0/_images/interfaceSpreadsheetNodeAuxiliaryConnections.png b/1.4.6.0/_images/interfaceSpreadsheetNodeAuxiliaryConnections.png new file mode 100644 index 000000000..b3648b93f Binary files /dev/null and b/1.4.6.0/_images/interfaceSpreadsheetNodeAuxiliaryConnections.png differ diff --git a/1.4.6.0/_images/interfaceSpreadsheetNodeBreakdown.png b/1.4.6.0/_images/interfaceSpreadsheetNodeBreakdown.png new file mode 100644 index 000000000..14ae37689 Binary files /dev/null and b/1.4.6.0/_images/interfaceSpreadsheetNodeBreakdown.png differ diff --git a/1.4.6.0/_images/interfaceSpreadsheetNodeColumnSections.png b/1.4.6.0/_images/interfaceSpreadsheetNodeColumnSections.png new file mode 100644 index 000000000..7261f2fbd Binary files /dev/null and b/1.4.6.0/_images/interfaceSpreadsheetNodeColumnSections.png differ diff --git a/1.4.6.0/_images/interfaceSpreadsheetNodeCompoundEnabledSwitch.png b/1.4.6.0/_images/interfaceSpreadsheetNodeCompoundEnabledSwitch.png new file mode 100644 index 000000000..fe1587ead Binary files /dev/null and b/1.4.6.0/_images/interfaceSpreadsheetNodeCompoundEnabledSwitch.png differ diff --git a/1.4.6.0/_images/interfaceSpreadsheetNodeDisabledCell.png b/1.4.6.0/_images/interfaceSpreadsheetNodeDisabledCell.png new file mode 100644 index 000000000..c626ae790 Binary files /dev/null and b/1.4.6.0/_images/interfaceSpreadsheetNodeDisabledCell.png differ diff --git a/1.4.6.0/_images/interfaceSpreadsheetNodeFullName.png b/1.4.6.0/_images/interfaceSpreadsheetNodeFullName.png new file mode 100644 index 000000000..b98b6fdae Binary files /dev/null and b/1.4.6.0/_images/interfaceSpreadsheetNodeFullName.png differ diff --git a/1.4.6.0/_images/interfaceSpreadsheetNodeInterface.png b/1.4.6.0/_images/interfaceSpreadsheetNodeInterface.png new file mode 100644 index 000000000..4ef3619da Binary files /dev/null and b/1.4.6.0/_images/interfaceSpreadsheetNodeInterface.png differ diff --git a/1.4.6.0/_images/interfaceSpreadsheetNodePatternWidths.png b/1.4.6.0/_images/interfaceSpreadsheetNodePatternWidths.png new file mode 100644 index 000000000..e9ad0051e Binary files /dev/null and b/1.4.6.0/_images/interfaceSpreadsheetNodePatternWidths.png differ diff --git a/1.4.6.0/_images/interfaceSpreadsheetNodeRenderNetwork.png b/1.4.6.0/_images/interfaceSpreadsheetNodeRenderNetwork.png new file mode 100644 index 000000000..fc4a8368c Binary files /dev/null and b/1.4.6.0/_images/interfaceSpreadsheetNodeRenderNetwork.png differ diff --git a/1.4.6.0/_images/interfaceUIEditor.png b/1.4.6.0/_images/interfaceUIEditor.png new file mode 100644 index 000000000..efa7354f3 Binary files /dev/null and b/1.4.6.0/_images/interfaceUIEditor.png differ diff --git a/1.4.6.0/_images/layoutButton.png b/1.4.6.0/_images/layoutButton.png new file mode 100644 index 000000000..a49967add Binary files /dev/null and b/1.4.6.0/_images/layoutButton.png differ diff --git a/1.4.6.0/_images/mainCameraNode.png b/1.4.6.0/_images/mainCameraNode.png new file mode 100644 index 000000000..8b7dc6748 Binary files /dev/null and b/1.4.6.0/_images/mainCameraNode.png differ diff --git a/1.4.6.0/_images/mainDefaultLayout.png b/1.4.6.0/_images/mainDefaultLayout.png new file mode 100644 index 000000000..5fd854dec Binary files /dev/null and b/1.4.6.0/_images/mainDefaultLayout.png differ diff --git a/1.4.6.0/_images/mainGroupNode.png b/1.4.6.0/_images/mainGroupNode.png new file mode 100644 index 000000000..b9f67066f Binary files /dev/null and b/1.4.6.0/_images/mainGroupNode.png differ diff --git a/1.4.6.0/_images/mainHeadAndLeftLegExpanded.png b/1.4.6.0/_images/mainHeadAndLeftLegExpanded.png new file mode 100644 index 000000000..4e238416b Binary files /dev/null and b/1.4.6.0/_images/mainHeadAndLeftLegExpanded.png differ diff --git a/1.4.6.0/_images/mainRenderGrey.png b/1.4.6.0/_images/mainRenderGrey.png new file mode 100644 index 000000000..f34c74d67 Binary files /dev/null and b/1.4.6.0/_images/mainRenderGrey.png differ diff --git a/1.4.6.0/_images/mainRenderSettingsWithGap.png b/1.4.6.0/_images/mainRenderSettingsWithGap.png new file mode 100644 index 000000000..0b7a959be Binary files /dev/null and b/1.4.6.0/_images/mainRenderSettingsWithGap.png differ diff --git a/1.4.6.0/_images/mainRenderTwoShaders.png b/1.4.6.0/_images/mainRenderTwoShaders.png new file mode 100644 index 000000000..031d05214 Binary files /dev/null and b/1.4.6.0/_images/mainRenderTwoShaders.png differ diff --git a/1.4.6.0/_images/mainSceneReaderNode.png b/1.4.6.0/_images/mainSceneReaderNode.png new file mode 100644 index 000000000..3d3530e7f Binary files /dev/null and b/1.4.6.0/_images/mainSceneReaderNode.png differ diff --git a/1.4.6.0/_images/mainSceneReaderNodeFocussed.png b/1.4.6.0/_images/mainSceneReaderNodeFocussed.png new file mode 100644 index 000000000..5e728a3f0 Binary files /dev/null and b/1.4.6.0/_images/mainSceneReaderNodeFocussed.png differ diff --git a/1.4.6.0/_images/mainWindowFinalScene.png b/1.4.6.0/_images/mainWindowFinalScene.png new file mode 100644 index 000000000..ce13f79ae Binary files /dev/null and b/1.4.6.0/_images/mainWindowFinalScene.png differ diff --git a/1.4.6.0/_images/mainWindowSphereNode.png b/1.4.6.0/_images/mainWindowSphereNode.png new file mode 100644 index 000000000..2e8021c5e Binary files /dev/null and b/1.4.6.0/_images/mainWindowSphereNode.png differ diff --git a/1.4.6.0/_images/mouseLeftClick.png b/1.4.6.0/_images/mouseLeftClick.png new file mode 100644 index 000000000..554097729 Binary files /dev/null and b/1.4.6.0/_images/mouseLeftClick.png differ diff --git a/1.4.6.0/_images/mouseMiddleClick.png b/1.4.6.0/_images/mouseMiddleClick.png new file mode 100644 index 000000000..17f5e9d94 Binary files /dev/null and b/1.4.6.0/_images/mouseMiddleClick.png differ diff --git a/1.4.6.0/_images/mouseRightClick.png b/1.4.6.0/_images/mouseRightClick.png new file mode 100644 index 000000000..0b284b188 Binary files /dev/null and b/1.4.6.0/_images/mouseRightClick.png differ diff --git a/1.4.6.0/_images/mouseWheelUpDown.png b/1.4.6.0/_images/mouseWheelUpDown.png new file mode 100644 index 000000000..bd79c13b2 Binary files /dev/null and b/1.4.6.0/_images/mouseWheelUpDown.png differ diff --git a/1.4.6.0/_images/nodeEditorOpenGLPlug.png b/1.4.6.0/_images/nodeEditorOpenGLPlug.png new file mode 100644 index 000000000..ad9e13143 Binary files /dev/null and b/1.4.6.0/_images/nodeEditorOpenGLPlug.png differ diff --git a/1.4.6.0/_images/nodeEditorWindowCameraTransform.png b/1.4.6.0/_images/nodeEditorWindowCameraTransform.png new file mode 100644 index 000000000..5587dbc63 Binary files /dev/null and b/1.4.6.0/_images/nodeEditorWindowCameraTransform.png differ diff --git a/1.4.6.0/_images/nodeEditorWindowPerformanceMonitor.png b/1.4.6.0/_images/nodeEditorWindowPerformanceMonitor.png new file mode 100644 index 000000000..f7ddf3ebe Binary files /dev/null and b/1.4.6.0/_images/nodeEditorWindowPerformanceMonitor.png differ diff --git a/1.4.6.0/_images/nodeSetFocusNode.png b/1.4.6.0/_images/nodeSetFocusNode.png new file mode 100644 index 000000000..8e2b53062 Binary files /dev/null and b/1.4.6.0/_images/nodeSetFocusNode.png differ diff --git a/1.4.6.0/_images/nodeSetNodeSelection.png b/1.4.6.0/_images/nodeSetNodeSelection.png new file mode 100644 index 000000000..33a87a50b Binary files /dev/null and b/1.4.6.0/_images/nodeSetNodeSelection.png differ diff --git a/1.4.6.0/_images/nodeSetStandardSet.png b/1.4.6.0/_images/nodeSetStandardSet.png new file mode 100644 index 000000000..1d0e2f773 Binary files /dev/null and b/1.4.6.0/_images/nodeSetStandardSet.png differ diff --git a/1.4.6.0/_images/nodes.png b/1.4.6.0/_images/nodes.png new file mode 100644 index 000000000..ddc0d80ef Binary files /dev/null and b/1.4.6.0/_images/nodes.png differ diff --git a/1.4.6.0/_images/nodes1.png b/1.4.6.0/_images/nodes1.png new file mode 100644 index 000000000..ddc0d80ef Binary files /dev/null and b/1.4.6.0/_images/nodes1.png differ diff --git a/1.4.6.0/_images/objects.png b/1.4.6.0/_images/objects.png new file mode 100644 index 000000000..09552f32a Binary files /dev/null and b/1.4.6.0/_images/objects.png differ diff --git a/1.4.6.0/_images/parameters.png b/1.4.6.0/_images/parameters.png new file mode 100644 index 000000000..753c08533 Binary files /dev/null and b/1.4.6.0/_images/parameters.png differ diff --git a/1.4.6.0/_images/pathChooser.png b/1.4.6.0/_images/pathChooser.png new file mode 100644 index 000000000..4c2b98499 Binary files /dev/null and b/1.4.6.0/_images/pathChooser.png differ diff --git a/1.4.6.0/_images/plug.png b/1.4.6.0/_images/plug.png new file mode 100644 index 000000000..f4fd825f1 Binary files /dev/null and b/1.4.6.0/_images/plug.png differ diff --git a/1.4.6.0/_images/plug1.png b/1.4.6.0/_images/plug1.png new file mode 100644 index 000000000..f4fd825f1 Binary files /dev/null and b/1.4.6.0/_images/plug1.png differ diff --git a/1.4.6.0/_images/plugAdder.png b/1.4.6.0/_images/plugAdder.png new file mode 100644 index 000000000..71f0c5e0d Binary files /dev/null and b/1.4.6.0/_images/plugAdder.png differ diff --git a/1.4.6.0/_images/plus.png b/1.4.6.0/_images/plus.png new file mode 100644 index 000000000..ecc874e91 Binary files /dev/null and b/1.4.6.0/_images/plus.png differ diff --git a/1.4.6.0/_images/plus1.png b/1.4.6.0/_images/plus1.png new file mode 100644 index 000000000..ecc874e91 Binary files /dev/null and b/1.4.6.0/_images/plus1.png differ diff --git a/1.4.6.0/_images/plus2.png b/1.4.6.0/_images/plus2.png new file mode 100644 index 000000000..ecc874e91 Binary files /dev/null and b/1.4.6.0/_images/plus2.png differ diff --git a/1.4.6.0/_images/plus3.png b/1.4.6.0/_images/plus3.png new file mode 100644 index 000000000..ecc874e91 Binary files /dev/null and b/1.4.6.0/_images/plus3.png differ diff --git a/1.4.6.0/_images/plus4.png b/1.4.6.0/_images/plus4.png new file mode 100644 index 000000000..ecc874e91 Binary files /dev/null and b/1.4.6.0/_images/plus4.png differ diff --git a/1.4.6.0/_images/pythonEditorHelloWorld.png b/1.4.6.0/_images/pythonEditorHelloWorld.png new file mode 100644 index 000000000..be2852f67 Binary files /dev/null and b/1.4.6.0/_images/pythonEditorHelloWorld.png differ diff --git a/1.4.6.0/_images/pythonEditorPlugReference.png b/1.4.6.0/_images/pythonEditorPlugReference.png new file mode 100644 index 000000000..fc2e9f0d4 Binary files /dev/null and b/1.4.6.0/_images/pythonEditorPlugReference.png differ diff --git a/1.4.6.0/_images/pythonEditorPlugValueReference.png b/1.4.6.0/_images/pythonEditorPlugValueReference.png new file mode 100644 index 000000000..c55fedd5e Binary files /dev/null and b/1.4.6.0/_images/pythonEditorPlugValueReference.png differ diff --git a/1.4.6.0/_images/removeObjects.png b/1.4.6.0/_images/removeObjects.png new file mode 100644 index 000000000..3f3ca79a4 Binary files /dev/null and b/1.4.6.0/_images/removeObjects.png differ diff --git a/1.4.6.0/_images/renderDepthOfFieldBlur.png b/1.4.6.0/_images/renderDepthOfFieldBlur.png new file mode 100644 index 000000000..ff8bd58ad Binary files /dev/null and b/1.4.6.0/_images/renderDepthOfFieldBlur.png differ diff --git a/1.4.6.0/_images/replaceObjects.png b/1.4.6.0/_images/replaceObjects.png new file mode 100644 index 000000000..9d7f38232 Binary files /dev/null and b/1.4.6.0/_images/replaceObjects.png differ diff --git a/1.4.6.0/_images/sceneInspector.png b/1.4.6.0/_images/sceneInspector.png new file mode 100644 index 000000000..4ef69a245 Binary files /dev/null and b/1.4.6.0/_images/sceneInspector.png differ diff --git a/1.4.6.0/_images/sceneInspectorAttributesSection.png b/1.4.6.0/_images/sceneInspectorAttributesSection.png new file mode 100644 index 000000000..a6a561b72 Binary files /dev/null and b/1.4.6.0/_images/sceneInspectorAttributesSection.png differ diff --git a/1.4.6.0/_images/sceneInspectorBoundSection.png b/1.4.6.0/_images/sceneInspectorBoundSection.png new file mode 100644 index 000000000..465e82dd1 Binary files /dev/null and b/1.4.6.0/_images/sceneInspectorBoundSection.png differ diff --git a/1.4.6.0/_images/sceneInspectorObjectSection.png b/1.4.6.0/_images/sceneInspectorObjectSection.png new file mode 100644 index 000000000..0682493d0 Binary files /dev/null and b/1.4.6.0/_images/sceneInspectorObjectSection.png differ diff --git a/1.4.6.0/_images/sceneInspectorTransformSection.png b/1.4.6.0/_images/sceneInspectorTransformSection.png new file mode 100644 index 000000000..16ef400b2 Binary files /dev/null and b/1.4.6.0/_images/sceneInspectorTransformSection.png differ diff --git a/1.4.6.0/_images/shaderBallColoredStripes.png b/1.4.6.0/_images/shaderBallColoredStripes.png new file mode 100644 index 000000000..9d45cb3a8 Binary files /dev/null and b/1.4.6.0/_images/shaderBallColoredStripes.png differ diff --git a/1.4.6.0/_images/shaderBallStripes.png b/1.4.6.0/_images/shaderBallStripes.png new file mode 100644 index 000000000..8d04ab2fb Binary files /dev/null and b/1.4.6.0/_images/shaderBallStripes.png differ diff --git a/1.4.6.0/_images/taskAccessingElementsPythonEditor.gif b/1.4.6.0/_images/taskAccessingElementsPythonEditor.gif new file mode 100644 index 000000000..f79a71050 Binary files /dev/null and b/1.4.6.0/_images/taskAccessingElementsPythonEditor.gif differ diff --git a/1.4.6.0/_images/taskAdjustApertureOffset.gif b/1.4.6.0/_images/taskAdjustApertureOffset.gif new file mode 100644 index 000000000..b5f249bc5 Binary files /dev/null and b/1.4.6.0/_images/taskAdjustApertureOffset.gif differ diff --git a/1.4.6.0/_images/taskAdjustPlugPosition.gif b/1.4.6.0/_images/taskAdjustPlugPosition.gif new file mode 100644 index 000000000..4133b61ab Binary files /dev/null and b/1.4.6.0/_images/taskAdjustPlugPosition.gif differ diff --git a/1.4.6.0/_images/taskBoxUpNodes.gif b/1.4.6.0/_images/taskBoxUpNodes.gif new file mode 100644 index 000000000..7425b4cea Binary files /dev/null and b/1.4.6.0/_images/taskBoxUpNodes.gif differ diff --git a/1.4.6.0/_images/taskBoxUpNodesResult.png b/1.4.6.0/_images/taskBoxUpNodesResult.png new file mode 100644 index 000000000..c0155011b Binary files /dev/null and b/1.4.6.0/_images/taskBoxUpNodesResult.png differ diff --git a/1.4.6.0/_images/taskCameraApertureFocalLengthPlugs.png b/1.4.6.0/_images/taskCameraApertureFocalLengthPlugs.png new file mode 100644 index 000000000..e8b9cadfa Binary files /dev/null and b/1.4.6.0/_images/taskCameraApertureFocalLengthPlugs.png differ diff --git a/1.4.6.0/_images/taskCameraCustomAperturePlugs.png b/1.4.6.0/_images/taskCameraCustomAperturePlugs.png new file mode 100644 index 000000000..35237e6ad Binary files /dev/null and b/1.4.6.0/_images/taskCameraCustomAperturePlugs.png differ diff --git a/1.4.6.0/_images/taskCameraDepthOfFieldPlugs.png b/1.4.6.0/_images/taskCameraDepthOfFieldPlugs.png new file mode 100644 index 000000000..6581d2335 Binary files /dev/null and b/1.4.6.0/_images/taskCameraDepthOfFieldPlugs.png differ diff --git a/1.4.6.0/_images/taskCameraFOVPlugs.png b/1.4.6.0/_images/taskCameraFOVPlugs.png new file mode 100644 index 000000000..48117272c Binary files /dev/null and b/1.4.6.0/_images/taskCameraFOVPlugs.png differ diff --git a/1.4.6.0/_images/taskCameraRenderOverridePlugs.png b/1.4.6.0/_images/taskCameraRenderOverridePlugs.png new file mode 100644 index 000000000..8100c13de Binary files /dev/null and b/1.4.6.0/_images/taskCameraRenderOverridePlugs.png differ diff --git a/1.4.6.0/_images/taskCameraToolLookThroughCamera.gif b/1.4.6.0/_images/taskCameraToolLookThroughCamera.gif new file mode 100644 index 000000000..705a713ad Binary files /dev/null and b/1.4.6.0/_images/taskCameraToolLookThroughCamera.gif differ diff --git a/1.4.6.0/_images/taskCameraTweaksPlugs.png b/1.4.6.0/_images/taskCameraTweaksPlugs.png new file mode 100644 index 000000000..d5edaedfc Binary files /dev/null and b/1.4.6.0/_images/taskCameraTweaksPlugs.png differ diff --git a/1.4.6.0/_images/taskCameraTweaksTweaks.png b/1.4.6.0/_images/taskCameraTweaksTweaks.png new file mode 100644 index 000000000..dfbfc27ef Binary files /dev/null and b/1.4.6.0/_images/taskCameraTweaksTweaks.png differ diff --git a/1.4.6.0/_images/taskConnectBox.gif b/1.4.6.0/_images/taskConnectBox.gif new file mode 100644 index 000000000..9b8823a35 Binary files /dev/null and b/1.4.6.0/_images/taskConnectBox.gif differ diff --git a/1.4.6.0/_images/taskConnectBoxAlt.gif b/1.4.6.0/_images/taskConnectBoxAlt.gif new file mode 100644 index 000000000..6f6c94b6f Binary files /dev/null and b/1.4.6.0/_images/taskConnectBoxAlt.gif differ diff --git a/1.4.6.0/_images/taskConnectPassthroughPlug.gif b/1.4.6.0/_images/taskConnectPassthroughPlug.gif new file mode 100644 index 000000000..a10b29315 Binary files /dev/null and b/1.4.6.0/_images/taskConnectPassthroughPlug.gif differ diff --git a/1.4.6.0/_images/taskDemotePlug.gif b/1.4.6.0/_images/taskDemotePlug.gif new file mode 100644 index 000000000..195f3a8de Binary files /dev/null and b/1.4.6.0/_images/taskDemotePlug.gif differ diff --git a/1.4.6.0/_images/taskLightLinkingSetExpressionLocation.png b/1.4.6.0/_images/taskLightLinkingSetExpressionLocation.png new file mode 100644 index 000000000..5afaa2fe9 Binary files /dev/null and b/1.4.6.0/_images/taskLightLinkingSetExpressionLocation.png differ diff --git a/1.4.6.0/_images/taskLightLinkingSetExpressionSet.png b/1.4.6.0/_images/taskLightLinkingSetExpressionSet.png new file mode 100644 index 000000000..c55cd9082 Binary files /dev/null and b/1.4.6.0/_images/taskLightLinkingSetExpressionSet.png differ diff --git a/1.4.6.0/_images/taskOrbitLookThroughCamera.gif b/1.4.6.0/_images/taskOrbitLookThroughCamera.gif new file mode 100644 index 000000000..9c23b176b Binary files /dev/null and b/1.4.6.0/_images/taskOrbitLookThroughCamera.gif differ diff --git a/1.4.6.0/_images/taskPromotePlug.gif b/1.4.6.0/_images/taskPromotePlug.gif new file mode 100644 index 000000000..9dc00a607 Binary files /dev/null and b/1.4.6.0/_images/taskPromotePlug.gif differ diff --git a/1.4.6.0/_images/taskSelectLookThroughCamera.gif b/1.4.6.0/_images/taskSelectLookThroughCamera.gif new file mode 100644 index 000000000..014fe2f3d Binary files /dev/null and b/1.4.6.0/_images/taskSelectLookThroughCamera.gif differ diff --git a/1.4.6.0/_images/taskSelectTranslateRotateCamera.gif b/1.4.6.0/_images/taskSelectTranslateRotateCamera.gif new file mode 100644 index 000000000..b93ee9bd5 Binary files /dev/null and b/1.4.6.0/_images/taskSelectTranslateRotateCamera.gif differ diff --git a/1.4.6.0/_images/taskSpreadsheetNodeAddPlugBasic.png b/1.4.6.0/_images/taskSpreadsheetNodeAddPlugBasic.png new file mode 100644 index 000000000..e9ce971dc Binary files /dev/null and b/1.4.6.0/_images/taskSpreadsheetNodeAddPlugBasic.png differ diff --git a/1.4.6.0/_images/taskSpreadsheetNodeAddPlugCompound.png b/1.4.6.0/_images/taskSpreadsheetNodeAddPlugCompound.png new file mode 100644 index 000000000..500eb6e08 Binary files /dev/null and b/1.4.6.0/_images/taskSpreadsheetNodeAddPlugCompound.png differ diff --git a/1.4.6.0/_images/taskSpreadsheetNodeAddPlugTweak.png b/1.4.6.0/_images/taskSpreadsheetNodeAddPlugTweak.png new file mode 100644 index 000000000..bfe2b4bcc Binary files /dev/null and b/1.4.6.0/_images/taskSpreadsheetNodeAddPlugTweak.png differ diff --git a/1.4.6.0/_images/taskSpreadsheetNodeAddPlugVectorSingle.png b/1.4.6.0/_images/taskSpreadsheetNodeAddPlugVectorSingle.png new file mode 100644 index 000000000..5644aa736 Binary files /dev/null and b/1.4.6.0/_images/taskSpreadsheetNodeAddPlugVectorSingle.png differ diff --git a/1.4.6.0/_images/taskSpreadsheetNodeAddPlugVectorWhole.png b/1.4.6.0/_images/taskSpreadsheetNodeAddPlugVectorWhole.png new file mode 100644 index 000000000..4d7aae20c Binary files /dev/null and b/1.4.6.0/_images/taskSpreadsheetNodeAddPlugVectorWhole.png differ diff --git a/1.4.6.0/_images/taskSpreadsheetNodeReorderColumn.png b/1.4.6.0/_images/taskSpreadsheetNodeReorderColumn.png new file mode 100644 index 000000000..426f66982 Binary files /dev/null and b/1.4.6.0/_images/taskSpreadsheetNodeReorderColumn.png differ diff --git a/1.4.6.0/_images/taskSpreadsheetNodeReorderSection.png b/1.4.6.0/_images/taskSpreadsheetNodeReorderSection.png new file mode 100644 index 000000000..4b15416d6 Binary files /dev/null and b/1.4.6.0/_images/taskSpreadsheetNodeReorderSection.png differ diff --git a/1.4.6.0/_images/taskSpreadsheetNodeResizeColumnAutomatic.png b/1.4.6.0/_images/taskSpreadsheetNodeResizeColumnAutomatic.png new file mode 100644 index 000000000..824ef1000 Binary files /dev/null and b/1.4.6.0/_images/taskSpreadsheetNodeResizeColumnAutomatic.png differ diff --git a/1.4.6.0/_images/taskSpreadsheetNodeResizeColumnManual.png b/1.4.6.0/_images/taskSpreadsheetNodeResizeColumnManual.png new file mode 100644 index 000000000..45eddad60 Binary files /dev/null and b/1.4.6.0/_images/taskSpreadsheetNodeResizeColumnManual.png differ diff --git a/1.4.6.0/_images/taskStandardOptionsDepthOfFieldPlug.png b/1.4.6.0/_images/taskStandardOptionsDepthOfFieldPlug.png new file mode 100644 index 000000000..dd399dfe7 Binary files /dev/null and b/1.4.6.0/_images/taskStandardOptionsDepthOfFieldPlug.png differ diff --git a/1.4.6.0/_images/timelinePlay.png b/1.4.6.0/_images/timelinePlay.png new file mode 100644 index 000000000..4cd11e3e4 Binary files /dev/null and b/1.4.6.0/_images/timelinePlay.png differ diff --git a/1.4.6.0/_images/toggleOff.png b/1.4.6.0/_images/toggleOff.png new file mode 100644 index 000000000..b40e3e6b8 Binary files /dev/null and b/1.4.6.0/_images/toggleOff.png differ diff --git a/1.4.6.0/_images/toggleOff1.png b/1.4.6.0/_images/toggleOff1.png new file mode 100644 index 000000000..b40e3e6b8 Binary files /dev/null and b/1.4.6.0/_images/toggleOff1.png differ diff --git a/1.4.6.0/_images/toggleOn.png b/1.4.6.0/_images/toggleOn.png new file mode 100644 index 000000000..f62cb2675 Binary files /dev/null and b/1.4.6.0/_images/toggleOn.png differ diff --git a/1.4.6.0/_images/tutorialBookmarks.png b/1.4.6.0/_images/tutorialBookmarks.png new file mode 100644 index 000000000..dd1832688 Binary files /dev/null and b/1.4.6.0/_images/tutorialBookmarks.png differ diff --git a/1.4.6.0/_images/tutorialDefaultBookmark.png b/1.4.6.0/_images/tutorialDefaultBookmark.png new file mode 100644 index 000000000..b01e032f7 Binary files /dev/null and b/1.4.6.0/_images/tutorialDefaultBookmark.png differ diff --git a/1.4.6.0/_images/tutorialDefaultImageNodeBookmark.png b/1.4.6.0/_images/tutorialDefaultImageNodeBookmark.png new file mode 100644 index 000000000..81f95bb1d Binary files /dev/null and b/1.4.6.0/_images/tutorialDefaultImageNodeBookmark.png differ diff --git a/1.4.6.0/_images/tutorialDefaultImageNodePath.png b/1.4.6.0/_images/tutorialDefaultImageNodePath.png new file mode 100644 index 000000000..3ad13f9fc Binary files /dev/null and b/1.4.6.0/_images/tutorialDefaultImageNodePath.png differ diff --git a/1.4.6.0/_images/tutorialMacbethTextureNode.png b/1.4.6.0/_images/tutorialMacbethTextureNode.png new file mode 100644 index 000000000..583b46ffa Binary files /dev/null and b/1.4.6.0/_images/tutorialMacbethTextureNode.png differ diff --git a/1.4.6.0/_images/tutorialNodeMenuCustomEntry.png b/1.4.6.0/_images/tutorialNodeMenuCustomEntry.png new file mode 100644 index 000000000..69ac4c00f Binary files /dev/null and b/1.4.6.0/_images/tutorialNodeMenuCustomEntry.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetCleanColumn.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetCleanColumn.png new file mode 100644 index 000000000..d6f64d937 Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetCleanColumn.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetCyclesOptionsNode.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetCyclesOptionsNode.png new file mode 100644 index 000000000..37e52e0be Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetCyclesOptionsNode.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetDefaultCell.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetDefaultCell.png new file mode 100644 index 000000000..2f9ac885e Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetDefaultCell.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetExtraColumns.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetExtraColumns.png new file mode 100644 index 000000000..59372e998 Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetExtraColumns.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetFullName.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetFullName.png new file mode 100644 index 000000000..d24ed619d Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetFullName.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetGlobalContextVariables.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetGlobalContextVariables.png new file mode 100644 index 000000000..a61375b6f Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetGlobalContextVariables.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetNewSpreadsheet.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetNewSpreadsheet.png new file mode 100644 index 000000000..6328fe9dc Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetNewSpreadsheet.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetRenamedResolutionColumn.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetRenamedResolutionColumn.png new file mode 100644 index 000000000..3ff2d0b93 Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetRenamedResolutionColumn.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetResolutionColumn.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetResolutionColumn.png new file mode 100644 index 000000000..7719cdad7 Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetResolutionColumn.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetResolutionValues.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetResolutionValues.png new file mode 100644 index 000000000..590afef9e Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetResolutionValues.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetRow1.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetRow1.png new file mode 100644 index 000000000..3e923481d Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetRow1.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetRow2.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetRow2.png new file mode 100644 index 000000000..43c866a2b Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetRow2.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetRow2Other.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetRow2Other.png new file mode 100644 index 000000000..f7a1372a1 Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetRow2Other.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetRows2A2B.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetRows2A2B.png new file mode 100644 index 000000000..239b6bb9c Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetRows2A2B.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetSelector.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetSelector.png new file mode 100644 index 000000000..7c5f625fe Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetSelector.png differ diff --git a/1.4.6.0/_images/tutorialSettingUpASpreadsheetStandardOptionsNode.png b/1.4.6.0/_images/tutorialSettingUpASpreadsheetStandardOptionsNode.png new file mode 100644 index 000000000..f897da096 Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingUpASpreadsheetStandardOptionsNode.png differ diff --git a/1.4.6.0/_images/tutorialSettingsWindowCustomContextVariable.png b/1.4.6.0/_images/tutorialSettingsWindowCustomContextVariable.png new file mode 100644 index 000000000..93d2b6f23 Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingsWindowCustomContextVariable.png differ diff --git a/1.4.6.0/_images/tutorialSettingsWindowDefaultContextVariables.png b/1.4.6.0/_images/tutorialSettingsWindowDefaultContextVariables.png new file mode 100644 index 000000000..14419f5b9 Binary files /dev/null and b/1.4.6.0/_images/tutorialSettingsWindowDefaultContextVariables.png differ diff --git a/1.4.6.0/_images/tutorialVariableSubstitutionInStringPlug.png b/1.4.6.0/_images/tutorialVariableSubstitutionInStringPlug.png new file mode 100644 index 000000000..fa8cb2cec Binary files /dev/null and b/1.4.6.0/_images/tutorialVariableSubstitutionInStringPlug.png differ diff --git a/1.4.6.0/_images/tutorialVariableSubstitutionTest.png b/1.4.6.0/_images/tutorialVariableSubstitutionTest.png new file mode 100644 index 000000000..817b0daa2 Binary files /dev/null and b/1.4.6.0/_images/tutorialVariableSubstitutionTest.png differ diff --git a/1.4.6.0/_images/values.png b/1.4.6.0/_images/values.png new file mode 100644 index 000000000..3b2645128 Binary files /dev/null and b/1.4.6.0/_images/values.png differ diff --git a/1.4.6.0/_images/values1.png b/1.4.6.0/_images/values1.png new file mode 100644 index 000000000..3b2645128 Binary files /dev/null and b/1.4.6.0/_images/values1.png differ diff --git a/1.4.6.0/_images/viewerCameraPosition.png b/1.4.6.0/_images/viewerCameraPosition.png new file mode 100644 index 000000000..e96ed5fc9 Binary files /dev/null and b/1.4.6.0/_images/viewerCameraPosition.png differ diff --git a/1.4.6.0/_images/viewerCameraRepositioned.png b/1.4.6.0/_images/viewerCameraRepositioned.png new file mode 100644 index 000000000..27c080771 Binary files /dev/null and b/1.4.6.0/_images/viewerCameraRepositioned.png differ diff --git a/1.4.6.0/_images/viewerCameraRotated.png b/1.4.6.0/_images/viewerCameraRotated.png new file mode 100644 index 000000000..4c0a1207e Binary files /dev/null and b/1.4.6.0/_images/viewerCameraRotated.png differ diff --git a/1.4.6.0/_images/viewerFinalScene.png b/1.4.6.0/_images/viewerFinalScene.png new file mode 100644 index 000000000..acf3888d8 Binary files /dev/null and b/1.4.6.0/_images/viewerFinalScene.png differ diff --git a/1.4.6.0/_images/viewerHeadAndLegsExpanded.png b/1.4.6.0/_images/viewerHeadAndLegsExpanded.png new file mode 100644 index 000000000..e2a11f220 Binary files /dev/null and b/1.4.6.0/_images/viewerHeadAndLegsExpanded.png differ diff --git a/1.4.6.0/_images/viewerPinned.png b/1.4.6.0/_images/viewerPinned.png new file mode 100644 index 000000000..9caa365b5 Binary files /dev/null and b/1.4.6.0/_images/viewerPinned.png differ diff --git a/1.4.6.0/_images/viewerRenderFinal.png b/1.4.6.0/_images/viewerRenderFinal.png new file mode 100644 index 000000000..86ee670a8 Binary files /dev/null and b/1.4.6.0/_images/viewerRenderFinal.png differ diff --git a/1.4.6.0/_images/viewerRenderOneShader.png b/1.4.6.0/_images/viewerRenderOneShader.png new file mode 100644 index 000000000..3bace8d6e Binary files /dev/null and b/1.4.6.0/_images/viewerRenderOneShader.png differ diff --git a/1.4.6.0/_images/viewerRenderTextures.png b/1.4.6.0/_images/viewerRenderTextures.png new file mode 100644 index 000000000..43ddc1de3 Binary files /dev/null and b/1.4.6.0/_images/viewerRenderTextures.png differ diff --git a/1.4.6.0/_images/viewerSceneReaderBounding.png b/1.4.6.0/_images/viewerSceneReaderBounding.png new file mode 100644 index 000000000..1964e5834 Binary files /dev/null and b/1.4.6.0/_images/viewerSceneReaderBounding.png differ diff --git a/1.4.6.0/_images/viewerSelectionFace.png b/1.4.6.0/_images/viewerSelectionFace.png new file mode 100644 index 000000000..5af73d13b Binary files /dev/null and b/1.4.6.0/_images/viewerSelectionFace.png differ diff --git a/1.4.6.0/_images/viewerSphereRadius.png b/1.4.6.0/_images/viewerSphereRadius.png new file mode 100644 index 000000000..72c2b630d Binary files /dev/null and b/1.4.6.0/_images/viewerSphereRadius.png differ diff --git a/1.4.6.0/_sources/Appendices/License/index.md.txt b/1.4.6.0/_sources/Appendices/License/index.md.txt new file mode 100644 index 000000000..2f9404e4e --- /dev/null +++ b/1.4.6.0/_sources/Appendices/License/index.md.txt @@ -0,0 +1,6507 @@ +License +======= + +```none +Copyright (c) 2011-2019 John Haddon. All rights reserved. +Copyright (c) 2011-2019 Image Engine Design Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided with + the distribution. + + * Neither the name of John Haddon nor the names of + any other contributors to this software may be used to endorse or + promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +``` + +Dependencies +------------ + +Gaffer includes code from several open source projects. Specific licensing information, credits, source downloads and URLs are provided for each project below. + +### Alembic + +[http://www.alembic.io](http://www.alembic.io) + +```none +TM & © 2009-2015 Lucasfilm Entertainment Company Ltd. or Lucasfilm Ltd. +All rights reserved. + +Industrial Light & Magic, ILM and the Bulb and Gear design logo are all +registered trademarks or service marks of Lucasfilm Ltd. + +© 2009-2015 Sony Pictures Imageworks Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. +* Neither the name of Industrial Light & Magic nor the names of +its contributors may be used to endorse or promote products derived +from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +------------------------------------------------------------------------------- + +ALEMBIC ATTACHMENT A — +REQUIRED NOTICES FOR DISTRIBUTION + +The Alembic Software is distributed along with certain third party +components licensed under various open source software licenses ("Open +Source Components"). In addition to the warranty disclaimers contained +in the open source licenses found below, Industrial Light & Magic, a +division of Lucasfilm Entertainment Company Ltd. ("ILM") makes the +following disclaimers regarding the Open Source Components on behalf of +itself, the copyright holders, contributors, and licensors of such Open +Source Components: + +TO THE FULLEST EXTENT PERMITTED UNDER APPLICABLE LAW, THE OPEN SOURCE +COMPONENTS ARE PROVIDED BY THE COPYRIGHT HOLDERS, CONTRIBUTORS, +LICENSORS, AND ILM "AS IS" AND ANY REPRESENTATIONS OR WARRANTIES OF ANY +KIND, WHETHER ORAL OR WRITTEN, WHETHER EXPRESS, IMPLIED, OR ARISING BY +STATUTE, CUSTOM, COURSE OF DEALING, OR TRADE USAGE, INCLUDING WITHOUT +LIMITATION THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR +A PARTICULAR PURPOSE, AND NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT +WILL THE COPYRIGHT OWNER, CONTRIBUTORS, LICENSORS, OR ILM AND/OR ITS +AFFILIATES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION), HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE OPEN +SOURCE COMPONENTS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Boost C++ Libraries +------------------------------------------------------------------------ + +Boost Software License – Version 1.0 August 17th, 2003 Permission is +hereby granted, free of charge, to any person or organization obtaining +a copy of the software and accompanying documentation covered by this +license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of +the Software, and to permit third-parties to whom the Software is +furnished to do so, all subject to the following: + +The copyright notices in the Software and this entire statement, +including the above license grant, this restriction and the following +disclaimer, must be included in all copies of the Software, in whole or +in part, and all derivative works of the Software, unless such copies or +derivative works are solely in the form of machine-executable object +code generated by a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND +NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE +DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, +WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### BitstreamVera + +[https://www.gnome.org/fonts](https://www.gnome.org/fonts) + +```none +Bitstream Vera Fonts Copyright + +The fonts have a generous copyright, allowing derivative works (as +long as "Bitstream" or "Vera" are not in the names), and full +redistribution (so long as they are not *sold* by themselves). They +can be be bundled, redistributed and sold with any software. + +The fonts are distributed under the following copyright: + +Copyright +========= + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream +Vera is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute +the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished +to do so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Bitstream" or the word "Vera". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Bitstream Vera" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT +SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font +Software without prior written authorization from the Gnome Foundation +or Bitstream Inc., respectively. For further information, contact: +fonts at gnome dot org. + +Copyright FAQ +============= + + 1. I don't understand the resale restriction... What gives? + + Bitstream is giving away these fonts, but wishes to ensure its + competitors can't just drop the fonts as is into a font sale system + and sell them as is. It seems fair that if Bitstream can't make money + from the Bitstream Vera fonts, their competitors should not be able to + do so either. You can sell the fonts as part of any software package, + however. + + 2. I want to package these fonts separately for distribution and + sale as part of a larger software package or system. Can I do so? + + Yes. A RPM or Debian package is a "larger software package" to begin + with, and you aren't selling them independently by themselves. + See 1. above. + + 3. Are derivative works allowed? + Yes! + + 4. Can I change or add to the font(s)? + Yes, but you must change the name(s) of the font(s). + + 5. Under what terms are derivative works allowed? + + You must change the name(s) of the fonts. This is to ensure the + quality of the fonts, both to protect Bitstream and Gnome. We want to + ensure that if an application has opened a font specifically of these + names, it gets what it expects (though of course, using fontconfig, + substitutions could still could have occurred during font + opening). You must include the Bitstream copyright. Additional + copyrights can be added, as per copyright law. Happy Font Hacking! + + 6. If I have improvements for Bitstream Vera, is it possible they might get + adopted in future versions? + + Yes. The contract between the Gnome Foundation and Bitstream has + provisions for working with Bitstream to ensure quality additions to + the Bitstream Vera font family. Please contact us if you have such + additions. Note, that in general, we will want such additions for the + entire family, not just a single font, and that you'll have to keep + both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add + glyphs to the font, they must be stylistically in keeping with Vera's + design. Vera cannot become a "ransom note" font. Jim Lyles will be + providing a document describing the design elements used in Vera, as a + guide and aid for people interested in contributing to Vera. + + 7. I want to sell a software package that uses these fonts: Can I do so? + + Sure. Bundle the fonts with your software and sell your software + with the fonts. That is the intent of the copyright. + + 8. If applications have built the names "Bitstream Vera" into them, + can I override this somehow to use fonts of my choosing? + + This depends on exact details of the software. Most open source + systems and software (e.g., Gnome, KDE, etc.) are now converting to + use fontconfig (see www.fontconfig.org) to handle font configuration, + selection and substitution; it has provisions for overriding font + names and subsituting alternatives. An example is provided by the + supplied local.conf file, which chooses the family Bitstream Vera for + "sans", "serif" and "monospace". Other software (e.g., the XFree86 + core server) has other mechanisms for font substitution. + + +``` + +### Blosc + +[https://blosc.org](https://blosc.org) + +### Boost + +[http://www.boost.org](http://www.boost.org) + +```none +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +``` + +### CMark + +[https://github.com/github/cmark](https://github.com/github/cmark) + +```none +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +houdini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c + +derive from https://github.com/vmg/houdini (with some modifications) + +Copyright (C) 2012 Vicent Martí + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +buffer.h, buffer.c, chunk.h + +are derived from code (C) 2012 Github, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +utf8.c and utf8.c + +are derived from utf8proc +(), +(C) 2009 Public Software Group e. V., Berlin, Germany. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +----- + +The normalization code in normalize.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----- + +The CommonMark spec (test/spec.txt) is + +Copyright (C) 2014-15 John MacFarlane + +Released under the Creative Commons CC-BY-SA 4.0 license: +. + +----- + +The test software in test/ is + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### Cortex + +[https://github.com/ImageEngine/cortex](https://github.com/ImageEngine/cortex) + +```none +Copyright (c) 2007-2019, Image Engine Design Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of Image Engine Design nor the names of any + other contributors to this software may be used to endorse or + promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### Cycles + +[https://www.cycles-renderer.org/](https://www.cycles-renderer.org/) + +```none + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +``` + +### Embree + +[https://www.embree.org/](https://www.embree.org/) + +```none + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### Expat + +[https://libexpat.github.io/](https://libexpat.github.io/) + +```none +Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper +Copyright (c) 2001-2022 Expat maintainers + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### Fmt + +[https://fmt.dev](https://fmt.dev) + +```none +Copyright (c) 2012 - present, Victor Zverovich + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--- Optional exception to the license --- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into a machine-executable object form of such +source code, you may redistribute such embedded portions in such object form +without including the above copyright and permission notices. + +``` + +### FreeType + +Portions of this software are copyright (c) 2018 The FreeType Project (www.freetype.org). All rights reserved. + +[http://www.freetype.org](http://www.freetype.org) + +```none + The FreeType Project LICENSE + ---------------------------- + + 2006-Jan-27 + + Copyright 1996-2002, 2006 by + David Turner, Robert Wilhelm, and Werner Lemberg + + + +Introduction +============ + + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. + + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. + + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: + + o We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) + + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) + + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') + + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. + + + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: + + """ + Portions of this software are copyright © The FreeType + Project (www.freetype.org). All rights reserved. + """ + + Please replace with the value from the FreeType version you + actually use. + + +Legal Terms +=========== + +0. Definitions +-------------- + + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. + + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. + + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. + + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. + +1. No Warranty +-------------- + + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. + +2. Redistribution +----------------- + + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: + + o Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. + + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. + + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. + +3. Advertising +-------------- + + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. + + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. + + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. + +4. Contacts +----------- + + There are two mailing lists related to FreeType: + + o freetype@nongnu.org + + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. + + o freetype-devel@nongnu.org + + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. + + Our home page can be found at + + https://www.freetype.org + + +--- end of FTL.TXT --- + +``` + +### GLEW + +[http://glew.sourceforge.net](http://glew.sourceforge.net) + +```none +The OpenGL Extension Wrangler Library +Copyright (C) 2002-2007, Milan Ikits +Copyright (C) 2002-2007, Marcelo E. Magallon +Copyright (C) 2002, Lev Povalahev +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +* The name of the author may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + + +Mesa 3-D graphics library +Version: 7.0 + +Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Copyright (c) 2007 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + +``` + +### GafferResources + +[https://www.gafferhq.org](https://www.gafferhq.org) + +### HDF5 + +[http://www.hdfgroup.org](http://www.hdfgroup.org) + +```none +Copyright Notice and License Terms for +HDF5 (Hierarchical Data Format 5) Software Library and Utilities +----------------------------------------------------------------------------- + +HDF5 (Hierarchical Data Format 5) Software Library and Utilities +Copyright 2006 by The HDF Group. + +NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities +Copyright 1998-2006 by The Board of Trustees of the University of Illinois. + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted for any purpose (including commercial purposes) +provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, + this list of conditions, and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions, and the following disclaimer in the documentation + and/or materials provided with the distribution. + +3. Neither the name of The HDF Group, the name of the University, nor the + name of any Contributor may be used to endorse or promote products derived + from this software without specific prior written permission from + The HDF Group, the University, or the Contributor, respectively. + +DISCLAIMER: +THIS SOFTWARE IS PROVIDED BY THE HDF GROUP AND THE CONTRIBUTORS +"AS IS" WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. IN NO +EVENT SHALL THE HDF GROUP OR THE CONTRIBUTORS BE LIABLE FOR ANY DAMAGES +SUFFERED BY THE USERS ARISING OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +You are under no obligation whatsoever to provide any bug fixes, patches, or +upgrades to the features, functionality or performance of the source code +("Enhancements") to anyone; however, if you choose to make your Enhancements +available either publicly, or directly to The HDF Group, without imposing a +separate written license agreement for such Enhancements, then you hereby +grant the following license: a non-exclusive, royalty-free perpetual license +to install, use, modify, prepare derivative works, incorporate into other +computer software, distribute, and sublicense such enhancements or derivative +works thereof, in binary and source code form. + +----------------------------------------------------------------------------- +----------------------------------------------------------------------------- + +Limited portions of HDF5 were developed by Lawrence Berkeley National +Laboratory (LBNL). LBNL's Copyright Notice and Licensing Terms can be +found here: COPYING_LBNL_HDF5 file in this directory or at +http://support.hdfgroup.org/ftp/HDF5/releases/COPYING_LBNL_HDF5. + +----------------------------------------------------------------------------- +----------------------------------------------------------------------------- + +Contributors: National Center for Supercomputing Applications (NCSA) at +the University of Illinois, Fortner Software, Unidata Program Center +(netCDF), The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark Adler +(gzip), and Digital Equipment Corporation (DEC). + +----------------------------------------------------------------------------- + +Portions of HDF5 were developed with support from the Lawrence Berkeley +National Laboratory (LBNL) and the United States Department of Energy +under Prime Contract No. DE-AC02-05CH11231. + +----------------------------------------------------------------------------- + +Portions of HDF5 were developed with support from the University of +California, Lawrence Livermore National Laboratory (UC LLNL). +The following statement applies to those portions of the product and must +be retained in any redistribution of source code, binaries, documentation, +and/or accompanying materials: + + This work was partially produced at the University of California, + Lawrence Livermore National Laboratory (UC LLNL) under contract + no. W-7405-ENG-48 (Contract 48) between the U.S. Department of Energy + (DOE) and The Regents of the University of California (University) + for the operation of UC LLNL. + + DISCLAIMER: + THIS WORK WAS PREPARED AS AN ACCOUNT OF WORK SPONSORED BY AN AGENCY OF + THE UNITED STATES GOVERNMENT. NEITHER THE UNITED STATES GOVERNMENT NOR + THE UNIVERSITY OF CALIFORNIA NOR ANY OF THEIR EMPLOYEES, MAKES ANY + WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY OR RESPONSIBILITY + FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY INFORMATION, + APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS THAT ITS USE + WOULD NOT INFRINGE PRIVATELY- OWNED RIGHTS. REFERENCE HEREIN TO ANY + SPECIFIC COMMERCIAL PRODUCTS, PROCESS, OR SERVICE BY TRADE NAME, + TRADEMARK, MANUFACTURER, OR OTHERWISE, DOES NOT NECESSARILY CONSTITUTE + OR IMPLY ITS ENDORSEMENT, RECOMMENDATION, OR FAVORING BY THE UNITED + STATES GOVERNMENT OR THE UNIVERSITY OF CALIFORNIA. THE VIEWS AND + OPINIONS OF AUTHORS EXPRESSED HEREIN DO NOT NECESSARILY STATE OR REFLECT + THOSE OF THE UNITED STATES GOVERNMENT OR THE UNIVERSITY OF CALIFORNIA, + AND SHALL NOT BE USED FOR ADVERTISING OR PRODUCT ENDORSEMENT PURPOSES. + +----------------------------------------------------------------------------- + +HDF5 is available with the SZIP compression library but SZIP is not part +of HDF5 and has separate copyright and license terms. See SZIP Compression +in HDF Products (www.hdfgroup.org/doc_resource/SZIP/) for further details. + +----------------------------------------------------------------------------- + + + +``` + +### Imath + +[http://www.openexr.com](http://www.openexr.com) + +```none +Copyright Contributors to the OpenEXR Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### Jemalloc + +[http://jemalloc.net/](http://jemalloc.net/) + +```none +Unless otherwise specified, files in the jemalloc source distribution are +subject to the following license: +-------------------------------------------------------------------------------- +Copyright (C) 2002-2014 Jason Evans . +All rights reserved. +Copyright (C) 2007-2012 Mozilla Foundation. All rights reserved. +Copyright (C) 2009-2014 Facebook, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice(s), + this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice(s), + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- + +``` + +### Jinja2 + +[https://palletsprojects.com/p/jinja/](https://palletsprojects.com/p/jinja/) + +```none +Copyright 2007 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### LLVM + +[https://llvm.org](https://llvm.org) + +```none +============================================================================== +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: +============================================================================== + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): +============================================================================== +University of Illinois/NCSA +Open Source License + +Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign. +All rights reserved. + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + + +``` + +### LZ4 + +[http://www.lz4.org](http://www.lz4.org) + +```none +LZ4 Library +Copyright (c) 2011-2016, Yann Collet +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### LibFFI + +[https://sourceware.org/libffi/](https://sourceware.org/libffi/) + +```none +libffi - Copyright (c) 1996-2021 Anthony Green, Red Hat, Inc and others. +See source files for details. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +``Software''), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +### LibJPEG-Turbo + +[https://libjpeg-turbo.org](https://libjpeg-turbo.org) + +```none +libjpeg-turbo Licenses +====================== + +libjpeg-turbo is covered by three compatible BSD-style open source licenses: + +- The IJG (Independent JPEG Group) License, which is listed in + [README.ijg](README.ijg) + + This license applies to the libjpeg API library and associated programs + (any code inherited from libjpeg, and any modifications to that code.) + +- The Modified (3-clause) BSD License, which is listed below + + This license covers the TurboJPEG API library and associated programs. + +- The zlib License, which is listed below + + This license is a subset of the other two, and it covers the libjpeg-turbo + SIMD extensions. + + +Complying with the libjpeg-turbo Licenses +========================================= + +This section provides a roll-up of the libjpeg-turbo licensing terms, to the +best of our understanding. + +1. If you are distributing a modified version of the libjpeg-turbo source, + then: + + 1. You cannot alter or remove any existing copyright or license notices + from the source. + + **Origin** + - Clause 1 of the IJG License + - Clause 1 of the Modified BSD License + - Clauses 1 and 3 of the zlib License + + 2. You must add your own copyright notice to the header of each source + file you modified, so others can tell that you modified that file (if + there is not an existing copyright header in that file, then you can + simply add a notice stating that you modified the file.) + + **Origin** + - Clause 1 of the IJG License + - Clause 2 of the zlib License + + 3. You must include the IJG README file, and you must not alter any of the + copyright or license text in that file. + + **Origin** + - Clause 1 of the IJG License + +2. If you are distributing only libjpeg-turbo binaries without the source, or + if you are distributing an application that statically links with + libjpeg-turbo, then: + + 1. Your product documentation must include a message stating: + + This software is based in part on the work of the Independent JPEG + Group. + + **Origin** + - Clause 2 of the IJG license + + 2. If your binary distribution includes or uses the TurboJPEG API, then + your product documentation must include the text of the Modified BSD + License. + + **Origin** + - Clause 2 of the Modified BSD License + +3. You cannot use the name of the IJG or The libjpeg-turbo Project or the + contributors thereof in advertising, publicity, etc. + + **Origin** + - IJG License + - Clause 3 of the Modified BSD License + +4. The IJG and The libjpeg-turbo Project do not warrant libjpeg-turbo to be + free of defects, nor do we accept any liability for undesirable + consequences resulting from your use of the software. + + **Origin** + - IJG License + - Modified BSD License + - zlib License + + +The Modified (3-clause) BSD License +=================================== + +Copyright (C)\ \. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +The zlib License +================ + +Copyright (C) \, \. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + +``` + +### LibPNG + +[http://www.libpng.org](http://www.libpng.org) + +```none +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE +========================================= + +PNG Reference Library License version 2 +--------------------------------------- + + * Copyright (c) 1995-2019 The PNG Reference Library Authors. + * Copyright (c) 2018-2019 Cosmin Truta. + * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson. + * Copyright (c) 1996-1997 Andreas Dilger. + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + +The software is supplied "as is", without warranty of any kind, +express or implied, including, without limitation, the warranties +of merchantability, fitness for a particular purpose, title, and +non-infringement. In no event shall the Copyright owners, or +anyone distributing the software, be liable for any damages or +other liability, whether in contract, tort or otherwise, arising +from, out of, or in connection with the software, or the use or +other dealings in the software, even if advised of the possibility +of such damage. + +Permission is hereby granted to use, copy, modify, and distribute +this software, or portions hereof, for any purpose, without fee, +subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you + must not claim that you wrote the original software. If you + use this software in a product, an acknowledgment in the product + documentation would be appreciated, but is not required. + + 2. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + + +PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35) +----------------------------------------------------------------------- + +libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are +Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are +derived from libpng-1.0.6, and are distributed according to the same +disclaimer and license as libpng-1.0.6 with the following individuals +added to the list of Contributing Authors: + + Simon-Pierre Cadieux + Eric S. Raymond + Mans Rullgard + Cosmin Truta + Gilles Vollant + James Yu + Mandar Sahastrabuddhe + Google Inc. + Vadim Barkov + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of + the library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is + with the user. + +Some files in the "contrib" directory and some configure-generated +files that are distributed with libpng have other copyright owners, and +are released under other open source licenses. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are +Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from +libpng-0.96, and are distributed according to the same disclaimer and +license as libpng-0.96, with the following individuals added to the +list of Contributing Authors: + + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, +and are distributed according to the same disclaimer and license as +libpng-0.88, with the following individuals added to the list of +Contributing Authors: + + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +Some files in the "scripts" directory have other copyright owners, +but are released under this license. + +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors" +is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing +Authors and Group 42, Inc. disclaim all warranties, expressed or +implied, including, without limitation, the warranties of +merchantability and of fitness for any purpose. The Contributing +Authors and Group 42, Inc. assume no liability for direct, indirect, +incidental, special, exemplary, or consequential damages, which may +result from the use of the PNG Reference Library, even if advised of +the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute this +source code, or portions hereof, for any purpose, without fee, subject +to the following restrictions: + + 1. The origin of this source code must not be misrepresented. + + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, +without fee, and encourage the use of this source code as a component +to supporting the PNG file format in commercial products. If you use +this source code in a product, acknowledgment is not required but would +be appreciated. + +``` + +### LibRaw + +[https://www.libraw.org/](https://www.libraw.org/) + +```none + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + +``` + +### LibTIFF + +[http://www.libtiff.org](http://www.libtiff.org) + +```none +Copyright (c) 1988-1997 Sam Leffler +Copyright (c) 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and +its documentation for any purpose is hereby granted without fee, provided +that (i) the above copyright notices and this permission notice appear in +all copies of the software and related documentation, and (ii) the names of +Sam Leffler and Silicon Graphics may not be used in any advertising or +publicity relating to the software without the specific, prior written +permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. + +``` + +### LibWebP + +[https://chromium.googlesource.com/webm/libwebp](https://chromium.googlesource.com/webm/libwebp) + +```none +Copyright (c) 2010, Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +``` + +### MarkupSafe + +[https://palletsprojects.com/p/markupsafe/](https://palletsprojects.com/p/markupsafe/) + +```none +Copyright 2010 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### MaterialX + +[http://www.materialx.org/](http://www.materialx.org/) + +```none + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + +``` + +### Minizip + +[https://github.com/zlib-ng/minizip-ng](https://github.com/zlib-ng/minizip-ng) + +```none +Condition of use and distribution are the same as zlib: + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgement in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + +``` + +### OpenColorIO + +[http://opencolorio.org](http://opencolorio.org) + +```none +Copyright Contributors to the OpenColorIO Project. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### OpenEXR + +[http://www.openexr.com](http://www.openexr.com) + +```none + + + +Copyright (c) Contributors to the OpenEXR Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### OpenImageIO + +[http://www.openimageio.org](http://www.openimageio.org) + +```none + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### OpenJPEG + +[https://www.openjpeg.org/](https://www.openjpeg.org/) + +```none +/* + * The copyright in this software is being made available under the 2-clauses + * BSD License, included below. This software may be subject to other third + * party and contributor rights, including patent rights, and no such rights + * are granted under this license. + * + * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium + * Copyright (c) 2002-2014, Professor Benoit Macq + * Copyright (c) 2003-2014, Antonin Descampe + * Copyright (c) 2003-2009, Francois-Olivier Devaux + * Copyright (c) 2005, Herve Drolon, FreeImage Team + * Copyright (c) 2002-2003, Yannick Verschueren + * Copyright (c) 2001-2003, David Janssens + * Copyright (c) 2011-2012, Centre National d'Etudes Spatiales (CNES), France + * Copyright (c) 2012, CS Systemes d'Information, France + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +``` + +### OpenPGL + +[https://github.com/OpenPathGuidingLibrary/openpgl](https://github.com/OpenPathGuidingLibrary/openpgl) + +```none + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### OpenShadingLanguage + +[https://github.com/imageworks/OpenShadingLanguage](https://github.com/imageworks/OpenShadingLanguage) + +```none +Copyright (c) 2009-present Contributors to the Open Shading Language project. +All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### OpenSubdiv + +[http://graphics.pixar.com/opensubdiv](http://graphics.pixar.com/opensubdiv) + +```none + + Modified Apache 2.0 License + + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor + and its affiliates, except as required to comply with Section 4(c) of + the License and to reproduce the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +``` + +### OpenVDB + +[http://www.openvdb.org](http://www.openvdb.org) + +```none +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +``` + +### PCG + +[https://www.pcg-random.org](https://www.pcg-random.org) + +```none +Copyright (c) 2014-2017 Melissa O'Neill and PCG Project contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### Partio + +[http://partio.us](http://partio.us) + +```none +PARTIO SOFTWARE + +Copyright 2018 Disney Enterprises, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. The names "Disney", "Walt Disney Pictures", "Walt Disney Animation Studios" +or the names of its contributors may NOT be used to endorse or promote products +derived from this software without specific prior written permission from Walt +Disney Pictures. + +Disclaimer: THIS SOFTWARE IS PROVIDED BY WALT DISNEY PICTURES AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, +NONINFRINGEMENT AND TITLE ARE DISCLAIMED. IN NO EVENT SHALL WALT DISNEY +PICTURES, THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND BASED ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +``` + +### PsUtil + +[https://github.com/giampaolo/psutil](https://github.com/giampaolo/psutil) + +```none +BSD 3-Clause License + +Copyright (c) 2009, Jay Loden, Dave Daeschler, Giampaolo Rodola +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of the psutil authors nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### PugiXML + +[https://pugixml.org](https://pugixml.org) + +```none +MIT License + +Copyright (c) 2006-2020 Arseny Kapoulkine + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +``` + +### PyBind11 + +[https://pybind11.readthedocs.io](https://pybind11.readthedocs.io) + +```none +Copyright (c) 2016 Wenzel Jakob , All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Please also refer to the file .github/CONTRIBUTING.md, which clarifies licensing of +external contributions to this project including patches, pull requests, etc. + +``` + +### PyOpenGL + +[http://pyopengl.sourceforge.net](http://pyopengl.sourceforge.net) + +```none +NOTE: + + THIS SOFTWARE IS NOT FAULT TOLERANT AND SHOULD NOT BE USED IN ANY + SITUATION ENDANGERING HUMAN LIFE OR PROPERTY. + +OpenGL-ctypes License + + Copyright (c) 2005-2014, Michael C. Fletcher and Contributors + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + The name of Michael C. Fletcher, or the name of any Contributor, + may not be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + +OpenGL-ctypes includes code from the PyOpenGL 2.x series licensed under +version 3 of the PyOpenGL License (BSD-style): + + PyOpenGL License (v3) + + PyOpenGL is based on PyOpenGL 1.5.5, Copyright © 1997-1998 by + James Hugunin, Cambridge MA, USA, Thomas Schwaller, Munich, Germany + and David Ascher, San Francisco CA, USA. + + Contributors to the PyOpenGL project in addition to those listed + above include: + * David Konerding + * Soren Renner + * Rene Liebscher + * Randall Hopper + * Michael Fletcher + * Thomas Malik + * Thomas Hamelryck + * Jack Jansen + * Michel Sanner + * Tarn Weisner Burton + * Andrew Cox + * Rene Dudfield + + PyOpenGL is Copyright (c) 1997-1998, 2000-2006 by the contributors. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * The names of the contributors may not be used to endorse or + promote products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. + +OpenGL-ctypes includes code from the Pyglet project, licensed under the +Pyglet License (BSD Style): + + Copyright (c) 2006-2008 Alex Holkner + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of pyglet nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +OpenGL-ctypes may include source code from the GLE (GL Tubing and Extrusion) library, which is +licensed under the license declared in OpenGL/DLLS/gle_COPYING.src if GLE is included in this +distribution. Copyright notice follows: + + This software is owned by International Business Machines Corporation + ("IBM"), or its subsidiaries or IBM's suppliers, and is copyrighted and + licensed, not sold. IBM retains title to the software, and grants you a + nonexclusive license for the software. + +OpenGL-ctypes may include source code from FreeGLUT (GL Utility Toolkit) library, +which is licensed under the MIT/X-Consortium License, available in +OpenGL/DLLS/freeglut_COPYING.txt if FreeGLUT is included in this distribution: + + Freeglut code without an explicit copyright is covered by the following + copyright: + + Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies or substantial portions of the Software. + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Pawel W. Olszta shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from Pawel W. Olszta. + +OpenGL-ctypes may include binary distributions of the Tk Togl widget, which is licensed under the +following license/copyright notice (available in OpenGL/Tk/*/LICENSE if Togl is included). + + This software is copyrighted by Brian Paul (brian@mesa3d.org), + Benjamin Bederson (bederson@cs.umd.edu), and Greg Couch + (gregcouch@users.sourceforge.net). The following terms apply to all + files associated with the software unless explicitly disclaimed in + individual files. + + The authors hereby grant permission to use, copy, modify, distribute, + and license this software and its documentation for any purpose, provided + that existing copyright notices are retained in all copies and that this + notice is included verbatim in any distributions. No written agreement, + license, or royalty fee is required for any of the authorized uses. + Modifications to this software may be copyrighted by their authors + and need not follow the licensing terms described here, provided that + the new terms are clearly indicated on the first page of each file where + they apply. + + IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY + FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY + DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE + IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE + NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR + MODIFICATIONS. + +OpenGL-ctypes includes an OS-Mesa platform driver which is (MIT +Licensed), Copyright (c) 2012 Xu, Yuan : + + https://github.com/xuyuan/PyOSMesa + http://opensource.org/licenses/MIT + +OpenGL-ctypes uses a table from the Chromium Regal project to provide +constant:array-size mappings. Regal is: + + Copyright (c) 2011-2012 NVIDIA Corporation + Copyright (c) 2011-2012 Cass Everitt + Copyright (c) 2012 Scott Nations + Copyright (c) 2012 Mathias Schott + Copyright (c) 2012 Nigel Stewart + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### PySide + +[http://www.pyside.org](http://www.pyside.org) + +```none + GNU LESSER GENERAL PUBLIC LICENSE + + The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd. + Contact: http://www.qt.io/licensing/ + + You may use, distribute and copy the Qt Toolkit under the terms of + GNU Lesser General Public License version 3, which is displayed below. + This license makes reference to the version 3 of the GNU General + Public License, which you can find in the LICENSE.GPLv3 file. + +------------------------------------------------------------------------- + + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. + +``` + +### PyString + +[https://github.com/imageworks/pystring](https://github.com/imageworks/pystring) + +```none +Copyright (c) 2008-present Contributors to the Pystring project. +All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` + +### Python + +[https://www.python.org](https://www.python.org) + +```none +A. HISTORY OF THE SOFTWARE +========================== + +Python was created in the early 1990s by Guido van Rossum at Stichting +Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands +as a successor of a language called ABC. Guido remains Python's +principal author, although it includes many contributions from others. + +In 1995, Guido continued his work on Python at the Corporation for +National Research Initiatives (CNRI, see https://www.cnri.reston.va.us) +in Reston, Virginia where he released several versions of the +software. + +In May 2000, Guido and the Python core development team moved to +BeOpen.com to form the BeOpen PythonLabs team. In October of the same +year, the PythonLabs team moved to Digital Creations, which became +Zope Corporation. In 2001, the Python Software Foundation (PSF, see +https://www.python.org/psf/) was formed, a non-profit organization +created specifically to own Python-related Intellectual Property. +Zope Corporation was a sponsoring member of the PSF. + +All Python releases are Open Source (see https://opensource.org for +the Open Source Definition). Historically, most, but not all, Python +releases have also been GPL-compatible; the table below summarizes +the various releases. + + Release Derived Year Owner GPL- + from compatible? (1) + + 0.9.0 thru 1.2 1991-1995 CWI yes + 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes + 1.6 1.5.2 2000 CNRI no + 2.0 1.6 2000 BeOpen.com no + 1.6.1 1.6 2001 CNRI yes (2) + 2.1 2.0+1.6.1 2001 PSF no + 2.0.1 2.0+1.6.1 2001 PSF yes + 2.1.1 2.1+2.0.1 2001 PSF yes + 2.1.2 2.1.1 2002 PSF yes + 2.1.3 2.1.2 2002 PSF yes + 2.2 and above 2.1.1 2001-now PSF yes + +Footnotes: + +(1) GPL-compatible doesn't mean that we're distributing Python under + the GPL. All Python licenses, unlike the GPL, let you distribute + a modified version without making your changes open source. The + GPL-compatible licenses make it possible to combine Python with + other software that is released under the GPL; the others don't. + +(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, + because its license has a choice of law clause. According to + CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 + is "not incompatible" with the GPL. + +Thanks to the many outside volunteers who have worked under Guido's +direction to make these releases possible. + + +B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON +=============================================================== + +Python software and documentation are licensed under the +Python Software Foundation License Version 2. + +Starting with Python 3.8.6, examples, recipes, and other code in +the documentation are dual licensed under the PSF License Version 2 +and the Zero-Clause BSD license. + +Some software incorporated into Python is under different licenses. +The licenses are listed with code falling under that license. + + +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation; +All Rights Reserved" are retained in Python alone or in any derivative version +prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION +---------------------------------------------------------------------- + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +``` + +### Qt + +[https://www.qt.io](https://www.qt.io) + +```none + GNU LESSER GENERAL PUBLIC LICENSE + + The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd. + Contact: http://www.qt.io/licensing/ + + You may use, distribute and copy the Qt Toolkit under the terms of + GNU Lesser General Public License version 2.1, which is displayed below. + +------------------------------------------------------------------------- + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + + +``` + +### Qt.py + +[https://github.com/mottosso/Qt.py](https://github.com/mottosso/Qt.py) + +```none +The MIT License (MIT) + +Copyright (c) 2016 Marcus Ottosson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### TBB + +[http://threadingbuildingblocks.org/](http://threadingbuildingblocks.org/) + +```none + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +``` + +### USD + +[https://graphics.pixar.com/usd](https://graphics.pixar.com/usd) + +```none + + Modified Apache 2.0 License + + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor + and its affiliates, except as required to comply with Section 4(c) of + the License and to reproduce the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +============================================================ +RapidJSON +============================================================ + +Tencent is pleased to support the open source community by making RapidJSON available. + +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. + +If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. +If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. To avoid the problematic JSON license in your own projects, it's sufficient to exclude the bin/jsonchecker/ directory, as it's the only code under the JSON license. +A copy of the MIT License is included in this file. + +Other dependencies and licenses: + +Open Source Software Licensed Under the BSD License: +-------------------------------------------------------------------- + +The msinttypes r29 +Copyright (c) 2006-2013 Alexander Chemeris +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Open Source Software Licensed Under the JSON License: +-------------------------------------------------------------------- + +json.org +Copyright (c) 2002 JSON.org +All Rights Reserved. + +JSON_checker +Copyright (c) 2002 JSON.org +All Rights Reserved. + + +Terms of the JSON License: +--------------------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +The Software shall be used for Good, not Evil. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Terms of the MIT License: +-------------------------------------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +============================================================ +double-conversion +============================================================ + +Copyright 2006-2011, the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +============================================================ +OpenEXR/IlmBase/Half +============================================================ + +/////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2002, Industrial Light & Magic, a division of Lucas +// Digital Ltd. LLC +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Industrial Light & Magic nor the names of +// its contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +/////////////////////////////////////////////////////////////////////////// + +============================================================ +libdeflate +============================================================ + +Copyright 2016 Eric Biggers + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation files +(the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +============================================================ +Apple Technical Q&A QA1361 - Detecting the Debugger +https://developer.apple.com/library/content/qa/qa1361/_index.html +============================================================ + +Sample code project: Detecting the Debugger +Version: 1.0 + +Abstract: Shows how to determine if code is being run under the debugger. + +IMPORTANT: This Apple software is supplied to you by Apple +Inc. ("Apple") in consideration of your agreement to the following +terms, and your use, installation, modification or redistribution of +this Apple software constitutes acceptance of these terms. If you do +not agree with these terms, please do not use, install, modify or +redistribute this Apple software. + +In consideration of your agreement to abide by the following terms, and +subject to these terms, Apple grants you a personal, non-exclusive +license, under Apple's copyrights in this original Apple software (the +"Apple Software"), to use, reproduce, modify and redistribute the Apple +Software, with or without modifications, in source and/or binary forms; +provided that if you redistribute the Apple Software in its entirety and +without modifications, you must retain this notice and the following +text and disclaimers in all such redistributions of the Apple Software. +Neither the name, trademarks, service marks or logos of Apple Inc. may +be used to endorse or promote products derived from the Apple Software +without specific prior written permission from Apple. Except as +expressly stated in this notice, no other rights or licenses, express or +implied, are granted by Apple herein, including but not limited to any +patent rights that may be infringed by your derivative works or by other +works in which the Apple Software may be incorporated. + +The Apple Software is provided by Apple on an "AS IS" basis. APPLE +MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION +THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND +OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. + +IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, +MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED +AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), +STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +============================================================ +LZ4 +============================================================ + +LZ4 - Fast LZ compression algorithm +Copyright (C) 2011-present, Yann Collet. + +BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +You can contact the author at : + - LZ4 homepage : http://www.lz4.org + - LZ4 source repository : https://github.com/lz4/lz4 + +============================================================ +stb +============================================================ + +stb_image - v2.19 - public domain image loader - http://nothings.org/stb + no warranty implied; use at your own risk + +stb_image_resize - v0.95 - public domain image resizing + by Jorge L Rodriguez (@VinoBS) - 2014 + http://github.com/nothings/stb + +stb_image_write - v1.09 - public domain - http://nothings.org/stb/stb_image_write.h + writes out PNG/BMP/TGA/JPEG/HDR images to C stdio - Sean Barrett 2010-2015 + no warranty implied; use at your own risk + +ALTERNATIVE B - Public Domain (www.unlicense.org) +This is free and unencumbered software released into the public domain. +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +============================================================ +pugixml +============================================================ + +MIT License + +Copyright (c) 2006-2019 Arseny Kapoulkine + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +============================================================ +Vulkan C++ examples and demos (dome light texture filtering) +============================================================ + +The MIT License (MIT) + +Copyright (c) 2016 Sascha Willems + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +============================================================ +pbrt (Hammersley Low-Discrepancy Sampling Sequence) +============================================================ + +Copyright (c) 1998-2015, Matt Pharr, Greg Humphreys, and Wenzel Jakob. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +============================================================ +Draco +============================================================ +USD bundles Draco, which is available under the Apache 2.0 license. For details, +see https://github.com/google/draco/blob/master/README.md. + + +============================================================ +Roboto Fonts +============================================================ +USD bundles Roboto fonts, which is available under the Apache 2.0 license. +For details, see https://fonts.google.com/specimen/Roboto#license + + +============================================================ +Roboto Mono Fonts +============================================================ +USD bundles Roboto Mono fonts, which is available under the Apache 2.0 license. +For details, see https://fonts.google.com/specimen/Roboto+Mono#license + + +============================================================ +Vulkan Memory Allocator +============================================================ +Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +============================================================ +Spirv Reflect +============================================================ +Copyright 2017-2018 Google Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +============================================================ +khrplatform.h +============================================================ +Copyright (c) 2008-2018 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + + +============================================================ +surfgrad-bump-standalone-demo +============================================================ +MIT License + +Copyright (c) 2020 mmikk + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +================================================================ +Tessil robin-map +================================================================ +MIT License + +Copyright (c) 2017 Thibaut Goetghebuer-Planchon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +===== +CLI11 +===== + +CLI11 2.3.1 Copyright (c) 2017-2022 University of Cincinnati, developed by Henry +Schreiner under NSF AWARD 1414736. All rights reserved. + +Redistribution and use in source and binary forms of CLI11, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +================================================================ +The Art of C++ : PEGTL (Parsing Expression Grammar Template Library) +================================================================ + +The MIT License (MIT) + +Copyright (c) 2007-2020 Dr. Colin Hirsch and Daniel Frey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +================================================================ +invoke.hpp +================================================================ + +MIT License + +Copyright (C) 2018-2023, by Matvey Cherevko (blackmatov@gmail.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +================================================================ +Doxygen Awesome +================================================================ + +MIT License + +Copyright (c) 2021 - 2023 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +### YAML-CPP + +[https://github.com/jbeder/yaml-cpp](https://github.com/jbeder/yaml-cpp) + +```none +Copyright (c) 2008-2015 Jesse Beder. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +``` + +### ZLib + +[https://zlib.net/](https://zlib.net/) + +```none +Copyright notice: + + (C) 1995-2022 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +``` + diff --git a/1.4.6.0/_sources/Appendices/index.md.txt b/1.4.6.0/_sources/Appendices/index.md.txt new file mode 100644 index 000000000..7935c1fa9 --- /dev/null +++ b/1.4.6.0/_sources/Appendices/index.md.txt @@ -0,0 +1,13 @@ + + +Appendices +========== + + + +```{eval-rst} +.. toctree:: + :titlesonly: + + License/index.md +``` diff --git a/1.4.6.0/_sources/GettingStarted/ConfiguringGafferForThirdPartyTools/index.md.txt b/1.4.6.0/_sources/GettingStarted/ConfiguringGafferForThirdPartyTools/index.md.txt new file mode 100644 index 000000000..81949c480 --- /dev/null +++ b/1.4.6.0/_sources/GettingStarted/ConfiguringGafferForThirdPartyTools/index.md.txt @@ -0,0 +1,236 @@ +# Configuring Gaffer for Third-Party Tools # + +Gaffer is compatible with the following commercial and open-source third-party tools: + +- [Arnold](https://www.arnoldrenderer.com/) +- [Cycles](https://www.cycles-renderer.org/) +- [3Delight](http://www.3delight.com/) +- [Tractor](https://renderman.pixar.com/tractor) + +Gaffer comes with Cycles, so it will require no additional configuration. For the rest of the tools in this list, you will need to set some additional environment variables. + +> Tip : +> If you do not use Cycles in production, you can hide its nodes and presets from the UI by setting the `GAFFERCYCLES_HIDE_UI` environment variable to `1`. Even when set, Cycles will still be available for OSL shader previews and example scenes. + +> Note : +> For the following Linux instructions, we will assume you are using the bash shell and are familiar with terminal commands. Other shells will have comparable methods for setting environment variables. + + +## Configuring Gaffer for Arnold ## + +For Gaffer to load the GafferArnold module, an `ARNOLD_ROOT` environment variable must point to the Arnold installation directory. Before you begin, make sure that Arnold is correctly installed and configured, and close any open instances of Gaffer. + + +### Arnold in Linux ### + +> Note : +> For this instruction, we will assume you have Arnold !ARNOLD_VERSION! installed to `!ARNOLD_PATH_LINUX!`. + +To create the `ARNOLD_ROOT` environment variable in Linux: + +1. Open `~/.bash_profile` with a text editor. + +2. Add the line `export ARNOLD_ROOT=!ARNOLD_PATH_LINUX!` and save. + +3. In a terminal, test that the variable is set: + + ```bash + user@desktop ~ $ echo $ARNOLD_ROOT + # !ARNOLD_PATH_LINUX! + ``` + + +### Arnold in Windows ### + +> Note : +> For this instruction, we will assume you have Arnold !ARNOLD_VERSION! installed to `!ARNOLD_PATH_WINDOWS!`. + +To create the `ARNOLD_ROOT` environment variable in Windows: + +1. Open the Command Prompt (Start > Windows System > Command Prompt). + +2. Run the command `setx ARNOLD_ROOT "!ARNOLD_PATH_WINDOWS!"`. + +3. In a new Command Prompt window, test that the variable is set: + + ```powershell + C:\Users\user> echo %ARNOLD_ROOT% + # !ARNOLD_PATH_WINDOWS! + ``` + + +### Arnold in macOS ### + +> Note : +> For this instruction, we will assume you have Arnold !ARNOLD_VERSION! installed to `!ARNOLD_PATH_OSX!`. + +To create the `ARNOLD_ROOT` environment variable in macOS: + +1. Open `~/.bash_profile` with a text editor. + +2. Add the line `export ARNOLD_ROOT=!ARNOLD_PATH_OSX!` and save. + +3. Open a terminal (Finder > Go > Utilities > Terminal). + +4. Test that the variable is set: + + ```bash + MacBook:~ user$ echo $ARNOLD_ROOT + # !ARNOLD_PATH_OSX! + ``` + + +### Verifying Arnold is loaded ### + +The next time you start Gaffer, the Arnold nodes will be available from the node creation menu (right-click inside the Graph Editor). + + + + +## Configuring Gaffer for 3Delight ## + +For Gaffer to load the GafferDelight module, a `DELIGHT` environment variable must point to the 3Delight installation directory. Before you begin, make sure that 3Delight is correctly installed and configured, and close any open instances of Gaffer. + + +### 3Delight in Linux ### + +> Note : +> For this instruction, we will assume you have 3Delight !DELIGHT_VERSION! installed to `!DELIGHT_PATH_LINUX!`. + +To create the `DELIGHT` environment variable in Linux: + +1. Open `~/.bash_profile` with a text editor. + +2. Add the line `export DELIGHT=!DELIGHT_PATH_LINUX!` and save. + +3. In a terminal, test that the variable is set: + + ```shell + user@desktop ~ $ echo $DELIGHT + # !DELIGHT_PATH_LINUX! + ``` + + +### 3Delight in Windows ### + +> Important : +> Gaffer currently requires __3Delight for Maya__ to be included as part of the 3Delight install for access to lights and shaders. + +> Tip : +> The 3Delight installer typically configures the `DELIGHT` environment variable on Windows. So the steps below may not be required. + +> Note : +> For this instruction, we will assume you have 3Delight !DELIGHT_VERSION! installed to `!DELIGHT_PATH_WINDOWS!`. + +To create the `DELIGHT` environment variable in Windows: + +1. Open the Command Prompt (Start > Windows System > Command Prompt). + +2. Run the command `setx DELIGHT "!DELIGHT_PATH_WINDOWS!"`. + +3. In a new Command Prompt window, test that the variable is set: + + ```powershell + C:\Users\user> echo %DELIGHT% + # !DELIGHT_PATH_WINDOWS! + ``` + + +### 3Delight in macOS ### + +> Note : +> For this instruction, we will assume you have 3Delight !DELIGHT_VERSION! installed to `!DELIGHT_PATH_OSX!`. + +To create the `DELIGHT` environment variable in macOS: + +1. Open `~/.bash_profile` with a text editor. + +2. Add the line `export DELIGHT=!DELIGHT_PATH_OSX!` and save. + +3. Open a terminal (Finder > Go > Utilities > Terminal). + +4. Test that the variable is set: + + ```bash + MacBook:~ user$ echo $DELIGHT + # !DELIGHT_PATH_OSX! + ``` + + +### Verifying 3Delight is loaded ### + +The next time you start Gaffer, the 3Delight nodes will be available from the node creation menu (right-click inside the Graph Editor). + + + + +## Configuring Gaffer for Tractor ## + +For Gaffer to interface with Tractor, the `PYTHONPATH` environment variable must contain the path to the Tractor python module. Before you begin, make sure that Tractor is correctly installed and configured, and close any open instances of Gaffer. + + +### Tractor in Linux ### + +> Note : +> For this instruction, we will assume you have Tractor !TRACTOR_VERSION! installed to `!TRACTOR_PATH_LINUX!`. + +To add the Tractor python module to the `PYTHONPATH` environment variable in Linux: + +1. Open `~/.bash_profile` with a text editor. + +2. Add the line `export PYTHONPATH=$PYTHONPATH\:!TRACTOR_PATH_LINUX!/lib/python2.7/site-packages` and save. + +3. In a terminal, test that the variable is set: + + ```shell + user@desktop ~ $ echo $PYTHONPATH + # /usr/bin/python2.7:/usr/lib/python2.7:!TRACTOR_PATH_LINUX!/lib/python2.7/site-packages + ``` + +> Note : +> Depending on your system's configuration, your `PYTHONPATH` variable might not appear exactly as above. What's important is whether `:!TRACTOR_PATH_LINUX!/lib/python2.7/site-packages` appears in the path. + + +### Tractor in macOS ### + +> Note : +> For this instruction, we will assume you have Tractor !TRACTOR_VERSION! installed to `!TRACTOR_PATH_OSX!`. + +To add the Tractor python module to the `PYTHONPATH` environment variable in macOS: + +1. Open `~/.bash_profile` with a text editor. + +2. Add the line `export PYTHONPATH=$PYTHONPATH\:!TRACTOR_PATH_OSX!/lib/python2.7/site-packages` and save. + +3. Open a terminal (Finder > Go > Utilities > Terminal). + +4. Test that the variable is set: + + ```shell + MacBook:~ user$ echo $PYTHONPATH + # /Library/Frameworks/Python.framework/Versions/2.7/bin:!TRACTOR_PATH_OSX!/lib/python2.7/site-packages + ``` + +> Note : +> Depending on your system's configuration, your `PYTHONPATH` variable might not appear exactly as above. What's important is whether `:!TRACTOR_PATH_OSX!/lib/python2.7/site-packages` appears in the path. + + +### Verifying Tractor is loaded ### + +Once the tractor folder has been added to your `PYTHONPATH`, you can then verify that Tractor is loading correctly: + +1. Launch Gaffer. + +2. Create and select a SystemCommand node (_Dispatch_ > _SystemCommand_). + +3. In the Node Editor, click _Execute_. The _Dispatcher_ window will open. + +4. _Tractor_ will be available in the _Dispatcher_ drop-down menu. + + + + +## See also ## + +- [Setting Up the "gaffer" Command](../SettingUpGafferCommand/index.md) +- [Installing Gaffer](../InstallingGaffer/index.md) diff --git a/1.4.6.0/_sources/GettingStarted/InstallingGaffer/index.md.txt b/1.4.6.0/_sources/GettingStarted/InstallingGaffer/index.md.txt new file mode 100644 index 000000000..5be1335e6 --- /dev/null +++ b/1.4.6.0/_sources/GettingStarted/InstallingGaffer/index.md.txt @@ -0,0 +1,69 @@ + + +# Installing Gaffer # + +The Gaffer package is a self-contained directory, so you will need to manually install it, and later manually configure it, if necessary. Once extracted, the Gaffer directory contains the complete application, ready for use. + +> Note : +> In keeping with Linux/macOS best practices, we will demonstrate how to install Gaffer in the `/opt/` directory. We also use `C:\software\` on Windows as an example installation path. However, you could install it to any location on your file system to which you have write and execute access. + + +## Installing in Linux ## + +To install Gaffer in Linux: + +1. Download the [latest Linux package of Gaffer](https://github.com/GafferHQ/gaffer/releases/download/!GAFFER_VERSION!/gaffer-!GAFFER_VERSION!-linux.tar.gz). + +2. Open a terminal. + +3. Extract the archive: + + ```bash + user@desktop ~ $ cd ~/Downloads + user@desktop ~/Downloads $ sudo tar -xzf gaffer-!GAFFER_VERSION!-linux.tar.gz -C /opt/ + ``` + +Gaffer is now installed to `/opt/gaffer-!GAFFER_VERSION!-linux`. + + +## Installing in Windows ## + +To install Gaffer in Windows: + +1. Download the [latest Windows package of Gaffer](https://github.com/GafferHQ/gaffer/releases/download/!GAFFER_VERSION!/gaffer-!GAFFER_VERSION!-windows.zip). + +2. Extract the archive (for best performance, we suggest extracting with [7-Zip](https://www.7-zip.org/)). + +3. Move the extracted `gaffer-!GAFFER_VERSION!-windows` folder to the location you wish to install it under, such as `C:\software`. + +Gaffer is now installed to `C:\software\gaffer-!GAFFER_VERSION!-windows`. + +> Note : +> Gaffer requires the [Microsoft Visual C++ Redistributable](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170) to be installed on Windows. This needs to be [downloaded](https://aka.ms/vs/17/release/vc_redist.x64.exe) and installed before Gaffer can be [launched](../LaunchingGafferFirstTime/index.md). + +## Installing in macOS ## + +> Note : +> Pre-built versions of Gaffer are currently unavailable on macOS. + +To install Gaffer in macOS: + +1. Download the [latest macOS package of Gaffer](https://github.com/GafferHQ/gaffer/releases/download/!GAFFER_VERSION!/gaffer-!GAFFER_VERSION!-macos.tar.gz). + +2. Open the terminal (Finder > Go > Utilities > Terminal). + +3. Extract the archive: + + ```bash + MacBook:~ user$ cd ~/Downloads + MacBook:~/Downloads user$ tar -xzf gaffer-!GAFFER_VERSION!-macos.tar.gz -C /opt/ + ``` + +Gaffer is now installed to `/opt/gaffer-!GAFFER_VERSION!-macos`. + + +## See also ## + +- [Launching Gaffer for the First Time](../LaunchingGafferFirstTime/index.md) +- [Setting Up the "gaffer" Command](../SettingUpGafferCommand/index.md) +- [Configuring Gaffer for Third-Party Tools](../ConfiguringGafferForThirdPartyTools/index.md) diff --git a/1.4.6.0/_sources/GettingStarted/LaunchingGafferFirstTime/index.md.txt b/1.4.6.0/_sources/GettingStarted/LaunchingGafferFirstTime/index.md.txt new file mode 100644 index 000000000..53948ac6f --- /dev/null +++ b/1.4.6.0/_sources/GettingStarted/LaunchingGafferFirstTime/index.md.txt @@ -0,0 +1,68 @@ + + +# Launching Gaffer for the First Time # + +Once Gaffer has been installed, you will probably want to try it out right away before performing any additional configuration. To launch it, you can run its application file directly from the binary directory. + +> Note : +> For these instructions, we will assume you have Gaffer installed to the `/opt/` directory on Linux or macOS and `C:\software\` on Windows. If you have installed it elsewhere, replace `/opt/` or `C:\software\` with the directory you installed it to. + +> Caution : +> When you run Gaffer from a terminal, its continued operation is dependent on that terminal window. If you close the terminal, it will also close Gaffer, and you may lose any unsaved data. + + +## Launching in Linux ## + +To launch Gaffer for the first time in Linux: + +1. Open a terminal. + +2. Navigate to the Gaffer binary directory and run the Gaffer application: + ```shell + user@desktop ~ $ cd /opt/gaffer-!GAFFER_VERSION!-linux/bin + user@desktop /opt/gaffer-!GAFFER_VERSION!-linux/bin $ ./gaffer + ``` + +Gaffer will launch in a new window. + + +## Launching in Windows ## + +To launch Gaffer for the first time in Windows: + +1. Open the Command Prompt (Start > Windows System > Command Prompt). + +2. Navigate to the Gaffer binary directory and run the Gaffer application: + ```powershell + C:\Users\user> cd C:\software\gaffer-!GAFFER_VERSION!-windows\bin + C:\software\gaffer-!GAFFER_VERSION!-windows\bin> gaffer.cmd + ``` + +Gaffer will launch in a new window. + +> Tip : +> Gaffer can also be launched by browsing to `C:\software\gaffer-!GAFFER_VERSION!-windows\bin` in Windows Explorer and double-clicking on `gaffer.cmd`. + +> Note : +> Gaffer requires the [Microsoft Visual C++ Redistributable](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170) to be installed on Windows. If you see errors related to missing `VCRUNTIME` files such as `VCRUNTIME140.dll`, the redestributable will need to be [downloaded](https://aka.ms/vs/17/release/vc_redist.x64.exe) and installed before Gaffer can be launched. + +## Launching in macOS ## + +To launch Gaffer for the first time in macOS: + +1. Open the terminal (Finder > Go > Utilities > Terminal). + +2. Navigate to the Gaffer binary directory and run the Gaffer application: + ```shell + MacBook:~ user$ cd /opt/gaffer-!GAFFER_VERSION!-macos/bin + MacBook:/opt/gaffer-!GAFFER_VERSION!-macos/bin user$ ./gaffer + ``` + +Gaffer will launch in a new window. + + +## See also ## + +- [Installing Gaffer](../InstallingGaffer/index.md) +- [Setting Up the "gaffer" Command](../SettingUpGafferCommand/index.md) +- [Configuring Gaffer for Third-Party Tools](../ConfiguringGafferForThirdPartyTools/index.md) diff --git a/1.4.6.0/_sources/GettingStarted/SettingUpGafferCommand/index.md.txt b/1.4.6.0/_sources/GettingStarted/SettingUpGafferCommand/index.md.txt new file mode 100644 index 000000000..222022389 --- /dev/null +++ b/1.4.6.0/_sources/GettingStarted/SettingUpGafferCommand/index.md.txt @@ -0,0 +1,122 @@ +# Setting Up the "gaffer" Command # + +After you have installed Gaffer, it will remain a collection of files and directories on your file system. Because it is not yet configured as a command, you must navigate to its directory every time. This could become very tedious, so we recommend that you modify your `PATH` environment variable to allow access to the `gaffer` command from anywhere in the terminal. + +> Note : +> For these instructions, we will assume you have Gaffer installed to the `/opt/` directory. If you have installed it elsewhere, replace `/opt/` with the directory you installed it to. + + +## Environment variables ## + +An environment variable is simply a value, such as a string, number, boolean, or location that your terminal is aware of. For instance, when you ran the `tar` command to extract the downloaded Gaffer package, the `tar` command was not located in your `~/Downloads` directory, but actually in `/usr/bin/`. Whenever you open your terminal, several folders are added to your terminal's `PATH` environment variable, which provides it with a list of locations in the file system from which it can source commands. + +In order for the `gaffer` command to work in your terminal, you will need to add Gaffer's directory to the `PATH` environment variable. + + +## Setting up the "gaffer" command in Linux ## + +The particular terminal on your system depends on your Linux distribution and how it was configured. Most distributions of Linux use bash, but there are other common terminals available, like tcsh. Because we cannot accommodate every available terminal, we will only provide instructions for adding to the `PATH` variable in bash and tcsh. + +> Tip : +> If you are not sure which terminal you have, you can find its name by opening a terminal and inputting `echo $0`, which will return `/bin/bash`, `tcsh`, or some equivalent. If you are not using bash or tcsh, the same principles of environment variables will apply, and your terminal's documentation should provide a comparable way of modifying the `PATH` variable. + +To set up the `gaffer` command in Linux: + +1. Open your terminal's config file in a text editor. + + - bash config: `~/.bash_profile` + - tcsh config: `~/.tcsh_profile` + +2. Add the following line to the end of the file: + + - bash: `export PATH=$PATH\:/opt/gaffer-!GAFFER_VERSION!-linux/bin` + - tcsh: `setenv PATH $PATH\:/opt/gaffer-!GAFFER_VERSION!-linux/bin` + +3. Save the file. + +4. Open a terminal. + +5. Test that the `PATH` variable has been updated: + + ```bash + user@desktop ~ $ echo $PATH + # /usr/local/bin:/usr/bin:/bin:/opt/gaffer-!GAFFER_VERSION!-linux/bin + ``` + +> Note : +> Depending on your system configuration, the beginning of your `PATH` variable might not appear exactly as above. What's important is whether `/opt/gaffer-!GAFFER_VERSION!-linux/bin` appears at the end of the path. + +You can now execute `gaffer` as a command from any directory in the terminal. + + +## Setting up the "gaffer" command in Windows ## + +To set up the `gaffer` command in Windows: + +1. Right click on the Start menu and click on __System__. + +2. In the "Settings" window, click on __Advanced System Settings__. + +3. In the "System Properties" window, click on __Environment Variables__. + +4. The "Environment Variables" window contains two sections, one for the current user's environment variables and the other for system environment variables, which apply to all users. In the appropriate section, select the `Path` entry and click __Edit...__ + +5. In the "Edit environment variable" window, click __New__ and specify the path to the Gaffer install's `bin` directory. + + - `C:\software\gaffer-!GAFFER_VERSION!-windows\bin` + +6. Click __Ok__ to apply the edit, and __Ok__ again to dismiss the "Edit environment variable" window. + +7. In a new Command Prompt window, test that the `PATH` variable has been updated: + + ```powershell + C:\Users\user> echo %PATH% + # C:\Windows\system32;C:\software\gaffer-!GAFFER_VERSION!-windows\bin + ``` + +> Note : +> Depending on your system configuration, the beginning of your `PATH` variable might not appear exactly as above. What's important is whether `C:\software\gaffer-!GAFFER_VERSION!-windows\bin` appears. + +You can now execute `gaffer` as a command from any directory in the command prompt. + + +## Setting up the "gaffer" command in macOS ## + +The default terminal in macOS is bash, so you will need to add to the `PATH` variable in the bash user config. + +To set up the `gaffer` command in macOS: + +1. Open `~/.bash_profile` in a text editor. + +2. Add the line `export PATH=$PATH\:/opt/gaffer-!GAFFER_VERSION!-macos/bin` and save. + +3. Open the terminal (Finder > Go > Utilities > Terminal). + +4. Test that the `PATH` variable has been updated: + + ```bash + MacBook:~ user$ echo $PATH + # /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/opt/gaffer-!GAFFER_VERSION!-macos/bin + ``` + +> Note : +> Depending on your system configuration, the beginning of your `PATH` variable might not appear exactly as above. What's important is whether `/opt/gaffer-!GAFFER_VERSION!-macos/bin` appears at the end of the path. + +You can now execute `gaffer` as a command from any directory in the terminal. + + +## Using the "gaffer" command ## + +Once you have added the Gaffer directory to the `PATH` variable, you can launch Gaffer anywhere in the terminal: + +```bash +gaffer +``` + +You can also use the command to open Gaffer scripts, as outlined in the [Command Line Reference](../../Reference/CommandLineReference/index.md). + + +## See also ## + +- [Installing Gaffer](../InstallingGaffer/index.md) +- [Configuring Gaffer for Third-Party Tools](../ConfiguringGafferForThirdPartyTools/index.md) diff --git a/1.4.6.0/_sources/GettingStarted/TutorialAssemblingTheGafferBot/index.md.txt b/1.4.6.0/_sources/GettingStarted/TutorialAssemblingTheGafferBot/index.md.txt new file mode 100644 index 000000000..9a31fd1d0 --- /dev/null +++ b/1.4.6.0/_sources/GettingStarted/TutorialAssemblingTheGafferBot/index.md.txt @@ -0,0 +1,521 @@ +# Tutorial: Assembling the Gaffer Bot # + +In this tutorial, we will give you a first taste of Gaffer by covering its basic operations and concepts. The goal is for you to learn to make renders of a basic scene as quickly as possible, and provide a minimal basis to further explore the application and its documentation. It will cover a lot of ground quickly, and some details will be glossed over. + +By the end of this tutorial you will have built a basic scene with Gaffer's robot mascot, Gaffy, and render an output image. You will learn the following lessons, not necessarily in this order: + +- Gaffer UI fundamentals +- Creating and connecting nodes +- Importing geometry +- Constructing a basic scene hierarchy +- Importing textures +- Building a simple shader +- Applying a shader to geometry +- Adding a light +- Using an interactive renderer + +> Note : +> This tutorial uses Cycles, a free renderer included with Gaffer. While the Cycles-specific nodes described here can be substituted with equivalents from Arnold or 3Delight, we recommend that you complete this tutorial using Cycles before moving on to your preferred renderer. + + +## Starting a new node graph ## + +After [installing Gaffer](../../GettingStarted/InstallingGaffer/index.md), launch Gaffer [from its directory](../../GettingStarted/LaunchingGafferFirstTime/index.md) or by using the ["gaffer" command](../../GettingStarted/SettingUpGafferCommand/index.md). Gaffer will start, and you will be presented with an empty node graph in the default UI layout. + +![](images/mainDefaultLayout.png "An empty node graph in the default layout") + + +## Importing a geometry scene cache ## + +As Gaffer is a tool primarily designed for lookdev, lighting, and VFX process automation, we expect that your sequence's modelling and animation will be created in an external tool like Maya, and then imported into Gaffer as a geometry/animation cache. Gaffer supports Alembic (.abc) and USD (.usdc and .usda) file formats, as well as its own native SceneCache (.scc) file format. Most scenes begin by importing geometry or images via one of the two types of Reader nodes: [SceneReader](../../Reference/NodeReference/GafferScene/SceneReader.md) or [ImageReader](../../Reference/NodeReference/GafferImage/ImageReader.md). + +First, load Gaffy's geometry cache with a SceneReader node: + +1. In the Graph Editor in the bottom-left panel, right-click. The node creation menu will appear. + +2. Select _Scene_ > _File_ > _Reader_. The SceneReader node will appear in the Graph Editor and be selected automatically. + + ![](images/mainSceneReaderNode.png "A new SceneReader node") + +3. The Node Editor in the top-right panel has now updated to display the SceneReader node's values. In the _File Name_ field, type `${GAFFER_ROOT}/resources/gafferBot/caches/gafferBot.scc`. + +4. Click the focus icon on the top right of the SceneReader to set it as the focus node, so that it will appear in editors set to follow focus, such as the viewer. + + ![](images/mainSceneReaderNodeFocussed.png "The SceneReader node now has a focus icon") + +5. Hover the cursor over the background of the Viewer (in the top-left panel), and hit F. The view will reframe to cover the whole scene. + + ![](images/viewerSceneReaderBounding.png "The bounding box of the selected SceneReader node") + +The SceneReader node has loaded, and the Viewer is showing a bounding box, but the geometry remains invisible. You can confirm that the scene has loaded by examining the Hierarchy View in the bottom-right panel. It too has updated, and shows that you have `GAFFERBOT` at the root of the scene. In order to view the geometry, you will need to expand the scene's locations down to their leaves. + +> Important : +> By default, the Viewer, and Hierarchy View show the focus node, and go blank when no node is focused ( Indicated by icon: ![](images/nodeSetFocusNode.png "The focus mode icon") ). The Node Editor shows the selected node ( Indicated by icon: ![](images/nodeSetNodeSelection.png "The selection mode icon") ). + + +## The scene hierarchy ## + +When you load a geometry cache, Gaffer only reads its 3D data: at no point does it write to the file. This lets you manipulate the scene without risk to the file. + +> Important : +> 3D data in Gaffer can be non-destructively hidden, added to, changed, and deleted. + +Further, Gaffer uses locations in the scene hierarchy to selectively render the objects (geometry, cameras) you need: in the Viewer, the objects of expanded locations will show, while the objects of collapsed locations will only appear as a bounding box. This on-demand object loading allows Gaffer to handle highly complex scenes. In your current node graph, only Gaffy's bounding box is visible in the Viewer. + +> Important : +> Only objects that have their parent locations expanded will appear in full in the Viewer. Objects with collapsed parent locations will appear as a bounding box. + + +### Navigating the scene using the Hierarchy View ### + +Until you expand Gaffy's scene's locations, all geometry will remain a bounding box. + +You can use the Hierarchy View to expand the scene's locations: + +1. If the SceneReader node is deselected, select it by clicking it in the Graph Editor. + +2. In the Hierarchy View, click ![](images/collapsibleArrowRight.png "the triangle") next to `GAFFERBOT`. The `GAFFERBOT` location will expand to show a child location named `C_torso_GRP`. + +3. Click ![](images/collapsibleArrowRight.png "the triangle") next to `C_torso_GRP` to show its child locations. + + ![](images/hierarchyViewExpandedTwoLevels.png "The scene hierarchy, expanded down two levels") + +> Note : +> Gaffy's geometry cache contains location names with affixes like "C", "R", "L", "GRP", "CPT" and "REN". Gaffer places no significance whatsoever on these names, and you are free to use whichever naming conventions you see fit. + +In the Viewer, you can now see the bounding boxes of the objects at several locations, revealing more of the scene's structure. However, it would be tedious to expand the whole scene, location-by-location, in this manner. Instead, you can expand a location, its children, and all its sub-children at once with a shortcut: + +1. In the Hierarchy View, Shift + click the ![](images/collapsibleArrowRight.png "triangle") next to `C_head_GRP`. All of the children of `C_head_GRP` will expand. Now the Viewer shows all of the geometry that comprises Gaffy's head. + +2. Shift + click the ![](images/collapsibleArrowRight.png "triangle") next to `R_legUpper_GRP`. All the locations under `R_legUpper_GRP` will expand. Now the Viewer also shows all of the geometry that comprises Gaffy's right leg. + +![](images/mainHeadAndLeftLegExpanded.png "The geometry of the head and right leg, expanded") + + +### Navigating the scene using the Viewer ### + +As you explored the scene using the Hierarchy View, the Viewer updated to show the geometry you expanded. The Viewer also permits scene navigation through direct interaction with the geometry and bounding boxes in its viewport. This provides a more intuitive method for scene traversal, which can be invaluable when handling very complex scenes. + +You can expand the scene hierarchy using the arrow keys and the Viewer: + +1. In the Viewer, click-drag and release a marquee over the bounding box for Gaffy's left leg. + +2. Hit to expand the selection down one level. The highlighted bounding box will be replaced by two smaller bounding boxes, indicating that you have expanded the location's children. + +3. Hit Shift + to fully expand all the left leg's child locations. + + ![](images/viewerHeadAndLegsExpanded.png "The head and leg geometry, expanded") + +You can also collapse locations in a similar manner through the Viewer: + +1. With the geometry of the left leg still selected, hover the mouse inside the Viewer. + +2. Hit . The geometry will collapse into its bounding boxes. + +3. Keep hitting until all of Gaffy's geometry is collapsed back into the root bounding box. + +You may have noticed that when you expanded and collapsed parts of the scene using the Viewer, the locations and geometry were also highlighted and selected in the Hierarchy View. + +> Important : +> Selecting, expanding, and collapsing scene locations through the Hierarchy View and the Viewer are one and the same. + + +## Adjusting the view in the Viewer ## + +Like in other 3D tools, you can adjust the angle, field of view, and the position of the virtual camera in the Viewer. + +- To rotate/tumble, Alt + click and drag. +- To zoom/dolly in and out, Alt + right click and drag, or scroll the middle mouse. +- To track from side to side, Alt + middle click and drag. + +> Tip : +> If you lose sight of the scene and cannot find your place again, you can always refocus on the currently selected location by hovering the cursor over the Viewer and hitting F. + + +## Creating a camera ## + +Before you can begin rendering the scene, you will need to create a camera. Just like how you created a SceneReader node to load in the geometry, you will create another node to add a camera. + +Earlier, you learned how to create a node by navigating the node creation menu in the Graph Editor. If you know the name of the node you wish to create, and do not feel like mousing through the menu, you can instead use the menu's search feature: + +1. Right-click the background of the Graph Editor. The node creation menu will open. + + > Tip : + > With the cursor hovering over the Graph Editor, you can also hit Tab to open the node creation menu. + +2. Type `camera`. A list of search results will appear. _Camera_ should be highlighted. + +3. Hit Enter. A Camera node will appear in the Graph Editor. + + ![](images/mainCameraNode.png "A new Camera node") + +As before, the newly created node will be selected automatically, and the Viewer, Hierarchy View, and Node Editor will update to reflect this new selection. + + +## Node data flow ## + +So far, your graph is as such: the SceneReader node is outputting a scene with Gaffy's geometry, and the Camera node is outputting a camera object. In fact, the Camera node is outputting a **whole scene** containing a camera object. As such, any node that sends or receives scene data is classified as a **scene node**. This paradigm may be a bit confusing compared to other DCCs, but it is one of Gaffer's strengths. + +> Important : +> When a scene node is queried, such as when you select it, it will dynamically compute a scene based on the input values and data it is provided. + + +### Scenes ### + +In Gaffer, there is no single data set of locations and properties that comprise the sequence's scene. In fact, a Gaffer graph is not limited to a single scene. Instead, when a node is queried, a scene is dynamically computed as that node's output. You can test this by clicking the background of the Graph Editor. With no node selected, the Hierarchy View goes blank, because there is no longer a scene requiring computation. Thus, no scene exists. Since scenes are computed only when needed, Gaffer has the flexibility to support an arbitrary quantity of them. + +Since neither of your nodes is connected, each of their scenes remains separate. If you were to evaluate your graph right now, it would calculate two independent scenes. For them to interface, they must be joined somewhere later in the graph. + +> Important : +> In the Graph Editor, node data flows from top to bottom. + +When a scene node computes a scene, scene data passes through it like so: + +1. Data flows into the node through its input(s). + +2. If applicable, the node modifies the data. + +3. The node computes the resulting scene data and sends it through its output. + + +### Plugs ### + +The inputs and outputs of a node are called **plugs**, and are represented in the Graph Editor as colored circles around the node's edges. + + + +For your two nodes to occupy the same scene (and later render together), you will need to combine them into a single scene. You can connect both of their out plugs to a Group node, and you can also rearrange the nodes to better visually represent the data flow in the graph. + + +## Connecting plugs ## + +It's time to connect the SceneReader and Camera nodes to combine their scenes: + +1. Click the background of the Graph Editor to deselect all nodes. + +2. Create a Group node (_Scene_ > _Hierarchy_ > _Group_). + +3. Click and drag the SceneReader node's out plug (at the bottom; blue) onto the Group node's in0 plug (at the top; also blue). As you drag, a node connector will appear. Once you connect them, a second input plug (in1) will appear on the Group node, next to the first. + +4. Click and drag the Camera node's out plug onto the Group node's in1 plug. + +The Group node is now computing a new scene combining the input scenes from the two nodes above it, under a new parent scene location called `group`. You can see this new hierarchy by selecting the Group node and examining the Hierarchy View. + +![](images/mainGroupNode.png "A new Group node") + +Only the combined scene computed by the Group node is modified. The upstream nodes' scenes are unaffected. You can verify this by reselecting one of them and checking the Hierarchy View. + + +## Navigating the Graph Editor ## + +You may have noticed that you can intuitively click and drag the nodes around in the Graph Editor. You can also pan around and zoom: + +- To pan, Alt + click and drag, or middle-click and drag. +- To zoom in and out, Alt + right-click and drag, or scroll the middle mouse. +- To focus on the currently selected node, hover the cursor over the Graph Editor and hit F. + + +## Positioning the camera ## + +Next, you should reposition the camera so that it frames Gaffy. You can accomplish this using the built-in 3D manipulation tools in the Viewer. + +First, set the camera's position using the Translate Tool: + +1. Select the Group node in the Graph Editor. + +2. Fully expand all scene locations by Shift + clicking ![](images/collapsibleArrowRight.png "the triangle") next to `group` in the Hierarchy View. + +3. Click the camera object in the Viewer, or select the `camera` location in the Hierarchy View. + +4. In the Viewer, click ![](images/gafferSceneUITranslateTool.png "the Translate Tool button"). The translation manipulators will appear on the camera. + +5. Using the manipulators, adjust the camera back and up. + + ![](images/viewerCameraRepositioned.png "The camera, repositioned, in the Viewer") + +Next, rotate the camera using the Rotate Tool: + +1. In the Viewer, click ![](images/gafferSceneUIRotateTool.png "the Rotate Tool button"). The rotation manipulators will appear around the camera. + +2. Using the manipulators, rotate the camera so it points at Gaffy. + +![](images/viewerCameraRotated.png "The camera, rotated, in the Viewer") + + +### More precise camera adjustment ### + +For more precise positioning and rotation, you can set the Translate and Rotate values in the _Transform_ tab of the Node Editor: + +![](images/nodeEditorWindowCameraTransform.png "The camera's transform values") + +> Important : +> In the prior section _Connecting Plugs_, we referred to the main inputs and outputs of a node as plugs. In actuality, **all** the values you see in the Node Editor, including the camera's transform, are plugs. For ease of use, only a subset of a node's available plugs appear in the Graph Editor. + + +## Rendering your first image ## + +Now that you have defined the layout of your scene, you should perform a quick test-render to check that everything is working as expected. In order to do that, you need to place some render-related nodes to define your graph's render settings. + +Create the render settings nodes: + +1. First, select the Group node. Now, the next scene node you create will automatically connect to it. + +2. Then, create the following nodes in sequence: + - StandardOptions (_Scene_ > _Globals_ > _StandardOptions_): Determines the camera, resolution, and blur settings of the scene. + - CyclesOptions (_Cycles_ > _Options_): Determines the settings of the Cycles renderer. + - Outputs (_Scene_ > _Globals_ > _Outputs_): Determines what kind of output image will be created by the renderer. + - InteractiveRender (_Scene_ > _Render_ > _InteractiveRender_): Hosts an interactive render session. + +3. Finally, create a Catalogue node (_Image_ > _Utility_ > _Catalogue_). This is an image node for listing and displaying a directory of images in the Viewer. By default, it points to the default output directory of your graph's rendered images. Place it next to the InteractiveRender node. + + ![](images/graphEditorRenderSettings.png "The render-related nodes") + + > Note : + > The Catalogue node is not a scene node, but an image node. It cannot be connected to a scene node. + +In keeping with what we said earlier about nodes passing scenes to other nodes: each of the render nodes only applies to the scene delivered to it through its input plugs. If you had another unconnected scene running in parallel, none of these render properties would apply to it. + +Although the scene contains a camera, you will need to tell the StandardOptions node to set it as a global property of the scene: + +1. Select the StandardOptions node. + +2. Specify the camera using the Node Editor: + 1. Click the _Camera_ section to expand it. + 2. Toggle the switch next to the Camera plug to enable it. + 3. Type `/group/camera` into the plug's field. + +Next, you need to add an image type to render: + +1. Select the Outputs node. + +2. In the Node Editor, click ![](images/plus.png "the plus button") and select _Interactive_ > _Beauty_ from the drop-down menu. + +With all the settings complete, start the interactive renderer: + +1. Select the InteractiveRender node in the Graph Editor. + +2. In the Node Editor, choose "Cycles" from the renderer presets menu. + +3. In the Node Editor, click ![](images/timelinePlay.png "the play button") to start the renderer. + +4. Click the focus icon on the Catalogue node. + +5. Hover the cursor over the Viewer and hit F to frame the Catalogue node's live image of the interactive render. + + ![](images/mainRenderGrey.png "The first render") + +Congratulations! You have successfully rendered your first image. Gaffy is currently lacking shading, lighting, and texturing. We will move on to those soon. First, you should adjust the UI to provide yourself a more optimal workflow. + + +## Pinning an editor to a node ## + +To make switching between viewing Gaffy's geometry and the render easier, you can modify the UI so you can work with two Viewers. First, start by pinning the catalogue node: + +1. Select the Catalogue node. + +2. From the editor focus menu ![](images/editorFocusMenuFocusNode.png "The editor focus menu") at the top-right of the top panel, choose _Pin Catalogue_. The menu's icon will change to the pinned icon (![](images/nodeSetStandardSet.png "highlighted pin")) to show it is now locked to a specific node, and the Viewer's title in the tab bar will now include _[Catalogue]_ to help you keep track of which node(s) are pinned in which editors. + +![](images/viewerPinned.png "The Viewer's tab bar and editor focus menu when pinned to a specific node") + +> Tip : +> You can also pin an editor to the current node selection by pressing P whilst the cursor is over the editor, or by middle-click and dragging the Catalogue node onto the Viewer. + +The Viewer is now locked to the Catalogue image, and will only show that image, even if you deselect it and select or focus a different node. + +In the default layout, the Hierarchy View and other editors are set to follow the focus node. + +For the final adjustment to the UI, create another Viewer in the top-left panel, which will also follow the focus node. + +1. At the top-right of the top panel, click ![](images/layoutButton.png "the layout menu button") to open the layout menu. + +2. Select Viewer. A new Viewer will appear on the panel next to the first one. + + + +Now you can switch between the rendered image (first Viewer) and the scene's geometry (second Viewer). + +Now it is time to shade Gaffy. + + +## Adding shaders and lighting ## + +It's time to add shaders and lighting. Lights are created at their own location, and can be added anywhere in the graph. For efficiency, shaders should be added to the geometry as early as possible. + + +### Making some space ### + +It will be best if you keep the render option nodes at the end of the graph. Since you will be adding shader nodes after the scene nodes, first add some space in the middle of the graph: + +1. Select the lower five nodes by clicking and dragging a marquee over them. + +2. Click and drag the nodes to move them to a lower position in the graph. + + ![](images/mainRenderSettingsWithGap.png "The graph with some added space") + + +### Adding a shader ### + +Now that you have more space, it's time to add some shading nodes: + +1. Below and to the left of the Group node, create a Cycles Principled BSDF shader node (_Cycles_ > _Shader_ > _Shader_ > _Principled Bsdf_). + +2. In the Node Editor, give the shader reflective surface properties: + - Set the Base Color plug to `0.18 0.18 0.18`. + - Set the Coat Weight plug to `1`. + - Set the Coat Roughness plug to `0.15`. + +> Tip : +> Numeric fields support basic mathematical operations to adjust their values. For example, appending `+1` to a plug with an existing value of `2`, will set it to `3`. You can use `+`, `-`, `/`, `*` and `%` to modify the existing value. + +3. Select the principled_bsdf node and create a ShaderAssignment node (_Scene_ > _Attributes_ > _ShaderAssignment_). + +4. Click and drag the ShaderAssignment node onto the connector between the Group and StandardOptions nodes. The ShaderAssignment node will be interjected between them. + + ![](images/graphEditorFirstShaderNodes.png "The ShaderAssignment and Principled BSDF nodes") + +> Important : +> In the Graph Editor, shader data flows from left to right. + +In your newly shaded graph, the ShaderAssignment node takes the shader flowing in from the left and assigns it to Gaffy's scene flowing in from the top. Now that Gaffy has received a proper shader, the whole image has turned black, because the scene currently lacks lighting. + + +### Adding a light ### + +For lights to take effect, they need to be combined with the main scene. For simplicity, use a background light textured with an HDRI applied as an environment texture: + +1. Create a Cycles background light node (_Cycles_ > _Light_ > _Background Light_). + +2. Create a Cycles environment texture shader node (_Cycles_ > _Shader_ > _Texture_ > _Environment Texture_). + +3. Place them next to the Camera node in the Graph Editor. + +4. Connect the environment_texture node's color plug to the background_light node's color plug. + +5. In the Node Editor, adjust the environment_texture node's filename plug: + - Set the Filename plug to `${GAFFER_ROOT}/resources/hdri/studio.exr`. + +6. Adjust the background_light node's exposure plug: + - Set the Exposure plug to `1`. + +7. Rotate the background_light 90 degrees in Y: + - Under the Transform tab, set the Rotate Y plug to `90`. + +8. Connect the background_light node's out plug to the Group node's in2 plug. + +![](images/graphEditorBackgroundLightNode.png "A new background light node with sky texture shader") + +The interactive render will now begin updating, and you will be able to see Gaffy with some basic shaders and lighting. + +![](images/viewerRenderOneShader.png "The first render with a shader and lighting") + + +### Adding textures ### + +As Gaffy is looking a bit bland, you should drive the shader with some robot textures: + +1. Create a Cycles image texture node (_Cycles_ > _Shader_ > _Texture_ > _Image Texture_). + +2. In the Node Editor, point the node to the textures: + - For the Filename plug, type `${GAFFER_ROOT}/resources/gafferBot/textures/base_COL/base_COL_.tx`. + +3. In the Graph Editor, connect the image_texture node's color plug to the principled_bsdf node's base color plug. Gaffy's textures will now drive the color of the surface shader, and the render will update to show the combined results. + + ![](images/viewerRenderTextures.png "Gaffy with textures") + + +### Adding another shader ### + +Right now, the physical surface of all of Gaffy's geometry looks the same, because the shader is applying to every component of the geometry. To fix this, you should create an additional metallic shader and apply it selectively to different locations. + +Begin by creating another shader: + +1. Create another principled bsdf shader node. + +2. Give the shader some metallic properties: + - Set the Base Color plug to `0.3 0.15 0.04`. + - Set the Metallic plug to `1.0`. + - Set the Roughness plug to `0.25`. + +3. Select the principled_bsdf1 node and create another ShaderAssignment node. + +4. Interject the new ShaderAssignment1 node after the first ShaderAssignment node. + + ![](images/graphEditorSecondShaderNodes.png "A second shader in the Graph Editor") + +The Viewer will update to show the new shader. + +![](images/mainRenderTwoShaders.png "The second shader, rendered") + +You will immediately notice that now **all** the geometry is metallic. The new shader has overridden the previous one. + +> Important : +> The last ShaderAssignment node applied to a location takes precedence over any others. + + +### Filtering a shader ### + +In order to selectively apply a shader to only certain locations in the scene, you will need to filter the shader assignment, using a filter node that points to specific locations in the scene: + +1. Create a PathFilter node (_Scene_ > _Filters_ > _PathFilter_). + +2. In the Node Editor, click ![](images/plus.png "the plus button") next to _Paths_. This will add a new text field. + +3. In the text field, type `/group/GAFFERBOT/C_torso_GRP/C_head_GRP/C_head_CPT/L_ear001_REN`. This is the full path to Gaffy's left ear. + +4. Connect the PathFilter node's out plug to the ShaderAssignment1 node's filter plug (yellow, on the right). + + ![](images/graphEditorPathFilterNode.png "The connected PathFilter node") + +Now when you check the render, you will see that the metal shader is only applied to Gaffy's left ear. There are many other parts of Gaffy that could use the metallic treatment, but it would be tedious for you to manually enter multiple locations. Instead, we will demonstrate two easier ways to add locations to the filter: using text wildcards, and interacting directly with the geometry through the Viewer. + + +#### Filtering using wildcards #### + +Earlier, you used `/group/GAFFERBOT/C_torso_GRP/C_head_GRP/C_head_CPT/L_ear001_REN`, which only pointed to the left ear. You could apply the filter to both ears by adding wildcards to the `/L_ear001_REN` location in the path: + +1. Select the PathFilter node. + +2. In the Node Editor, double-click the path field you created earlier, and change it to `/group/GAFFERBOT/C_torso_GRP/C_head_GRP/C_head_CPT/*_ear*`. The filter will now match the left and the right ears. + + +#### Filtering by dragging selections #### + +As your final lesson in this tutorial, add the metallic shader to the rest of the appropriate parts of Gaffy. This time, you can add to the filter by directly interacting with the scene: + +1. In the top panel, switch to the Viewer containing the 3D geometry view. + +2. Zoom and pan to Gaffy's face. + +3. Click Gaffy's unibrow. + +4. Shift + click Gaffy's mouth to add it to the selection. + + ![](images/viewerSelectionFace.png "The face, with selection") + +5. Click and drag the selection (the cursor will change to ![](images/replaceObjects.png "Replace objects")), and hold it over the PathFilter node without releasing. + +6. While still holding the mouse button, hold Shift (the cursor will change to ![](images/addObjects.png "Add objects")). You are now adding to the path, rather than replacing it. + +7. Release the selection over the PathFilter node. This will add the locations as new values fields on the plug. + +> Tip : +> Just as locations can be added by holding Shift, they can be removed by holding Ctrl (the cursor will change to ![](images/removeObjects.png "Remove objects")). + +Add and remove locations to the filter as you see fit. Remember to switch between the two Viewers to check the render output as it updates. After adding Gaffy's hands and bolts to the filter, you should achieve an image similar to this: + +![](images/viewerRenderFinal.png "The final render") + + +## Recap ## + +Congratulations! You've built and rendered your first scene in Gaffer. + +You should now have a basic understanding of Gaffer's interface, the flow of data in a graph, how to manipulate the scene, and how to add geometry, lights, textures, and shaders. + +You should now have a solid basis for further learning and exploration. + + +## See also ## + +- [Installing Gaffer](../InstallingGaffer/index.md) +- [Controls and Shortcuts](../../Interface/ControlsAndShortcuts/index.md) diff --git a/1.4.6.0/_sources/GettingStarted/index.md.txt b/1.4.6.0/_sources/GettingStarted/index.md.txt new file mode 100644 index 000000000..d1d032dd0 --- /dev/null +++ b/1.4.6.0/_sources/GettingStarted/index.md.txt @@ -0,0 +1,34 @@ + + +# Getting Started # + +Here you can find information and instructions about how to install and configure Gaffer. + + +## Quick installation ## + +- [Installing Gaffer](InstallingGaffer/index.md) +- [Launching Gaffer for the First Time](LaunchingGafferFirstTime/index.md) + +After you have installed Gaffer, we recommend that you familiarize yourself with the application and its basic concepts by following the [Assembling the Gaffer Bot](TutorialAssemblingTheGafferBot/index.md) tutorial. + + +## Complete installation ## + +- [Setting Up the "gaffer" Command](SettingUpGafferCommand/index.md) +- [Configuring Gaffer for Third-Party Tools](ConfiguringGafferForThirdPartyTools/index.md) + + + +```{eval-rst} +.. toctree:: + :hidden: + :titlesonly: + :maxdepth: 1 + + InstallingGaffer/index.md + LaunchingGafferFirstTime/index.md + TutorialAssemblingTheGafferBot/index.md + SettingUpGafferCommand/index.md + ConfiguringGafferForThirdPartyTools/index.md +``` diff --git a/1.4.6.0/_sources/Interface/ControlsAndShortcuts/index.md.txt b/1.4.6.0/_sources/Interface/ControlsAndShortcuts/index.md.txt new file mode 100644 index 000000000..7e50fe9a1 --- /dev/null +++ b/1.4.6.0/_sources/Interface/ControlsAndShortcuts/index.md.txt @@ -0,0 +1,440 @@ +--- +substitutions : + leftClick : "![Left click](images/mouseLeftClick.png)" + rightClick : "![Right click](images/mouseRightClick.png)" + middleClick : "![Middle click](images/mouseMiddleClick.png)" + mouseWheel : "![Mouse wheel](images/mouseWheelUpDown.png)" + editorFocusMenu : "![Editor focus menu](images/editorFocusMenuNodeSelection.png)" + activeRenderPass : "![Active render pass](images/activeRenderPass.png)" +--- + +# Controls and Shortcuts # + +The following is a list of input device controls and shortcuts providing quick access to functionality in Gaffer's Viewers and Editors. + +## Guide ## + +### Keyboard Shortcuts ### + +Keyboard shortcuts, or hotkeys, are shown as they would typically appear on a keyboard: + +Example Action | Shortcut +-------------------------------------|-------------------- +Type the letter `g` | {kbd}`G` +Press a modifier key | {kbd}`Ctrl` +Press multiple keys together | {kbd}`Ctrl` + {kbd}`C` +Press one of the following keys | {kbd}`A`, {kbd}`B`, {kbd}`C`, {kbd}`D` +Press either of the following keys | {kbd}`Enter`
or
{kbd}`Return` + +> Tip : +> macOS users: replace Ctrl with Command ⌘. + +### Mouse Controls ### + +Mouse controls are shown as icons representing the action to perform: + +Example Action | Mouse control +-------------------------------------|-------------------- +Press the left mouse button | {{leftClick}} +Press the middle mouse button | {{middleClick}} +Press the right mouse button | {{rightClick}} +Scroll the mouse wheel | {{mouseWheel}} + +## General ## + +Action | Control or shortcut +-------------------------------------|-------------------- +New node graph | {kbd}`Ctrl` + {kbd}`N` +Open node graph | {kbd}`Ctrl` + {kbd}`O` +Save node graph | {kbd}`Ctrl` + {kbd}`S` +Save node graph as | {kbd}`Ctrl` + {kbd}`Shift` + {kbd}`S` +Quit the application | {kbd}`Ctrl` + {kbd}`Q` +Undo | {kbd}`Ctrl` + {kbd}`Z` +Redo | {kbd}`Ctrl` + {kbd}`Shift` + {kbd}`Z` +Step one frame forward | {kbd}`→` +Step one frame backward | {kbd}`←` +Play forward | {kbd}`Ctrl` + {kbd}`→` +Play backward | {kbd}`Ctrl` + {kbd}`←` +Stop playback | {kbd}`→`, {kbd}`←`, {kbd}`Ctrl` + {kbd}`→`, {kbd}`Ctrl` + {kbd}`←` +Fullscreen mode | {kbd}`F11` +Hide tabs of current panel | {kbd}`Ctrl` + {kbd}`T` +Maximise current panel | {kbd}`Space` + +> Note : +> Gaffer has many interactions requiring drag and drop of UI elements. As an alternative to holding {{leftClick}} for the duration of a drag, {kbd}`G` can be pressed once to start a drag and then once again to complete the drag. + +Action | Control or shortcut +-------------------------------------|-------------------- +Begin a {{leftClick}} drag | Hover cursor over drag target, {kbd}`G` +Complete a {{leftClick}} drag | While dragging, hover cursor over drop target, {kbd}`G` + +### Pinnable Editors and Inspectors ### + +Action | Control or shortcut +-------------------------------------|-------------------- +Follow the focus node | Hover cursor over editor, ` +Pin the node selection | Hover cursor over editor, {kbd}`P` +Pin numeric bookmark 1-9 | Hover cursor over editor, {kbd}`1` - {kbd}`9` +Follow to the node selection | Hover cursor over editor, {kbd}`N` + +## Graph Editor ## + +> Note : +> For the following controls and shortcuts, the cursor must hover over the Graph Editor. + +### Navigation ### + +Action | Control or shortcut +-------------------------------------|--------------------------------------------- +Pan | {kbd}`Alt` + {{leftClick}} and drag +Zoom | {kbd}`Alt` + {{rightClick}} and drag
or
{{mouseWheel}} +Pan/Zoom, fine precision | Hold {kbd}`Shift` during action +Frame selected nodes | {kbd}`F` +Enter `Box` node (subgraph) | {kbd}`↓` +Leave `Box` node (subgraph) | {kbd}`↑` +Search for nodes | {kbd}`Ctrl` + {kbd}`F` +Frame to numeric bookmark | {kbd}`1` … {kbd}`9` +Frame to focus node | ` + +### Node creation ### + +Action | Control or shortcut +------------------------------------|-------------------- +Show node menu | {{rightClick}}
or
{kbd}`Tab` +Insert `Dot` at connection | {kbd}`Ctrl` + {{leftClick}} connection
or
{{rightClick}} connection > *Insert Dot* + +### Node selection ### + +Action | Control or shortcut +-------------------------------------|------------------- +Select all | {kbd}`Ctrl` + {kbd}`A` +Clear selection | {kbd}`Ctrl` + {kbd}`Shift` + {kbd}`A` +Select node | {{leftClick}} +Add node to selection | {kbd}`Shift` + {{leftClick}} +Add/remove node from selection | {kbd}`Ctrl` + {{leftClick}} +Select nodes | {{leftClick}} and drag marquee, then release +Add nodes | {kbd}`Shift` + {{leftClick}} and drag marquee, then release +Deselect nodes | {kbd}`Ctrl` + {{leftClick}} and drag marquee, then release +Select upstream nodes | {kbd}`Shift` + {kbd}`Alt` + {{leftClick}} node +Select downstream nodes | {kbd}`Ctrl` + {kbd}`Alt` + {{leftClick}} node + +### Node dispatch ### + +> Note : +> For these dispatch-related shortcuts, the cursor does **not** need to hover over the Graph Editor. + +Action | Control or shortcut +-------------------------------------|------------------- +Dispatch selected node(s) | {kbd}`Ctrl` + {kbd}`E` +Redo last dispatch | {kbd}`Ctrl` + {kbd}`R` + +### Node copying and deletion ### + +> Tip : +> For a Box node to be disableable, it must first be [set up for pass-through](../../WorkingWithTheNodeGraph/BoxNode/index.html#setting-up-a-box-for-pass-through). + +Action | Control or shortcut +-------------------------------------|-------------------- +Cut node(s) | {kbd}`Ctrl` + {kbd}`X` +Copy node(s) | {kbd}`Ctrl` + {kbd}`C` +Paste node(s) | {kbd}`Ctrl` + {kbd}`V` +Duplicate node(s) with inputs | {kbd}`Ctrl` + {kbd}`D` +Delete node(s) | {kbd}`Backspace`
or
{kbd}`Delete` +Enable/disable node(s) | {kbd}`D` +Rename node(s) | {kbd}`F2` + +### Node connections and layout ### + +Action | Control or shortcut +-------------------------------------|-------------------- +Connect plug | {{leftClick}} and drag plug to another plug +Disconnect plug | {{leftClick}} and drag connection to background +Insert node onto connection | {{leftClick}} and drag node onto connection +Auto-arrange selected nodes | {kbd}`Ctrl` + {kbd}`L` +Duplicate outgoing connection | {kbd}`Shift` + {{leftClick}} and drag connection just before in plug +Disconnect connections under cursor | {kbd}`X` + {{leftClick}} +Disconnect connections under line | {kbd}`X` + {{leftClick}} and drag to draw a line, then release {{leftClick}} + +### Focus Node ### + +Action | Control or shortcut +-------------------------------------|------------------- +Jump to focus node | Hover cursor over editor, `
or
{{leftClick}} {{editorFocusMenu}}, select *Focus Node* +Assign focus to selected node | Hover cursor over node graph, {kbd}`Ctrl` + `
or
Click on top right of node +Assign focus to numeric bookmark | {kbd}`Alt` + {kbd}`1` … {kbd}`9` + +### Node bookmarks ### + +Action | Control or shortcut +-------------------------------------|------------------- +Bookmark node | {{rightClick}} node > *Bookmark* +Connect to bookmarked node | {{rightClick}} plug > *Connect Bookmark* > select node +Jump to bookmarked node | Hover cursor over editor, {kbd}`Ctrl` + {kbd}`B` > select bookmarked node
or
{{leftClick}} {{editorFocusMenu}}, select *Bookmark* > ... +Assign numeric bookmark | {kbd}`Ctrl` + {kbd}`1` … {kbd}`9` +Remove numeric bookmark | {kbd}`Ctrl` + {kbd}`0` + +## Node Editor ## + + +### Numeric plugs ### + +Action | Control or shortcut +----------------------------------------------|------------------- +Increment/decrement value, specific precision | Position cursor next to a number position in plug field, then hit {kbd}`↑` / {kbd}`↓` +Scrub value, coarse precision | {kbd}`Ctrl` + {{leftClick}} and drag the field left/right +Scrub value, fine precision | {kbd}`Ctrl` + {kbd}`Shift` + {{leftClick}} and drag the field left/right +Gang plugs together | {kbd}`Ctrl` + {kbd}`G` + +> Tip : +> Numeric fields support basic mathematical operators to adjust their values. For example, appending `+1` to a plug with an existing value of `2`, will set it to `3`. You can use `+`, `-`, `/`, `*` and `%` to modify the existing value. + + +### Path plugs ### + +Action | Control or shortcut +------------------------------------|------------------ +Autocomplete path component | {kbd}`Tab` +Path-level contents menu | Select path component
or
Position text cursor in path component, then hit {kbd}`↓` +Path hierarchy menu | Select all + +### 3D scenes ### + +Action | Control or shortcut +-----------------------------------------------------|-------------------- +Edit source node of selection | {kbd}`Alt` + {kbd}`E` +Edit tweaks node for selection | {kbd}`Alt` + {kbd}`Shift` + {kbd}`E` + +## Viewer ## + +> Note : +> For the following controls and shortcuts, the cursor must hover over the Viewer. + + +### General controls ### + +Action | Control or shortcut +-------------------------------------|-------------------- +Pan | {kbd}`Alt` + {{leftClick}} and drag +Zoom/dolly | {kbd}`Alt` + {{rightClick}} and drag
or
{{mouseWheel}} +Pan/Zoom, fine precision | Hold {kbd}`Shift` during action +Frame view to contents | {kbd}`F` +Pause processing | {kbd}`Escape` +Selection Tool | {kbd}`Q` +Translate Tool | {kbd}`W` +Rotate Tool | {kbd}`E` +Cycle Transform Tool Orientation | {kbd}`O` +Scale Tool | {kbd}`R` +Camera Tool | {kbd}`T` +Crop Window Tool | {kbd}`C` +Crop Window Tool and crop enabled | {kbd}`Alt` + {kbd}`C` +Light Position Tool | {kbd}`D` +Pin to numeric bookmark | {kbd}`1` … {kbd}`9` + +### 3D scenes ### + +Action | Control or shortcut +-----------------------------------------------------------------|-------------------- +Tumble | {kbd}`Alt` + {{leftClick}} and drag +Tumble, fine precision | Hold {kbd}`Shift` during action +Select objects | {{leftClick}} and drag marquee, then release +Add/remove object from selection | {kbd}`Ctrl` + {{leftClick}} +Add objects to selection | {kbd}`Shift` + {{leftClick}} and drag marquee, then release +Deselect objects | {kbd}`Ctrl` + {{leftClick}} and drag marquee, then release +Expand selection | {kbd}`↓` +Fully expand selection | {kbd}`Shift` + {kbd}`↓` +Collapse selection | {kbd}`↑` +Edit source node of selection | {kbd}`Alt` + {kbd}`E` +Edit tweaks node for selection | {kbd}`Alt` + {kbd}`Shift` + {kbd}`E` +Fit clipping planes to scene | {{rightClick}} > *Clipping Planes* > *Fit To Scene* +Fit clipping planes to selection | {{rightClick}} > *Clipping Planes* > *Fit To Selection*
or
{kbd}`Ctrl` + {kbd}`K` +Frame view, and fit clipping planes | {kbd}`Ctrl` + {kbd}`F` +Reset clipping planes | {{rightClick}} > *Clipping Planes* > *Default* +Toggle Inspector | {kbd}`I` +Prune selected objects from current EditScope | {kbd}`Ctrl` + {kbd}`Delete`
or
{kbd}`Ctrl` + {kbd}`Backspace` +Turn off visibility for selected objects from current EditScope | {kbd}`Ctrl` + {kbd}`H` + +### Transform tools ### + +> Note : +> For the following controls and shortcuts, a Transform Tool must be active. + +Action | Control or shortcut +----------------------------------------------------|------------------- +Increase manipulator size | {kbd}`+` +Decrease manipulator size | {kbd}`-` +Add animation key to transform of selected object(s)| {kbd}`S` +Adjust, fine precision | Hold {kbd}`Shift` during action +Adjust, snapping to rounded increments | Hold {kbd}`Ctrl` during action +Target mode (Translate and Rotate only) | Hold {kbd}`V` then {{leftClick}} on target geometry + + +### Light Tool ### + +> Note : +> For the following controls and shortcuts, the Light Tool must be active + +Action | Control or shortcut +----------------------------------------------|-------------------- +Adjust, fine precision | Hold {kbd}`Shift` during action +Constrain to aspect ratio (Quad lights only) | Hold {kbd}`Ctrl` during action + +### Light Position Tool ### + +> Note : +> For the following controls and shortcuts, the Light Position Tool must be active. + +Action | Control or shortcut +----------------------------------------------|-------------------- +Set shadow target position | {kbd}`V` + {{leftClick}} +Set shadow pivot position | {kbd}`Shift` + {kbd}`V` + {{leftClick}} + + +### 2D images ### + +Action | Control or shortcut +-------------------------------------|------------------- +Isolate red channel | {kbd}`R` +Isolate green channel | {kbd}`G` +Isolate blue channel | {kbd}`B` +Isolate alpha channel | {kbd}`A` +View luminance of RGB | {kbd}`L` +Previous layer | {kbd}`PgUp` +Next layer | {kbd}`PgDn` +First layer (RGBA) | {kbd}`Ctrl` + {kbd}`PgUp` +Previous view | {kbd}`[` +Next view | {kbd}`]` +Center image at 1:1 scale | {kbd}`Home` +Previous Catalogue image | {kbd}`↑` +Next Catalogue image | {kbd}`↓` +Duplicate current Catalogue image | {kbd}`Ctrl` + {kbd}`D` +Toggle image comparison | {kbd}`Q` +Toggle wipes | {kbd}`W` + +### Crop window tool ### + +Action | Control or shortcut +-------------------------------------|-------------------- +Draw new region anywhere | {kbd}`Shift` + click and drag + +## Hierarchy View ## + +Action | Control or shortcut +------------------------------------|------------------- +Expand selected location | {kbd}`→` +Fully expand selected location | {kbd}`Shift` + {kbd}`→` +Collapse selected location | {kbd}`←` +Fully collapse selected location | {kbd}`Shift` + {kbd}`←` +Copy selected paths | {kbd}`Ctrl` + {kbd}`C` +Edit source node of selection | {kbd}`Alt` + {kbd}`E` +Edit tweaks node for selection | {kbd}`Alt` + {kbd}`Shift` + {kbd}`E` +Frame selection | {kbd}`F` + +## Python Editor ## + + +### Text entry ### + +> Note : +> When using the following drag and drop controls and shortcuts, drop the UI element onto the input field of the Python Editor. + +Action | Control or shortcut +-------------------------------------------------|-------------------- +Drop node into *Python Editor* | {{middleClick}} and drag node from Node Graph +Drop plug into *Python Editor* | {{middleClick}} and drag plug from Node Graph
or
{{leftClick}} and drag plug label from Node Editor +Drop plug value into Python Editor | {kbd}`Shift` + {{leftClick}} and drag plug label from Node Editor +Drop color value into Python Editor | {{leftClick}} and drag a pixel from Viewer +Drop scene location path(s) into Python Editor | {{leftClick}} and drag selection from Viewer or Hierarchy View +Indent selection | {kbd}`Ctrl` + {kbd}`]` +Unindent selection | {kbd}`Ctrl` + {kbd}`[` +Comment/uncomment selection | {kbd}`Ctrl` + {kbd}`/` +Select current line | {kbd}`Ctrl` + {kbd}`L` + + +### Execution ### + +> Note : +> For the following controls and shortcuts, the input field of the Python Editor must be in focus. + +Action | Control or shortcut +-------------------------------------|------------------- +Execute and clear | {kbd}`Ctrl` + {kbd}`Enter` +Execute selection | Select code, then hit {kbd}`Ctrl` + {kbd}`Enter` + + +## Animation Editor ## + +> Note : +> For the following controls and shortcuts, the cursor must hover over the Animation Editor. + +Action | Control or shortcut +-----------------------------------------------|-------------------- +Pan | {kbd}`Alt` + {{leftClick}} and drag +Zoom | {kbd}`Alt` + {{rightClick}} and drag
or
{{mouseWheel}} +Zoom x/y axes independently | Hold {kbd}`Ctrl` during action +Pan/Zoom, fine precision | Hold {kbd}`Shift` during action +Adjust frame range | {kbd}`Ctrl` + {kbd}`Alt` + {{rightClick}} and drag left/right +Adjust key value range | {kbd}`Ctrl` + {kbd}`Alt` + {{rightClick}} and drag up/down +Frame all curves (no selection) | {kbd}`F` +Frame selected key(s) | {kbd}`F` +Add key to a curve | {kbd}`Ctrl` + {{leftClick}} +Add key to all selected curves at current frame| {kbd}`I` +Delete selected key(s) | {kbd}`Delete`
or
{kbd}`Backspace` +Adjust selected key(s) | {{leftClick}} and drag +Adjust frame(s) of selected key(s) | {kbd}`Shift` + {{leftClick}} and drag left/right +Adjust value(s) of selected key(s) | {kbd}`Shift` + {{leftClick}} and drag up/down + + +## Interactive Render Log ## + +Action | Control or shortcut +------------------------------------|------------------- +Next message of level | {kbd}`E`, {kbd}`W`, {kbd}`I`, {kbd}`D` +Previous message of level | {kbd}`Shift` + {kbd}`E`, {kbd}`W`, {kbd}`I`, {kbd}`D` +Search | {kbd}`Ctrl` + {kbd}`F` + Next match (search field focus) | {kbd}`Enter` + Next match (log focus) | {kbd}`N` + Previous match (log focus) | {kbd}`P` +Scroll to bottom | {kbd}`B` + +## Spreadsheet ## + +Action | Control or shortcut +---------------------------------------------------|-------------------- +Toggle/edit selected cells | {kbd}`Return` or {{leftClick}} {{leftClick}} +Toggle Enabled state of selected cells | {kbd}`D` +Copy/Paste selected cells or rows | {kbd}`Ctrl` + {kbd}`C`/{kbd}`V` +Move cell selection | {kbd}`↑`, {kbd}`↓`, {kbd}`←`, {kbd}`→` +Extend cell selection | {kbd}`Shift` + {kbd}`↑`, {kbd}`↓`, {kbd}`←`, {kbd}`→` +Move keyboard focus | {kbd}`Ctrl` + {kbd}`↑`, {kbd}`↓`, {kbd}`←`, {kbd}`→` +Toggle selection state of cell with keyboard focus | {kbd}`Space` + +## Light Editor ## + +Action | Control or shortcut +-----------------------------------------------------|--------------------- +Edit source node of selection | {kbd}`Alt` + {kbd}`E` +Edit tweaks node for selection | {kbd}`Alt` + {kbd}`Shift` + {kbd}`E` +Move cell selection | {kbd}`↑`, {kbd}`↓`, {kbd}`←`, {kbd}`→` +Extend cell selection | {kbd}`Shift` + {{leftClick}}
or
{kbd}`Shift` + {kbd}`↑`, {kbd}`↓`, {kbd}`←`, {kbd}`→` +Toggle cell selection | {kbd}`Ctrl` + {{leftClick}}
or
{kbd}`Ctrl` + {kbd}`↑`, {kbd}`↓`, {kbd}`←`, {kbd}`→` +Edit selected cells | {kbd}`Return`
or
{kbd}`Enter` +Disable Edit | {kbd}`D` +Remove Attribute | {kbd}`Delete` + +## Set Editor ## + +Action | Control or shortcut +------------------------------------|------------------- +Copy names of selected sets | {kbd}`Ctrl` + {kbd}`C` +Copy members of selected sets | {kbd}`Ctrl` + {kbd}`Shift` + {kbd}`C` + +## Render Pass Editor ## + +Action | Control or shortcut +-----------------------------------------------------|--------------------- +Move cell selection | {kbd}`↑`, {kbd}`↓`, {kbd}`←`, {kbd}`→` +Extend cell selection | {kbd}`Shift` + {{leftClick}}
or
{kbd}`Shift` + {kbd}`↑`, {kbd}`↓`, {kbd}`←`, {kbd}`→` +Toggle cell selection | {kbd}`Ctrl` + {{leftClick}}
or
{kbd}`Ctrl` + {kbd}`↑`, {kbd}`↓`, {kbd}`←`, {kbd}`→` +Edit selected cells | {kbd}`Return`
or
{kbd}`Enter` +Disable edit | {kbd}`D` +Set a render pass as active | {kbd}`Return` or {{leftClick}} {{leftClick}} a cell within the {{activeRenderPass}} column diff --git a/1.4.6.0/_sources/Interface/index.md.txt b/1.4.6.0/_sources/Interface/index.md.txt new file mode 100644 index 000000000..8574d2464 --- /dev/null +++ b/1.4.6.0/_sources/Interface/index.md.txt @@ -0,0 +1,14 @@ + + +# Interface # + +Here you can learn about Gaffer's interface and controls. + + + +```{eval-rst} +.. toctree:: + :titlesonly: + + ControlsAndShortcuts/index.md +``` diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/browser.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/browser.md.txt new file mode 100644 index 000000000..00eb276ab --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/browser.md.txt @@ -0,0 +1,29 @@ +browser +======= + +A file browser with the ability to preview +images and caches using Gaffer's viewers. This +is the same as the Browser panel from the main +gui application, but running as a standalone +application. + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + +-initialPath +------------ + +The path to browse to initially + diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/cli.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/cli.md.txt new file mode 100644 index 000000000..19c66ccce --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/cli.md.txt @@ -0,0 +1,24 @@ +cli +=== + +A python command line interpreter which has all the +Gaffer modules available to it. + +> Caution : This application is deprecated. +> Use `gaffer env python` instead. + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/dispatch.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/dispatch.md.txt new file mode 100644 index 000000000..05e8eced8 --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/dispatch.md.txt @@ -0,0 +1,78 @@ +dispatch +======== + +Dispatches task nodes such as ImageWriters, SystemCommands and Render nodes, +either from within an existing .gfr file or by creating a script on the fly. +This differs from the execute app in that it performs a full dispatch via a +dispatcher, rather than executing a single task node. + +Example usage : + +``` +gaffer dispatch -script comp.gfr -tasks ImageWriter1 -dispatcher Local -settings -dispatcher.frameRange '"1001-1020"' + +gaffer dispatch -script comp.gfr -tasks ImageWriter1 -gui -show ImageWriter1 -dispatcher Local -settings -dispatcher.frameRange '"1001-1020"' + +gaffer dispatch -gui -tasks GafferDispatch.SystemCommand -dispatcher Local -settings -SystemCommand.command '"ls -l"' +``` + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + +-gui +---- + +Determines whether a gui is presented prior to dispatching or the tasks are dispatched directly. + +-script +------- + +An optional script containing the task network to be dispatched. + +-ignoreScriptLoadErrors +----------------------- + +Causes errors which occur while loading the script to be ignored. Not recommended. + +-applyUserDefaults +------------------ + +Applies userDefault values to all nodes and plugs created by the app. Note if a script is supplied, the nodes will be unaffected. + +-tasks +------ + +The names of the task nodes to dispatch. Note if a script is supplied, the tasks must exist within the script. If no script is supplied, the task nodes will be constructed on the fly and added to a default script. + +-show +----- + +A list of nodes to display when running the gui. This parameter has no effect unless the gui is loaded. + +-dispatcher +----------- + +The type of dispatcher to use for the dispatch. A new dispatcher of this type will be created, with userDefaults applied. + +-alternateDispatchers +--------------------- + +A list of alternate dispatcher types to make available when running the gui. This parameter has no effect unless the gui is loaded. + +-settings +--------- + +The values to be set on the nodes, dispatcher, or Context. Values should be in the format -nodeA.plugA value -nodeA.plugB value -nodeB.plugC value -dispatcher.plugD value -LocalDispatcher.plugE value -context.entry value + diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/env.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/env.md.txt new file mode 100644 index 000000000..1dadb2a04 --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/env.md.txt @@ -0,0 +1,44 @@ +env +=== + +Runs shell commands in the Gaffer environment +(after the Gaffer wrapper has been run), so they have access +to all the libraries and modules available within Gaffer. + +This is useful for running the binary utilities supplied with Gaffer, +or for running python scripts which need to import Gaffer's python +modules. + +Usage : + +``` +gaffer env [name=value ...] [utility [argument ...]] +``` + +Examples : + +``` +gaffer env maketx input.exr +gaffer env python script.py +``` + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + +-arguments +---------- + +A series of optional name=value environment variable specifications, followed by the command to execute. + diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/execute.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/execute.md.txt new file mode 100644 index 000000000..be6644813 --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/execute.md.txt @@ -0,0 +1,54 @@ +execute +======= + +Executes task nodes such as ImageWriters, SystemCommands and Render nodes +from within a .gfr file. This is used by Gaffer's dispatchers when executing +nodes in a background process or on a render farm, but can also be used to +perform a manual execution from the command line. + +Example usage : + +``` +gaffer execute -script comp.gfr -nodes ImageWriter -frames 1-10 +``` + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + +-script +------- + +The script to execute. + +-ignoreScriptLoadErrors +----------------------- + +Causes errors which occur while loading the script to be ignored. Not recommended. + +-nodes +------ + +The names of the nodes to execute. If not specified then all executable nodes will be found automatically. + +-frames +------- + +The frames to execute. The default value executes the current frame as stored in the script. + +-context +-------- + +The Context used during execution. Note that the frames parameter will be used to vary the Context frame entry. + diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/gui.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/gui.md.txt new file mode 100644 index 000000000..bd7fe6dbe --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/gui.md.txt @@ -0,0 +1,31 @@ +gui +=== + +A graphical user interface for editing node graphs. This is +the primary user facing Gaffer application. + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + +-scripts +-------- + +A list of scripts to edit. + +-fullScreen +----------- + +Opens the UI in full screen mode. + diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/index.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/index.md.txt new file mode 100644 index 000000000..58646061e --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/index.md.txt @@ -0,0 +1,52 @@ + + +Command Line Reference +====================== + +The `gaffer` command is an application loader used to run +any of the applications shipped with gaffer, or any extension +apps installed in directories specified by the `GAFFER_APP_PATHS` +environment variable. + +A gaffer command takes this general form : + +``` +gaffer appName -arg value -arg value ... +``` + +If the `appName` is not specified it defaults to `gui`, and +the familiar main interface is loaded. This shortcut also allows +a file to load to be specified : + +``` +gaffer file.gfr +``` + +Help for any application can be printed with the following +command : + +``` +gaffer -help appName +``` + +Further information on the specific command line arguments for each +application is provided below. + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + browser.md + cli.md + dispatch.md + env.md + execute.md + gui.md + license.md + python.md + screengrab.md + stats.md + test.md + view.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/license.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/license.md.txt new file mode 100644 index 000000000..4f2baf7da --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/license.md.txt @@ -0,0 +1,26 @@ +license +======= + +Prints the software licenses for Gaffer and other open source projects +it is based on. + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + +-withDependencies +----------------- + +Display the copyright and licensing information for the dependencies. + diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/python.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/python.md.txt new file mode 100644 index 000000000..d487c1f25 --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/python.md.txt @@ -0,0 +1,34 @@ +python +====== + +Runs python scripts in an environment where all the +Gaffer modules are available. + +> Caution : This application is deprecated. +> Use `gaffer env python` instead. + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + +-file +----- + +The python script to execute + +-arguments +---------- + +An arbitrary list of arguments which will be provided to the python script in a variable called argv. + diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/screengrab.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/screengrab.md.txt new file mode 100644 index 000000000..9dfbde8e1 --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/screengrab.md.txt @@ -0,0 +1,85 @@ +screengrab +========== + +A tool to generate documentation screengrabs. + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + +-script +------- + +The gfr script to load + +-image +------ + +Where to save the resulting image + +-selection +---------- + +A list of nodes to select. + +-editor +------- + +The name of an editor to screengrab. If not specified, the whole window will be grabbed. + +-panel +------ + +Whether to the panel surrounding an editor, or just the editor contents itself. + +-nodeEditor +----------- + +Parameters that configure NodeEditors. + +-pythonEditor +------------- + +Parameters that configure PythonEditors. + +-viewer +------- + +Parameters that configure Viewers. + +-graphEditor +------------ + +Parameters that configure GraphEditors. + +-scene +------ + +Parameters that configure the scene. + +-command +-------- + +Command to execute after session is launched. A 'script' variable provides access to the root ScriptNode. + +-commandFile +------------ + +File containing sequence of commands to execute after session is launched. + +-delay +------ + +A delay between setting up the script and grabbing the image. + diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/stats.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/stats.md.txt new file mode 100644 index 000000000..4a059f7d9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/stats.md.txt @@ -0,0 +1,157 @@ +stats +===== + +Outputs statistics about a Gaffer script, including the version of +Gaffer that created it, the values of all setting and variables and +the types of node in use. May also be used to perform performance +analysis of image and scene processing nodes within the script, using +a performance monitor to generate advanced statistics. + +To output basic information about a script : + +``` +gaffer stats fileName.gfr +``` + +To run a scene processing node using the performance monitor : + +``` +gaffer stats fileName.gfr -scene NameOfNode -performanceMonitor +``` + +To run an image processing node using the performance monitor : + +``` +gaffer stats fileName.gfr -image NameOfNode -performanceMonitor +``` + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + +-script +------- + +The script to examine. + +-postLoadScript +--------------- + +A python script to run after loading `script`. This can be used to modify the node graph before stats are gathered. The root ScriptNode is accessible via a variable named `root`. + +-outputFile +----------- + +Output the results to this file on disk rather than stdout + +-frames +------- + +The frames to evaluate statistics for. The default value uses the current frame as stored in the script. + +-context +-------- + +The Context used during stats evaluation. Note that the frames parameter will be used to vary the Context frame entry. Arguments are specified in the same format as used by the `execute` app. + +-nodeSummary +------------ + +Turns on a summary of nodes in the script. + +-serialise +---------- + +Reports serialisation time for the script. + +-scene +------ + +The name of a SceneNode or ScenePlug to examine. A Render node or TaskPlug on a Render node may also be passed, to perform profiling of the render output process without performing the actual image generation. + +-location +--------- + +The path to a location in the scene. If this is specified then that single location will be generated profiled, otherwise the entire scene will generated. + +-sets +----- + +The names of scene sets to be examined. + +-image +------ + +The name of an ImageNode or ImagePlug to examine. + +-preCache +--------- + +Prepopulates the cache by evaluating the scene or image once prior to measuring the second evaluation. + +-task +----- + +The name of a TaskNode or TaskPlug to dispatch. + +-performanceMonitor +------------------- + +Turns on a performance monitor to provide additional statistics about the operation of the node graph. + +-maxLinesPerMetric +------------------ + +The maximum number of plugs to list for each metric captured by the performance monitor. + +-contextMonitor +--------------- + +Turns on a Context monitor to provide additional statistics about the operation of the node graph. + +-contextMonitorRoot +------------------- + +The name of a node or plug to provide a root for the Context monitor. Statistics will only be captured for this root downwards. + +-annotatedScript +---------------- + +Filename used to save a copy of the script containing annotations from the performance and Context monitors. + +-vtune +------ + +Enables VTune instrumentation. When enabled, the VTune 'Tasks & Frames' view will be broken down by node type. + +-contextSanitiser +----------------- + +Checks for Contexts containing "leaked" variables that may affect performance. Any problems are reported as warnings to stderr. + +-canceller +---------- + +Adds an IECore.Canceller to the Context used for computations. This can be used to measure any overhead generated by nodes checking for cancellation. + +-cacheMemoryLimit +----------------- + +The memory limit for the ValuePlug cache, measured in Mb. If this is not specified, the default limit will be used, or a limit specified by an application startup file. + +-hashCacheSizeLimit +------------------- + +The size limit for the per-thread hash cache. If this is not specified, the default limit will be used, or a limit specified by an application startup file. + diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/test.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/test.md.txt new file mode 100644 index 000000000..0a899e435 --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/test.md.txt @@ -0,0 +1,83 @@ +test +==== + +Runs the unit tests for all of Gaffer's python +modules and libraries. These are run automatically +as part of Gaffer's build and review process, but it +is useful to run them manually when developing for +Gaffer or troubleshooting an installation. + +Run all the tests : + +``` +gaffer test +``` + +Run all the tests for the scene module : + +``` +gaffer test GafferScene +``` + +Repeat a specific test 10 times : + +``` +gaffer test -repeat 10 GafferImageTest.ImageNodeTest.testCacheThreadSafety + +``` + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + +-testCases +---------- + +A list of names of specific test cases to run. If unspecified then all test cases are run. + +-repeat +------- + +The number of times to repeat the tests. + +-category +--------- + +Only runs tests matching certain categories. Accepts a space-separated list of categories, optionally containing wildcards. Use `-showCategories` to see a list of available categories. Use the `TestRunner.Categories` decorator to assign categories. + +-excludedCategories +------------------- + +Excludes tests matching certain categories. Accepts a space-separated list of categories, optionally containing wildcards. + +-showCategories +--------------- + +Prints a list of available test categories to `stdout`. + +-outputFile +----------- + +The name of a JSON file that the results are written to. + +-previousOutputFile +------------------- + +The name of a JSON file containing the results of a previous test run. This will be used to detect and report performance regressions. + +-stopOnFailure +-------------- + +Stops on the first failure, instead of running the remaining tests. + diff --git a/1.4.6.0/_sources/Reference/CommandLineReference/view.md.txt b/1.4.6.0/_sources/Reference/CommandLineReference/view.md.txt new file mode 100644 index 000000000..2b5561a45 --- /dev/null +++ b/1.4.6.0/_sources/Reference/CommandLineReference/view.md.txt @@ -0,0 +1,28 @@ +view +==== + +Uses Gaffer's viewers and widgets to provide +a preview of a file. This is equivalent to the +preview pane in the Browser panel or the browser +app. + +-help +----- + +Prints names and descriptions of each parameter rather than running the application. + +-threads +-------- + +The maximum number of threads used for computation. The default value of zero matches the number of threads to the available hardware cores. Negative values specify a thread count relative to the available cores, leaving some in reserve for other applications. Positive values specify the thread count explicitly, but are clamped so it does not exceed the available cores. + +-profileFileName +---------------- + +If this is specified, then the application is run using the cProfile profiling module, and the results saved to the file for later examination. + +-files +------ + +A list of files to view. + diff --git a/1.4.6.0/_sources/Reference/ContextVariables/index.md.txt b/1.4.6.0/_sources/Reference/ContextVariables/index.md.txt new file mode 100644 index 000000000..4cc26c584 --- /dev/null +++ b/1.4.6.0/_sources/Reference/ContextVariables/index.md.txt @@ -0,0 +1,68 @@ +# Context Variables # + + +## Global Context Variables ## + +Global Context Variables are available to all nodes. Gaffer adds several of them by default, and you can also specify your own. + +Global variables values can be edited in the interface's Settings window (_File_ > _Settings..._). Variables related to the script's basic setup are assigned in the window's Settings tab. Other global variables, including user-specified ones, can be added in the Variables tab. These settings can also be accessed from the `ScriptNode` object (for example, from the Python Editor: `root["frameRange"]` or `root["variables"]["myVariable"]`). + +The default global Context Variables present in the graph root are: + +Context Variable | Meaning +------------------------|-------- +`project:name` | The name of the project the graph belongs to. +`project:rootDirectory` | The directory where the current graph's project files are stored. +`frame` | The current frame of the graph. +`framesPerSecond` | The frame rate of the graph. +`frameRange:start` | The first frame in the frame range. +`frameRange:end` | The last frame in the frame range. +`script:name` | The name of the script. + + +## Built-in scene Context Variables ## + +Gaffer can create the following built-in Context Variables inside scene Contexts: + +Context Variable | Meaning +-------------------|-------- +`scene:path` | Scene location being generated, when computing in service of a bound, transform, attributes, object, or childNames plug. +`scene:setName` | Name of the set being whose membership is being queried, when computing in service of a set plug. +`scene:renderer` | The active renderer during computation. + + +## Built-in image Context Variables ## + +Gaffer can create the following built-in Context Variables inside image Contexts: + +Context Variable | Meaning +----------------------|-------- +`image:tileOrigin` | Coordinate of bottom-left pixel of tile being generated when computing in service of a channelData +`image:channelName` | Channel being generated when computing in service of a channelData +`image:defaultFormat` | The fallback format for image creation nodes, if no format has been specified. + +## Node default Context Variables ## + +Some nodes add additional Context Variables during execution. As such, these variables are only available upstream of these nodes in the graph. Most of them will have a plug that determines the Context Variable name(s). You can rename them as needed. The following table lists these default names. + +> Note : The `prefix:name` format in the default Context Variable names is merely a convention used to avoid clashes between variable names. We recommend you follow the same conventions when naming your own variables, but it is not compulsory. + +Context Variable | Source node | Meaning +--------------------|---------------|-------- +`loop:index` | Loop | Current iteration of the loop +`wedge:value` | Wedge | Value of the current wedge. +`wedge:index` | Wedge | Iteration of the current wedge. +`collect:rootName` | CollectScenes | Name of the current root location being added to the scene. +`collect:layerName` | CollectImages | Name of the current layer being added to the image. + +## Accessing Context Variables ## + +For the available methods to access Context Variables with the Python and OSL APIs, see the [Expressions reference](../ScriptingReference/Expressions/index.md). + +> Note : To query plug values in the API, you must first instantiate an appropriate Context object. See [Contexts](../../WorkingWithTheNodeGraph/Contexts/index.html#querying-results-with-contexts) and [Common Operations](../ScriptingReference/CommonOperations/index.html#scenes) for more details. + + +## See also ## + +- [Contexts](../../WorkingWithTheNodeGraph/Contexts/index.md) +- [Expressions reference](../ScriptingReference/Expressions/index.md) diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Animation.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Animation.md.txt new file mode 100644 index 000000000..ed461c8eb --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Animation.md.txt @@ -0,0 +1,19 @@ +Animation +========= + +Generates keyframed animation to be applied to plugs +on other nodes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +curves +------ + +Stores animation curves. Rather than access +these directly, prefer to use the Animation::acquire() +method. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Backdrop.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Backdrop.md.txt new file mode 100644 index 000000000..40d1315d8 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Backdrop.md.txt @@ -0,0 +1,40 @@ +Backdrop +======== + +A utility node which allows the positioning of other nodes on a +coloured backdrop with optional text. Selecting a backdrop in the +ui selects all the nodes positioned on it, and moving it moves +them with it. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +title +----- + +The title for the backdrop - this will be displayed at +the top of the backdrop. + +scale +----- + +Controls the size of the backdrop text. + +description +----------- + +Text describing the contents of the backdrop - +this will be displayed below the title. + +depth +----- + +Determines the drawing order of overlapping backdrops. + +> Note : Larger backdrops are _automatically_ drawn behind smaller ones, +> so it is only necessary to manually assign a depth in rare cases where +> this is not desirable. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Box.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Box.md.txt new file mode 100644 index 000000000..a2b9d5552 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Box.md.txt @@ -0,0 +1,18 @@ +Box +=== + +A container for "subgraphs" - node networks which exist inside the +Box and can be exposed by promoting selected internal plugs onto the +outside of the Box. + +Boxes can be used as an organisational tool for simplifying large +graphs by collapsing them into sections which perform distinct tasks. +They are also used for authoring files to be used with the Reference +node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/BoxIn.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/BoxIn.md.txt new file mode 100644 index 000000000..b5f927578 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/BoxIn.md.txt @@ -0,0 +1,18 @@ +BoxIn +===== + +Convenience node for representing input plugs +visually in the internal node graph of a Box. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +The name given to the external plug that +this node represents. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/BoxOut.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/BoxOut.md.txt new file mode 100644 index 000000000..218168f9c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/BoxOut.md.txt @@ -0,0 +1,18 @@ +BoxOut +====== + +Convenience node for representing output plugs +visually in the internal node graph of a Box. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +The name given to the external plug that +this node represents. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Collect.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Collect.md.txt new file mode 100644 index 000000000..fe92dfe23 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Collect.md.txt @@ -0,0 +1,56 @@ +Collect +======= + +Collects arbitrary input values across a range of contexts, outputting +arrays containing the values collected across that range. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +contextVariable +--------------- + +The context variable used to vary the values of the inputs being +collected. This should be used in the node network upstream of the +inputs. + +indexContextVariable +-------------------- + +The context variable used to specify the index being collected. This +may be used in the node network upstream of the inputs. + +contextValues +------------- + +The values of the context variable. Collection will be performed once +for each context value. + +enabled +------- + +Enables or disables collection. This may be varied based on the +context variable, so that collection may be disabled in some +contexts but not others. Only values for enabled contexts are +included in the output arrays. + +in +-- + +Container of inputs to be collected from. Inputs may be added by +calling `collectNode.addInput( plug )` or using the UI. Each input +provides a corresponding output parented under the `out` plug. + +out +--- + +Container of array outputs corresponding to the inputs provided by the `in` plug. + +enabledValues +------------- + +Outputs an array of the context values for which collection was enabled by the `enabled` plug. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ComputeNode.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ComputeNode.md.txt new file mode 100644 index 000000000..77fc14f90 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ComputeNode.md.txt @@ -0,0 +1,12 @@ +ComputeNode +=========== + +Base class for nodes which can compute the values +of output plugs based on the values of input plugs. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ContextQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ContextQuery.md.txt new file mode 100644 index 000000000..926dce33e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ContextQuery.md.txt @@ -0,0 +1,27 @@ +ContextQuery +============ + +Queries variables from the current context, creating outputs for each variable. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +queries +------- + +The context variables to be queried - arbitrary numbers of context +variables may be added as children of this plug via the user interface, +or via python. Each child is a `NameValuePlug` whose `name` plug is +the context variable to query, and whose `value` plug is the default +value to use if the variable does not exist in the context with an +appropriate type. + +out +--- + +The parent plug of the query outputs. The order of outputs corresponds +to the order of children of `queries`. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ContextVariableTweaks.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ContextVariableTweaks.md.txt new file mode 100644 index 000000000..0905e95be --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ContextVariableTweaks.md.txt @@ -0,0 +1,30 @@ +ContextVariableTweaks +===================== + +Makes modifications to context variables. Tweaks are applied to context variables coming +from downstream nodes, resulting in different values given to upstream nodes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +Turns the node on and off. + +ignoreMissing +------------- + +Ignores tweaks targeting missing context variables. When off, missing context +variables cause the node to error, unless the tweak mode is `CreateIfMissing`. + +tweaks +------ + +The tweaks to be made to the context variables. Arbitrary numbers of user defined +tweaks may be added as children of this plug via the user interface, or +using the ContextVariableTweaks API via python. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ContextVariables.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ContextVariables.md.txt new file mode 100644 index 000000000..860a135dc --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ContextVariables.md.txt @@ -0,0 +1,37 @@ +ContextVariables +================ + +Adds variables which can be referenced by upstream expressions +and string substitutions. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +Turns the node on and off. + +variables +--------- + +The variables to be added. Each variable is represented +as a child plug, created either through the UI or using the +CompoundDataPlug API. + +extraVariables +-------------- + +An additional set of variables to be added. Arbitrary numbers +of variables may be specified within a single IECore::CompoundData +object, where each key/value pair in the object defines a variable. +This is convenient when using an expression to define the variables +and the variable count might be dynamic. + +If the same variable is defined by both the variables and the +extraVariables plugs, then the value from the extraVariables +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/DeleteContextVariables.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/DeleteContextVariables.md.txt new file mode 100644 index 000000000..6e45fdd07 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/DeleteContextVariables.md.txt @@ -0,0 +1,21 @@ +DeleteContextVariables +====================== + +Removes variables from the Context so that they won't be visible to upstream nodes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +Turns the node on and off. + +variables +--------- + +The variables to be deleted. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/DependencyNode.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/DependencyNode.md.txt new file mode 100644 index 000000000..4933b9b7b --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/DependencyNode.md.txt @@ -0,0 +1,12 @@ +DependencyNode +============== + +Base class for nodes where input plugs have an +effect on output plugs. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Dot.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Dot.md.txt new file mode 100644 index 000000000..7ea7c33a4 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Dot.md.txt @@ -0,0 +1,28 @@ +Dot +=== + +A utility node which can be used for organising large graphs. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +labelType +--------- + +The method used to apply an optional label +to the dot. Using a node name is recommended, +because it encourages the use of descriptive node +names, and updates automatically when nodes are +renamed or upstream connections change. The custom +label does however provide more flexibility, since +node names are restricted in the characters they +can use. + +label +----- + +The label displayed when the type is set to custom. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/EditScope.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/EditScope.md.txt new file mode 100644 index 000000000..e1a7171dd --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/EditScope.md.txt @@ -0,0 +1,12 @@ +EditScope +========= + +A container that interactive tools may make nodes in +as necessary. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Expression.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Expression.md.txt new file mode 100644 index 000000000..ff8e07ffc --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Expression.md.txt @@ -0,0 +1,12 @@ +Expression +========== + +Utility node for computing values via +scripted expressions. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Loop.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Loop.md.txt new file mode 100644 index 000000000..24303e810 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Loop.md.txt @@ -0,0 +1,15 @@ +Loop +==== + +Applies a node network to an input iteratively. + +> Caution : This should _not_ be your first choice of tool. +> For many use cases the Instancer, CollectScenes and CollectImages +> nodes are more suitable and offer _significantly_ better performance. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/NameSwitch.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/NameSwitch.md.txt new file mode 100644 index 000000000..4dae5cbf6 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/NameSwitch.md.txt @@ -0,0 +1,53 @@ +NameSwitch +========== + +Switches between multiple input connections, passing through the +chosen input to the output. Each input has a "name" as well +as a value, and switching is performed by comparing the names against +the value of `selector` as follows : + +- Matching starts with the second input and considers all subsequent + inputs one by one until a match is found. The first matching input + is the one that is chosen. +- Matching is performed using Gaffer's standard wildcard matching. + Each "name" may contain several individual patterns each separated + by spaces. +- The first input is used as a default, and is chosen only if no other + input matches. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +Turns the node on and off. + +deleteContextVariables +---------------------- + +The names of context variables to be deleted before accessing the array +of inputs. Names should be space-separated and may use Gaffer's standard +wildcards. + +> Tip : This is convenient for cleaning up context variables only needed +to compute the switch index. + +connectedInputs +--------------- + +The indices of the input array that have incoming connections. + +> Tip : This can be used to drive a Wedge or Collect node so that +> they operate over each input in turn. + +selector +-------- + +The value that the input names will be matched against. +Typically this will refer to a Context Variable using +the `${variableName}` syntax. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Node.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Node.md.txt new file mode 100644 index 000000000..4a6c564a1 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Node.md.txt @@ -0,0 +1,11 @@ +Node +==== + +A container for plugs. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Preferences.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Preferences.md.txt new file mode 100644 index 000000000..719010c44 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Preferences.md.txt @@ -0,0 +1,11 @@ +Preferences +=========== + +A container for application preferences. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Random.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Random.md.txt new file mode 100644 index 000000000..6dd156626 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Random.md.txt @@ -0,0 +1,76 @@ +Random +====== + +Generates repeatable random values from a seed. This can be +very useful for the procedural generation of variation. +Numeric or colour values may be generated. + +The random values are generated from a seed and a Context +Variable - to get useful variation either the seed or the +value of the Context Variable must be varied too. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +seed +---- + +Seed for the random number generator. Different seeds +produce different random numbers. When controlling two +different properties using the same Context Variable, +different seeds may be used to ensure that the generated +values are different. + +seedVariable +------------ + +The most important plug for achieving interesting variation. +Should be set to the name of a Context Variable which will +be different for each evaluation of the node. Good examples +are "scene:path" to generate a different value per scene +location, or "frame" to generate a different value per frame. + +floatRange +---------- + +The minimum and maximum values that will be generated for the +outFloat plug. + +outFloat +-------- + +Random floating point output derived from seed, Context Variable +and float range plugs. + +baseColor +--------- + +Used as the basis for the random colours generated for the +outColor plug. All colours start with this value and then +have a random HSV variation applied, using the ranges specified +below. + +hue +--- + +The +- range over which the hue of the base colour is varied. + +saturation +---------- + +The +- range over which the saturation of the base colour is varied. + +value +----- + +The +- range over which the value of the base colour is varied. + +outColor +-------- + +Random colour output derived from seed, Context Variable, base +colour, hue, saturation and value plugs. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/RandomChoice.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/RandomChoice.md.txt new file mode 100644 index 000000000..f015f4d18 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/RandomChoice.md.txt @@ -0,0 +1,45 @@ +RandomChoice +============ + +Chooses random values from a list of choices, with optional weights +to specify the relative probability of each choice. + +The randomness is generated from a seed and a context +variable; to get useful variation either the seed or the +value of the context variable must be varied too. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +seed +---- + +Seed for the random number generator. Different seeds +produce different random numbers. When controlling two +different properties using the same context variable, +different seeds may be used to ensure that the generated +values are different. + +seedVariable +------------ + +The most important plug for achieving interesting variation. +Should be set to the name of a context variable which will +be different for each evaluation of the node. Good examples +are `scene:path` to generate a different value per scene +location, or `frame` to generate a different value per frame. + +choices +------- + +The choices that will be randomly selected between based on the seed. + +choices.weights +--------------- + +The list of weights for the choices. Choices with a higher weight +have a greater chance of being chosen. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Reference.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Reference.md.txt new file mode 100644 index 000000000..13a60dd9d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Reference.md.txt @@ -0,0 +1,16 @@ +Reference +========= + +References a node network stored in another file. This can be used +to share resources among scripts, build powerful non-linear workflows, +and as the basis for custom asset management. + +To generate a file to be referenced, build a network inside a Box +node and then export it for referencing. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ScriptNode.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ScriptNode.md.txt new file mode 100644 index 000000000..5c51041b0 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/ScriptNode.md.txt @@ -0,0 +1,79 @@ +ScriptNode +========== + +Defines a "script" - a Gaffer node network which can be +saved to disk as a ".gfr" file and reloaded. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +fileName +-------- + +Where the script is stored. + +unsavedChanges +-------------- + +Indicates whether or not the script has been +modified since it was last saved. + +frameRange +---------- + +Defines the start and end frames for the script. +These don't enforce anything, but are typically +used by dispatchers to control default frame +ranges, and by the UI to define the range of the +time slider. + +frameRange.start +---------------- + +The start frame. This doesn't enforce anything, +but is typically used by dispatchers to control +default frame ranges, and by the UI to define +the range of the time slider. + +frameRange.end +-------------- + +The end frame. This doesn't enforce anything, +but is typically used by dispatchers to control +default frame ranges, and by the UI to define +the range of the time slider. + +frame +----- + +The current frame. + +> Note : To perform a computation at a particular time, +> you should create your own Context rather than change +> the value of this plug. +> +> ``` +> with Gaffer.Context( script.context() ) as c : +> c.setFrame( f ) +> ... +> ``` +> +> Likewise, you should never refer to this plug from +> an expression. Always retrieve the frame with +> `context.getFrame()` instead. + +framesPerSecond +--------------- + +The framerate used to convert between the current +frame number and the time in seconds. + +variables +--------- + +Container for user-defined variables which can +be used in expressions anywhere in the script. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Spreadsheet.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Spreadsheet.md.txt new file mode 100644 index 000000000..d3723a4ee --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Spreadsheet.md.txt @@ -0,0 +1,98 @@ +Spreadsheet +=========== + +Provides a spreadsheet designed for easy management of sets of +associated plug values. Each column of the spreadsheet corresponds +to an output value that can be connected to drive a plug on another +node. Each row of the spreadsheet provides candidate values for each +output, along with a row name and enabled status. Row names are matched +against a selector to determine which row is passed through to the output. +Row matching is performed as follows : + +- Matching starts with the second row and considers all subsequent + rows one by one until a match is found. The first matching row + is the one that is chosen. +- Matching is performed using Gaffer's standard wildcard matching. + Each "name" may contain several individual patterns each separated + by spaces. +- The first row is used as a default, and is chosen only if no other + row matches. + +> Note : The matching rules are identical to the ones used by the +> NameSwitch node. + +## Keyboard Shortcuts + +- **Return**/**Double Click** Toggle/Edit selected cells. +- **D** Toggle Enabled state of selected cells. +- **Ctrl + C**/**V** Copy/Paste selected cells or rows. +- **Up**, **Down**, **Left**, **Right** Move cell selection. +- **Shift + Up**, **Down**, **Left**, **Right** Extend cell selection. +- **Ctrl + Up**, **Down**, **Left**, **Right** Move keyboard focus. +- **Space** Toggle selection state of cell with keyboard focus. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +Turns the node on and off. + +selector +-------- + +The value that the row names will be matched against. +Typically this will refer to a Context Variable using +the `${variableName}` syntax. + +rows +---- + +Holds a child RowPlug for each row in the spreadsheet. + +out +--- + +The outputs from the spreadsheet. Contains a child plug for each +column in the spreadsheet. + +enabledRowNames +--------------- + +An output plug containing the names of all currently enabled rows. + +resolvedRows +------------ + +An output plug containing the resolved cell values for all enabled +rows, This can be used to drive expressions in situations where the +standard `out` plug is not useful, or would be awkward to use. The +values are formatted as follows : + +``` +{ + "row1Name" : { "columnName" : columnValue, ... }, + "row2Name" : { "columnName" : columnValue, ... }, + ... +} +``` + +> Note : The output is completely independent of the value of +> `selector`. + +activeRowIndex +-------------- + +An output containing the index of the row that matches the selector +in the current context. + +> Tip : The default row has index `0`, which converts to `False` +> when used to drive a BoolPlug via a connection (all other values +> convert to `True`). Therefore `Spreadsheet.activeRowIndex` can +> be connected to a Node's `enabled` plug to disable the node when +> no row is matched. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/SubGraph.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/SubGraph.md.txt new file mode 100644 index 000000000..5d0ef58da --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/SubGraph.md.txt @@ -0,0 +1,11 @@ +SubGraph +======== + +Holds a nested node graph of its own. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Switch.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Switch.md.txt new file mode 100644 index 000000000..ffc34152d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/Switch.md.txt @@ -0,0 +1,43 @@ +Switch +====== + +Chooses between multiple input connections, passing through the +chosen input to the output. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +index +----- + +The index of the input which is passed through. A value +of 0 chooses the first input, 1 the second and so on. Values +larger than the number of available inputs wrap back around to +the beginning. + +enabled +------- + +Turns the node on and off. + +deleteContextVariables +---------------------- + +The names of context variables to be deleted before accessing the array +of inputs. Names should be space-separated and may use Gaffer's standard +wildcards. + +> Tip : This is convenient for cleaning up context variables only needed +to compute the switch index. + +connectedInputs +--------------- + +The indices of the input array that have incoming connections. + +> Tip : This can be used to drive a Wedge or Collect node so that +> they operate over each input in turn. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/TimeWarp.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/TimeWarp.md.txt new file mode 100644 index 000000000..95d8fdb87 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/TimeWarp.md.txt @@ -0,0 +1,29 @@ +TimeWarp +======== + +Changes the time at which upstream nodes are evaluated using +the following formula : + +`upstreamFrame = frame * speed + offset` + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +Turns the node on and off. + +speed +----- + +Multiplies the current frame value. + +offset +------ + +Adds to the current frame value (after multiplication with speed). \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/Gaffer/index.md.txt b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/index.md.txt new file mode 100644 index 000000000..547c6eba8 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/Gaffer/index.md.txt @@ -0,0 +1,38 @@ + + +Gaffer +====== + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + Animation.md + Backdrop.md + Box.md + BoxIn.md + BoxOut.md + Collect.md + ComputeNode.md + ContextQuery.md + ContextVariableTweaks.md + ContextVariables.md + DeleteContextVariables.md + DependencyNode.md + Dot.md + EditScope.md + Expression.md + Loop.md + NameSwitch.md + Node.md + Preferences.md + Random.md + RandomChoice.md + Reference.md + ScriptNode.md + Spreadsheet.md + SubGraph.md + Switch.md + TimeWarp.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldAOVShader.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldAOVShader.md.txt new file mode 100644 index 000000000..b6113d526 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldAOVShader.md.txt @@ -0,0 +1,38 @@ +ArnoldAOVShader +=============== + +Sets up global shaders in the Arnold options which can be used to populate global AOVs. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +shader +------ + +The shader to be assigned. This will be stored as an +option within the scene globals. + +optionSuffix +------------ + +This suffix defines where the aov shader is stored in the render options. If you use +an existing suffix, you will overwrite instead of creating a new AOV shader. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldAtmosphere.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldAtmosphere.md.txt new file mode 100644 index 000000000..cabbab81c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldAtmosphere.md.txt @@ -0,0 +1,35 @@ +ArnoldAtmosphere +================ + +Assigns a global atmosphere shader that applies to all objects in +the scene. This is stored as an "ai:atmosphere" option in Gaffer's +globals, and translated onto the `options.atmosphere` parameter +in Arnold. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +shader +------ + +The shader to be assigned. This will be stored as an +option within the scene globals. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldAttributes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldAttributes.md.txt new file mode 100644 index 000000000..58efb8dde --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldAttributes.md.txt @@ -0,0 +1,393 @@ +ArnoldAttributes +================ + +Applies Arnold attributes to objects in the scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +attributes +---------- + +The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python. + +attributes.cameraVisibility +--------------------------- + +Whether or not the object is visible to camera +rays. To hide an object completely, use the +visibility settings on the StandardAttributes +node instead. + +attributes.shadowVisibility +--------------------------- + +Whether or not the object is visible to shadow +rays (whether or not it casts shadows). + +attributes.shadowGroup +---------------------- + +The lights that cause this object to cast shadows. +Accepts a set expression or a space separated list of +lights. Use "defaultLights" to refer to all lights that +contribute to illumination by default. + +attributes.diffuseReflectionVisibility +-------------------------------------- + +Whether or not the object is visible in +reflected diffuse ( ie. if it casts bounce light ) + +attributes.specularReflectionVisibility +--------------------------------------- + +Whether or not the object is visible in +reflected specular ( ie. if it is visible in mirrors ). + +attributes.diffuseTransmissionVisibility +---------------------------------------- + +Whether or not the object is visible in +transmitted diffuse ( ie. if it casts light through leaves ). + +attributes.specularTransmissionVisibility +----------------------------------------- + +Whether or not the object is visible in +refracted specular ( ie. if it can be seen through glass ). + +attributes.volumeVisibility +--------------------------- + +Whether or not the object is visible in +volume scattering. + +attributes.subsurfaceVisibility +------------------------------- + +Whether or not the object is visible to subsurface +rays. + +attributes.autoBump +------------------- + +Automatically turns the details of the displacement map +into bump, wherever the mesh is not subdivided enough +to properly capture them. + +attributes.cameraAutoBumpVisibility +----------------------------------- + +Whether or not the autobump is visible to camera +rays. + +attributes.shadowAutoBumpVisibility +----------------------------------- + +Whether or not the autobump is visible to shadow +rays. + +attributes.diffuseReflectionAutoBumpVisibility +---------------------------------------------- + +Whether or not the autobump is visible in +reflected diffuse ( ie. if it casts bounce light ) + +attributes.specularReflectionAutoBumpVisibility +----------------------------------------------- + +Whether or not the autobump is visible in +reflected specular ( ie. if it is visible in mirrors ). + +attributes.diffuseTransmissionAutoBumpVisibility +------------------------------------------------ + +Whether or not the autobump is visible in +transmitted diffuse ( ie. if it casts light through leaves ). + +attributes.specularTransmissionAutoBumpVisibility +------------------------------------------------- + +Whether or not the autobump is visible in +refracted specular ( ie. if it can be seen through glass ). + +attributes.volumeAutoBumpVisibility +----------------------------------- + +Whether or not the autobump is visible in +volume scattering. + +attributes.subsurfaceAutoBumpVisibility +--------------------------------------- + +Whether or not the autobump is visible to subsurface +rays. + +attributes.transformType +------------------------ + +Choose how transform motion is interpolated. Linear +produces classic linear vertex motion, RotateAboutOrigin +produces curved arcs centred on the object's origin, and +RotateAboutCenter, the default, produces curved arcs +centred on the object's bounding box middle. + +attributes.matte +---------------- + +Turns the object into a holdout matte. +This only affects primary (camera) rays. + +attributes.opaque +----------------- + +Flags the object as being opaque, allowing +Arnold to render faster. Should be turned off +when using partially transparent shaders. + +attributes.receiveShadows +------------------------- + +Whether or not the object receives shadows. + +attributes.selfShadows +---------------------- + +Whether or not the object casts shadows +onto itself. + +attributes.sssSetName +--------------------- + +If given, subsurface will be blended across any other objects which share the same sss set name. + +attributes.subdivIterations +--------------------------- + +The maximum number of subdivision +steps to apply when rendering subdivision +surface. To set an exact number of +subdivisions, set the adaptive error to +0 so that the maximum becomes the +controlling factor. + +Use the MeshType node to ensure that a +mesh is treated as a subdivision surface +in the first place. + +attributes.subdivAdaptiveError +------------------------------ + +The maximum allowable deviation from the true +surface and the subdivided approximation. How +the error is measured is determined by the +metric below. Note also that the iterations +value above provides a hard limit on the maximum +number of subdivision steps, so if changing the +error setting appears to have no effect, +you may need to raise the maximum. + +> Note : Objects with a non-zero value will not take part in +> Gaffer's automatic instancing unless subdivAdaptiveSpace is +> set to "object". + +attributes.subdivAdaptiveMetric +------------------------------- + +The metric used when performing adaptive +subdivision as specified by the adaptive error. +The flatness metric ensures that the subdivided +surface doesn't deviate from the true surface +by more than the error, and will tend to +increase detail in areas of high curvature. The +edge length metric ensures that the edge length +of a polygon is never longer than the error, +so will tend to subdivide evenly regardless of +curvature - this can be useful when applying a +displacement shader. The auto metric automatically +uses the flatness metric when no displacement +shader is applied, and the edge length metric when +a displacement shader is applied. + +attributes.subdivAdaptiveSpace +------------------------------ + +The space in which the error is measured when +performing adaptive subdivision. Raster space means +that the subdivision adapts to size on screen, +with subdivAdaptiveError being specified in pixels. +Object space means that the error is measured in +object space units and will not be sensitive to +size on screen. + +attributes.subdivUVSmoothing +---------------------------- + +Determines how UVs are subdivided. + +attributes.subdivSmoothDerivs +----------------------------- + +Computes smooth UV derivatives (dPdu and dPdv) per +vertex. This can be needed to remove faceting +from anisotropic specular and other shading effects +that use the derivatives. + +attributes.subdivFrustumIgnore +------------------------------ + +Turns off subdivision culling on a per-object basis. This provides +finer control on top of the global `subdivFrustumCulling` setting +provided by the ArnoldOptions node. + +attributes.subdividePolygons +---------------------------- + +Causes polygon meshes to be rendered with Arnold's +subdiv_type parameter set to "linear" rather than +"none". This can be used to increase detail when +using polygons with displacement shaders and/or mesh +lights. + +> Caution : This is not equivalent to converting a polygon +> mesh into a subdivision surface. To render with Arnold's +> subdiv_type set to "catclark", you must use the MeshType +> node to convert polygon meshes into subdivision surfaces. + +attributes.curvesMode +--------------------- + +How the curves are rendered. Ribbon mode treats +the curves as flat ribbons facing the camera, and is +most suited for rendering of thin curves with a +dedicated hair shader. Thick mode treats the curves +as tubes, and is suited for use with a regular +surface shader. + +> Note : To render using Arnold's "oriented" mode, set +> mode to "ribbon" and add per-vertex normals to the +> curves as a primitive variable named "N". + +attributes.curvesMinPixelWidth +------------------------------ + +The minimum thickness of the curves, measured +in pixels on the screen. When rendering very thin curves, a +large number of AA samples are required +to avoid aliasing. In these cases a minimum pixel +width may be specified to artificially thicken the curves, +meaning that fewer AA samples may be used. The additional width is +compensated for automatically by lowering the opacity +of the curves. + +attributes.pointsMinPixelWidth +------------------------------ + +The minimum width of rendered points primitives, measured in pixels on the screen. +When rendering very small points, a large number of AA samples are required to avoid +aliasing. In these cases a minimum pixel width may be specified to artificially enlarge +the points, meaning that fewer AA samples may be used. The additional size is +compensated for automatically by lowering the opacity of the points. + +attributes.volumeStepSize +------------------------- + +Override the step size taken when raymarching volumes. +If this value is disabled or zero then value is calculated from the voxel size. + +attributes.volumeStepScale +-------------------------- + +Raymarching step size is calculated using this value +multiplied by the volume voxel size or volumeStepSize if set. + +attributes.shapeStepSize +------------------------ + +A non-zero value causes an object to be treated +as a volume container, and a value of 0 causes +an object to be treated as regular geometry. + +attributes.shapeStepScale +------------------------- + +Raymarching step size is calculated using this value +multiplied by the shapeStepSize. + +attributes.volumePadding +------------------------ + +Allows a volume to be displaced outside its bounds. When +rendering a mesh as a volume, this enables displacement. + +attributes.velocityScale +------------------------ + +Scales the vector used in VDB motion blur computation. + +attributes.velocityFPS +---------------------- + +Sets the frame rate used in VDB motion blur computation. + +attributes.velocityOutlierThreshold +----------------------------------- + +Sets the outlier threshold used in VDB motion blur computation. + +When rendering physics simulations resulting velocities are +potentially noisy and require some filtering for faster rendering. + +attributes.toonId +----------------- + +You can select in the toon shader to skip outlines between objects with the same toon id set. + +global +------ + +Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter. + +extraAttributes +--------------- + +An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the `attributes` +CompoundDataPlug, with `IECoreScene.ShaderNetwork` being one example. + +If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldBackground.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldBackground.md.txt new file mode 100644 index 000000000..6a031b73c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldBackground.md.txt @@ -0,0 +1,34 @@ +ArnoldBackground +================ + +Assigns a background shader. This is stored as an "ai:background" option +in Gaffer's globals, and translated onto the `options.background` parameter +in Arnold. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +shader +------ + +The shader to be assigned. This will be stored as an +option within the scene globals. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldCameraShaders.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldCameraShaders.md.txt new file mode 100644 index 000000000..4ea45ef83 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldCameraShaders.md.txt @@ -0,0 +1,64 @@ +ArnoldCameraShaders +=================== + +Creates shaders for use with Arnold cameras. Use a ShaderAssignment +node to assign the shaders to the cameras they should affect. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +type +---- + +The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +attributeSuffix +--------------- + +Suffix for the attribute used for shader assignment. + +parameters +---------- + +Where the parameters for the shader are represented. + +enabled +------- + +Turns the node on and off. + +filterMap +--------- + +A shader used to weight the samples taken by an +Arnold camera. This can be used to create vignetting effects +or to completely mask out areas of the render, causing no +rays to be fired for those pixels. The shader is evaluated +across a 0-1 UV range that is mapped to the camera's screen +space. + +uvRemap +------- + +A shader used to simulate lens distortion effects. The shader +is evaluated across a 0-1 UV range that is mapped to the camera's +screen space, and should output a red/green UV image of distorted +UV positions. + +out +--- + +The output from the shader. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldColorManager.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldColorManager.md.txt new file mode 100644 index 000000000..f27b8c7ef --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldColorManager.md.txt @@ -0,0 +1,32 @@ +ArnoldColorManager +================== + +Specifies the colour manager to be used in Arnold renders. This is represented +in the scene as an option called `ai:color_manager`. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +parameters +---------- + +The parameters for the colour manager. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldDisplacement.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldDisplacement.md.txt new file mode 100644 index 000000000..d44d79af5 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldDisplacement.md.txt @@ -0,0 +1,95 @@ +ArnoldDisplacement +================== + +Creates displacements to be applied to meshes for +rendering in Arnold. A displacement consists of a +shader to provide the displacement map and several +attributes to control the height and other displacement +properties. + +Use an ArnoldAttributes node to control the subdivision +settings of the mesh, which in turn controls the detail +of the displacement. Use a ShaderAssignment node to assign +the ArnoldDisplacement to specific objects. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +type +---- + +The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +attributeSuffix +--------------- + +Suffix for the attribute used for shader assignment. + +parameters +---------- + +Where the parameters for the shader are represented. + +enabled +------- + +Turns the node on and off. + +map +--- + +The Arnold shader that provides the displacement +map. Connect a float or colour input to displace +along the object normals or a vector input to displace +in a specific direction. + +height +------ + +Controls the amount of displacement. Only used when +performing displacement along the normal. + +padding +------- + +Padding added to an object's bounding box to take +into account displacement. Arnold will subdivide +and displace an object the first time a ray intersects +its bounding box, so if the padding is too small, +parts of the object will be clipped. If the padding +is too large, rendertime will suffer and Arnold +will emit a warning message. + +zeroValue +--------- + +Defines a value that will cause no displacement to +occur. For instance, if the displacement map contains +a greyscale noise between 0 and 1, a zero value of 0.5 +will mean that the displacement pushes into the object +in some places and out in others. + +autoBump +-------- + +Automatically turns the details of the displacement map +into bump, wherever the mesh is not subdivided enough +to properly capture them. + +out +--- + +The output from the shader. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldImager.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldImager.md.txt new file mode 100644 index 000000000..025729c65 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldImager.md.txt @@ -0,0 +1,52 @@ +ArnoldImager +============ + +Assigns an imager. This is stored as an `ai:imager` option in Gaffer's +globals, and applied to all render outputs. + +> Tip : Use the `layer_selection` parameter on each imager to control +> which AOVs the imager applies to. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +imager +------ + +The imager to be assigned. The output of an ArnoldShader node +holding an imager should be connected here. Multiple imagers may be +assigned at once by chaining them together via their `input` +parameters, and then assigning the final imager via the ArnoldImager +node. + +mode +---- + +The mode used to combine the `imager` input with any imagers that +already exist in the globals. + +- Replace : Removes all pre-existing imagers, and replaces them with + the new ones. +- InsertFirst : Inserts the new imagers so that they will be run before + any pre-existing imagers. +- InsertLast : Inserts the new imagers so that they will be run after + any pre-existing imagers. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldLight.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldLight.md.txt new file mode 100644 index 000000000..7b793f10c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldLight.md.txt @@ -0,0 +1,100 @@ +ArnoldLight +=========== + +Loads an Arnold light shader and uses it to output a scene with a single light. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +parameters +---------- + +The parameters of the light shader - these will vary based on the light type. + +defaultLight +------------ + +Whether this light illuminates all geometry by default. When +toggled, the light will be added to the "defaultLights" set, which +can be referenced in set expressions and manipulated by downstream +nodes. + +mute +---- + +Whether this light is muted. When toggled, the attribute "light:mute" +will be set to true. When not toggled, it will be omitted from the attributes. + +visualiserAttributes +-------------------- + +Attributes that affect the visualisation of this Light in the Viewer. + +visualiserAttributes.scale +-------------------------- + +Scales non-geometric visualisations in the viewport to make them +easier to work with. + +visualiserAttributes.maxTextureResolution +----------------------------------------- + +Visualisers that load textures will respect this setting to +limit their resolution. + +visualiserAttributes.frustum +---------------------------- + +Controls whether applicable lights draw a representation of their +light projection in the viewer. + +visualiserAttributes.lightFrustumScale +-------------------------------------- + +Allows light projections to be scaled to better suit the scene. + +visualiserAttributes.lightDrawingMode +------------------------------------- + +Controls how lights are presented in the Viewer. + +visualiserAttributes.lookThroughAperture +---------------------------------------- + +Specifies the aperture used when looking through this light. Overrides the Viewer's Camera Settings. + +visualiserAttributes.lookThroughClippingPlanes +---------------------------------------------- + +Specifies the clipping planes used when looking through this light. Overrides the Viewer's Camera Settings. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldLightFilter.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldLightFilter.md.txt new file mode 100644 index 000000000..738f4cf55 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldLightFilter.md.txt @@ -0,0 +1,52 @@ +ArnoldLightFilter +================= + +LightFilter that can be positioned in space to filter light in a particular +region. Note that this is a non-physical effect. LightFilters need to get +linked to lights which you can do via a StandardAttributes node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +filteredLights +-------------- + +The lights that are being filtered. Accepts a SetExpression. You +might want to set it to 'defaultLights' to have the filter affect +all lights that haven't been excluded from that set. + +parameters +---------- + +The parameters of the light filter shader - these will vary based on the type. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldMeshLight.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldMeshLight.md.txt new file mode 100644 index 000000000..c0b419070 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldMeshLight.md.txt @@ -0,0 +1,156 @@ +ArnoldMeshLight +=============== + +Turns mesh primitives into Arnold mesh lights by assigning +a mesh_light shader, turning off all visibility except for camera rays, +and adding the meshes to the default lights set. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +cameraVisibility +---------------- + +Whether or not the mesh light is visible to camera +rays. + +parameters +---------- + +The parameters of the Arnold mesh_light shader that +is applied to the meshes. + +parameters.color +---------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.intensity +-------------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.exposure +------------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.cast_shadows +----------------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.cast_volumetric_shadows +---------------------------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.shadow_density +------------------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.shadow_color +----------------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.samples +------------------ + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.normalize +-------------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.diffuse +------------------ + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.specular +------------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.sss +-------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.indirect +------------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.max_bounces +---------------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.volume_samples +------------------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.volume +----------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +parameters.aov +-------------- + +Refer to Arnold's documentation for the mesh_light +shader. + +defaultLight +------------ + +Whether this light illuminates all geometry by default. When +toggled, the light will be added to the "defaultLights" set, which +can be referenced in set expressions and manipulated by downstream +nodes. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldOptions.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldOptions.md.txt new file mode 100644 index 000000000..1c5253445 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldOptions.md.txt @@ -0,0 +1,619 @@ +ArnoldOptions +============= + +Sets global scene options applicable to the Arnold +renderer. Use the StandardOptions node to set +global options applicable to all renderers. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +options +------- + +The options to be applied - arbitrary numbers of user defined options may be added +as children of this plug via the user interface, or using the CompoundDataPlug API via +python. + +options.bucketSize +------------------ + +Controls the size of the image buckets. +The default size is 64x64 pixels. +Bigger buckets will increase memory usage +while smaller buckets may render slower as +they need to perform redundant computations +and filtering. + +options.bucketScanning +---------------------- + +Controls the order in which buckets are +processed. A spiral pattern is the default. + +options.parallelNodeInit +------------------------ + +Enables Arnold's parallel node initialization. +Note that some Arnold features may not be +thread-safe, in which case enabling this option +can cause crashes. One such example is Cryptomatte +and its use in the AlSurface shader. + +options.threads +--------------- + +Specifies the number of threads Arnold +is allowed to use. A value of 0 gives +Arnold access to all available threads. + +options.aaSamples +----------------- + +Controls the number of rays per pixel +traced from the camera. The more samples, +the better the quality of antialiasing, +motion blur and depth of field. The actual +number of rays per pixel is the square of +the AA samples value - so a value of 3 +means 9 rays are traced, 4 means 16 rays are +traced and so on. + +options.giDiffuseSamples +------------------------ + +Controls the number of rays traced when +computing indirect illumination ("bounce light"). +The number of actual diffuse rays traced is the +square of this number. + +options.giSpecularSamples +------------------------- + +Controls the number of rays traced when +computing specular reflections. +The number of actual specular rays traced +is the square of this number. + +options.giTransmissionSamples +----------------------------- + +Controls the number of rays traced when +computing specular refractions. The number of actual +transmitted specular rays traced is the square of this number. + +options.giSSSSamples +-------------------- + +Controls the number of rays traced when +computing subsurface scattering. The number of actual +subsurface rays traced is the square of this number. + +options.giVolumeSamples +----------------------- + +Controls the number of rays traced when +computing indirect lighting for volumes. +The number of actual rays traced +is the square of this number. The volume +ray depth must be increased from the default +value of 0 before this setting is of use. + +options.lightSamples +-------------------- + +Specifies a fixed number of light samples to be taken at each +shading point. This enables "Global Light Sampling", which provides +significantly improved performance for scenes containing large numbers +of lights. In this mode, the `samples` setting on each light is ignored, +and instead the fixed number of samples is distributed among all the +lights according to their contribution at the shading point. + +A value of `0` disables Global Light Sampling, reverting to the original +per-light sampling algorithm. + +> Note : Global Light Sampling currently has limitations. See +> https://help.autodesk.com/view/ARNOL/ENU/?guid=arnold_user_guide_ac_render_settings_ac_lights_settings_html +> for more details. + +options.aaSeed +-------------- + +Seeds the randomness used when generating samples. +By default this is set to the current frame number +so that the pattern of sampling noise changes every +frame. It can be locked to a particular value so +that sampling noise does not change from frame to +frame. + +options.aaSampleClamp +--------------------- + +Sets a maximum for the values of individual pixel samples. This +can help reduce fireflies. + +options.aaSampleClampAffectsAOVs +-------------------------------- + +Applies the sample clamping settings to all RGB and RGBA +AOVs, in addition to the beauty image. + +options.indirectSampleClamp +--------------------------- + +Clamp fireflies resulting from indirect calculations. +May cause problems with dulling highlights in reflections. + +options.lowLightThreshold +------------------------- + +Light paths with less energy than this will be discarded. This +saves tracing shadow rays, but cuts off the light when it gets dim. +Raising this improves performance, but makes the image potentially +darker in some areas. + +options.enableAdaptiveSampling +------------------------------ + +If adaptive sampling is enabled, Arnold will take a minimum +of ( aaSamples * aaSamples ) samples per pixel, and will then +take up to ( aaSamplesMax * aaSamplesMax ) samples per pixel, +or until the remaining estimated noise gets lower than +aaAdaptiveThreshold. + +> Note : Arnold's adaptive sampling won't do anything if aaSamples == 1 : you need to set aaSamples to at least 2. + +options.aaSamplesMax +-------------------- + +The maximum sampling rate during adaptive sampling. Like +aaSamples, this value is squared. So aaSamplesMax == 6 means up to 36 samples per pixel. + +options.aaAdaptiveThreshold +--------------------------- + +How much leftover noise is acceptable when terminating adaptive sampling. Higher values +accept more noise, lower values keep rendering longer to achieve smaller amounts of +noise. + +options.enableProgressiveRender +------------------------------- + +Enables progressive rendering, with a series of coarse low-resolution +renders followed by a full quality render updated continuously. + +options.progressiveMinAASamples +------------------------------- + +Controls the coarseness of the first low resolution pass +of interactive rendering. A value of `-4` starts with 16x16 pixel +blocks, `-3` gives 8x8 blocks, `-2` gives 4x4, `-1` gives 2x2 and +`0` disables the low resolution passes completely. + +options.giTotalDepth +-------------------- + +The maximum depth of any ray (Diffuse + Specular + +Transmission + Volume). + +options.giDiffuseDepth +---------------------- + +Controls the number of ray bounces when +computing indirect illumination ("bounce light"). + +options.giSpecularDepth +----------------------- + +Controls the number of ray bounces when +computing specular reflections. + +options.giTransmissionDepth +--------------------------- + +Controls the number of ray bounces when +computing specular refractions. + +options.giVolumeDepth +--------------------- + +Controls the number of ray bounces when +computing indirect lighting on volumes. + +options.autoTransparencyDepth +----------------------------- + +The number of allowable transparent layers - after +this the last object will be treated as opaque. + +options.maxSubdivisions +----------------------- + +A global override for the maximum polymesh.subdiv_iterations. + +options.subdivDicingCamera +-------------------------- + +If specified, adaptive subdivision will be performed +relative to this camera, instead of the render camera. + +options.subdivFrustumCulling +---------------------------- + +Disable subdivision of polygons outside the camera frustum. +( Uses dicing camera if one has been set ). +Saves performance, at the cost of inaccurate reflections +and shadows. + +options.subdivFrustumPadding +---------------------------- + +When using subdivFrustumCulling, adds a world space bound +around the frustum where subdivision still occurs. Can be +used to improve shadows, reflections, and objects the motion +blur into frame. + +options.textureMaxMemoryMB +-------------------------- + +The maximum amount of memory to use for caching +textures. Tiles are loaded on demand and cached, +and when the memory limit is reached the least +recently used tiles are discarded to make room +for more. Measured in megabytes. + +options.texturePerFileStats +--------------------------- + +Turns on detailed statistics output for +each individual texture file used. + +options.textureMaxSharpen +------------------------- + +Controls the sharpness of texture lookups, +providing a tradeoff between sharpness and +the amount of texture data loaded. If +textures appear too blurry, then the value +should be increased to add sharpness. + +The theoretical optimum value is to match the +number of AA samples, but in practice the +improvement in sharpness this brings often +doesn't justify the increased render time and +memory usage. + +options.textureUseExistingTx +---------------------------- + +Automatically uses a `.tx` file if it exists, in +preference to a `.jpg` (or any other file format) that has +been specified. Particularly useful when used with +`textureAutoGenerateTx`, which will automatically create the `.tx` +file as necessary. + +> Info : The `.tx` file format provides improved performance and +reduced memory usage, because it contains mip-mapped textures. + +options.textureAutoGenerateTx +----------------------------- + +Automatically generates a `.tx` when given +`.jpg` (or any other file format). Requires that +`textureUseExistingTx` is also turned on. By default, textures +are generated in the same folder as the source texture. Use +`textureAutoTxPath` to specify an alternative destination. + +> Caution : This feature might cause problems if multiple render +farm nodes are trying to convert the same textures in the same +target folder at the same time, resulting in potential crashes, +corrupt textures, and poor performance. + +options.textureAutoTxPath +------------------------- + +Specifies an alternate destination folder for textures generated +by `textureAutoGenerateTx`. + +options.ignoreTextures +---------------------- + +Ignores all file textures, rendering as +if they were all white. + +options.ignoreShaders +--------------------- + +Ignores all shaders, rendering as a +simple facing ratio shader instead. + +options.ignoreAtmosphere +------------------------ + +Ignores all atmosphere shaders. + +options.ignoreLights +-------------------- + +Ignores all lights. + +options.ignoreShadows +--------------------- + +Skips all shadow calculations. + +options.ignoreSubdivision +------------------------- + +Treats all subdivision surfaces +as simple polygon meshes instead. + +options.ignoreDisplacement +-------------------------- + +Ignores all displacement shaders. + +options.ignoreBump +------------------ + +Ignores all bump mapping. + +options.ignoreSSS +----------------- + +Disables all subsurface scattering. + +options.ignoreImagers +--------------------- + +Disables all imagers. + +options.textureSearchPath +------------------------- + +The locations used to search for texture +files. + +options.proceduralSearchPath +---------------------------- + +The locations used to search for procedural +DSOs. + +options.pluginSearchPath +------------------------ + +The locations used to search for shaders and other plugins. + +options.abortOnError +-------------------- + +Aborts the render if an error is encountered. + +options.errorColorBadTexture +---------------------------- + +The colour to display if an attempt is +made to use a bad or non-existent texture. + +options.errorColorBadPixel +-------------------------- + +The colour to display for a pixel where +a NaN is encountered. + +options.errorColorBadShader +--------------------------- + +The colour to display if a problem occurs +in a shader. + +options.logFileName +------------------- + +The name of a log file which Arnold will generate +while rendering. + +options.logMaxWarnings +---------------------- + +The maximum number of warnings that will be reported. + +options.logInfo +--------------- + +Whether or not information messages are included in the log output. + +options.logWarnings +------------------- + +Whether or not warning messages are included in the log output. + +options.logErrors +----------------- + +Whether or not error messages are included in the log output. + +options.logDebug +---------------- + +Whether or not debug messages are included in the log output. + +options.logAssParse +------------------- + +Whether or not ass parsing is included in the log output. + +options.logPlugins +------------------ + +Whether or not plugin loading is included in the log output. + +options.logProgress +------------------- + +Whether or not progress messages are included in the log output. + +options.logNAN +-------------- + +Whether or not pixels with NaNs are included in the log output. + +options.logTimestamp +-------------------- + +Whether or not timestamp prefixes are included in the log output. + +options.logStats +---------------- + +Whether or not statistics are included in the log output. + +options.logBacktrace +-------------------- + +Whether or not stack backtraces from crashes are included in the log output. + +options.logMemory +----------------- + +Whether or not memory usage prefixes are included in the log output. + +options.logColor +---------------- + +Whether or not coloured messages are included in the log output. + +options.consoleInfo +------------------- + +Whether or not information messages are included in the console output. + +options.consoleWarnings +----------------------- + +Whether or not warning messages are included in the console output. + +options.consoleErrors +--------------------- + +Whether or not error messages are included in the console output. + +options.consoleDebug +-------------------- + +Whether or not debug messages are included in the console output. + +options.consoleAssParse +----------------------- + +Whether or not ass parsing is included in the console output. + +options.consolePlugins +---------------------- + +Whether or not plugin loading is included in the console output. + +options.consoleProgress +----------------------- + +Whether or not progress messages are included in the console output. + +options.consoleNAN +------------------ + +Whether or not pixels with NaNs are included in the console output. + +options.consoleTimestamp +------------------------ + +Whether or not timestamp prefixes are included in the console output. + +options.consoleStats +-------------------- + +Whether or not statistics are included in the console output. + +options.consoleBacktrace +------------------------ + +Whether or not stack backtraces from crashes are included in the console output. + +options.consoleMemory +--------------------- + +Whether or not memory usage prefixes are included in the console output. + +options.consoleColor +-------------------- + +Whether or not coloured messages are included in the console output. + +options.statisticsFileName +-------------------------- + +The name of a statistics file where Arnold will store structured +JSON statistics. + +options.profileFileName +----------------------- + +The name of a profile json file where Arnold will store a +detailed node performance graph. Use chrome://tracing to +view the profile. + +options.abortOnLicenseFail +-------------------------- + +Aborts the render if a license is not available, +instead of rendering with a watermark. + +options.skipLicenseCheck +------------------------ + +Skips the check for a license, always rendering +with a watermark. + +options.renderDevice +-------------------- + +Can be used to put Arnold in GPU rendering mode, using your graphics card instead of CPU. This is currently a beta with limited stability, and missing support for OSL and volumes. + +options.gpuMaxTextureResolution +------------------------------- + +If non-zero, this will omit the high resolution mipmaps when in GPU mode, to avoid running out of GPU memory. + +extraOptions +------------ + +An additional set of options to be added. Arbitrary numbers +of options may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an option. +This is convenient when using an expression to define the options +and the option count might be dynamic. It can also be used to +create options whose type cannot be handled by the `options` +CompoundDataPlug. + +If the same option is defined by both the `options` and the +`extraOptions` plugs, then the value from the `extraOptions` +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldRender.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldRender.md.txt new file mode 100644 index 000000000..e6b3c5f81 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldRender.md.txt @@ -0,0 +1,110 @@ +ArnoldRender +============ + +Performs offline batch rendering using the +Arnold renderer, or optionally generates +.ass files for later rendering using a SystemCommand +node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +in +-- + +The scene to be rendered. + +mode +---- + +The type of render to perform. + +fileName +-------- + +The name of the .ass file to be generated when in +scene description mode. If a ".ass.gz" extension +is used, then the ass file will be compressed +automatically. + +**Supported file extensions** : ass, ass.gz + +out +--- + +A direct pass-through of the input scene. + +resolvedRenderer +---------------- + +The renderer that will be used, accounting for the value of the +`render:defaultRenderer` option if `renderer` is set to "Default". \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldShader.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldShader.md.txt new file mode 100644 index 000000000..4be263e26 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldShader.md.txt @@ -0,0 +1,40 @@ +ArnoldShader +============ + +Loads shaders for use in Arnold renders. Use the ShaderAssignment node to assign shaders to objects in the scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +type +---- + +The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +attributeSuffix +--------------- + +Suffix for the attribute used for shader assignment. + +parameters +---------- + +Where the parameters for the shader are represented. + +enabled +------- + +Turns the node on and off. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldShaderBall.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldShaderBall.md.txt new file mode 100644 index 000000000..ac2c04420 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldShaderBall.md.txt @@ -0,0 +1,47 @@ +ArnoldShaderBall +================ + +Generates scenes suitable for rendering shader balls with Arnold. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +shader +------ + +The shader to be rendered. + +resolution +---------- + +The resolution of the shader ball image, which +is always a square. + +environment +----------- + +An environment map used for lighting. Should be in latlong +format. + +threads +------- + +The number of threads used by Arnold to render the +shader ball. A value of 0 uses all cores, and negative +values reserve cores for other uses - to be used by +the rest of the UI for instance. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldTextureBake.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldTextureBake.md.txt new file mode 100644 index 000000000..b3da6cbf3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldTextureBake.md.txt @@ -0,0 +1,165 @@ +ArnoldTextureBake +================= + +Render meshes in Arnold, storing the results into images in the texture space of the meshes. +Supports multiple meshes and UDIMs, and any AOVs output by Arnold. The file name and +resolution can be overridden per mesh using the "bake:fileName" and "bake:resolution" attributes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +in +-- + +The input scene containing the meshes to bake, and any lights which affect them. + +filter +------ + +The filter used to control which meshes the textures will be baked for. +A Filter node should be connected here. + +bakeDirectory +------------- + +Sets the Context Variable used in the default file name to control where all the bakes will be stored. + +defaultFileName +--------------- + +The file name to use for each texture file written. will be replaced by the UDIM number, +and will be replaced by the aov name specified in "aovs". If you want to do an animated bake, +you can also use #### which will be replaced by the frame number. + +May be overridden per mesh by specifying the "bake:fileName" string attribute on the meshes to be baked. + +defaultResolution +----------------- + +The resolution to use for each texture file written. + +May be overridden per mesh by specifying the "bake:resolution" integer attribute on the meshes to be baked. + +uvSet +----- + +The name of the primitive variable containing uvs which will determine how the mesh is unwrapped +for baking. Must be a Face-Varying or Vertex V2f primitive variable. + +udims +----- + +If non-empty, only UDIMs in this list will be baked. The formatting is the same as a frame list: +comma separated, with dashes indicating ranges. + +normalOffset +------------ + +How far Arnold steps away from the surface before tracing back. If too large for your scene, +you will incorrectly capture occluders near the mesh instead of the mesh itself. If too small, +everything will go speckly because Arnold has insufficient precision to hit the mesh. For objects +which are fairly large and simple, the default 0.1 should work. Smaller objects may require smaller +values. + +aovs +---- + +A space separated list of colon separated pairs of image name and data to render. + +For example, you could set this to "myName1:RGBA myName2:diffuse myName3:diffuse_albedo", to +render 3 sets of images for every UDIM and mesh baked, containing all lighting, just diffuse +lighting, and the diffuse albedo. + +tasks +----- + +How many tasks the bake process will be split into. UDIMs cannot be split across tasks, so if you +have few UDIMs available, the extra tasks won't do anything, but if you have a large number of +UDIMs, and are dispatching to a pool of machines, increasing the number of tasks used will speed +up bakes, at the cost of using more machines. + +cleanupIntermediateFiles +------------------------ + +During baking, we first render exrs ( potentially multiple EXRs per udim if multiple objects +are present ). We then combine them, fill in the background, and convert to textures. This +causes all intermediate EXRs, and the index txt file to be removed, and just the final .tx to be kept. + +applyMedianFilter +----------------- + +Adds a simple denoising filter to the texture bake. Mostly preserves high-contrast edges. + +medianRadius +------------ + +The radius of the median filter. Values greater than 1 will likely remove small details from the texture. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldVDB.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldVDB.md.txt new file mode 100644 index 000000000..159f573b8 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/ArnoldVDB.md.txt @@ -0,0 +1,84 @@ +ArnoldVDB +========= + +Creates an external procedural for rendering +VDB volumes in Arnold. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +fileName +-------- + +The name of the VDB file to be loaded. + +**Supported file extensions** : vdb + +grids +----- + +A space separated list of grids to be loaded and made available as +channels in the volume shader. + +velocityGrids +------------- + +A space separated list of grids used to be used to generate motion +blur. Should either contain a single vector grid or 3 float grids. + +velocityScale +------------- + +A scale factor applied to the velocity grids, to either increase +or decrease motion blur. + +stepSize +-------- + +The ray marching step size. This should be small enough to capture +the smallest details in the volume. Values which are too large will +cause aliasing artifacts, and values which are too small will cause +rendering to be excessively slow. The default value of 0 causes the +size to be calculated automatically based on the resolution of the +VDB file. The step scale can then be used to make relative adjustments +on top of this automatic size. + +stepScale +--------- + +A multiplier applied to the step size. This is most useful when the +step size is computed automatically. Typically stepScale would be +increased above 1 to give improved render times when it is known that +the VDB file doesn't have a lot of fine detail at the voxel level - +a value of 4 might be a good starting point for such a file. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/InteractiveArnoldRender.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/InteractiveArnoldRender.md.txt new file mode 100644 index 000000000..99d3be8b3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/InteractiveArnoldRender.md.txt @@ -0,0 +1,39 @@ +InteractiveArnoldRender +======================= + +Performs interactive renders using Arnold, updating the render on the fly +whenever the input scene changes. Arnold supports edits to all aspects of +the scene without needing to restart the render. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +in +-- + +The scene to be rendered. + +state +----- + +Turns the rendering on and off, or pauses it. + +out +--- + +A direct pass-through of the input scene. + +resolvedRenderer +---------------- + +The renderer that will be used, accounting for the value of the +`render:defaultRenderer` option if `renderer` is set to "Default". + +messages +-------- + +Messages from the render process. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/index.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/index.md.txt new file mode 100644 index 000000000..3a9895341 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferArnold/index.md.txt @@ -0,0 +1,29 @@ + + +GafferArnold +============ + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + ArnoldAOVShader.md + ArnoldAtmosphere.md + ArnoldAttributes.md + ArnoldBackground.md + ArnoldCameraShaders.md + ArnoldColorManager.md + ArnoldDisplacement.md + ArnoldImager.md + ArnoldLight.md + ArnoldLightFilter.md + ArnoldMeshLight.md + ArnoldOptions.md + ArnoldRender.md + ArnoldShader.md + ArnoldShaderBall.md + ArnoldTextureBake.md + ArnoldVDB.md + InteractiveArnoldRender.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesAttributes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesAttributes.md.txt new file mode 100644 index 000000000..65d421517 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesAttributes.md.txt @@ -0,0 +1,207 @@ +CyclesAttributes +================ + +Applies Cycles attributes to objects in the scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +attributes +---------- + +The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python. + +attributes.cameraVisibility +--------------------------- + +Whether or not the object is visible to camera +rays. To hide an object completely, use the +visibility settings on the StandardAttributes +node instead. + +attributes.diffuseVisibility +---------------------------- + +Whether or not the object is visible to diffuse +rays. + +attributes.glossyVisibility +--------------------------- + +Whether or not the object is visible in +glossy rays. + +attributes.transmissionVisibility +--------------------------------- + +Whether or not the object is visible in +transmission. + +attributes.shadowVisibility +--------------------------- + +Whether or not the object is visible to shadow +rays - whether it casts shadows or not. + +attributes.scatterVisibility +---------------------------- + +Whether or not the object is visible to +scatter rays. + +attributes.useHoldout +--------------------- + +Turns the object into a holdout matte. +This only affects primary (camera) rays. + +attributes.isShadowCatcher +-------------------------- + +Turns the object into a shadow catcher. + +attributes.shadowTerminatorShadingOffset +---------------------------------------- + +Push the shadow terminator towards the light to hide artifacts on low poly geometry. + +attributes.shadowTerminatorGeometryOffset +----------------------------------------- + +Offset rays from the surface to reduce shadow terminator artifact on low poly geometry. Only affects triangles at grazing angles to light. + +attributes.isCausticsCaster +--------------------------- + +Cast Shadow Caustics. + +attributes.isCausticsReceiver +----------------------------- + +Receive Shadow Caustics. + +attributes.maxLevel +------------------- + +The max level of subdivision that can be +applied. + +attributes.dicingScale +---------------------- + +Multiplier for scene dicing rate. + +attributes.lightGroup +--------------------- + +Set the lightgroup of an object with emission. + +attributes.volumeClipping +------------------------- + +Value under which voxels are considered empty space to +optimize rendering. + +attributes.volumeStepSize +------------------------- + +Distance between volume samples. When zero it is automatically +estimated based on the voxel size. + +attributes.volumeObjectSpace +---------------------------- + +Specify volume density and step size in object or world space. +By default object space is used, so that the volume opacity and +detail remains the same regardless of object scale. + +attributes.assetName +-------------------- + +Asset name for cryptomatte. + +attributes.emissionSamplingMethod +--------------------------------- + +Sampling strategy for emissive surfaces. + +attributes.useTransparentShadow +------------------------------- + +Use transparent shadows for this material if it contains a Transparent BSDF, +disabling will render faster but not give accurate shadows. + +attributes.heterogeneousVolume +------------------------------ + +Disabling this when using volume rendering, assume volume has the same density +everywhere (not using any textures), for faster rendering. + +attributes.volumeSamplingMethod +------------------------------- + +Sampling method to use for volumes. + +attributes.volumeInterpolationMethod +------------------------------------ + +Interpolation method to use for volumes. + +attributes.volumeStepRate +------------------------- + +Scale the distance between volume shader samples when rendering the volume +(lower values give more accurate and detailed results, but also increased render time). + +attributes.displacementMethod +----------------------------- + +Method to use for the displacement. + +global +------ + +Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter. + +extraAttributes +--------------- + +An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the `attributes` +CompoundDataPlug, with `IECoreScene.ShaderNetwork` being one example. + +If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesBackground.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesBackground.md.txt new file mode 100644 index 000000000..bb0fa43a5 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesBackground.md.txt @@ -0,0 +1,34 @@ +CyclesBackground +================ + +Assigns global shaders such as background and atmosphere shaders. +This node is an abstract base class, so it can not be used directly - +instead use the nodes derived from it. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +shader +------ + +The shader to be assigned. This will be stored as an +option within the scene globals. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesLight.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesLight.md.txt new file mode 100644 index 000000000..f571cf93d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesLight.md.txt @@ -0,0 +1,100 @@ +CyclesLight +=========== + +Loads an Cycles light shader and uses it to output a scene with a single light. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +parameters +---------- + +The parameters of the light shader - these will vary based on the light type. + +defaultLight +------------ + +Whether this light illuminates all geometry by default. When +toggled, the light will be added to the "defaultLights" set, which +can be referenced in set expressions and manipulated by downstream +nodes. + +mute +---- + +Whether this light is muted. When toggled, the attribute "light:mute" +will be set to true. When not toggled, it will be omitted from the attributes. + +visualiserAttributes +-------------------- + +Attributes that affect the visualisation of this Light in the Viewer. + +visualiserAttributes.scale +-------------------------- + +Scales non-geometric visualisations in the viewport to make them +easier to work with. + +visualiserAttributes.maxTextureResolution +----------------------------------------- + +Visualisers that load textures will respect this setting to +limit their resolution. + +visualiserAttributes.frustum +---------------------------- + +Controls whether applicable lights draw a representation of their +light projection in the viewer. + +visualiserAttributes.lightFrustumScale +-------------------------------------- + +Allows light projections to be scaled to better suit the scene. + +visualiserAttributes.lightDrawingMode +------------------------------------- + +Controls how lights are presented in the Viewer. + +visualiserAttributes.lookThroughAperture +---------------------------------------- + +Specifies the aperture used when looking through this light. Overrides the Viewer's Camera Settings. + +visualiserAttributes.lookThroughClippingPlanes +---------------------------------------------- + +Specifies the clipping planes used when looking through this light. Overrides the Viewer's Camera Settings. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesMeshLight.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesMeshLight.md.txt new file mode 100644 index 000000000..406d71474 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesMeshLight.md.txt @@ -0,0 +1,71 @@ +CyclesMeshLight +=============== + +Turns mesh primitives into Cycles mesh lights by assigning +an emission shader, turning off all visibility except for camera rays, +and adding the meshes to the default lights set. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +cameraVisibility +---------------- + +Whether or not the mesh light is visible to camera +rays. + +lightGroup +---------- + +The light group that the mesh light will contribute to. + +parameters +---------- + +The parameters of the Cycles emission shader that +is applied to the meshes. + +parameters.color +---------------- + +Refer to Cycles's documentation of the emission +shader. + +parameters.strength +------------------- + +Refer to Cycles's documentation of the emission +shader. + +defaultLight +------------ + +Whether this light illuminates all geometry by default. When +toggled, the light will be added to the "defaultLights" set, which +can be referenced in set expressions and manipulated by downstream +nodes. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesOptions.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesOptions.md.txt new file mode 100644 index 000000000..296a34e3c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesOptions.md.txt @@ -0,0 +1,483 @@ +CyclesOptions +============= + +Sets global scene options applicable to the Cycles +renderer. Use the StandardOptions node to set +global options applicable to all renderers. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +options +------- + +The options to be applied - arbitrary numbers of user defined options may be added +as children of this plug via the user interface, or using the CompoundDataPlug API via +python. + +options.logLevel +---------------- + +Internal Cycles debugging log-level. + +options.device +-------------- + +Device(s) to use for rendering. +To specify multiple devices, there's a few examples under presets. + +To render on CPU and the first CUDA device: + + CPU CUDA:00 + +To render on the first and second OpenCL device: + + OPENCL:00 OPENCL:01 + +To render on every OptiX device found: + + OPTIX:* + +To render on everything found (not recommended, 1 device may have multiple backends!) + + CPU CUDA:* OPTIX:* OPENCL:* + +options.shadingSystem +--------------------- + +Shading system. + +- OSL : Use Open Shading Language (CPU rendering only). +- SVM : Use Shader Virtual Machine. + +options.samples +--------------- + +Number of samples to render for each pixel. This is for the +path integrator, use the other sampling parameters for the +branched-path integrator. + +options.pixelSize +----------------- + +Pixel Size. + +options.numThreads +------------------ + +The number of threads used for rendering. + +- The default value of 0 lets the renderer choose + an optimal number of threads based on the available + hardware. +- Positive values directly set the number of threads. +- Negative values can be used to reserve some cores + while otherwise letting the renderer choose the + optimal number of threads. + +options.timeLimit +----------------- + +Time-limit. + +options.useProfiling +-------------------- + +Use Profiling. + +options.useAutoTile +------------------- + +Automatically render high resolution images in tiles to reduce memory usage, using the specified tile size. Tiles are cached to disk while rendering to save memory. + +options.tileSize +---------------- + +Tile size for rendering. + +options.bvhLayout +----------------- + +BVH Layout size. This corresponds with CPU architecture +(the higher the faster, but might not be supported on old CPUs). + +options.useBvhSpatialSplit +-------------------------- + +Use BVH spatial splits: longer builder time, faster render. + +options.useBvhUnalignedNodes +---------------------------- + +Use special type BVH optimized for hair (uses more ram but renders faster). + +options.numBvhTimeSteps +----------------------- + +Split BVH primitives by this number of time steps to speed up render time in cost of memory. + +options.hairSubdivisions +------------------------ + +Split BVH primitives by this number of time steps to speed up render time in cost of memory. + +options.hairShape +----------------- + +Rounded Ribbons -Render hair as flat ribbon with rounded normals, for fast rendering. +3D Curves - Render hair as 3D curve, for accurate results when viewing hair close up. + +options.textureLimit +-------------------- + +Limit the maximum texture size used by final rendering. + +options.minBounce +----------------- + +Minimum number of light bounces. Setting this higher reduces noise in the first bounces, +but can also be less efficient for more complex geometry like hair and volumes. + +options.maxBounce +----------------- + +Total maximum number of bounces. + +options.maxDiffuseBounce +------------------------ + +Maximum number of diffuse reflection bounces, bounded by total +maximum. + +options.maxGlossyBounce +----------------------- + +Maximum number of glossy reflection bounces, bounded by total +maximum. + +options.maxTransmissionBounce +----------------------------- + +Maximum number of transmission reflection bounces, bounded by total +maximum. + +options.maxVolumeBounce +----------------------- + +Maximum number of volumetric scattering events. + +options.transparentMinBounce +---------------------------- + +Minimum number of transparent bounces. Setting this higher reduces noise in the first bounces, +but can also be less efficient for more complex geometry like hair and volumes." + +options.transparentMaxBounce +---------------------------- + +Maximum number of transparent bounces. + +options.aoBounces +----------------- + +Maximum number of Ambient Occlusion bounces. + +options.aoFactor +---------------- + +Ambient Occlusion factor. + +options.aoDistance +------------------ + +Ambient Occlusion Distance. + +options.volumeMaxSteps +---------------------- + +Maximum number of steps through the volume before giving up, +to avoid extremely long render times with big objects or small step +sizes. + +options.volumeStepRate +---------------------- + +"Globally adjust detail for volume rendering, on top of automatically estimated step size." +"Higher values reduce render time, lower values render with more detail." + +options.causticsReflective +-------------------------- + +Use reflective caustics, resulting in a brighter image +(more noise but added realism). + +options.causticsRefractive +-------------------------- + +Use refractive caustics, resulting in a brighter image +(more noise but added realism). + +options.filterGlossy +-------------------- + +Adaptively blur glossy shaders after blurry bounces, to reduce +noise at the cost of accuracy. + +options.seed +------------ + +Seed value for the sampling pattern. If not specified, the frame number is used instead. + +options.sampleClampDirect +------------------------- + +Clamp value for sampling direct rays. + +options.sampleClampIndirect +--------------------------- + +Clamp value for sampling indirect rays. + +options.startSample +------------------- + +Start sample. + +options.useLightTree +-------------------- + +Sample multiple lights more efficiently based on estimated contribution at every shading point. + +options.lightSamplingThreshold +------------------------------ + +Probabilistically terminate light samples when the light +contribution is below this threshold (more noise but faster +rendering). +Zero disables the test and never ignores lights. + +options.useAdaptiveSampling +--------------------------- + +Automatically determine the number of samples per pixel based on a variance estimation. + +options.adaptiveThreshold +------------------------- + +Noise level step to stop sampling at, lower values reduce noise the cost of render time. +Zero for automatic setting based on number of AA samples. + +options.adaptiveMinSamples +-------------------------- + +Minimum AA samples for adaptive sampling, to discover noisy features before stopping sampling. +Zero for automatic setting based on number of AA samples. + +options.denoiserType +-------------------- + +Denoise the image with the selected denoiser. +OptiX - Use the OptiX AI denoiser with GPU acceleration, only available on NVIDIA GPUs +OpenImageDenoise - Use Intel OpenImageDenoise AI denoiser running on the CPU + +options.denoiseStartSample +-------------------------- + +Sample to start denoising the preview at. + +options.useDenoisePassAlbedo +---------------------------- + +Use albedo pass for denoising. + +options.useDenoisePassNormal +---------------------------- + +Use normal pass for denoising. + +options.denoiserPrefilter +------------------------- + +None - No prefiltering, use when guiding passes are noise-free. +Fast - Denoise color and guiding passes together. Improves quality when guiding passes are noisy using least amount of extra processing time. +Accurate - Prefilter noisy guiding passes before denoising color. Improves quality when guiding passes are noisy using extra processing time. + +options.useGuiding +------------------ + +Use path guiding for sampling paths. Path guiding incrementally +learns the light distribution of the scene and guides path into directions +with high direct and indirect light contributions. + +options.useSurfaceGuiding +------------------------- + +Use guiding when sampling directions on a surface. + +options.useVolumeGuiding +------------------------ + +Use guiding when sampling directions inside a volume. + +options.guidingTrainingSamples +------------------------------ + +The maximum number of samples used for training path guiding. +Higher samples lead to more accurate guiding, however may also unnecessarily slow +down rendering once guiding is accurate enough. +A value of 0 will continue training until the last sample. + +options.bgUseShader +------------------- + +Use background shader. There must be a CyclesBackground node with +a shader attached to it. + +options.bgCameraVisibility +-------------------------- + +Whether or not the background is visible to camera +rays. + +options.bgDiffuseVisibility +--------------------------- + +Whether or not the background is visible to diffuse +rays. + +options.bgGlossyVisibility +-------------------------- + +Whether or not the background is visible in +glossy rays. + +options.bgTransmissionVisibility +-------------------------------- + +Whether or not the background is visible in +transmission. + +options.bgShadowVisibility +-------------------------- + +Whether or not the background is visible to shadow +rays - whether it casts shadows or not. + +options.bgScatterVisibility +--------------------------- + +Whether or not the background is visible to +scatter rays. + +options.bgTransparent +--------------------- + +Make the background transparent. + +options.bgTransparentGlass +-------------------------- + +Background can be seen through transmissive surfaces. + +options.bgTransparentRoughnessThreshold +--------------------------------------- + +Roughness threshold of background shader in transmissive surfaces. + +options.volumeStepSize +---------------------- + +Distance between volume shader samples when rendering the volume +(lower values give more accurate and detailed results, but also +increases render time). + +options.exposure +---------------- + +Image brightness scale. + +options.passAlphaThreshold +-------------------------- + +Alpha threshold. + +options.displayPass +------------------- + +Render pass to show in the 3D Viewport. + +options.showActivePixels +------------------------ + +When using adaptive sampling highlight pixels which are being sampled. + +options.filterType +------------------ + +Image filter type. + +options.filterWidth +------------------- + +Pixel width of the filter. + +options.mistStart +----------------- + +Start of the mist/fog. + +options.mistDepth +----------------- + +End of the mist/fog. + +options.mistFalloff +------------------- + +Falloff of the mist/fog. + +options.cryptomatteDepth +------------------------ + +Sets how many unique objects can be distinguished per pixel. + +options.dicingCamera +-------------------- + +Camera to use as reference point when subdividing geometry, useful +to avoid crawling artifacts in animations when the scene camera is +moving. + +extraOptions +------------ + +An additional set of options to be added. Arbitrary numbers +of options may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an option. +This is convenient when using an expression to define the options +and the option count might be dynamic. It can also be used to +create options whose type cannot be handled by the `options` +CompoundDataPlug. + +If the same option is defined by both the `options` and the +`extraOptions` plugs, then the value from the `extraOptions` +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesRender.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesRender.md.txt new file mode 100644 index 000000000..1403975b6 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesRender.md.txt @@ -0,0 +1,108 @@ +CyclesRender +============ + +Performs offline batch rendering using the +Cycles renderer, or optionally generates +.xml files for later rendering using a SystemCommand +node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +in +-- + +The scene to be rendered. + +mode +---- + +The type of render to perform. + +fileName +-------- + +The name of the .xml file to be generated when in +scene description mode. + +**Supported file extensions** : xml + +out +--- + +A direct pass-through of the input scene. + +resolvedRenderer +---------------- + +The renderer that will be used, accounting for the value of the +`render:defaultRenderer` option if `renderer` is set to "Default". \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesShader.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesShader.md.txt new file mode 100644 index 000000000..e52199a8c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesShader.md.txt @@ -0,0 +1,45 @@ +CyclesShader +============ + +Loads shaders for use in Cycles renders. Use the ShaderAssignment node to assign shaders to objects in the scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +type +---- + +The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +attributeSuffix +--------------- + +Suffix for the attribute used for shader assignment. + +parameters +---------- + +Where the parameters for the shader are represented. + +enabled +------- + +Turns the node on and off. + +out +--- + +The output from the shader. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesShaderBall.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesShaderBall.md.txt new file mode 100644 index 000000000..0ed5e8c3d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/CyclesShaderBall.md.txt @@ -0,0 +1,77 @@ +CyclesShaderBall +================ + +Generates scenes suitable for rendering shader balls with Cycles. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +shader +------ + +The shader to be rendered. + +resolution +---------- + +The resolution of the shader ball image, which +is always a square. + +environment +----------- + +An environment map used for lighting. Should be in latlong +format. + +device +------ + +Device(s) to use for rendering. +To specify multiple devices, there's a few examples under presets. + +To render on CPU and the first CUDA device: + + CPU CUDA:00 + +To render on the first and second OpenCL device: + + OPENCL:00 OPENCL:01 + +To render on every OptiX device found: + + OPTIX:* + +To render on everything found (not recommended, 1 device may have multiple backends!) + + CPU CUDA:* OPTIX:* OPENCL:* + +threads +------- + +The number of threads used by Cycles to render the +shader ball. A value of 0 uses all cores, and negative +values reserve cores for other uses - to be used by +the rest of the UI for instance. + +shadingSystem +------------- + +Shading system. + +- OSL : Use Open Shading Language (CPU rendering only). +- SVM : Use Shader Virtual Machine. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/InteractiveCyclesRender.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/InteractiveCyclesRender.md.txt new file mode 100644 index 000000000..884c2df08 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/InteractiveCyclesRender.md.txt @@ -0,0 +1,39 @@ +InteractiveCyclesRender +======================= + +Performs interactive renders using Cycles, updating the render on the fly +whenever the input scene changes. Cycles supports edits to all aspects of +the scene without needing to restart the render. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +in +-- + +The scene to be rendered. + +state +----- + +Turns the rendering on and off, or pauses it. + +out +--- + +A direct pass-through of the input scene. + +resolvedRenderer +---------------- + +The renderer that will be used, accounting for the value of the +`render:defaultRenderer` option if `renderer` is set to "Default". + +messages +-------- + +Messages from the render process. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/index.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/index.md.txt new file mode 100644 index 000000000..b6815a36a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferCycles/index.md.txt @@ -0,0 +1,20 @@ + + +GafferCycles +============ + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + CyclesAttributes.md + CyclesBackground.md + CyclesLight.md + CyclesMeshLight.md + CyclesOptions.md + CyclesRender.md + CyclesShader.md + CyclesShaderBall.md + InteractiveCyclesRender.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/Dispatcher.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/Dispatcher.md.txt new file mode 100644 index 000000000..d7b2ff376 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/Dispatcher.md.txt @@ -0,0 +1,111 @@ +Dispatcher +========== + +Used to schedule the execution of a network +of TaskNodes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +tasks +----- + +The tasks to be executed by this dispatcher. + +framesMode +---------- + +Determines the active frame range to be dispatched as +follows : + + - CurrentFrame dispatches the current frame only, as + specified by the `${frame}` context variable. + - FullRange uses the full frame range as specified by the + `${frameRange:start}` and `${frameRange:end}` + context variables. + - CustomRange uses a user defined range, as specified by + the `frameRange` plug. + +frameRange +---------- + +The frame range to be used when framesMode is "CustomRange". + +jobName +------- + +A descriptive name for the job. + +jobsDirectory +------------- + +A directory to store temporary files used by the dispatcher. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/FrameMask.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/FrameMask.md.txt new file mode 100644 index 000000000..39fa8863f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/FrameMask.md.txt @@ -0,0 +1,87 @@ +FrameMask +========= + +Masks upstream tasks so that they will only be executed for +a subset of the Dispatcher's frame range. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +mask +---- + +The subset of frames that will be executed by upstream tasks. +Any frames not included here will be ignored, regardless +of the dispatcher's frame range. + +> Note : This can only remove frames. To add frames, edit the +> settings on the Dispatcher. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/LocalDispatcher.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/LocalDispatcher.md.txt new file mode 100644 index 000000000..86aa8b61e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/LocalDispatcher.md.txt @@ -0,0 +1,141 @@ +LocalDispatcher +=============== + +Schedules execution of task graphs on the local machine. Tasks +may be dispatched in the background to keep the UI responsive. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +tasks +----- + +The tasks to be executed by this dispatcher. + +framesMode +---------- + +Determines the active frame range to be dispatched as +follows : + + - CurrentFrame dispatches the current frame only, as + specified by the `${frame}` context variable. + - FullRange uses the full frame range as specified by the + `${frameRange:start}` and `${frameRange:end}` + context variables. + - CustomRange uses a user defined range, as specified by + the `frameRange` plug. + +frameRange +---------- + +The frame range to be used when framesMode is "CustomRange". + +jobName +------- + +A descriptive name for the job. + +jobsDirectory +------------- + +A directory to store temporary files used by the dispatcher. + +executeInBackground +------------------- + +Executes the dispatched tasks in separate processes via a +background thread. + +ignoreScriptLoadErrors +---------------------- + +Ignores errors loading the script when executing in the background. +This is not recommended - fix the problem instead. + +environmentCommand +------------------ + +Optional system command to modify the environment when launching +tasks in the background. Background tasks are launched in a separate +process using a `gaffer execute ...` command, and they inherit the +environment from the launching process. When an environment +command is specified, tasks are instead launched using `environmentCommand +gaffer execute ...`, and the environment command is responsible for +modifying the inherited environment and then launching `gaffer execute ...`. + +For example, the following environment command will use the standard `/usr/bin/env` +program to set some custom variables : + +``` +/usr/bin/env FOO=BAR TOTO=TATA +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/PythonCommand.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/PythonCommand.md.txt new file mode 100644 index 000000000..e232bde26 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/PythonCommand.md.txt @@ -0,0 +1,115 @@ +PythonCommand +============= + +Runs python code. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +command +------- + +The command to run. This may reference any of the +variables by name, and also the node itself as `self` +and the current Context as `context`. + +variables +--------- + +An arbitrary set of variables which can be accessed via +the `variables` dictionary within the python command. + +sequence +-------- + +Calls the command once for each sequence, instead of once +per frame. In this mode, an additional variable called `frames` +is available to the command, containing a list of all frame +numbers for which execution should be performed. The Context may +be updated to reference any frame from this list, and accessing +a variable returns the value for the current frame. + +A typical structure for the command might look something like this : + +``` +# Do some one-time initialization +... +# Process all frames +for frame in frames : + context.setFrame( frame ) + # Read variables after setting the frame to get + # the right values for that frame. + v = variables["v"] + ... +# Do some one-time finalization +... +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/SystemCommand.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/SystemCommand.md.txt new file mode 100644 index 000000000..52d55b60a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/SystemCommand.md.txt @@ -0,0 +1,108 @@ +SystemCommand +============= + +Runs system commands via a shell. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +command +------- + +The command to be run. This may reference values +from substitutions with '{substitutionName}' syntax. + +shell +----- + +When enabled, the specified command is interpreted as a shell +command and run in a child shell. This allows semantics such +as pipes to be used. Otherwise the supplied command is invoked +directly as an executable and its args. + +> Note: On MacOS with System Integrity Protection enabled, child +> shells will not inherit `DYLD_LIBRARY_PATH` from the Gaffer +> process. If the executable you are running relies on this, +> disabling _shell_ should allow it to inherit the full Gaffer +> environment. + +substitutions +------------- + +An arbitrary set of name/value pairs which can be +referenced in command with '{substitutionsName}' syntax. + +environmentVariables +-------------------- + +An arbitrary set of name/value pairs which will be set as +environment variables when running the command. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskContextProcessor.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskContextProcessor.md.txt new file mode 100644 index 000000000..de0d9e31f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskContextProcessor.md.txt @@ -0,0 +1,77 @@ +TaskContextProcessor +==================== + +Base class for nodes which modify the Context in which +upstream tasks are dispatched. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskContextVariables.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskContextVariables.md.txt new file mode 100644 index 000000000..4000d4da6 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskContextVariables.md.txt @@ -0,0 +1,82 @@ +TaskContextVariables +==================== + +Adds variables which can be referenced by upstream expressions. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +variables +--------- + +The variables to be added - arbitrary numbers of variables +can be added here. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskList.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskList.md.txt new file mode 100644 index 000000000..fcf8bd105 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskList.md.txt @@ -0,0 +1,82 @@ +TaskList +======== + +Used to collect tasks for dispatching all at once. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +sequence +-------- + +Don't allow any tasks which depend on this list to run until all frames +of the tasks in this list have run. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskNode.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskNode.md.txt new file mode 100644 index 000000000..3f288f48d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskNode.md.txt @@ -0,0 +1,80 @@ +TaskNode +======== + +Base class for nodes which have external side effects - generating +files on disk for instance. Can be connected with other task +nodes to define an order of execution based on dependencies between +nodes. A Dispatcher can then be used to actually perform the execution +of the tasks generated by such a network. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskSwitch.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskSwitch.md.txt new file mode 100644 index 000000000..aa5c79b1e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/TaskSwitch.md.txt @@ -0,0 +1,85 @@ +TaskSwitch +========== + +Switches between upstream tasks, so that only +one is chosen for execution. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +index +----- + +The index of the input task which is executed. A value +of 0 chooses the first input, 1 the second and so on. Values +larger than the number of available inputs wrap back around to +the beginning. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/Wedge.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/Wedge.md.txt new file mode 100644 index 000000000..459e174ab --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/Wedge.md.txt @@ -0,0 +1,192 @@ +Wedge +===== + +Causes upstream nodes to be dispatched multiple times in a range +of Contexts, each time with a different value for a specified variable. +This variable should be referenced in upstream expressions to apply +variation to the tasks being performed. For instance, it could be +used to drive a shader parameter to perform a series of "wedges" to +demonstrate the results of a range of possible parameter values. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +variable +-------- + +The name of the Context Variable defined by the wedge. +This should be used in upstream expressions to apply the +wedged value to specific nodes. + +indexVariable +------------- + +The name of an index Context Variable defined by the wedge. +This is assigned values starting at 0 and incrementing for +each new value - for instance a wedged float range might +assign variable values of `0.25, 0,5, 0.75` or `0.1, 0,2, 0.3` +but the corresponding index variable would take on values of +`0, 1, 2` in both cases. + +The index variable is particularly useful for generating +unique filenames when using a float range to perform +wedged renders. + +mode +---- + +The method used to define the range of values used by +the wedge. It is possible to define numeric or color +ranges, and also to specify explicit lists of numbers or +strings. + +floatMin +-------- + +The smallest value of the wedge range when the +mode is set to "Float Range". Has no effect in +other modes. + +floatMax +-------- + +The largest allowable value of the wedge range +when the mode is set to "Float Range". Has no +effect in other modes. + +floatSteps +---------- + +The number of steps in the value range +defined when in "Float Range" mode. The +steps are distributed evenly between the +min and max values. Has no effect in +other modes. + +intMin +------ + +The smallest value of the wedge range when the +mode is set to "Int Range". Has no effect in +other modes. + +intMax +------ + +The largest allowable value of the wedge range +when the mode is set to "Int Range". Has no +effect in other modes. + +intStep +------- + +The step between successive values when the +mode is set to "Int Range". Values are +generated by adding this step to the minimum +value until the maximum value is exceeded. +Note that if (max - min) is not exactly divisible +by the step then the maximum value may not +be used at all. Has no effect in other modes. + +ramp +---- + +The range of colours used when the mode +is set to "Colour Range". Has no effect in +other modes. + +colorSteps +---------- + +The number of steps in the wedge range +defined when in "Colour Range" mode. The +steps are distributed evenly from the start +to the end of the ramp. Has no effect in +other modes. + +floats +------ + +The list of values used when in "Float List" +mode. Has no effect in other modes. + +ints +---- + +The list of values used when in "Int List" +mode. Has no effect in other modes. + +strings +------- + +The list of values used when in "String List" +mode. Has no effect in other modes. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/index.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/index.md.txt new file mode 100644 index 000000000..12766b713 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferDispatch/index.md.txt @@ -0,0 +1,22 @@ + + +GafferDispatch +============== + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + Dispatcher.md + FrameMask.md + LocalDispatcher.md + PythonCommand.md + SystemCommand.md + TaskContextProcessor.md + TaskContextVariables.md + TaskList.md + TaskNode.md + TaskSwitch.md + Wedge.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Anaglyph.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Anaglyph.md.txt new file mode 100644 index 000000000..dbf6b0140 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Anaglyph.md.txt @@ -0,0 +1,26 @@ +Anaglyph +======== + +Converts a multi-view image with "left" and "right" views into a single view image with the two views combined in different colors, suitable for viewing through red-blue anaglyph glasses. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +in +-- + +The input image + +enabled +------- + +Turns the node on and off. + +out +--- + +The output image generated by this node. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/BleedFill.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/BleedFill.md.txt new file mode 100644 index 000000000..a9b1f4bd1 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/BleedFill.md.txt @@ -0,0 +1,33 @@ +BleedFill +========= + +Fills in areas of low alpha in the image by blurring in contributions from nearby pixels. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +expandDataWindow +---------------- + +Expand the data window to cover the display window. The new data will be filled +with blurred contributions from nearby pixels ( the same as any regions of low +alpha within the original data window ). \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Blur.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Blur.md.txt new file mode 100644 index 000000000..7d14bdbf2 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Blur.md.txt @@ -0,0 +1,45 @@ +Blur +==== + +Applies a gaussian blur to the image. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +radius +------ + +The size of the blur in pixels. This can be varied independently +in the x and y directions, and fractional values are supported for +fine control. + +boundingMode +------------ + +The method used when the filter references pixels outside the +input data window. + +expandDataWindow +---------------- + +Expands the data window to include the external pixels +which the blur will bleed onto. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CDL.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CDL.md.txt new file mode 100644 index 000000000..d844f39d1 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CDL.md.txt @@ -0,0 +1,66 @@ +CDL +=== + +Applies color transformations provided by +OpenColorIO via an OCIO CDLTransform. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +channels +-------- + +The names of the channels to process. Names should be +separated by spaces and can use Gaffer's standard +wildcards. + +processUnpremultiplied +---------------------- + +Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images. + +slope +----- + +Slope for the ASC CDL color correction formula. + +offset +------ + +Offset for the ASC CDL color correction formula. + +power +----- + +Power for the ASC CDL color correction formula. + +saturation +---------- + +Saturation from the v1.2 release of the ASC CDL color correction formula. + +direction +--------- + +The direction to perform the color transformation. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Catalogue.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Catalogue.md.txt new file mode 100644 index 000000000..689e450a3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Catalogue.md.txt @@ -0,0 +1,74 @@ +Catalogue +========= + +Stores a catalogue of images to be browsed. Images can either be loaded +from files or rendered directly into the catalogue. + +To send a live render to a Catalogue, an "ieDisplay" output definition +should be used with the following parameters : + +- driverType : "ClientDisplayDriver" +- displayHost : host name ("localhost" is sufficient for local renders) +- displayPort : `GafferImage.Catalogue.displayDriverServer().portNumber()` +- remoteDisplayType : "GafferImage::GafferDisplayDriver" +- catalogue:name : The name of the catalogue to render to (optional) + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +images +------ + +Specifies the list of images currently +stored in the catalogue. + +Either add images interactively +using the UI, or use the API to construct +Catalogue.Image plugs and parent them +here. + +imageIndex +---------- + +Specifies the index of the currently +selected image. This forms the output +from the catalogue node. + +name +---- + +Used to distinguish between catalogues, so that when +multiple catalogues exist, it is possible to send a +render to just one of them. Renders are matched +to catalogues by comparing the "catalogue:name" parameter +from the renderer output with the value of this plug. + +directory +--------- + +The directory where completed renders +are saved. This allows them to remain +in the catalogue for the next session. + +imageNames +---------- + +Output containing all the names of the images in the Catalogue. +Possible uses include : + +- Looping over all images using a Wedge and a CatalogueSelect. +- Making a ContactSheet using the Collect mode and a CatalogueSelect. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CatalogueSelect.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CatalogueSelect.md.txt new file mode 100644 index 000000000..da5902f7f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CatalogueSelect.md.txt @@ -0,0 +1,31 @@ +CatalogueSelect +=============== + +Finds an image in a directly connected Catalogue by name. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +imageName +--------- + +The name of the image to extract. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Checkerboard.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Checkerboard.md.txt new file mode 100644 index 000000000..a29caa24f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Checkerboard.md.txt @@ -0,0 +1,55 @@ +Checkerboard +============ + +Outputs an image of a checkerboard pattern. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +format +------ + +The resolution and aspect ratio of the image. + +size +---- + +The size of the squares in pixels. This can be varied independently +in the x and y directions. + +colorA +------ + +The colour of half of the squares of the pattern. + +colorB +------ + +The colour of the other half of the squares of the pattern. + +layer +----- + +The layer to generate. The output channels will +be named ( layer.R, layer.G, layer.B and layer.A ). + +transform +--------- + +A transformation applied to the entire checkerboard pattern. +The translate and pivot values are specified in pixels, +and the rotate value is specified in degrees. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Clamp.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Clamp.md.txt new file mode 100644 index 000000000..b4caa1782 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Clamp.md.txt @@ -0,0 +1,93 @@ +Clamp +===== + +Clamps channel values so that they fit within a specified +range. Clamping is performed for each channel individually, +and out-of-range colours may be highlighted by setting them +to a value different to the clamp threshold itself. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +channels +-------- + +The names of the channels to operate on. Names should be +separated by spaces and can use Gaffer's standard +wildcards. + +processUnpremultiplied +---------------------- + +Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images. + +min +--- + +The minimum value - values below this will +be clamped if minEnabled is on. + +max +--- + +The maximum value - values above this will +be clamped if maxEnabled is on. + +minClampTo +---------- + +By default, values below the minimum value are +clamped to the minimum value itself. If minClampToEnabled +is on, they are instead set to this value. This can +be useful for highlighting out-of-range values. + +maxClampTo +---------- + +By default, values above the maximum value are +clamped to the maximum value itself. If maxClampToEnabled +is on, they are instead set to this value. This can +be useful for highlighting out-of-range values. + +minEnabled +---------- + +Turns on clamping for values below the min value. + +maxEnabled +---------- + +Turns on clamping for values above the max value. + +minClampToEnabled +----------------- + +Turns on the effect of minClampTo, allowing out +of range values to be highlighted. + +maxClampToEnabled +----------------- + +Turns on the effect of maxClampTo, allowing out +of range values to be highlighted. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CollectImages.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CollectImages.md.txt new file mode 100644 index 000000000..221ef897c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CollectImages.md.txt @@ -0,0 +1,54 @@ +CollectImages +============= + +Forms a series of image layers by repeatedly evaluating the input with different Contexts. +Useful for networks that need to dynamically build an unknown number of image layers. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The image which will be evaluated for each layer. + +rootLayers +---------- + +A list of values for the `layerVariable`, defining the layers to be collected. + +layerVariable +------------- + +This Context Variable will be set with the current layer name when evaluating the in plug. +This allows you to vary the upstream processing for each new layer. + +addLayerPrefix +-------------- + +When on, the output channel names are automatically prefixed with +the name of the layer being collected. Should be turned off when +the input channel names already contain the layer name. + +mergeMetadata +------------- + +Controls how the output metadata is generated from the collected +images. By default, the metadata from the first image alone +is passed through. When `mergeMetadata` is on, the metadata from +all collected images is merged, with the last image winning +in the case of multiple image specifying the same piece of metadata. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ColorSpace.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ColorSpace.md.txt new file mode 100644 index 000000000..b0ae6a996 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ColorSpace.md.txt @@ -0,0 +1,59 @@ +ColorSpace +========== + +Applies colour transformations provided by +OpenColorIO. Configs are loaded from the +configuration specified by the OCIO environment +variable. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +channels +-------- + +The names of the channels to process. Names should be +separated by spaces and can use Gaffer's standard +wildcards. + +processUnpremultiplied +---------------------- + +Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images. + +context +------- + +> Warning : Deprecated - please use the `OpenColorIOContext` +> node instead. + +inputSpace +---------- + +The colour space of the input image. + +outputSpace +----------- + +The colour space of the output image. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Constant.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Constant.md.txt new file mode 100644 index 000000000..ce1cbb5a1 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Constant.md.txt @@ -0,0 +1,37 @@ +Constant +======== + +Outputs an image of a constant flat colour. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +format +------ + +The resolution and aspect ratio of the image. + +color +----- + +The colour of the image. + +layer +----- + +The layer to generate. The output channels will +be named ( layer.R, layer.G, layer.B and layer.A ). \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ContactSheet.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ContactSheet.md.txt new file mode 100644 index 000000000..cf01352f4 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ContactSheet.md.txt @@ -0,0 +1,255 @@ +ContactSheet +============ + +Assembles multiple input images into a tiled grid, with customisable layout, labels and borders. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +in +-- + +The images to be included in the contact sheet. + +out +--- + +The output image generated by this node. + +format +------ + +The format of the output image. + +mode +---- + +Defines how contact sheet tiles are generated from the source images : + +- Standard : Each source generates a tile in the contact sheet. +- Sequence : Each frame in `frames` generates a tile in the contact sheet. Repeated for each source in order. +- Layers : Each layer generates a tile in the contact sheet. Repeated for each source in order. +- Views : Each view generates a tile in the contact sheet. Repeated for each source in order. +- Collect : Each context defined by `tileNames` and `tileNameVariable` generates a tile in the contact sheet. Repeated for each source in order. + +frames +------ + +The frames to use when in `Sequence` mode. Example syntax : + +- `1-100x10` +- `1-10, 15, 20, 21` + +divisionsMode +------------- + +The method used to define the number of grid tiles in the contact sheet : + +- Automatic : Defines a grid with enough tiles to show every source image, while filling as much of the output format as possible. Assumes that all source images have the same aspect ratio as the first one. +- Custom : Defines a fixed grid via the `divisions` plug. If there are more sources images than tiles, they will be omitted. + +tileNames +--------- + +The values to use for the `tileNameVariable` when in `Collect` mode. Each value defines a tile in the contact sheet. Use the tile variables in upstream nodes to vary the source images. + +tileNameVariable +---------------- + +Name of the context variable that takes values from `tileNames` in Collect mode. May be used upstream to vary the source images per tile. + +tileIndexVariable +----------------- + +Name of the context variable that contains the index of the contact sheet tile when in Collect mode. May be used upstream to define the vary the content of the source images. + +divisions +--------- + +The number of divisions in the grid when in `Custom` mode. + +verticalAlignment +----------------- + +Determines how tiles are aligned vertically when they do not consume all the space available in the layout : + +- Top : The empty space is placed at the bottom of the layout, so that the tiles are aligned to the top, and `spacing.y` is maintained. +- Bottom : The empty space is placed at the top of the layout, so that the tiles are aligned to the bottom, and `spacing.y` is maintained. +- Center : The empty space is distributed evenly between the top and bottom of the layout, so that the tiles are aligned to the center, and `spacing.y` is maintained. +- Justified : The extra space is distributed evenly into the gaps between tiles, in addiition to `spacing.y`. This aligns the top tile to the top of the layout and the bottom tile to the bottom of the layout. + +> Note : When there is no empty space in the layout, the choice of alignment has no effect. + +outDivisions +------------ + +The number of divisions calculated by the `Automatic` mode. + +spacing +------- + +The size of the gaps between tiles in the grid, measured in pixels. + +horizontalAlignment +------------------- + +Determines how tiles are aligned horizontally when they do not consume all the space available in the layout : + +- Left : The empty space is placed at the right of the layout, so that the tiles are aligned to the left, and `spacing.x` is maintained. +- Right : The empty space is placed at the left of the layout, so that the tiles are aligned to the right, and `spacing.x` is maintained. +- Center : The empty space is distributed evenly between the left and right of the layout, so that the tiles are aligned to the center, and `spacing.x` is maintained. +- Justified : The extra space is distributed evenly into the gaps between tiles, in addiition to `spacing.x`. This aligns the left tile to the left of the layout and the right tile to the right of the layout. + +> Note : When there is no empty space in the layout, the choice of alignment has no effect. + +labelsEnabled +------------- + +Enables labels for each tile. + +labelColor +---------- + +The colour of the label text. + +labelShadow +----------- + +Enables the rendering of a label drop shadow which can be coloured, offset and +blurred. + +labelShadowColor +---------------- + +The colour of the label shadow. + +labelShadowOffset +----------------- + +The offset of the shadow, measured relative to the label size. + +labelShadowBlur +--------------- + +A blur applied to the shadow, measured relative to the label size. + +marginTop +--------- + +The size of the space at the top of the layout, measured in pixels. + +marginBottom +------------ + +The size of the space at the bottom of the layout, measured in pixels. + +marginLeft +---------- + +The size of the space on the left of the layout, measured in pixels. + +marginRight +----------- + +The size of the space on the right of the layout, measured in pixels. + +labelHorizontalAlignment +------------------------ + +Aligns the label horizontally within the tile. + +labelVerticalAlignment +---------------------- + +Aligns the label vertically within the tile, or places the label outside the tile in modes `Above` and `Below`. When placed outside the tile, `spacing.y` must provide enough space for the label. + +labelScale +---------- + +An additional scaling applied to the label. The label is already automatically scaled to remain in proportion with either the tile size or the tile spacing (when aligned above or below). + +labelFormat +----------- + +Defines the content of the label, using the following substitutions : + +- `{label}` : A label identifiying the source image, depending on the mode used. For instance, in Sequence mode the label is the frame number, and in Layers mode the label is the layer name. +- `{input}` : The index of the source input. +- `{metadataName}` : The name of any image metadata. + +bordersEnabled +-------------- + +Enables a border for each image tile. + +borderWidth +----------- + +The width of the border, measured in pixels. + +borderColorMode +--------------- + +Determines how a color is chosen for each border : + +- `Constant` : Uses the same fixed colour for every tile. +- `Error Check` : Uses an error colour to highlight images which fail certain quality checks. +- `Metadata` : Uses image metadata to define the color. + +borderColor +----------- + +The border color for `Constant` mode, and for tiles which pass all checks in `Error Check` mode. + +borderColorMetadata +------------------- + +The name of the metadata to provide the border color in `Metadata` mode. Supported metadata types : + +- Color4f +- Color3f +- Float + +borderErrorColor +---------------- + +The border color for tiles that fail any checks in `Error Check` mode. + +borderCheckNaN +-------------- + +Applies the error color to images which contain any pixels with a `NaN` value. + +borderCheckFileValid +-------------------- + +Highlights images where the ImageReader has applied `Black` or `Hold` mode for missing frames. Works by checking for `fileValid` metadata with a value of `False`. + +borderMin +--------- + +The minimum value allowed for pixels when using `borderCheckMin`. + +borderCheckMin +-------------- + +Applies the error color to images which contain any pixels with values below `borderMin`. + +borderCheckMax +-------------- + +Applies the error color to images which contain any pixels with values above `borderMax`. + +borderMax +--------- + +The maximum value allowed for pixels when using `borderCheckMin`. + +filter +------ + +The pixel filter used when resizing the input images. Each filter provides different tradeoffs between sharpness and the danger of aliasing or ringing. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ContactSheetCore.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ContactSheetCore.md.txt new file mode 100644 index 000000000..2b7a422bb --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ContactSheetCore.md.txt @@ -0,0 +1,54 @@ +ContactSheetCore +================ + +Collects multiple input images, transforming them into tiles within +the output image. Provides the core functionality of the ContactSheet +node, and may be reused for making similar nodes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +format +------ + +The resolution and aspect ratio of the output image. + +tiles +----- + +The bounding boxes of each tile. + +> Note : Each input image will be scaled to fit entirely within its tile +> while preserving aspect ratio. + +tileVariable +------------ + +Context variable used to pass the index of the current tile to the upstream +node network. This should be used to provide a different input image per tile. + +filter +------ + +The pixel filter used when resizing the input images. Each +filter provides different tradeoffs between sharpness and +the danger of aliasing or ringing. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CopyChannels.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CopyChannels.md.txt new file mode 100644 index 000000000..17de3874e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CopyChannels.md.txt @@ -0,0 +1,34 @@ +CopyChannels +============ + +Copies channels from the secondary input images +onto the primary input image and outputs the result. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input images + +channels +-------- + +The names of the channels to copy. Names should be +separated by spaces and can use Gaffer's standard +wildcards. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CopyImageMetadata.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CopyImageMetadata.md.txt new file mode 100644 index 000000000..8161f7eb0 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CopyImageMetadata.md.txt @@ -0,0 +1,44 @@ +CopyImageMetadata +================= + +Copies metadata entries from the second image to the first image +based on name. If those entries already exist in the incoming +image metadata, their values will be overwritten. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +copyFrom +-------- + +The image to copy the metadata entries from. + +names +----- + +The names of metadata entries to be copied. This is a space separated +list of entry names, which accepts Gaffer's standard string wildcards. + +invertNames +----------- + +When on, matching names are ignored, and non-matching names are copied instead. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CopyViews.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CopyViews.md.txt new file mode 100644 index 000000000..aaaa70ded --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CopyViews.md.txt @@ -0,0 +1,34 @@ +CopyViews +========= + +Copies views from the secondary input images onto the primary input image. +Only works with multi-view images. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input images + +views +----- + +The names of the views to copy. Names should be +separated by spaces and can use Gaffer's standard +wildcards. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CreateViews.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CreateViews.md.txt new file mode 100644 index 000000000..e29c46d89 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/CreateViews.md.txt @@ -0,0 +1,26 @@ +CreateViews +=========== + +Creates a multi-view image by combining multiple input images. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +views +----- + +Views to add. In the case of multiple views with the same name, the last one will override. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Crop.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Crop.md.txt new file mode 100644 index 000000000..57d9e995f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Crop.md.txt @@ -0,0 +1,79 @@ +Crop +==== + +Modifies the Data and/or Display Window, in a way that is +either user-defined, or can be driven by the existing Data +or Display Window. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +areaSource +---------- + +Where to source the actual area to use. If this is +set to DataWindow, it will use the input's Data Window, +if it is set to DisplayWindow, it will use the input's +Display Window, and if it is set to Area, it will use +the Area plug. + +area +---- + +The custom area to set the Data/Display Window to. +This plug is only used if 'Area Source' is set to +Area. + +format +------ + +The Format to use as the area to set the Data/Display +Window to. This plug is only used if 'Area Source' is +set to Format. + +formatCenter +------------ + +Whether to center the output image (based on the +existing display window) inside the new display +window format. This plug is only used if +'Area Source' is set to Format, and 'Affect Display +Window' it checked. + +affectDataWindow +---------------- + +Whether to intersect the defined area with the input Data +Window. It will never pad black onto the Data Window, it +will only ever reduce the existing Data Window. + +affectDisplayWindow +------------------- + +Whether to assign a new Display Window based on the defined +area. + +resetOrigin +----------- + +Shifts the cropped image area back to the origin, so that +the bottom left of the display window is at ( 0, 0 ). \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepHoldout.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepHoldout.md.txt new file mode 100644 index 000000000..1b471ed10 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepHoldout.md.txt @@ -0,0 +1,31 @@ +DeepHoldout +=========== + +Flattens the part of the input which is not hidden by the holdout input. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +holdout +------- + +Hides the parts of the main input which are behind this image, based on its Z, ZBack and A channels. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepMerge.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepMerge.md.txt new file mode 100644 index 000000000..bf6666ee6 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepMerge.md.txt @@ -0,0 +1,27 @@ +DeepMerge +========= + +Merges the samples from two or more images into a single deep image. +The source images may be deep or flat. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input images \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepRecolor.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepRecolor.md.txt new file mode 100644 index 000000000..d9683861d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepRecolor.md.txt @@ -0,0 +1,39 @@ +DeepRecolor +=========== + +Recolors deep data so that the flattened image will match the color of a provided flat image. +Keeps the same depth data, and mostly the same alpha ( with a small adjustment if you select +useColorSourceAlpha ). + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +colorSource +----------- + +This image ( which must be flat ) drives the color of the output image. + +useColorSourceAlpha +------------------- + +If selected, adjusts the alpha of each deep sample so that the composited result will match +the alpha of colorSource. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepSampleCounts.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepSampleCounts.md.txt new file mode 100644 index 000000000..514dac4c3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepSampleCounts.md.txt @@ -0,0 +1,26 @@ +DeepSampleCounts +================ + +Outputs an image showing the deep sample counts for each pixel. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepSampler.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepSampler.md.txt new file mode 100644 index 000000000..b7b84aa28 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepSampler.md.txt @@ -0,0 +1,27 @@ +DeepSampler +=========== + +Samples the full channel data of an image at a specified pixel location, +including all deep samples. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +image +----- + +The image to be sampled. + +pixel +----- + +The integer coordinates of the pixel to sample. + +pixelData +--------- + +The sampled data, as a CompoundData with one FloatVectorData per channel. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepSlice.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepSlice.md.txt new file mode 100644 index 000000000..870aac806 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepSlice.md.txt @@ -0,0 +1,48 @@ +DeepSlice +========= + +Takes a slice out of an image with depth defined by Z ( and optionally ZBack ) channels by +discarding everything outside of a clipping range. The range is half open, including point samples +exactly at the near clip, but excluding point samples exactly at the far clip. This means that if +you split an image into a front and back with two DeepSlices, they will composite back together to +match the original. Optionally also flattens the image. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +nearClip +-------- + +Removes everything with Z less than the near clip depth. + +farClip +------- + +Removes everything with Z greater than or equal to the far clip depth. + +flatten +------- + +Outputs a flat image, instead of output a deep image with any samples within the range. +Flattening as part of DeepSlice is up to 2X faster than flattening afterwards, and is +convenient if you're using a DeepSlice to preview the contents of a deep image by +scrubbing through depth. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepState.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepState.md.txt new file mode 100644 index 000000000..0e1c6a759 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepState.md.txt @@ -0,0 +1,60 @@ +DeepState +========= + +Modifies the samples of a deep image so that the composited result +stays the same, but there are additional desirable properties, +such as being sorted, non-overlapping, or being combined into a +single sample. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image data. + +deepState +--------- + +The desired state. +"Sorted" merely orders the samples. +"Tidy" performs sorting, splitting, and merging, to produce non-overlapping +samples, and optionally prunes useless samples. +"Flat" composites samples into a single sample per pixel. + +pruneTransparent +---------------- + +When tidying, omits fully transparent samples. This is usually just an optimization, +but it could affect the composited result if you start with purely additive samples that have +zero alpha, but still add to the color. + +pruneOccluded +------------- + +When tidying, omits samples which are blocked by samples in front of them ( occluded samples +have no effect on the composited result. + +occludedThreshold +----------------- + +How blocked does a sample have to be before it is omitted. By default, only 100% occluded samples +are omitted, but if you select 0.99, then samples with only 1% visibility would also be omitted. +The composited result is preserved by combining the values of any omitted samples with the last +sample generated. Using a threshold lower than 0.99 before doing a DeepMerge or DeepHoldout +could introduce large errors, however. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepTidy.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepTidy.md.txt new file mode 100644 index 000000000..b93bb4f1b --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepTidy.md.txt @@ -0,0 +1,50 @@ +DeepTidy +======== + +Ensures deep samples are sorted and non-overlapping, and optionally +discards samples that are completely transparent, or covered by other +samples. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +pruneTransparent +---------------- + +When tidying, omits fully transparent samples. This is usually just an optimization, +but it could affect the composited result if you start with purely additive samples that have +zero alpha, but still add to the color. + +pruneOccluded +------------- + +When tidying, omits samples which are blocked by samples in front of them ( occluded samples +have no effect on the composited result. + +occludedThreshold +----------------- + +How blocked does a sample have to be before it is omitted. By default, only 100% occluded samples +are omitted, but if you select 0.99, then samples with only 1% visibility would also be omitted. +The composited result is preserved by combining the values of any omitted samples with the last +sample generated. Using a threshold lower than 0.99 before doing a DeepMerge or DeepHoldout +could introduce large errors, however. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepToFlat.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepToFlat.md.txt new file mode 100644 index 000000000..2afa445eb --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeepToFlat.md.txt @@ -0,0 +1,35 @@ +DeepToFlat +========== + +Converts a deep image into a "flat" image, by compositing all samples in +each pixel, resulting in an image with 1 sample for every pixel. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image data. + +depthMode +--------- + +Controls the contents of the output depth channels. "Depth Range" outputs the +minimum and maximum depth values of any sample in the pixel as Z and ZBack. +"Filtered Depth" outputs just a Z channel with the average depth for the pixel, +based on the alpha values of the samples. "None" outputs no Z or ZBack channel. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeleteChannels.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeleteChannels.md.txt new file mode 100644 index 000000000..43c26c5ae --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeleteChannels.md.txt @@ -0,0 +1,42 @@ +DeleteChannels +============== + +Deletes channels from an image. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +mode +---- + +Defines how the channels listed in the channels +plug are treated. Delete mode deletes the listed +channels. Keep mode keeps the listed channels, +deleting all others. + +channels +-------- + +The names of the channels to be deleted (or kept +if the mode is set to Keep). Names should be separated +by spaces and may contain any of Gaffer's standard +wildcards. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeleteImageMetadata.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeleteImageMetadata.md.txt new file mode 100644 index 000000000..75e08dc28 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeleteImageMetadata.md.txt @@ -0,0 +1,37 @@ +DeleteImageMetadata +=================== + +Deletes metadata entries from an image based on name. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +names +----- + +The names of metadata entries to be removed. This is a space separated +list of entry names, which accepts Gaffer's standard string wildcards. + +invertNames +----------- + +When on, matching names are kept, and non-matching names are removed. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeleteViews.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeleteViews.md.txt new file mode 100644 index 000000000..e07d8d203 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DeleteViews.md.txt @@ -0,0 +1,46 @@ +DeleteViews +=========== + +Deletes views from an image. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +mode +---- + +Defines how the views listed in the views +plug are treated. Delete mode deletes the listed +views. Keep mode keeps the listed views, +deleting all others. + +views +----- + +The names of the views to be deleted (or kept +if the mode is set to Keep). Names should be separated +by spaces and may contain any of Gaffer's standard +wildcards. + +Note that if you delete all views from an image, you will +be unable to evaluate attributes of the image, because it +will have no data left. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Dilate.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Dilate.md.txt new file mode 100644 index 000000000..6d398504d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Dilate.md.txt @@ -0,0 +1,53 @@ +Dilate +====== + +Applies a dilate filter to the image. This can be useful for +expanding mask. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +radius +------ + +The size of the filter in pixels. This can be varied independently +in the x and y directions. + +boundingMode +------------ + +The method used when the filter references pixels outside the +input data window. + +expandDataWindow +---------------- + +Expands the data window to include the external pixels +which the filter radius covers. + +masterChannel +------------- + +If specified, this channel will be used to compute the pixel index to select for all +channels. You would probably want to use this with a channel that represents the overall +luminance of the image. It will produce a rank filter which is lower quality, but preserves +additivity between channels, and is a bit faster. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Display.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Display.md.txt new file mode 100644 index 000000000..2a4c22952 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Display.md.txt @@ -0,0 +1,28 @@ +Display +======= + +Interactively displays images as they are rendered. + +This node runs a server on a background thread, +allowing it to receive images from both local and +remote render processes. To set up a render to +output to the Display node, use an Outputs node with +an Interactive output configured to render to the +same port as is specified on the Display node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DisplayTransform.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DisplayTransform.md.txt new file mode 100644 index 000000000..fdce145d3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/DisplayTransform.md.txt @@ -0,0 +1,63 @@ +DisplayTransform +================ + +Applies an OpenColorIO display transform to an image. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +channels +-------- + +The names of the channels to process. Names should be +separated by spaces and can use Gaffer's standard +wildcards. + +processUnpremultiplied +---------------------- + +Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images. + +context +------- + +> Warning : Deprecated - please use the `OpenColorIOContext` +> node instead. + +inputColorSpace +--------------- + +The colour space of the input image. + +display +------- + +The name of the display to use. Defaults to the default display as +defined by the current OpenColorIO config. + +view +---- + +The name of the view to use. Defaults to the default view for the +display, as defined by the current OpenColorIO config. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Empty.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Empty.md.txt new file mode 100644 index 000000000..568898f1a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Empty.md.txt @@ -0,0 +1,26 @@ +Empty +===== + +Outputs an empty deep image with 0 samples per pixel. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +format +------ + +The resolution and aspect ratio of the image. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Erode.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Erode.md.txt new file mode 100644 index 000000000..c700598a5 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Erode.md.txt @@ -0,0 +1,53 @@ +Erode +===== + +Applies an erode filter to the image. This can be useful for +shrinking mask. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +radius +------ + +The size of the filter in pixels. This can be varied independently +in the x and y directions. + +boundingMode +------------ + +The method used when the filter references pixels outside the +input data window. + +expandDataWindow +---------------- + +Expands the data window to include the external pixels +which the filter radius covers. + +masterChannel +------------- + +If specified, this channel will be used to compute the pixel index to select for all +channels. You would probably want to use this with a channel that represents the overall +luminance of the image. It will produce a rank filter which is lower quality, but preserves +additivity between channels, and is a bit faster. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FlatImageProcessor.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FlatImageProcessor.md.txt new file mode 100644 index 000000000..03e78165e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FlatImageProcessor.md.txt @@ -0,0 +1,27 @@ +FlatImageProcessor +================== + +Base class for nodes which process only flat image data +and so will error on non-flat data. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FlatImageSource.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FlatImageSource.md.txt new file mode 100644 index 000000000..67acf3635 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FlatImageSource.md.txt @@ -0,0 +1,21 @@ +FlatImageSource +=============== + +Base class for nodes which create a flat image. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FlatToDeep.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FlatToDeep.md.txt new file mode 100644 index 000000000..a5c099c7c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FlatToDeep.md.txt @@ -0,0 +1,60 @@ +FlatToDeep +========== + +Sets the deep flag on a flat image, and makes sure that it has a Z channel ( and optionally a ZBack channel ) +so that it can be used in deep compositing. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +zMode +----- + +Deep images must have a Z channel - it can be set either as a fixed depth, or using a channel. + +depth +----- + +A constant depth value to place the whole image at. + +zChannel +-------- + +Uses this channel as a Z channel, defining the depth each pixel is at. + +zBackMode +--------- + +Deep images may optionally have a ZBack channel - for transparent samples, this specifies +the depth range over which the opacity gradually increases from 0 to the alpha value. + +thickness +--------- + +A constant thickness value for the whole image. Transparent images will be +interpreted as fog where the density increases over this range. + +zBackChannel +------------ + +Uses this channel as a ZBack channel, defining the end of the depth range for each +pixel. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FormatQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FormatQuery.md.txt new file mode 100644 index 000000000..0ba89f98e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/FormatQuery.md.txt @@ -0,0 +1,37 @@ +FormatQuery +=========== + +Extracts the format of an input image, for driving the format input of another image node, or +driving expressions. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +image +----- + +The image to query. + +view +---- + +The view to be queried. + +format +------ + +The format of the image ( as a FormatPlug, compatible with inputs on Constant or Resize ). + +center +------ + +The middle of the displayWindow. Stored as V2f, since it could be a half-pixel. + +size +---- + +The size of the displayWindow as V2i. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Grade.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Grade.md.txt new file mode 100644 index 000000000..1d82d4e2c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Grade.md.txt @@ -0,0 +1,102 @@ +Grade +===== + +Performs a simple per-channel colour grading operation +as follows : + +A = multiply * (gain - lift) / (whitePoint - blackPoint) +B = offset + lift - A * blackPoint +result = pow( A * input + B, 1/gamma ) + +See the descriptions for individual plug for a slightly +more practical explanation of the formula. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +channels +-------- + +The names of the channels to operate on. Names should be +separated by spaces and can use Gaffer's standard +wildcards. + +processUnpremultiplied +---------------------- + +Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images. + +blackPoint +---------- + +The input colour which is considered to be +"black". This colour is remapped to the +lift value in the output image. + +whitePoint +---------- + +The input colour which is considered to be +"white". This colour is remapped to the +gain value in the output image. + +lift +---- + +The colour that input pixels at the blackPoint +become in the output image. This can be thought +of as lifting the darker values of the image. + +gain +---- + +The colour that input pixels at the whitePoint +become in the output image. This can be thought +of as defining the lighter values of the image. + +multiply +-------- + +An additional multiplier on the output values. + +offset +------ + +An additional offset added to the output values. + +gamma +----- + +A gamma correction applied after all the remapping +defined above. + +blackClamp +---------- + +Clamps input values so they don't go below 0. + +whiteClamp +---------- + +Clamps output values so they don't go above 1. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageMetadata.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageMetadata.md.txt new file mode 100644 index 000000000..5bf512dad --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageMetadata.md.txt @@ -0,0 +1,47 @@ +ImageMetadata +============= + +Adds arbitrary metadata entires to an image. If those entries +already exist in the incoming image metadata, their values +will be overwritten. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +metadata +-------- + +The metadata to be applied - arbitrary numbers of user defined metadata may be added +as children of this plug via the user interface, or using the CompoundDataPlug python API + +extraMetadata +------------- + +Additional metadata to be added, specified within a single +`IECore.CompoundObject`. This is convenient when using an expression +to define the metadata and when the number of items might be +dynamic. It can also be used to create options whose type cannot be +handled by the `metadata` CompoundDataPlug. + +If the same option is defined by both the `metadata` and the +`extraMetadata` plugs, then the value from the `extraMetadata` is +taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageNode.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageNode.md.txt new file mode 100644 index 000000000..e6f43cc8a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageNode.md.txt @@ -0,0 +1,21 @@ +ImageNode +========= + +Base class for nodes which generate images. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageProcessor.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageProcessor.md.txt new file mode 100644 index 000000000..1ab272a35 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageProcessor.md.txt @@ -0,0 +1,27 @@ +ImageProcessor +============== + +Base class for nodes which process an input image to +to generate an output image. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageReader.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageReader.md.txt new file mode 100644 index 000000000..e79974d2f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageReader.md.txt @@ -0,0 +1,130 @@ +ImageReader +=========== + +Reads image files from disk using OpenImageIO. All file +types supported by OpenImageIO are supported by the ImageReader +and all channel data will be converted to linear using OpenColorIO. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +fileName +-------- + +The name of the file to be read. File sequences with +arbitrary padding may be specified using the '#' character +as a placeholder for the frame numbers. If this file sequence +format is used, then missingFrameMode will be activated. + +**Supported file extensions** : exr, sxr, mxr, tif, tiff, tx, env, sm, vsm, jpg, jpe, jpeg, jif, jfif, jfi, bmp, dib, cin, dds, dpx, fits, hdr, rgbe, ico, iff, z, jp2, j2k, j2c, null, nul, png, ppm, pgm, pbm, pnm, pfm, psd, pdd, psb, bay, bmq, cr2, crw, cs1, dc2, dcr, dng, erf, fff, k25, kdc, mdc, mos, mrw, nef, orf, pef, pxn, raf, raw, rdc, sr2, srf, x3f, arw, 3fr, cine, ia, kc2, mef, nrw, qtk, rw2, sti, rwl, srw, drf, dsc, ptx, cap, iiq, rwz, cr3, rla, sgi, rgb, rgba, bw, int, inta, pic, tga, tpic, term, webp, zfile, osl, oso, oslgroup, oslbody + +refreshCount +------------ + +May be incremented to force a reload if the file has +changed on disk - otherwise old contents may still +be loaded via Gaffer's cache. + +missingFrameMode +---------------- + +Determines how missing frames are handled when the input +fileName is a file sequence (uses the '#' character). +The default behaviour is to throw an exception, but it +can also hold the last valid frame in the sequence, or +return a black image which matches the data window and +display window of the previous valid frame in the sequence. + +start +----- + +Masks frames which preceed the specified start frame. +The default is to treat them based on the MissingFrameMode, +but they can also be clamped to the start frame, or +return a black image which matches the data window +and display window of the start frame. + +start.mode +---------- + +The mode used detemine the mask behaviour for the start frame. + +start.frame +----------- + +The start frame of the masked range. + +end +--- + +Masks frames which follow the specified end frame. +The default is to treat them based on the MissingFrameMode, +but they can also be clamped to the end frame, or +return a black image which matches the data window +and display window of the end frame. + +end.mode +-------- + +The mode used detemine the mask behaviour for the end frame. + +end.frame +--------- + +The end frame of the masked range. + +colorSpace +---------- + +The colour space of the input image, used to convert the input to +the working space. When set to `Automatic`, the colour space is +determined automatically using the function registered with +`ImageReader::setDefaultColorSpaceFunction()`. + +channelInterpretation +--------------------- + +Controls how we create channels based on the contents of the file. Unfortunately, +some software, such as Nuke, does not produce EXR files which follow the EXR specification, +so the mode "Default" uses heuristics to guess what the channels mean. + +"Default" mode should support most files coming from either Nuke or standards compliant software. +It can't handle every possibility in the spec though - in corner cases, it could get confused and +think something comes from Nuke, and incorrectly prepend the part name to the channel name. + +If you know your EXR is compliant, you can "EXR Specification" mode which disables the heuristics, +and just uses the channel names directly from the file. + +"Legacy" mode matches Gaffer <= 0.61 behaviour for compatibility reasons - it should not be used. + +availableFrames +--------------- + +A list of the available frames for the current file sequence. +Empty when the input `fileName` is not a file sequence. + +fileValid +--------- + +Whether or not the files exists and can be read into memory, +value calculated per frame if an image sequence. Behaviour changes +if a frame mask of ClampToFrame or Black is selected, if outside +the frame mask fileValid will be set to True if the nearest frame is valid. + +> Note : When the file is not valid, the image will also contain a `fileValid` +> metadata value of `False`. This can be easier to access from downstream +> nodes than the `fileValid` plug itself. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageSampler.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageSampler.md.txt new file mode 100644 index 000000000..64402b80b --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageSampler.md.txt @@ -0,0 +1,48 @@ +ImageSampler +============ + +Samples image colour at a specified pixel location. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +image +----- + +The image to be sampled. + +view +---- + +The view to be sampled. + +channels +-------- + +The names of the four channels to be sampled. + +pixel +----- + +The coordinates of the pixel to sample. These can have +fractional values and bilinear interpolation will be used +to interpolate between adjacent pixels. + +Note though that the coordinates at pixel centres are not integers. +For example, the centre of the bottom left pixel of an image is +at 0.5, 0.5. + +interpolate +----------- + +Turn on to blend with adjacent pixels when sampling away from the center of the pixel at 0.5, 0.5. +If off, you always sample exactly one pixel. + +color +----- + +The sampled colour. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageStats.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageStats.md.txt new file mode 100644 index 000000000..e237d9aaa --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageStats.md.txt @@ -0,0 +1,58 @@ +ImageStats +========== + +Calculates minimum, maximum and average colours for a region of +an image. These outputs can then be used to drive other plugs +within the node graph. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +in +-- + +The input image to be analysed. + +view +---- + +The view to be analysed. + +channels +-------- + +The names of the four channels to be analysed. + +areaSource +---------- + +Where to source the area to be analysed. If this is +set to DataWindow, it will use the input's Data Window, +if it is set to DisplayWindow, it will use the input's +Display Window, and if it is set to Area, it will use +the Area plug. + +area +---- + +The area of the image to be analysed. +This plug is only used if 'Area Source' is set to Area. + +average +------- + +The per-channel mean values computed from the input image region. + +min +--- + +The per-channel minimum values computed from the input image region. + +max +--- + +The per-channel maximum values computed from the input image region. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageTransform.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageTransform.md.txt new file mode 100644 index 000000000..a6d90e41b --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageTransform.md.txt @@ -0,0 +1,59 @@ +ImageTransform +============== + +Scales, rotates and translates an image within its display window. +Note that although the format is not changed, the data window is +expanded to include the portions of the image which have been +transformed outside of the display window, and these out-of-frame +pixels can still be used by downstream nodes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +transform +--------- + +The transformation to be applied to the image. The translate +and pivot values are specified in pixels, and the rotate +value is specified in degrees. + +filter +------ + +The pixel filter used when transforming the image. Each +filter provides different tradeoffs between sharpness and +the danger of aliasing or ringing. + +invert +------ + +Apply the inverse transformation to the image. + +concatenate +----------- + +Combines the processing for a series of ImageTransforms so that +transformation and filtering is only applied once. This gives better +image quality and performance. + +> Note : When concatenation is in effect, the filter settings on upstream +> ImageTransforms are ignored. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageWriter.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageWriter.md.txt new file mode 100644 index 000000000..4a8a6ee3f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/ImageWriter.md.txt @@ -0,0 +1,374 @@ +ImageWriter +=========== + +Writes image files to disk using OpenImageIO. All file +types supported by OpenImageIO are supported by the +ImageWriter. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +in +-- + +The image to be written to disk. + +fileName +-------- + +The name of the file to be written. File sequences with +arbitrary padding may be specified using the '#' character +as a placeholder for the frame numbers. + +**Supported file extensions** : exr, sxr, mxr, tif, tiff, tx, env, sm, vsm, jpg, jpe, jpeg, jif, jfif, jfi, bmp, dib, cin, dds, dpx, fits, hdr, rgbe, ico, iff, z, jp2, j2k, j2c, null, nul, png, ppm, pgm, pbm, pnm, pfm, psd, pdd, psb, bay, bmq, cr2, crw, cs1, dc2, dcr, dng, erf, fff, k25, kdc, mdc, mos, mrw, nef, orf, pef, pxn, raf, raw, rdc, sr2, srf, x3f, arw, 3fr, cine, ia, kc2, mef, nrw, qtk, rw2, sti, rwl, srw, drf, dsc, ptx, cap, iiq, rwz, cr3, rla, sgi, rgb, rgba, bw, int, inta, pic, tga, tpic, term, webp, zfile, osl, oso, oslgroup, oslbody + +channels +-------- + +The names of the channels to be written to the file. +Names should be separated by spaces and may contain any +of Gaffer's standard wildcards. + +colorSpace +---------- + +The colour space of the output image, used to convert the input +image from the working space. The default behaviour is to automatically +determine the colorspace by calling the function registered with +`ImageWriter::setDefaultColorSpaceFunction()`. + +out +--- + +A pass-through of the input image. + +layout +------ + +Controls where channels are placed in the file, including how they are named. +"Single part" writes all channels to the same part ( all interleaved ). +"Part per layer" writes a separate part for each layer, so they may be loaded +independently for better performance, and is the default. "Part per view" is +a compromise, where layers are not separated, but views are separated, so that +stereo files can use independent data windows. + +There is also the option to use a layout that matches Nuke's default +behaviour, but does not conform to the EXR specification. The Nuke presets +match "Part per Layer", "Part per View", and "Single Part" respectively, but with +the following deviations from the specification : + +* The layer name is omitted from the channel name +* Custom channels from the main layer are placed in a part named other +* The channel Z from the main layer is placed in a part named depth +* The RGBA channels from secondary layers are renamed to red, green, blue, and alpha +* When writing single part stereo, the view name comes before the layer name + +You may also pick "custom", and set up your own layout. This allows for things +like a mixed layout that is partially EXR spec compliant, and partially Nuke. Or +you could use a expression to group some layers together in the same part. + +layout.partName +--------------- + +Specifies the name to be stored in EXR's part name metadata. + +If different channels are given different part names, then a multipart +file is produced. + +Special context variables available for setting layout plugs: + +* `${imageWriter:viewName}` : The current view +* `${imageWriter:channelName}` : The current channel name +* `${imageWriter:layerName}` : The prefix of the channel name +* `${imageWriter:baseName}` : The suffix of the channel name +* `${imageWriter:standardPartName}` : Like the layerName, but set to "rgba" instead of empty for the main layer +* `${imageWriter:nukeViewName}` : Like viewName, but set to "main" when there is no current view +* `${imageWriter:nukeLayerName}` : Like layerName, but set to "depth" for "Z", and "other" for custom channels of the main layer +* `${imageWriter:nukeBaseName}` : Like baseName, but set to "red", "green", "blue", "alpha" instead of RGBA for layers other than the main layer. +* `${imageWriter:nukePartName}` : Like standardPartName, but set to "depth" for "Z", and "other" for custom channels of the main layer +* `${imageWriter:singlePartViewName}` : The current view, or "" if this is the first view. This should be used to compose channel names for single-part multi-view EXR files. + +layout.channelName +------------------ + +Specifies the channel name to be given to EXR. To match the standard, this should just +be exactly the Gaffer channel name. But some other software like Nuke omits the layer prefix, +and assumes that the part name will be prefixed to the channel. + +Special context variables available for setting layout plugs: + +* `${imageWriter:viewName}` : The current view +* `${imageWriter:channelName}` : The current channel name +* `${imageWriter:layerName}` : The prefix of the channel name +* `${imageWriter:baseName}` : The suffix of the channel name +* `${imageWriter:standardPartName}` : Like the layerName, but set to "rgba" instead of empty for the main layer +* `${imageWriter:nukeViewName}` : Like viewName, but set to "main" when there is no current view +* `${imageWriter:nukeLayerName}` : Like layerName, but set to "depth" for "Z", and "other" for custom channels of the main layer +* `${imageWriter:nukeBaseName}` : Like baseName, but set to "red", "green", "blue", "alpha" instead of RGBA for layers other than the main layer. +* `${imageWriter:nukePartName}` : Like standardPartName, but set to "depth" for "Z", and "other" for custom channels of the main layer +* `${imageWriter:singlePartViewName}` : The current view, or "" if this is the first view. This should be used to compose channel names for single-part multi-view EXR files. + +matchDataWindows +---------------- + +For multi-view images, sets the data windows to be the same for all views, by expanding them +all to include the union of all views. Wastes disk space and processing time, but is +required by Nuke for multi-view images. + +openexr +------- + +Format options specific to OpenEXR files. + +openexr.mode +------------ + +The write mode for the OpenEXR file - scanline or tiled data. + +openexr.compression +------------------- + +The compression method to use when writing the OpenEXR file. + +openexr.dwaCompressionLevel +--------------------------- + +The compression level used when writing files with DWAA or DWAB compression. +Higher values decrease file size at the expense of image quality. + +openexr.dataType +---------------- + +The data type to be written to the OpenEXR file. If you want to use different +data types for different channels, you can drive this with an expression or spreadsheet, +which may use the same context variables as the layout plugs ( the useful ones are +`${imageWriter:channelName}`, `${imageWriter:layerName}` and `${imageWriter:baseName}`, +for the whole channel name, and for the prefix and suffix respectively ). + +openexr.depthDataType +--------------------- + +Overriding the data type for depth channels is useful because many of the things depth is used +for require greater precision. This is a simple override which sets Z and ZBack to float precision. +If you want to do something more complex, set this to `Use Default`, and connect an expression or +spreadsheet to the `Data Type` plug. + +dpx +--- + +Format options specific to DPX files. + +dpx.dataType +------------ + +The data type to be written to the DPX file. + +tiff +---- + +Format options specific to TIFF files. + +tiff.mode +--------- + +The write mode for the TIFF file - scanline or tiled data. + +tiff.compression +---------------- + +The compression method to use when writing the TIFF file. + +tiff.dataType +------------- + +The data type to be written to the TIFF file. + +field3d +------- + +Format options specific to Field3D files. + +field3d.mode +------------ + +The write mode for the Field3D file - scanline or tiled data. + +field3d.dataType +---------------- + +The data type to be written to the Field3D file. + +fits +---- + +Format options specific to FITS files. + +fits.dataType +------------- + +The data type to be written to the FITS file. + +iff +--- + +Format options specific to IFF files. + +iff.mode +-------- + +The write mode for the IFF file - scanline or tiled data. + +jpeg +---- + +Format options specific to Jpeg files. + +jpeg.compressionQuality +----------------------- + +The compression quality for the Jpeg file to be written. +A value between 0 (low quality, high compression) and +100 (high quality, low compression). + +jpeg.chromaSubSampling +---------------------- + +The chroma sub sampling used to write the jpeg file. +Note that the file will be stored as YCbCr instead of RGB. + +jpeg2000 +-------- + +Format options specific to Jpeg2000 files. + +jpeg2000.dataType +----------------- + +The data type to be written to the Jpeg2000 file. + +png +--- + +Format options specific to PNG files. + +png.compression +--------------- + +The compression method to use when writing the PNG file. + +png.compressionLevel +-------------------- + +The compression level of the PNG file. This is a value between +0 (no compression) and 9 (most compression). + +rla +--- + +Format options specific to RLA files. + +rla.dataType +------------ + +The data type to be written to the RLA file. + +sgi +--- + +Format options specific to SGI files. + +sgi.dataType +------------ + +The data type to be written to the SGI file. + +targa +----- + +Format options specific to Targa files. + +targa.compression +----------------- + +The compression method to use when writing the Targa file. + +webp +---- + +Format options specific to WebP files. + +webp.compressionQuality +----------------------- + +The compression quality for the WebP file to be written. +A value between 0 (low quality, high compression) and +100 (high quality, low compression). \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/LUT.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/LUT.md.txt new file mode 100644 index 000000000..a485f76ea --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/LUT.md.txt @@ -0,0 +1,59 @@ +LUT +=== + +Applies color transformations provided by +OpenColorIO via a LUT file and OCIO FileTransform. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +channels +-------- + +The names of the channels to process. Names should be +separated by spaces and can use Gaffer's standard +wildcards. + +processUnpremultiplied +---------------------- + +Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images. + +fileName +-------- + +The name of the LUT file to be read. Only OpenColorIO +supported files will function as expected. + +**Supported file extensions** : 3dl, 3dl, cc, ccc, cdl, clf, ctf, csp, lut, lut, icc, icm, pf, cube, itx, look, mga, m3d, cube, spi1d, spi3d, spimtx, cub, vf + +interpolation +------------- + +The interpolation mode for the color transformation. + +direction +--------- + +The direction to perform the color transformation. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/LookTransform.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/LookTransform.md.txt new file mode 100644 index 000000000..6a9548aaf --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/LookTransform.md.txt @@ -0,0 +1,77 @@ +LookTransform +============= + +Applies OpenColorIO "looks" to an image. + +A 'look' is a named color transform, intended to modify the look of an +image in a 'creative' manner (as opposed to a colorspace definition which +tends to be technically/mathematically defined). + +Examples of looks may be a neutral grade, to be applied to film scans +prior to VFX work, or a per-shot DI grade decided on by the director, +to be applied just before the viewing transform. + +OCIOLooks must be predefined in the OpenColorIO configuration before usage, +often reference per-shot/sequence LUTs/CCs and are applied in scene linear colorspace. + +See the look plug for further syntax details. + +See opencolorio.org for look configuration customization examples. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +channels +-------- + +The names of the channels to process. Names should be +separated by spaces and can use Gaffer's standard +wildcards. + +processUnpremultiplied +---------------------- + +Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images. + +context +------- + +> Warning : Deprecated - please use the `OpenColorIOContext` +> node instead. + +look +---- + +Look Syntax: + +Multiple looks are combined with commas: 'neutral, primary' + +Direction is specified with +/- prefixes: '+neutral, -primary' + +Missing look 'fallbacks' specified with |: 'neutral, -primary | -primary' + +direction +--------- + +Specify the look transform direction \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Median.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Median.md.txt new file mode 100644 index 000000000..d77c9776e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Median.md.txt @@ -0,0 +1,53 @@ +Median +====== + +Applies a median filter to the image. This can be useful for +removing noise. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +radius +------ + +The size of the filter in pixels. This can be varied independently +in the x and y directions. + +boundingMode +------------ + +The method used when the filter references pixels outside the +input data window. + +expandDataWindow +---------------- + +Expands the data window to include the external pixels +which the filter radius covers. + +masterChannel +------------- + +If specified, this channel will be used to compute the pixel index to select for all +channels. You would probably want to use this with a channel that represents the overall +luminance of the image. It will produce a rank filter which is lower quality, but preserves +additivity between channels, and is a bit faster. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Merge.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Merge.md.txt new file mode 100644 index 000000000..aa5f97bec --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Merge.md.txt @@ -0,0 +1,49 @@ +Merge +===== + +Composites two or more images together. The following operations +are available : + + - Add : A + B + - Atop : Ab + B(1-a) + - Divide : A / B + - In : Ab + - Out : A(1-b) + - Mask : Ba + - Matte : Aa + B(1.-a) + - Multiply : AB + - Over : A + B(1-a) + - Subtract : A - B + - Difference : fabs( A - B ) + - Under : A(1-b) + B + - Min : min( A, B ) + - Max : max( A, B ) + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input images + +operation +--------- + +The compositing operation used to merge the +image together. See node documentation for +more details. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Mirror.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Mirror.md.txt new file mode 100644 index 000000000..1fd79898f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Mirror.md.txt @@ -0,0 +1,38 @@ +Mirror +====== + +Mirrors the image, flipping it in the horizontal and/or +vertical directions. Unlike the ImageTransform node, this +performs no filtering, so pixel values are not changed. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +horizontal +---------- + +Mirrors horizontally, flopping the image left to right. + +vertical +-------- + +Mirrors vertically, flipping the image top to bottom. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Mix.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Mix.md.txt new file mode 100644 index 000000000..352d0983e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Mix.md.txt @@ -0,0 +1,45 @@ +Mix +=== + +Blends two images together based on a mask. +If the mask is 0 you get the first input, if it is 1 you get the second. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input images + +mask +---- + +The image which contains the mask channel. + +mix +--- + +Control the blend between the two input images. +0 to take first input, 1 to take second input. +Multiplied together with the mask. + +maskChannel +----------- + +The channel which controls the blend. Clamped between 0 and 1. +0 to take first input, 1 to take second input. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Offset.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Offset.md.txt new file mode 100644 index 000000000..71b314cce --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Offset.md.txt @@ -0,0 +1,34 @@ +Offset +====== + +Offsets (translates) the image in integer increments. Because +the increments may only be whole numbers, no filtering is necessary, +and this node has improved performance compared to the equivalent +ImageTransform. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +offset +------ + +The amount to offset the image by. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/OpenColorIOContext.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/OpenColorIOContext.md.txt new file mode 100644 index 000000000..568c431dc --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/OpenColorIOContext.md.txt @@ -0,0 +1,47 @@ +OpenColorIOContext +================== + +Creates Gaffer context variables which define the OpenColorIO config +to be used by upstream nodes. This allows different configs to be used +in different contexts. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +Turns the node on and off. + +config +------ + +The OpenColorIO config to use. + +workingSpace +------------ + +Specifies the color space in which Gaffer processes images. + +variables +--------- + +Context variables used to customise the +[OpenColorIO context](https://opencolorio.readthedocs.io/en/latest/guides/authoring/overview.html#environment) +used by upstream nodes. OpenColorIO refers to these variously as "string vars", "context vars" or +"environment vars". + +extraVariables +-------------- + +An additional set of variables to be created. These are defined as +key/value pairs in an `IECore::CompoundData` object, which +allows a single expression to define a dynamic number of variables. + +If the same variable is defined by both the `variables` and the +`extraVariables` plugs, then the value from the `variables` plug +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/OpenImageIOReader.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/OpenImageIOReader.md.txt new file mode 100644 index 000000000..c3cbca751 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/OpenImageIOReader.md.txt @@ -0,0 +1,69 @@ +OpenImageIOReader +================= + +Utility node which reads image files from disk using OpenImageIO. +All file types supported by OpenImageIO are supported by the +OpenImageIOReader. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +fileName +-------- + +The name of the file to be read. File sequences with +arbitrary padding may be specified using the '#' character +as a placeholder for the frame numbers. If this file sequence +format is used, then missingFrameMode will be activated. + +**Supported file extensions** : exr, sxr, mxr, tif, tiff, tx, env, sm, vsm, jpg, jpe, jpeg, jif, jfif, jfi, bmp, dib, cin, dds, dpx, fits, hdr, rgbe, ico, iff, z, jp2, j2k, j2c, null, nul, png, ppm, pgm, pbm, pnm, pfm, psd, pdd, psb, bay, bmq, cr2, crw, cs1, dc2, dcr, dng, erf, fff, k25, kdc, mdc, mos, mrw, nef, orf, pef, pxn, raf, raw, rdc, sr2, srf, x3f, arw, 3fr, cine, ia, kc2, mef, nrw, qtk, rw2, sti, rwl, srw, drf, dsc, ptx, cap, iiq, rwz, cr3, rla, sgi, rgb, rgba, bw, int, inta, pic, tga, tpic, term, webp, zfile, osl, oso, oslgroup, oslbody + +refreshCount +------------ + +May be incremented to force a reload if the file has +changed on disk - otherwise old contents may still +be loaded via Gaffer's cache. + +missingFrameMode +---------------- + +Determines how missing frames are handled when the input +fileName is a file sequence (uses the '#' character). +The default behaviour is to throw an exception, but it +can also hold the last valid frame in the sequence, or +return a black image which matches the data window and +display window of the previous valid frame in the sequence. + +availableFrames +--------------- + +An output of the available frames for the given file sequence. +Returns an empty vector when the input fileName is not a file +sequence, even if it has a file-sequence-like structure. + +fileValid +--------- + +Whether or not the files exists and can be read into memory, +value calculated per frame if an image sequence. MissingFrameMode +does not change the behaviour of this plug. + +channelInterpretation +--------------------- + +Documented in ImageReader, where it is exposed to users. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Premultiply.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Premultiply.md.txt new file mode 100644 index 000000000..792e996a3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Premultiply.md.txt @@ -0,0 +1,53 @@ +Premultiply +=========== + +Multiplies selected channels by a specified alpha channel. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +channels +-------- + +The names of the channels to operate on. Names should be +separated by spaces and can use Gaffer's standard +wildcards. + +alphaChannel +------------ + +The channel to use as the alpha channel. +The selected channel does not have to be 'A', but whichever +channel is chosen will act as the alpha for the sake of this +node. +This channel will never be multiplied by itself - it will +remain the same as the input. + +useDeepVisibility +----------------- + +When processing a deep image, you may use this to multiply by +the visibility of the current sample, taking into account the +alpha of all previous samples. This is a pretty special case, +it's mostly useful for converting deep images to incandescence, +by multiplying RGB by visibility, and then wiping out the 'A' +channel. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Ramp.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Ramp.md.txt new file mode 100644 index 000000000..f434198dc --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Ramp.md.txt @@ -0,0 +1,54 @@ +Ramp +==== + +Outputs an image of a color gradient interpolated using the ramp plug. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +format +------ + +The resolution and aspect ratio of the image. + +startPosition +------------- + +2d position for the start of the ramp color interpolation. + +endPosition +----------- + +2d position for the end of the ramp color interpolation. + +ramp +---- + +The gradient of colour used to draw the ramp. + +layer +----- + +The layer to generate. The output channels will +be named ( layer.R, layer.G, layer.B and layer.A ). + +transform +--------- + +A transformation applied to the entire ramp. +The translate and pivot values are specified in pixels, +and the rotate value is specified in degrees. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Rectangle.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Rectangle.md.txt new file mode 100644 index 000000000..9db2907c9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Rectangle.md.txt @@ -0,0 +1,76 @@ +Rectangle +========= + +Renders a rectangle with adjustable line width, corner radius, +drop shadow and transform. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +color +----- + +The colour of the rectangle. + +shadow +------ + +Enables the rendering of a drop shadow which can be coloured, offset and +blurred. + +shadowColor +----------- + +The colour of the shadow. + +shadowOffset +------------ + +The offset of the shadow, measured in pixels. + +shadowBlur +---------- + +A blur applied to the shadow, measured in pixels. + +area +---- + +The area of the rectangle before the transform is applied. + +lineWidth +--------- + +The width of the outline, measured in pixels. + +cornerRadius +------------ + +Used to give the rectangle rounded corners. A radius of +0 gives square corners. + +transform +--------- + +A transformation applied to the rectangle. The translate and +pivot values are specified in pixels, and the rotate value is +specified in degrees. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Resample.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Resample.md.txt new file mode 100644 index 000000000..77ba711ba --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Resample.md.txt @@ -0,0 +1,92 @@ +Resample +======== + +Utility node used internally within GafferImage, but +not intended to be used directly by end users. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +matrix +------ + +The transform to be applied to the input image. +This must contain only translation and scaling. + +filter +------ + +The filter used to perform the resampling. The name +of any OIIO filter may be specified. The default automatically +picks an appropriate high-quality filter based on whether +or not the image is being enlarged or reduced. + +filterScale +----------- + +A multiplier for the scale of the filter used. Scaling up gives a softer +result, scaling down gives a sharper result ( likely to alias or even create black +patches where no pixels can be found ). Less than 1 is not recommended unless +you have a special technical reason. + +boundingMode +------------ + +The method used when a filter references pixels outside the +input data window. + +expandDataWindow +---------------- + +Expands the data window by the filter radius, to include the +external pixels affected by the filter. + +debug +----- + +Enables debug output. The HorizontalPass setting outputs +an intermediate image filtered just in the horizontal +direction - this is an internal optimisation used when +filtering with a separable filter. The SinglePass setting +forces all filtering to be done in a single pass (as if +the filter was non-separable) and can be used for validating +the results of the the two-pass (default) approach. + +filterDeep +---------- + +When on, deep images are resized accurately using the same filter +as flat images. When off, deep images are resized using the Nearest +filter. + +Filters with negative lobes ( such as Lanczos3 which is the Default +for downscaling ) cannot be represented at all depths with perfect +accuracy, because deep alpha must be between 0 and 1, and must be +non-decreasing. In extreme cases, involving bright segments +with very low alpha, it may be preferable to choose a softer filter +without negative lobes ( like Blackman-Harris ). +> Caution : +> +> When deep images are resized using a filter, many additional deep samples are +> created per pixel. These slow down subsequent image processing and can create +> prohibitively large files. These overheads should be mitigated by using a +> DeepToFlat or DeepHoldout node soon after the Resize. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Resize.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Resize.md.txt new file mode 100644 index 000000000..84e9358b8 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Resize.md.txt @@ -0,0 +1,97 @@ +Resize +====== + +Resizes the image to a new resolution, scaling the +contents to fit the new size. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +format +------ + +The new format (resolution and pixel aspect ratio) +of the output image. + +fitMode +------- + +Determines how the image is scaled to fit the new +resolution. If the aspect ratios of the input and +the output images are the same, then this has no +effect, otherwise it dictates what method is used +to preserve the aspect ratio of the data. + +Horizontal +: The image is scaled so that it fills the full + width of the output resolution and aspect ratio + is preserved. + +Vertical +: The image is scaled so that it fills the full + height of the output resolution and aspect ratio + is preserved. + +Fit +: Automatically picks Horizontal or Vertical such + that all of the input image is contained within + the output image. Padding is applied top and + bottom or left and right as necessary. + +Fill +: Automatically picks Horizontal or Vertical such + that the full output resolution is covered. The + image contents will extend outside the top and + bottom or left and right of the display window + as necessary. + +Distort +: Distorts the image so that the input display + window is fitted exactly to the output display + window. + +filter +------ + +The filter used when transforming the image. Each +filter provides different tradeoffs between sharpness and +the danger of aliasing or ringing. + +filterDeep +---------- + +When on, deep images are resized accurately using the same filter +as flat images. When off, deep images are resized using the Nearest +filter. + +Filters with negative lobes ( such as Lanczos3 which is the Default +for downscaling ) cannot be represented at all depths with perfect +accuracy, because deep alpha must be between 0 and 1, and must be +non-decreasing. In extreme cases, involving bright segments +with very low alpha, it may be preferable to choose a softer filter +without negative lobes ( like Blackman-Harris ). +> Caution : +> +> When deep images are resized using a filter, many additional deep samples are +> created per pixel. These slow down subsequent image processing and can create +> prohibitively large files. These overheads should be mitigated by using a +> DeepToFlat or DeepHoldout node soon after the Resize. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Saturation.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Saturation.md.txt new file mode 100644 index 000000000..970c9c7ca --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Saturation.md.txt @@ -0,0 +1,47 @@ +Saturation +========== + +Increases or decreases the saturation of an image. Saturation is calculated relative +to a standard luminance measure using the RGB coefficients `0.2126, 0.7152, 0.0722`. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +channels +-------- + +The names of the channels to process. Names should be +separated by spaces and can use Gaffer's standard +wildcards. + +processUnpremultiplied +---------------------- + +Unpremultiplies data before processing, and premultiply again after processing. This allows +accurate processing of nodes that deal with color, when running on partially transparent or +deep images. + +saturation +---------- + +Values less than 1 bring colors closer to monochrome, values greater than 1 +push colors away from monochrome. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/SelectView.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/SelectView.md.txt new file mode 100644 index 000000000..b1a9287e9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/SelectView.md.txt @@ -0,0 +1,31 @@ +SelectView +========== + +Picks one view from a multi-view image. Outputs it as an image with a single, default view. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +view +---- + +Name of view to select \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Shuffle.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Shuffle.md.txt new file mode 100644 index 000000000..10e3f1a10 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Shuffle.md.txt @@ -0,0 +1,45 @@ +Shuffle +======= + +Shuffles data between image channels, for instance by copying R +into G or a constant white into A. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +missingSourceMode +----------------- + +Determines behaviour when the source channel doesn't exist : + +- Ignore : No change is made to the destination channel. +- Error : The node errors. +- Black : Black is shuffled into the destination channel. + +> Note : Does not apply when source contains wildcards. + +shuffles +-------- + +The definition of the shuffling to be performed - an +arbitrary number of channel edits can be made by adding +ShufflePlugs as children of this plug. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Text.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Text.md.txt new file mode 100644 index 000000000..0f661015f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Text.md.txt @@ -0,0 +1,103 @@ +Text +==== + +Renders text over an input image. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +color +----- + +The colour of the text. + +shadow +------ + +Enables the rendering of a drop shadow which can be coloured, offset and +blurred. + +shadowColor +----------- + +The colour of the shadow. + +shadowOffset +------------ + +The offset of the shadow, measured in pixels. + +shadowBlur +---------- + +A blur applied to the shadow, measured in pixels. + +text +---- + +The text to be rendered. + +font +---- + +The font to render the text with. This should be a .ttf font file which +is located on the paths specified by the IECORE_FONT_PATHS +environment variable. + +**Supported file extensions** : ttf + +size +---- + +The size of the font in pixels. For best quality results +for constant sized text prefer this over the scale setting +on the transform, which is better suited for smoothly animating +the size. + +area +---- + +The area of the image within which the text is rendered. +The text will be word wrapped to fit within the area and +justified as specified by the justification setting. If the +area is empty, then the full display window will be used +instead. + +horizontalAlignment +------------------- + +Determines whether the text is aligned to the left or +right of the text area, or centered within it. + +verticalAlignment +----------------- + +Determines whether the text is aligned to the bottom or +top of the text area, or centered within it. + +transform +--------- + +A transformation applied to the entire text area after +layout has been performed. The translate and pivot values +are specified in pixels, and the rotate value is specified +in degrees. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Unpremultiply.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Unpremultiply.md.txt new file mode 100644 index 000000000..86c51f683 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/Unpremultiply.md.txt @@ -0,0 +1,45 @@ +Unpremultiply +============= + +Divides selected channels by a specified alpha channel. +If the alpha channel on a pixel is 0, then that pixel will remain +the same as the input. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +channels +-------- + +The names of the channels to operate on. Names should be +separated by spaces and can use Gaffer's standard +wildcards. + +alphaChannel +------------ + +The channel to use as the alpha channel. +The selected channel does not have to be 'A', but whichever +channel is chosen will act as the alpha for the sake of this +node. +This channel will never be divided by itself - it will +remain the same as the input. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/VectorWarp.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/VectorWarp.md.txt new file mode 100644 index 000000000..350ee99ba --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/VectorWarp.md.txt @@ -0,0 +1,73 @@ +VectorWarp +========== + +Warps an input image onto a set of UVs provided +by a second image, effectively applying a texture +map to the UV image. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +boundingMode +------------ + +The method used when accessing pixels outside the +input data window. + +filter +------ + +The filter used to perform the resampling. The name +of any OIIO filter may be specified, but this UI +only exposes a limited range of 5 options which perform +well for warping, ordered from softest to sharpest. Plus +the extra "bilinear" mode which is lower quality, but +fast. + +useDerivatives +-------------- + +Whether accurate filter sizes should be computed that take into account the amount +of distortion in the size and shape of pixels. Should have minimal impact on warps +that mostly preserve the size of pixels, but could have a large impact if there is +heavy distortion. Fixes problems with aliasing, at the cost of some extra calculations. + +vector +------ + +The UV image. The R and G channel are used to provide +the U and V values, and these determine the source pixel +in the main input image. A UV values of ( 0, 0 ) corresponds +to the bottom left corner of the input image, and ( 1, 1 ) +corresponds to the top right corner. + +vectorMode +---------- + +Do vectors specify absolute positions in the source image, or relative +offsets from the current pixel to the pixel in the source image. + +vectorUnits +----------- + +Are vectors measured in pixels, or as fractions of the input image display +window ranging from 0 to 1. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferImage/index.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/index.md.txt new file mode 100644 index 000000000..2fab73cb3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferImage/index.md.txt @@ -0,0 +1,79 @@ + + +GafferImage +=========== + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + Anaglyph.md + BleedFill.md + Blur.md + CDL.md + Catalogue.md + CatalogueSelect.md + Checkerboard.md + Clamp.md + CollectImages.md + ColorSpace.md + Constant.md + ContactSheet.md + ContactSheetCore.md + CopyChannels.md + CopyImageMetadata.md + CopyViews.md + CreateViews.md + Crop.md + DeepHoldout.md + DeepMerge.md + DeepRecolor.md + DeepSampleCounts.md + DeepSampler.md + DeepSlice.md + DeepState.md + DeepTidy.md + DeepToFlat.md + DeleteChannels.md + DeleteImageMetadata.md + DeleteViews.md + Dilate.md + Display.md + DisplayTransform.md + Empty.md + Erode.md + FlatImageProcessor.md + FlatImageSource.md + FlatToDeep.md + FormatQuery.md + Grade.md + ImageMetadata.md + ImageNode.md + ImageProcessor.md + ImageReader.md + ImageSampler.md + ImageStats.md + ImageTransform.md + ImageWriter.md + LUT.md + LookTransform.md + Median.md + Merge.md + Mirror.md + Mix.md + Offset.md + OpenColorIOContext.md + OpenImageIOReader.md + Premultiply.md + Ramp.md + Rectangle.md + Resample.md + Resize.md + Saturation.md + SelectView.md + Shuffle.md + Text.md + Unpremultiply.md + VectorWarp.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLCode.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLCode.md.txt new file mode 100644 index 000000000..d6882764d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLCode.md.txt @@ -0,0 +1,62 @@ +OSLCode +======= + +Allows arbitrary OSL shaders to be written directly within +Gaffer. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +Generated automatically - do not edit. + +type +---- + +Generated automatically - do not edit. + +attributeSuffix +--------------- + +Suffix for the attribute used for shader assignment. + +parameters +---------- + +The inputs to the shader. Any number of inputs may be created +by adding child plugs. Supported plug types and the corresponding +OSL types are : + +- FloatPlug (`float`) +- IntPlug (`int`) +- ColorPlug (`color`) +- V3fPlug (`vector`) +- M44fPlug (`matrix`) +- StringPlug (`string`) +- ClosurePlug (`closure color`) +- SplinefColor3f ( triplet of `float [], color [], string` ) + +enabled +------- + +Turns the node on and off. + +out +--- + +The outputs from the shader. Any number of outputs may be created +by adding child plugs. Supported plug types are as for the input +parameters, with the exception of SplinefColor3f, which cannot be +used as an output. + +code +---- + +The code for the body of the OSL shader. This should read from the +input parameters and write to the output parameters. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLImage.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLImage.md.txt new file mode 100644 index 000000000..819820b3e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLImage.md.txt @@ -0,0 +1,43 @@ +OSLImage +======== + +Executes OSL shaders to perform image processing. Use the shaders from +the OSL/ImageProcessing menu to read values from the input image and +then write values back to it. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output image generated by this node. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image + +defaultFormat +------------- + +The resolution and aspect ratio to output when there is no input image provided. + +channels +-------- + +Define image channels to output by adding child plugs and connecting +corresponding OSL shaders. You can drive RGB layers with a color, +or connect individual channels to a float. + +If you want to add multiple channels at once, you can also add a closure plug, +which can accept a connection from an OSLCode with a combined output closure. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLLight.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLLight.md.txt new file mode 100644 index 000000000..0e373a287 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLLight.md.txt @@ -0,0 +1,147 @@ +OSLLight +======== + +Creates lights by assigning an emissive OSL shader to some simple geometry. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +parameters +---------- + +The parameters of the light shader - these will vary based on the light type. + +defaultLight +------------ + +Whether this light illuminates all geometry by default. When +toggled, the light will be added to the "defaultLights" set, which +can be referenced in set expressions and manipulated by downstream +nodes. + +mute +---- + +Whether this light is muted. When toggled, the attribute "light:mute" +will be set to true. When not toggled, it will be omitted from the attributes. + +visualiserAttributes +-------------------- + +Attributes that affect the visualisation of this Light in the Viewer. + +visualiserAttributes.scale +-------------------------- + +Scales non-geometric visualisations in the viewport to make them +easier to work with. + +visualiserAttributes.maxTextureResolution +----------------------------------------- + +Visualisers that load textures will respect this setting to +limit their resolution. + +visualiserAttributes.frustum +---------------------------- + +Controls whether applicable lights draw a representation of their +light projection in the viewer. + +visualiserAttributes.lightFrustumScale +-------------------------------------- + +Allows light projections to be scaled to better suit the scene. + +visualiserAttributes.lightDrawingMode +------------------------------------- + +Controls how lights are presented in the Viewer. + +visualiserAttributes.lookThroughAperture +---------------------------------------- + +Specifies the aperture used when looking through this light. Overrides the Viewer's Camera Settings. + +visualiserAttributes.lookThroughClippingPlanes +---------------------------------------------- + +Specifies the clipping planes used when looking through this light. Overrides the Viewer's Camera Settings. + +shaderName +---------- + +The OSL shader to be assigned to the light +geometry. + +shape +----- + +The shape of the light. Typically, disks +should be used with spotlight shaders and spheres +should be used with point light shaders. The "Geometry" +shape allows the use of custom geometry specific to a +particular renderer. + +radius +------ + +The radius of the disk or sphere shape. Has no effect for +other shapes. + +geometryType +------------ + +The type of geometry to create when shape is set +to "Geometry". This should contain the name of a geometry +type specific to the renderer being used. + +geometryBound +------------- + +The bounding box of the geometry. Only relevant when the +shape is set to "Geometry". + +geometryParameters +------------------ + +Arbitary parameters which specify the features of the "Geometry" +shape type. + +attributes +---------- + +Arbitrary attributes which are applied to the light. Typical +uses include setting renderer specific visibility attributes +to hide the shape from the camera. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLObject.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLObject.md.txt new file mode 100644 index 000000000..9ec916800 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLObject.md.txt @@ -0,0 +1,79 @@ +OSLObject +========= + +Executes OSL shaders to perform object processing. Use the shaders from +the OSL/ObjectProcessing menu to read primitive variables from the input +object and then write primitive variables back to it. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +interpolation +------------- + +The interpolation type of the primitive variables created by this node. +For instance, Uniform interpolation means that the shader is run once per face on a mesh, allowing it to output primitive variables with a value per face. +All non-constant input primitive variables are resampled to match the selected interpolation so that they can be accessed from the shader. + +useTransform +------------ + +Makes the object's transform available to OSL, so that you can use OSL functions that convert +from object to world space. + +useAttributes +------------- + +Makes the Gaffer attributes at the object's location available to OSL through the getattribute +function. Once this is on, you can use OSL nodes such as InFloat or InString to retrieve the +attribute values. + +primitiveVariables +------------------ + +Define primitive varibles to output by adding child plugs and connecting +corresponding OSL shaders. Supported plug types are : + +- FloatPlug +- IntPlug +- ColorPlug +- V3fPlug ( outputting vector, normal or point ) +- M44fPlug +- StringPlug + +If you want to add multiple outputs at once, you can also add a closure plug, +which can accept a connection from an OSLCode with a combined output closure. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLShader.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLShader.md.txt new file mode 100644 index 000000000..4ac2ca99e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/OSLShader.md.txt @@ -0,0 +1,40 @@ +OSLShader +========= + +Loads OSL shaders for use in supported renderers. Use the ShaderAssignment node to assign shaders to objects in the scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +type +---- + +The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +attributeSuffix +--------------- + +Suffix for the attribute used for shader assignment. + +parameters +---------- + +Where the parameters for the shader are represented. + +enabled +------- + +Turns the node on and off. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/index.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/index.md.txt new file mode 100644 index 000000000..412be56ff --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferOSL/index.md.txt @@ -0,0 +1,16 @@ + + +GafferOSL +========= + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + OSLCode.md + OSLImage.md + OSLLight.md + OSLObject.md + OSLShader.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AimConstraint.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AimConstraint.md.txt new file mode 100644 index 000000000..a2a07a6b2 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AimConstraint.md.txt @@ -0,0 +1,111 @@ +AimConstraint +============= + +Transforms objects so that they are aimed at +a specified target. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +targetScene +----------- + +The scene containing the target location to which objects are +constrained. If this is unconnected, the main input scene +is used instead. + +target +------ + +The scene location to which the objects are constrained. +The world space transform of this location forms the basis +of the constraint target, but is modified by the targetMode +and targetOffset values before the constraint is applied. + +ignoreMissingTarget +------------------- + +Causes the constraint to do nothing if the target location +doesn't exist in the scene, instead of erroring. + +targetMode +---------- + +The precise location of the target transform - this can be +derived from the origin, bounding box or from a specific primitive +uv coordinate or vertex id of the target location. + +targetUV +-------- + +UV coordinate used in "UV" target mode. +The node will error if the specified uv coordinate is out of range or does not map unambiguously +to a single position on the primitive's surface unless ignoreMissingTarget is true. + +targetVertex +------------ + +Vertex id used in "Vertex" target mode. +The node will error if the specified vertex id is out of range unless ignoreMissingTarget is true. +The node will error if the specified primitive does not have a set of uvs named "uv" with +FaceVarying or Vertex interpolation unless ignoreMissingTarget is true. The uvs will be used to +construct a local coordinate frame. + +targetOffset +------------ + +An offset applied to the target transform before the constraint +is applied. The offset is measured in the object space of the +target location unless the target mode is UV or Vertex in which case +the offset is measured relative to the local surface coordinate frame. + +keepReferencePosition +--------------------- + +Adjusts the constraint so that the original position of the object +at the `referenceFrame` is maintained. + +referenceFrame +-------------- + +The reference frame used by the `keepReferencePosition` mode. The constraint +is adjusted so that the original position at this frame is maintained. + +aim +--- + +The aim vector, specified in object space. The +object will be transformed so that this vector +points at the target. + +up +-- + +The up vector, specified in object space. The +object will be transformed so that this vector +points up in world space, as far as is possible. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AttributeQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AttributeQuery.md.txt new file mode 100644 index 000000000..819de207d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AttributeQuery.md.txt @@ -0,0 +1,40 @@ +AttributeQuery +============== + +Query a particular location in a scene and outputs attribute. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +scene +----- + +The scene to query the attribute for. + +location +-------- + +The location within the scene to query the attribute at. +> Note : If the location does not exist then the query will not be +> performed and all outputs will be set to their default values. + +attribute +--------- + +The name of the attribute to query. +> Note : If the attribute does not exist then the query will not be +> performed and all outputs will be set to their default values. + +inherit +------- + +Should inherited attributes or be considered or not. + +exists +------ + +Outputs true if both attribute and location exist, otherwise false. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AttributeTweaks.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AttributeTweaks.md.txt new file mode 100644 index 000000000..485d1bd73 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AttributeTweaks.md.txt @@ -0,0 +1,53 @@ +AttributeTweaks +=============== + +Makes modifications to attributes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +localise +-------- + +Turn on to allow location-specific tweaks to be made to inherited +attributes. Attributes will be localised to locations matching the +node's filter prior to tweaking. The original inherited attributes +will remain untouched. + +ignoreMissing +------------- + +Ignores tweaks targeting missing attributes. When off, missing attributes +cause the node to error. + +tweaks +------ + +The tweaks to be made to the attributes. Arbitrary numbers of user defined +tweaks may be added as children of this plug via the user interface, or +using the AttributeTweaks API via python. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AttributeVisualiser.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AttributeVisualiser.md.txt new file mode 100644 index 000000000..143a0c28a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/AttributeVisualiser.md.txt @@ -0,0 +1,96 @@ +AttributeVisualiser +=================== + +Visualises attribute values by applying a constant +shader to display them as a colour. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +attributeName +------------- + +The name of the attribute to be visualised. The value of the +attribute will be converted to a colour using the chosen mode +and then assigned using a constant shader. + +mode +---- + +The method used to turn the attribute value into a colour for +visualisation. + +- Color : This only works for attributes which already contain a colour + or numeric value. The value is converted directly to a colour, using the + min and max values to perform a remapping. +- FalseColor : This only works for numeric attributes. Values between min + and max are used to look up a colour in the ramp below. +- Random : This works for any attribute type - a random colour is chosen + for each unique attribute value. +- Shader Node Color : This only works when visualising a shader attribute. It + uses the node colour for the shader node which is assigned. + +min +--- + +Used in the Color and False Color modes to define the value which is mapped +to black or the left end of the spline respectively. + +max +--- + +Used in the Color and False Color modes to define the value which is mapped +to white or the right end of the spline respectively. + +ramp +---- + +Provides the colour mapping for the False Color mode. Values between min and +max are remapped using the colours from the ramp (left to right). + +shaderType +---------- + +The type of shader used to perform the visualisation. The default value +is for an OpenGL shader which will be used in the viewport. It's possible +to perform a visualisation for other renderers by entering a different +shader type here. + +shaderName +---------- + +The name of the shader used to perform the visualisation. The default value +is for an OpenGL shader which will be used in the viewport. It's possible +to perform a visualisation for other renderers by entering a different +shader name here. + +shaderParameter +--------------- + +The name of the shader parameter used to perform the visualisation. The default +value is for an OpenGL shader which will be used in the viewport. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Attributes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Attributes.md.txt new file mode 100644 index 000000000..8baec7958 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Attributes.md.txt @@ -0,0 +1,60 @@ +Attributes +========== + +The base type for nodes that apply attributes to the scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +attributes +---------- + +The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python. + +global +------ + +Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter. + +extraAttributes +--------------- + +An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the `attributes` +CompoundDataPlug, with `IECoreScene.ShaderNetwork` being one example. + +If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/BoundQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/BoundQuery.md.txt new file mode 100644 index 000000000..12c2d2bab --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/BoundQuery.md.txt @@ -0,0 +1,50 @@ +BoundQuery +========== + +Queries a particular location in a scene and outputs the bound. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +scene +----- + +The scene to query the bounds for. + +location +-------- + +The location within the scene to query the bound at. +> Note : If the location does not exist then the query will not be +> performed and all outputs will be set to their default values. + +space +----- + +The space to query the bound in. + +relativeLocation +---------------- + +The location within the scene to use for relative space mode. +> Note : If the location does not exist then the query will not be +> performed and all outputs will be set to their default values. + +bound +----- + +Bounding box at specified location in specified space. + +center +------ + +Center point vector of the requested bound. + +size +---- + +Size vector of the requested bound. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Camera.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Camera.md.txt new file mode 100644 index 000000000..3594bc49e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Camera.md.txt @@ -0,0 +1,372 @@ +Camera +====== + +Produces scenes containing a camera. To choose which camera is +used for rendering, use a StandardOptions node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +projection +---------- + +The base camera type. + +Supports two standard projections: orthographic and +perspective. For less standard projections that require +renderer-specific implementations, such as spherical, you +will need to use a downstream CameraTweaks node to adjust +this camera's parameters. + +perspectiveMode +--------------- + +The input values to use in defining the perspective +projection. They can be either a horizontal field of view +(`fieldOfView`), or a film back/sensor (`aperture`) and +focal length (`focalLength`). The latter two can take the +exact measurements from a real camera and lens setup. With +either perspective mode, perspective is stored as +`aperture` and `focalLength` parameters on the camera. + +fieldOfView +----------- + +The horizontal field of view, in degrees. + +In the camera's parameters, projection is always stored as +`aperture` and `focalLength`. When using the _Field of +View_ perspective mode, the aperture has the fixed +dimensions of `1, 1`, and this plug drives the +`focalLength` parameter. + +apertureAspectRatio +------------------- + +The vertical field of view, according to the ratio +`(horizontal FOV) / (vertical FOV)`. A value of 1 would +result in a square aperture, while a value of 1.778 would +result in a 16:9 aperture. + +"Aperture" in this sense is equivalent to film back/sensor. + +The final projection of a render using this camera will +depend on these settings in combination with the +`resolution` and `filmFit` render settings. + +aperture +-------- + +The width and height of the aperture when using the +_Aperture and Focal Length_ perspective mode. Use this in +conjunction with a focal length to define the camera's +equivalent field of view. + +"Aperture" here is equivalent to the film back/sensor on a +real camera. A handful of default camera presets are +provided, including Full Frame 35mm and several popular +Alexa and RED bodies. Once the aperture is set, the focal +length can then be adjusted on its own to control the field +of view, just like on a real camera. + +When setting the aperture manually, the `x` and `y` +dimensions can be measured in any unit of length, so long +as they use the same unit as the focal length. You can +safely follow convention and use millimeters for both. + +The final field of view of a render will depend on these +settings in combination with the `resolution` and `filmFit` +render options. + +focalLength +----------- + +The focal length portion of the _Aperture and Focal Length_ +perspective mode. This is equivalent to the lens's focal +length in a real camera setup. Use this in conjunction with +the aperture to set the camera's equivalent field of view. +Like on a real camera, the aperture is typically constant, +and the focal length is then adjusted to control the field +of view. + +This can be a distance in any unit of length, as long as +you use the same unit for the aperture. You can safely +follow convention and use millimeters for both. + +The final field of view of a render using this camera will +depend on these settings in combination with the +`resolution` and `filmFit` render options. + +orthographicAperture +-------------------- + +The width and height of the orthographic camera's aperture, +in world space units. + +apertureOffset +-------------- + +Offsets the aperture parallel to the image plane, to +achieve a skewed viewing frustum. The scale of the offset +depends on the projection and perspective mode: + +- Perspective projection: + - _Field Of View_ mode: 1 offset = 1 horizontal field + of view. + - _Aperture and Focal Length_ mode: 1 offset = 1 + aperture unit of measure (for example, 1mm). +- Orthographic projection: 1 offset = 1 world space unit. + +For use in special cases, such as simulating a tilt-shift +lens, rendering tiles for a large panorama, or matching a +plate that has been asymmetrically cropped. + +fStop +----- + +The setting equivalent to the f-number on a camera, which ultimately determines the strength of the depth of field blur. A lower value produces more blur. As in a real camera, `fStop` is defined as `focalLength / lens aperture`. + +To enable depth of field blur (if your renderer supports it), give this plug a value greater than 0, and, on a downstream StandardOptions node, enable the _Depth Of Field_ plug and turn it on. + +focalLengthWorldScale +--------------------- + +The scale to convert from focal length units to world space +units. Combined with f-stop to calculate the lens aperture. +Set this to scale the lens units into scene units, to +ensure the depth of field blur correctly scales to the +scene. Once this plug is set, the `fStop` plug can be +adjusted to match a real-world lens setting. + +For example, given a lens with a focal length in mm, and a +scene that uses decimeters for its world space units, the +_Millimeters to Decimeters_ preset would provide the proper +conversion. + +The default value of 0.1 scales millimeter (default focal +length unit) to centimeter (default world space unit of +Alembic and USD scene formats). Other default presets for +scaling to decimeter or meter are also available. + +If using _Field Of View_ projection mode, you won't have a +focal length plug to work with, and the aperture size will +be (1,1). To compensate, select _Custom_ and then input a +value that scales the scene unit of measure to a realistic +aperture size. For example, `3.5` would convert 1 +centimeter (Alembic/USD default) to 35mm, which would +simulate a 35mm lens. + +focusDistance +------------- + +The distance from the camera at which objects are in +perfect focus, in world space units. + +clippingPlanes +-------------- + +The near and far clipping planes, defining a region of +forward depth within which objects are visible to this +camera. + +renderSettingOverrides +---------------------- + +Render settings specified here will override their +corresponding global render options. + +renderSettingOverrides.filmFit +------------------------------ + +Overrides the `filmFit` render option: + + +How the aperture gate (the frame defined by the aperture) will +fit into the resolution gate (the framed defined by the data +window). Fitting is applied only if the respective aspect +ratios of the aperture and the resolution are different. The +following fitting modes are available: + +- _Horizontal:_ The aperture gate will fit horizontally between +the left/right edges of the resolution gate, while preserving +its aspect ratio. If the aperture's aspect ratio is larger than +the resolution's, the top/bottom edges of the aperture will be +cropped. If it's smaller, then the top/bottom edges will +capture extra vertical scene content. +- _Vertical:_ The aperture gate will fit vertically between the +top/bottom edges of the resolution gate, while preserving its +aspect ratio. If the aperture's aspect ratio is larger than the +resolution's, the left/right edges of the aperture will be +cropped. If it's smaller, then the left/right edges will +capture more horizontal scene content. +- _Fit_: The aperture gate will fit horizontally (like +_Horizontal_ mode) or vertically (like _Vertical_ mode) inside +the resolution gate to avoid cropping the aperture, while +preserving its aspect ratio. If the two gates' aspect ratios +differ, the aperture will capture extra horizontal or vertical +scene content. +- _Fill:_ The aperture gate will fill the resolution gate such +that none of the aperture captures extra scene content, while +preserving its aspect ratio. In other words, it will make the +opposite choice of the _Fit_ mode. If the two gates' aspect +ratios differ, the aperture will be horizontally or vertically +cropped. +- _Distort:_ The aperture gate will match the size of the +resolution gate. If their aspect ratios differ, the resulting +image will appear vertically or horizontally stretched or +squeezed. + +renderSettingOverrides.shutter +------------------------------ + +Overrides the `shutter` render option: + + +The interval over which the camera shutter is open. Measured +in frames, and specified relative to the frame being rendered. + +renderSettingOverrides.resolution +--------------------------------- + +Overrides the `renderResolution` render option: + + +The resolution of the image to be rendered. + +renderSettingOverrides.pixelAspectRatio +--------------------------------------- + +Overrides the `pixelAspectRatio` render option: + + +The `width / height` aspect ratio of the individual pixels in +the rendered image. + +renderSettingOverrides.resolutionMultiplier +------------------------------------------- + +Overrides the `resolutionMultiplier` render option: + + +Multiplies the resolution of the render by this amount. + +renderSettingOverrides.overscan +------------------------------- + +Overrides the `overscan` render option: + + +Whether to enable overscan, which adds extra pixels to the +sides of the rendered image. + +Overscan can be useful when camera shake or blur will be added +as a post-process. This plug just enables overscan as a whole – +use the _Overscan Top_, _Overscan Bottom_, _Overscan Left_ and +_Overscan Right_ plugs to specify the amount of overscan on +each side of the image. + +renderSettingOverrides.overscanLeft +----------------------------------- + +Overrides the `overscanLeft` render option: + + +The amount of overscan at the left of the image. Specified as a +0-1 proportion of the original image width. + +renderSettingOverrides.overscanRight +------------------------------------ + +Overrides the `overscanRight` render option: + + +The amount of overscan at the right of the image. Specified as +a 0-1 proportion of the original image width. + +renderSettingOverrides.overscanTop +---------------------------------- + +Overrides the `overscanTop` render option: + + +The amount of overscan at the top of the image. Specified as a +0-1 proportion of the original image height. + +renderSettingOverrides.overscanBottom +------------------------------------- + +Overrides the `overscanBottom` render option: + + +The amount of overscan at the bottom of the image. Specified as +a 0-1 proportion of the original image height. + +renderSettingOverrides.cropWindow +--------------------------------- + +Overrides the `renderCropWindow` render option: + + +Limits the render to a region of the image. The rendered image +will have the same resolution as usual, but areas outside the +crop will be rendered black. Coordinates range from (0,0) at +the top-left of the image to (1,1) at the bottom-right. The +crop window tool in the viewer may be used to set this +interactively. + +renderSettingOverrides.depthOfField +----------------------------------- + +Overrides the `depthOfField` render option: + + +Whether to render with depth of field. To ensure the effect is +visible, you must also set an f-stop value greater than 0 on +this camera. + +visualiserAttributes +-------------------- + +Attributes that affect the visualisation of this camera in the Viewer. + +visualiserAttributes.scale +-------------------------- + +Scales non-geometric visualisations in the viewport to make them +easier to work with. + +visualiserAttributes.frustum +---------------------------- + +Controls whether the camera draws a visualisation of its frustum. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CameraTweaks.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CameraTweaks.md.txt new file mode 100644 index 000000000..fb367ffc3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CameraTweaks.md.txt @@ -0,0 +1,56 @@ +CameraTweaks +============ + +Applies modifications, also known as "tweaks" to camera +parameters or render options in the scene. Supports any number +of tweaks, and custom camera parameters. Tweaks to camera +parameters apply to every camera specified by the filter. + +Tweaks apply to every camera specified by the filter. + +Can add new camera parameters or render options. + +Any existing parameters/options can be replaced or removed. +Numeric parameters/options can also be added to, subtracted +from, or multiplied. + +Tweaks are applied in order, so if there is more than one tweak +to the same parameter/option, the first tweak will be applied +first, then the second, etc. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +tweaks +------ + +Add a camera tweak. + +Arbitrary numbers of user defined tweaks may be +added as children of this plug via the user +interface, or via the CameraTweaks API in Python. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ClippingPlane.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ClippingPlane.md.txt new file mode 100644 index 000000000..1291970e9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ClippingPlane.md.txt @@ -0,0 +1,41 @@ +ClippingPlane +============= + +Creates an arbitrary clipping plane. This is like the near +and far clipping planes provided by the Camera node, but +can be positioned arbitrarily in space. All geometry on +the positive Z side of the plane is clipped away. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the clipping plane to be created. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ClosestPointSampler.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ClosestPointSampler.md.txt new file mode 100644 index 000000000..8fc5f7c61 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ClosestPointSampler.md.txt @@ -0,0 +1,85 @@ +ClosestPointSampler +=================== + +Samples primitive variables from the closest point on +the surface of a source primitive, and transfers the +values onto new primitive variable on the sampling objects. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to determine which objects in the +`in` scene will receive primitive variables sampled +from the `sourceLocation` in the `source` scene. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +source +------ + +The scene that contains the source primitive that +primitive variables will be sampled from. + +sourceLocation +-------------- + +The location of the primitive in the `source` scene that +will be sampled from. + +primitiveVariables +------------------ + +The names of the primitive variables to be sampled from the source +primitive. These should be separated by spaces and can use Gaffer's +standard wildcards to match multiple variables. The sampled variables +are prefixed with `prefix` before being added to the sampling object. + +prefix +------ + +A prefix applied to the names of the sampled primitive variables before +they are added to the sampling object. This is particularly useful when +sampling something like "P", and not not wanting to modify the true +vertex positions of the sampling primitive. + +status +------ + +The name of a boolean primitive variable created to record the success or +failure of the sampling operation. + +position +-------- + +The primitive variable that provides the positions +to find the closest point to. This defaults to "P", +the vertex position of the sampling object. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CollectPrimitiveVariables.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CollectPrimitiveVariables.md.txt new file mode 100644 index 000000000..6d21ecc4d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CollectPrimitiveVariables.md.txt @@ -0,0 +1,70 @@ +CollectPrimitiveVariables +========================= + +Make copies of target primitive variables with different suffixes, +where the new suffixed copies come from different Contexts. + +By combining this with a TimeWarp, you can create copies of +primitive variables at different times, useful for creating trail +effects. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +primitiveVariables +------------------ + +A match pattern for which primitive variables will be copied. + +suffixes +-------- + +The names of the new suffixes to add to copies of the target +primitive variables. The new suffixed variables will be +copied from different Contexts. + +suffixContextVariable +--------------------- + +The name of a Context Variable that is set to the current +suffix when evaluating the input object. This can be used +in upstream expressions and string substitutions to vary +the object while creating the primvar copies. + +For example, you could drive a TimeWarp with this +variable in order create copies of a primitive variable at +different times. + +requireVariation +---------------- + +If true, newly copied primitive variables will only be created +if the source object is differs in some of the suffix Contexts. +If the source object never changes, it will be passed through +unchanged ( since there is no variation, you can just use the +original primitive variables ). \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CollectScenes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CollectScenes.md.txt new file mode 100644 index 000000000..41e0625e0 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CollectScenes.md.txt @@ -0,0 +1,77 @@ +CollectScenes +============= + +Builds a scene by bundling multiple input scenes together, each +under their own root location. Instead of using an array of inputs +like the Group node, a single input is used instead, and a Context +Variable is provided so that a different hierarchy can be generated +under each root location. This is especially powerful for building +dynamic scenes where the number of inputs is not known prior to +building the node graph. + +Since merging globals from multiple scenes often doesn't make sense, +the output globals are taken directly from the scene corresponding to +`rootNames[0]`. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +rootNames +--------- + +The paths to the root locations to create in the output scene. +The input scene is copied underneath each of these root locations. + +Often the rootNames will be driven by an expression that generates +a dynamic number of root locations, perhaps by querying an asset +management system or listing cache files on disk. + +rootNameVariable +---------------- + +The name of a Context Variable that is set to the current +root location when evaluating the input scene. This can be used +in upstream expressions and string substitutions to generate +a different hierarchy under each root location. + +sourceRoot +---------- + +Specifies the root of the subtree to be copied from the input +scene. The default value causes the whole scene to be collected. + +The rootName variable may be used in expressions and string +substitutions for this plug, allowing different subtrees to be +collected for each root location in the output. + +> Tip : +> By specifying a leaf location as the root, it is possible to +> collect single objects from the input scene. + +mergeGlobals +------------ + +Controls how the output globals are generated from the collected +scenes. By default, the globals from the first scene alone +are passed through. When `mergeGlobals` is on, the globals from +all collected scenes are merged, with the last scene winning +in the case of multiple scenes specifying the same global. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CollectTransforms.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CollectTransforms.md.txt new file mode 100644 index 000000000..b9d83dfc8 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CollectTransforms.md.txt @@ -0,0 +1,80 @@ +CollectTransforms +================= + +Collects transforms in different Contexts, storing the results as attributes. The +names of the attributes being collected are provided as a Context Variable, +which can be used to vary the transforms that are collected. + +By combining this with a TimeWarp, you can create copies of +the transform at different times, useful for creating trail +effects. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +attributes +---------- + +The names of the new attributes to create. The new attributes will be +copied from the transform in different Contexts. + +attributeContextVariable +------------------------ + +The name of a Context Variable that is set to the current +attribute name when evaluating the transform. This can be used +in upstream expressions and string substitutions to vary +the transform. + +For example, you could drive a TimeWarp with this +variable in order create copies of the transform at +different times. + +space +----- + +If you select world space, the created attributes will contain a concatenation +of all transforms from the root of the scene to the current location. + +requireVariation +---------------- + +If true, new attributes will only be created +if the transform differs in some of the Contexts. +If the transform never changes, no new attributes will be created +( you can just use the transform instead of accessing the new attributes ). + +transforms +---------- + +This hidden plug is a CompoundObject that contains just the new +transform attributes. + +It is primarily used for internal computation, but there are +cases where you can improve performance by naughtily plugging +it into an expression. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CoordinateSystem.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CoordinateSystem.md.txt new file mode 100644 index 000000000..c91826428 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CoordinateSystem.md.txt @@ -0,0 +1,46 @@ +CoordinateSystem +================ + +Produces scenes containing a coordinate system. Coordinate systems +have two main uses : + +- To visualise the transform at a particular location. In this + respect they're similar to locators or nulls in other packages. +- To define a named coordinate system to be used in shaders at + render time. This is useful for defining projections or procedural + solid textures. The full path to the location of the coordinate + system should be used to refer to it within shaders. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CopyAttributes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CopyAttributes.md.txt new file mode 100644 index 000000000..8c24f2be9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CopyAttributes.md.txt @@ -0,0 +1,58 @@ +CopyAttributes +============== + +Copies attributes from a source scene, adding them to the attributes +of the main input scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +source +------ + +The scene from which the attributes are copied. + +attributes +---------- + +The names of the attributes to be copied. These should be +separated by spaces and can use Gaffer's standard wildcards +to match multiple attributes. + +sourceLocation +-------------- + +The location in the source scene that attributes are copied from. +By default, attributes are copied from the location equivalent to the one +they are being copied to. + +deleteExisting +-------------- + +Deletes all attributes from the input scene before adding the copied +attributes. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CopyOptions.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CopyOptions.md.txt new file mode 100644 index 000000000..6edfa6455 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CopyOptions.md.txt @@ -0,0 +1,37 @@ +CopyOptions +=========== + +A node which copies options from a source scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +source +------ + +The source of the options to be copied. + +options +------- + +The names of the options to be copied. Names should be +separated by spaces and can use Gaffer's standard wildcards. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CopyPrimitiveVariables.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CopyPrimitiveVariables.md.txt new file mode 100644 index 000000000..90efc5cb5 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CopyPrimitiveVariables.md.txt @@ -0,0 +1,73 @@ +CopyPrimitiveVariables +====================== + +Copies primitive variables from a source scene, adding them to the objects +of the main input scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +source +------ + +The scene from which the primitive variables are copied. + +primitiveVariables +------------------ + +The names of the primitive variables to be copied. These should be +separated by spaces and can use Gaffer's standard wildcards +to match multiple variables. + +sourceLocation +-------------- + +The location in the source scene that primitive variables are copied from. +By default, variables are copied from the location equivalent to the one +they are being copied to. It is not an error if the location to be copied from +does not exist; instead, no variables are copied. + +prefix +------ + +A prefix applied to the names of the copied primitive variables. + +ignoreIncompatible +------------------ + +Causes the node to not error when attempting to copy primitive variables from +the source object that are not compatible with the destination object. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Cryptomatte.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Cryptomatte.md.txt new file mode 100644 index 000000000..96e66b0f3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Cryptomatte.md.txt @@ -0,0 +1,98 @@ +Cryptomatte +=========== + +Outputs a matte channel generated from IDs selected from Cryptomatte AOVs. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The resulting image. + +enabled +------- + +Turns the node on and off. + +in +-- + +The input image containing Cryptomatte image layers and optional metadata. + +layer +----- + +The name of the Cryptomatte layer to use. + +manifestSource +-------------- + +The source of the Cryptomatte manifest. + + - None: No manifest will be loaded. + - Metadata: From the first of the following image metadata entries that + exist for the selected Cryptomatte layer : + - `manifest` : The manifest data. + - `manif_file` : The name of a JSON manifest file stored in a + directory specified on the `manifestDirectory` plug. + - Sidecar File: From a JSON file specified on the `sidecarFile` plug. + +manifestDirectory +----------------- + +A directory of JSON files containing Cryptomatte manifests. + +If a `manif_file` metadata entry exists for the selected Cryptomatte +layer, it will be appended to this directory. The manifest is read from +the file at the resulting path. + +sidecarFile +----------- + +A JSON file containing a Cryptomatte manifest. + +File sequences with arbitrary padding may be specified using the '#' character +as a placeholder for the frame numbers. + +**Supported file extensions** : json + +outputChannel +------------- + +The name of the output channel containing the extracted matte. + +matteNames +---------- + +The list of names to be extracted as a matte. + +Names are matched against entries in the Cryptomatte manifest and +Gaffer's standard wildcard characters can be used to match multiple +names. + + - /robot/*Arm matches /robot/leftArm, /robot/rightArm and + /robot/Arm. But does not match /robot/limbs/leftArm or + /robot/arm. + + - /.../house matches /house, /street/house and /city/street/house. + + - /robot[ABC] matches /robotA, /robotB and /robotC. But does not + match /robotD or /robota. + +Cryptomatte manifest entries containing '/' characters will be +treated as hierarchical paths and a matte will be extracted for any +entry that is matched or has an ancestor that is matched. + + - /robot extracts mattes for /robot, /robot/leftArm and + /robot/rightArm. But does not extract /robotA or /robotLeftArm. + +ID values can be specified directly by wrapping a float ID value in +angle brackets. + + - ``. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Cube.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Cube.md.txt new file mode 100644 index 000000000..a33569087 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Cube.md.txt @@ -0,0 +1,43 @@ +Cube +==== + +Produces scenes containing a cube. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +dimensions +---------- + +The size of the cube. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CurveSampler.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CurveSampler.md.txt new file mode 100644 index 000000000..99f358590 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CurveSampler.md.txt @@ -0,0 +1,96 @@ +CurveSampler +============ + +Samples primitive variables from parametric positions on some +source curves. The positions are specified using the index of +the curve and its `v` parameter. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to determine which objects in the +`in` scene will receive primitive variables sampled +from the `sourceLocation` in the `source` scene. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +source +------ + +The scene that contains the source primitive that +primitive variables will be sampled from. + +sourceLocation +-------------- + +The location of the primitive in the `source` scene that +will be sampled from. + +primitiveVariables +------------------ + +The names of the primitive variables to be sampled from the source +primitive. These should be separated by spaces and can use Gaffer's +standard wildcards to match multiple variables. The sampled variables +are prefixed with `prefix` before being added to the sampling object. + +prefix +------ + +A prefix applied to the names of the sampled primitive variables before +they are added to the sampling object. This is particularly useful when +sampling something like "P", and not not wanting to modify the true +vertex positions of the sampling primitive. + +status +------ + +The name of a boolean primitive variable created to record the success or +failure of the sampling operation. + +curveIndex +---------- + +The name of an integer primitive variable that specifies the index of +the curve to be sampled. If left unspecified, the first curve will be sampled. + +v +- + +The name of a float primitive variable that specifies the parametric +position on the curve to be sampled. A value of 0 corresponds to +the start of the curve, and a value of 1 corresponds to the end. +If left unspecified, a value of 0 is used. + +> Note : Values outside the `0-1` range are invalid and cannot +> be sampled. In this case, the `status` output primitive variable +> will contain `False` to indicate failure. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CustomAttributes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CustomAttributes.md.txt new file mode 100644 index 000000000..06714bc33 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CustomAttributes.md.txt @@ -0,0 +1,65 @@ +CustomAttributes +================ + +Applies arbitrary user-defined attributes to locations in the scene. Note +that for most common cases the StandardAttributes or renderer-specific +attributes nodes should be preferred, as they provide predefined sets of +attributes with customised user interfaces. The CustomAttributes node is +of most use when needing to set an attribute not supported by the +specialised nodes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +attributes +---------- + +The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python. + +global +------ + +Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter. + +extraAttributes +--------------- + +An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the `attributes` +CompoundDataPlug, with `IECoreScene.ShaderNetwork` being one example. + +If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CustomOptions.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CustomOptions.md.txt new file mode 100644 index 000000000..83ba9f6eb --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/CustomOptions.md.txt @@ -0,0 +1,59 @@ +CustomOptions +============= + +Applies arbitrary user-defined options to the root of the scene. Note +that for most common cases the StandardOptions or renderer-specific options +nodes should be preferred, as they provide predefined sets of options with customised +user interfaces. The CustomOptions node is of most use when needing to set am +option not supported by the specialised nodes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +options +------- + +The options to be applied - arbitrary numbers of user defined options may be added +as children of this plug via the user interface, or using the CompoundDataPlug API via +python. + +extraOptions +------------ + +An additional set of options to be added. Arbitrary numbers +of options may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an option. +This is convenient when using an expression to define the options +and the option count might be dynamic. It can also be used to +create options whose type cannot be handled by the `options` +CompoundDataPlug. + +If the same option is defined by both the `options` and the +`extraOptions` plugs, then the value from the `extraOptions` +is taken. + +prefix +------ + +A prefix applied to the name of each option. For example, a prefix +of "myCategory:" and a name of "test" will create an option named +"myCategory:test". \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteAttributes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteAttributes.md.txt new file mode 100644 index 000000000..08a049469 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteAttributes.md.txt @@ -0,0 +1,46 @@ +DeleteAttributes +================ + +Deletes attributes from locations within the scene. +Those locations will then inherit the attribute +values from ancestor locations instead, or will fall +back to using the default attribute value. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +names +----- + +The names of attributes to be removed. Names should be +separated by spaces and can use Gaffer's standard wildcards. + +invertNames +----------- + +When on, matching names are kept, and non-matching names are removed. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteCurves.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteCurves.md.txt new file mode 100644 index 000000000..4f73ec7ed --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteCurves.md.txt @@ -0,0 +1,56 @@ +DeleteCurves +============ + +Delete curves from a curves primitive using a primitive variable to choose the curves. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +curves +------ + +Uniformly interpolated int, float or bool primitive variable to choose which curves to delete. Note a non-zero value indicates the curve will be deleted. + +invert +------ + +Invert the condition used to delete curves. If the primvar is zero then the curve will be deleted. + +ignoreMissingVariable +--------------------- + +Causes the node to do nothing if the primitive variable doesn't exist on the curves, instead of erroring. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteFaces.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteFaces.md.txt new file mode 100644 index 000000000..fffb3504c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteFaces.md.txt @@ -0,0 +1,56 @@ +DeleteFaces +=========== + +Deletes faces from a mesh using a primitive variable to choose the faces. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +faces +----- + +Uniformly interpolated int, float or bool primitive variable to choose which faces to delete. Note a non-zero value indicates the face will be deleted. + +invert +------ + +Invert the condition used to delete faces. If the primvar is zero then the face will be deleted. + +ignoreMissingVariable +--------------------- + +Causes the node to do nothing if the primitive variable doesn't exist on the curves, instead of erroring. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteGlobals.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteGlobals.md.txt new file mode 100644 index 000000000..e57d16643 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteGlobals.md.txt @@ -0,0 +1,41 @@ +DeleteGlobals +============= + +A node which removes named items from the globals. +To delete outputs or options specifically, prefer +the DeleteOutputs and DeleteOptions nodes respectively, +as they provide improved interfaces for their specific +tasks. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +names +----- + +The names of globals to be removed. Names should be +separated by spaces and can use Gaffer's standard wildcards. + +invertNames +----------- + +When on, matching names are kept, and non-matching names are removed. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteObject.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteObject.md.txt new file mode 100644 index 000000000..cce674692 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteObject.md.txt @@ -0,0 +1,41 @@ +DeleteObject +============ + +Deletes the object at a location, keeping the location itself +intact. This is most useful when a location contains an unwanted object, +but the location also has children which need to be preserved. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +adjustBounds +------------ + +Computes new tightened bounding boxes taking into account +the removed objects. This can be an expensive operation - +turn on with care. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteOptions.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteOptions.md.txt new file mode 100644 index 000000000..396b3aab1 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteOptions.md.txt @@ -0,0 +1,37 @@ +DeleteOptions +============= + +A node which removes options from the globals. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +names +----- + +The names of options to be removed. Names should be +separated by spaces and can use Gaffer's standard wildcards. + +invertNames +----------- + +When on, matching names are kept, and non-matching names are removed. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteOutputs.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteOutputs.md.txt new file mode 100644 index 000000000..a18103485 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteOutputs.md.txt @@ -0,0 +1,37 @@ +DeleteOutputs +============= + +A node which removes outputs from the globals. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +names +----- + +The names of outputs to be removed. Names should be +separated by spaces and can use Gaffer's standard wildcards. + +invertNames +----------- + +When on, matching names are kept, and non-matching names are removed. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeletePoints.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeletePoints.md.txt new file mode 100644 index 000000000..d106534b0 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeletePoints.md.txt @@ -0,0 +1,56 @@ +DeletePoints +============ + +Deletes points from a points primitive using a primitive variable to choose the points. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +points +------ + +Vertex interpolated int, float or bool primitive variable to choose which points to delete. Note a non-zero value indicates the point will be deleted. + +invert +------ + +Invert the condition used to delete points. If the primvar is zero then the point will be deleted. + +ignoreMissingVariable +--------------------- + +Causes the node to do nothing if the primitive variable doesn't exist on the points, instead of erroring. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeletePrimitiveVariables.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeletePrimitiveVariables.md.txt new file mode 100644 index 000000000..35df7550a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeletePrimitiveVariables.md.txt @@ -0,0 +1,47 @@ +DeletePrimitiveVariables +======================== + +Deletes primitive variables from objects. The primitive +variables to be deleted are chosen based on name. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +names +----- + +The names of the primitive variables to be affected. +Names should be separated by spaces, and Gaffer's +standard wildcard characters may be used. + +invertNames +----------- + +When on, the primitive variables matched by names +are unaffected, and the non-matching primitive +variables are affected instead. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteRenderPasses.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteRenderPasses.md.txt new file mode 100644 index 000000000..ceddc41ef --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteRenderPasses.md.txt @@ -0,0 +1,41 @@ +DeleteRenderPasses +================== + +Deletes render passes from the scene globals. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +mode +---- + +Defines how the names listed in the `names` plug +are treated. Delete mode deletes the listed names. +Keep mode keeps the listed names, deleting all others. + +names +----- + +The names of render passes to be deleted (or kept +if the mode is set to Keep). Names should be separated +by spaces and may contain any of Gaffer's standard +wildcards. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteSets.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteSets.md.txt new file mode 100644 index 000000000..8c897cb64 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/DeleteSets.md.txt @@ -0,0 +1,36 @@ +DeleteSets +========== + +A node which removes object sets. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +names +----- + +Space separated list of set names to be removed. + +invertNames +----------- + +When on, matching names are kept, and non-matching names are removed. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Duplicate.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Duplicate.md.txt new file mode 100644 index 000000000..743a9efea --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Duplicate.md.txt @@ -0,0 +1,76 @@ +Duplicate +========= + +Duplicates a part of the scene. The duplicates +are parented alongside the original, and have +a transform applied to them. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +parent +------ + +For internal use only. + +destination +----------- + +The location where the copies will be placed in the output scene. +The default value places them alongside the original. + +target +------ + +The part of the scene to be duplicated. + +> Caution : Deprecated. Please connect a filter instead. + +copies +------ + +The number of copies to be made. + +name +---- + +The name given to the copies. If this +is left empty, the name from the target +will be used instead. The names will have +a numeric suffix applied to distinguish +between the different copies, unless only a +single copy is being made. Even in the case +of a single copy, a suffix will be applied +if necessary to keep the names unique. + +transform +--------- + +The transform to be applied to the copies. The transform +is applied iteratively, so the second copy is transformed +twice, the third copy is transformed three times and so on. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Encapsulate.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Encapsulate.md.txt new file mode 100644 index 000000000..661fd11c3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Encapsulate.md.txt @@ -0,0 +1,55 @@ +Encapsulate +=========== + +Encapsulates a portion of the scene by collapsing the hierarchy +and replacing it with a procedural which will be evaluated at +render time. + +This has two primary uses : + +- To optimise scene generation. Downstream nodes do not see + the encapsulated locations, so do not spend time processing + them. +- To enable high-level instancing of hierarchies. If multiple + copies of the encapsulated procedural are made by the + downstream network, then the procedural itself can be instanced + at render time. This works no matter how the copies are + made, but typically the Instancer or Duplicate nodes would + be the most common method of copying the procedural. + +> Note : Encapsulation currently has some limitations +> +> - Motion blur attributes are not inherited - only +> attributes within the encapsulated hierarchy are +> considered. +> - The `usd:purpose` attribute is not inherited - only +> attributes within the encapsulated hierarchy are +> considered. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ExistenceQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ExistenceQuery.md.txt new file mode 100644 index 000000000..b6419b6cb --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ExistenceQuery.md.txt @@ -0,0 +1,31 @@ +ExistenceQuery +============== + +Queries the existence of a specified location in a scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +scene +----- + +The scene to query. + +location +-------- + +The location to query for existence. + +exists +------ + +Outputs true if the specified location exists, otherwise false. + +closestAncestor +--------------- + +Path to the closest ancestor that exists. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ExternalProcedural.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ExternalProcedural.md.txt new file mode 100644 index 000000000..fac03c2a2 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ExternalProcedural.md.txt @@ -0,0 +1,53 @@ +ExternalProcedural +================== + +References external geometry procedurals and archives. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +fileName +-------- + +The path to the external procedural or archive. + +bound +----- + +The bounding box of the external procedural or archive. + +parameters +---------- + +An arbitrary set of parameters to be passed to the external procedural. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Filter.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Filter.md.txt new file mode 100644 index 000000000..b88bc0ab4 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Filter.md.txt @@ -0,0 +1,24 @@ +Filter +====== + +The base type for all nodes which are capable of choosing which +scene locations a FilteredSceneProcessor applies to. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +The on/off state of the filter. When it is off, the +filter does not match any locations. + +out +--- + +The result of the filter. This should be connected into +the "filter" plug of a FilteredSceneProcessor. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilterProcessor.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilterProcessor.md.txt new file mode 100644 index 000000000..5b775abf0 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilterProcessor.md.txt @@ -0,0 +1,28 @@ +FilterProcessor +=============== + +The base type for all filters which operate using one or more input filters. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +The on/off state of the filter. When it is off, the +result of the first input is passed through unchanged. + +out +--- + +The result of the filter. This should be connected into +the "filter" plug of a FilteredSceneProcessor. + +in +-- + +The input filter \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilterQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilterQuery.md.txt new file mode 100644 index 000000000..abfe96fbf --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilterQuery.md.txt @@ -0,0 +1,53 @@ +FilterQuery +=========== + +Queries a filter for a particular location in a scene +and outputs the results. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +scene +----- + +The scene to query the filter for. + +filter +------ + +The filter to query. + +location +-------- + +The location within the scene to query the filter at. + +> Note : If the location does not exist then the query will not be +> performed and all outputs will be set to their default values. + +exactMatch +---------- + +Outputs `True` if the filter matches the location, and `False` otherwise. + +descendantMatch +--------------- + +Outputs `True` if the filter matches a descendant of the location, +and `False` otherwise. + +ancestorMatch +------------- + +Outputs `True` if the filter matches an ancestor of the location, +and `False` otherwise. + +closestAncestor +--------------- + +Outputs the location of the first ancestor matched by the filter. +In the case of an exact match, this will be the location itself. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilterResults.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilterResults.md.txt new file mode 100644 index 000000000..f773e2cf4 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilterResults.md.txt @@ -0,0 +1,49 @@ +FilterResults +============= + +Searches an input scene for all locations matched +by a filter. + +> Caution : This can be an arbitrarily expensive operation +depending on the size of the input scene and the filter +used. In particular it should be noted that the usage of +`...` in a PathFilter will cause the entire input scene to +be searched even if there are no matches to be found. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +scene +----- + +The scene to be searched for matching +locations. + +filter +------ + +The filter to be used when searching for +matching locations. + +root +---- + +Isolates the search to this location and its descendants. + +out +--- + +The results of the search, as an `IECore::PathMatcher` object. This +is most useful for performing hierarchical queries and for iterating +through the paths without an expensive conversion to strings. + +outStrings +---------- + +The results of the search, converted to a list of strings. This is +useful for connecting directly to other plugs, such as +`Wedge.strings` or `CollectScenes.rootNames`. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilteredSceneProcessor.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilteredSceneProcessor.md.txt new file mode 100644 index 000000000..95eeb7dd9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FilteredSceneProcessor.md.txt @@ -0,0 +1,33 @@ +FilteredSceneProcessor +====================== + +The base type for scene processors which use a Filter node to control +which part of the scene is affected. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FramingConstraint.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FramingConstraint.md.txt new file mode 100644 index 000000000..7d8d28e31 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FramingConstraint.md.txt @@ -0,0 +1,82 @@ +FramingConstraint +================= + +Position a camera so that all of a target is visible. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +targetScene +----------- + +The scene containing the target location to which cameras are +pointed. If this is unconnected, the main input scene +is used instead. + +target +------ + +The scene location to which the cameras are pointed. + +ignoreMissingTarget +------------------- + +Causes the constraint to do nothing if the target location +doesn't exist in the scene, instead of erroring. + +boundMode +--------- + +How the camera frustum is fit to the target. `Sphere` approximates the bounding +box of the target with a sphere. `Box` uses the actual bounding box, which +allows framing closer, but means the camera will move closer or farther depending +on the exact alignment of the box to the view ( which makes for a bumpy looking +turntable ). + +padding +------- + +Add a border between the edge of the camera frustum and the target. +0.1 adds a 10% border. Using negative padding moves the camera closer. + +extendFarClip +------------- + +If the target is larger than the current clipping planes, increase +the far clipping plane to enclose it. + +useTargetFrame +-------------- + +Use a fixed frame to access the target at. This can be used to produce a consistent +framing if the target has high-frequency animation you want to ignore. + +targetFrame +----------- + +The frame used to access the target when `useTargetFrame` is set. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FreezeTransform.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FreezeTransform.md.txt new file mode 100644 index 000000000..3a5951db2 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/FreezeTransform.md.txt @@ -0,0 +1,36 @@ +FreezeTransform +=============== + +Resets the transforms at the specified scene locations, +baking the old transforms into the vertices of any child objects +so that they remain the same in world space. Essentially this +turns transforms in the hierarchy into rigid deformations of +the objects. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Grid.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Grid.md.txt new file mode 100644 index 000000000..32b70835f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Grid.md.txt @@ -0,0 +1,88 @@ +Grid +==== + +" +A grid. This is used to draw the grid in the viewer, +but is also included as a node in case it might be +useful, perhaps for placing a grid in renders done +using the OpenGLRender node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the grid. + +transform +--------- + +The transform applied to the grid. + +dimensions +---------- + +The size of the grid in the x and y +axes. Use the transform to rotate the +grid into a different plane. + +spacing +------- + +The size of the space between adjacent lines +in the grid. + +gridColor +--------- + +The colour of the lines forming the main part +of the grid. + +centerColor +----------- + +The colour of the two lines forming the central +cross of the grid. + +borderColor +----------- + +The colour of the lines forming the border +of the grid. + +gridPixelWidth +-------------- + +The width of the lines forming the main part +of the grid. This width applies only to the +OpenGL representation of the grid. + +centerPixelWidth +---------------- + +The width of the two lines forming the central +cross of the grid. This width applies only to the +OpenGL representation of the grid. + +borderPixelWidth +---------------- + +The width of the lines forming the border +of the grid. This width applies only to the +OpenGL representation of the grid. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Group.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Group.md.txt new file mode 100644 index 000000000..33baf0d4b --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Group.md.txt @@ -0,0 +1,47 @@ +Group +===== + +Groups together several input scenes under a new parent. +If the input scenes contain locations with identical names, +they are automatically renamed to make them unique in the +output scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scenes + +name +---- + +The name of the group to be created. All the input +scenes will be parented under this group. + +sets +---- + +A list of sets to include the group in. The +names should be separated by spaces. + +transform +--------- + +The transform for the group itself. This will be +inherited by the objects parented under it. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ImageScatter.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ImageScatter.md.txt new file mode 100644 index 000000000..635fe8955 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ImageScatter.md.txt @@ -0,0 +1,90 @@ +ImageScatter +============ + +Scatters points across an image, using pixel values to control the density +of the points. Arbitrary image channels may be converted to additional +primitive variables on the points, and point width may also be driven by an +image channel. + +> Note : Only the area of the `displayWindow` is considered. To +> include overscan pixels, use a Crop node to extend the display +> window. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +image +----- + +The image used to drive the point scattering process. + +view +---- + +The view within the image to be used by the scattering process. + +density +------- + +The overall density of the scattered points, defined in points +per pixel. + +densityChannel +-------------- + +The image channel used to modulate the density of the scattered points. +Black pixels will receive no points and white pixels will receive the +full amount as defined by the `density` plug. + +primitiveVariables +------------------ + +The image channels to be converted to primitive variables on +the points. The chosen channels are converted using the +following rules : + +- The main `RGB` channels are converted to a colour primitive variable called `Cs`. +- `.RGB` channels are converted to a colour primitive variable called ``. +- Other channels are converted to individual float primitive variables. + +width +----- + +The width of the points. If `widthChannel` is used as well, then this acts as +a multiplier on the channel values. + +widthChannel +------------ + +The channel used to provide per-point width values for the points. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ImageToPoints.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ImageToPoints.md.txt new file mode 100644 index 000000000..752e0e8f8 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ImageToPoints.md.txt @@ -0,0 +1,97 @@ +ImageToPoints +============= + +Converts an image into a points primitive, with a point for each pixel +in the image. Point positions may be defined either by the original +pixel coordinates or an image layer providing position data. +Arbitrary image channels may be converted to additional primitive +variables on the points, and transparent pixels may be omitted +from the conversion. + +> Note : Only pixels within the display window are converted. To +> include overscan pixels, use a Crop node to extend the display +> window. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +image +----- + +The image to be converted into a points primitive. + +view +---- + +The view within the image to be converted. + +position +-------- + +The image channels used to provide 3d positions for the points. +If `None`, the pixel's 2d position within the image is used instead. + +primitiveVariables +------------------ + +The image channels to be converted to primitive variables on +the points primitive. The chosen channels are converted using the +following rules : + +- The main `RGB` channels are converted to a colour primitive variable called `Cs`. +- `.RGB` channels are converted to a colour primitive variable called ``. +- Other channels are converted to individual float primitive variables. + +width +----- + +The width of the points. If `widthChannel` is used as well, then this acts as +a multiplier on the channel values. + +widthChannel +------------ + +The channel used to provide per-point width values for the points primitive. + +ignoreTransparent +----------------- + +Omits pixels from the points primitive if their alpha value is less than or equal +to `alphaThreshold`. + +alphaThreshold +-------------- + +Threshold used to exclude pixels from the points primitive when `ignoreTransparent` +is on. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Instancer.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Instancer.md.txt new file mode 100644 index 000000000..c0147f9ff --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Instancer.md.txt @@ -0,0 +1,259 @@ +Instancer +========= + +Copies from an input scene onto the vertices of a target +object, making one copy per vertex. Additional vertex primitive +variables on the target object can be used to choose between +multiple prototypes, to specify their orientation, scale +and attributes, and to modify the context in which the +prototypes are evaluated. + +> Note : The target object will be removed from the scene. + +> Tip : Primitive variables with `Varying` interpolation are +> supported wherever a variable with `Vertex` interpolation +> is expected, provided that the primitive variable has the +> same size as the equivalent `Vertex` variable. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +parent +------ + +The object on which to make the instances. The +position, orientation and scale of the instances +are taken from per-vertex primitive variables on +this object. This is ignored when a filter is +connected, in which case the filter specifies +multiple objects to make the instances from. + +name +---- + +The name of the location the instances will be +generated below. This will be parented directly +under the parent location. + +prototypes +---------- + +The scene containing the prototypes to be applied to +each vertex. Use the `prototypeMode` and associated +plugs to control the mapping between prototypes and +instances. + +Note that the prototypes are not limited to being a single +object - they can have arbitrary child hierarchies. + +prototypeMode +------------- + +The method used to define how the prototypes map +onto each instance. + +- In "Indexed (Roots List)" mode, the `prototypeIndex` + primitive variable must be an integer per-vertex. + Optionally, a path in the prototypes scene corresponding + to each index can be specified via the `prototypeRootsList` + plug. If no roots are specified, an index of 0 applies the + first location from the prototypes scene, an index of 1 + applies the second, and so on. + +- In "Indexed (Roots Variable)" mode, the `prototypeIndex` + primitive variable must be an integer per-vertex, and + the `prototypeRoots` primitive variable must be a separate + constant string array specifying a path in the prototypes + scene corresponding to each index. + +- In "Root per Vertex" mode, the `prototypeRoots` primitive + variable must be a string per-vertex which will be used to + specify a path in the prototypes scene for each instance. + + > Note : it is advisable to provide an indexed string + array in order to limit the number of unique prototypes. + +prototypeIndex +-------------- + +The name of a per-vertex integer primitive variable used +to determine which prototype is applied to the vertex. +This plug is used in "Indexed (Roots List)" mode as well +as "Indexed (Roots Variable)" mode. + +prototypeRoots +-------------- + +If `prototypeMode` is set to "Indexed (Roots Variable)", +then this should specify the name of a constant string +array primitive variable used to map between `prototypeIndex` +and paths in the prototypes scene. + +If `prototypeMode` is set to "Root per Vertex", then this +should specify the name of a per-vertex string primitive +variable used to specify a path in the prototypes scene +for each instance. + +This plug is not used in "Indexed (Roots List)" mode. + +prototypeRootsList +------------------ + +An explicit list of paths used to map between `prototypeIndex` +and paths in the prototypes scene. This plug is only used in +"Indexed (Roots List)" mode. + +id +-- + +The name of a per-vertex integer primitive variable +used to give each instance a unique identity. This +is useful when points are added and removed over time, +as is often the case in a particle simulation. The +id is used to name the instance in the output scene. + +omitDuplicateIds +---------------- + +When off, having the same ids on multiple points is considered +an error. Setting on will allow a render to proceed, with all +instances that share an id being omitted. + +position +-------- + +The name of the per-vertex primitive variable used +to specify the position of each instance. + +orientation +----------- + +The name of the per-vertex primitive variable used +to specify the orientation of each instance. This +must be provided as a quaternion : use an upstream +Orientation node to convert from other representations +before instancing. + +scale +----- + +The name of the per-vertex primitive variable used +to specify the scale of each instance. Scale can be +provided as a float for uniform scaling, or as a vector +to define different scaling in each axis. + +attributes +---------- + +The names of per-vertex primitive variables to be +turned into per-instance attributes. Names should +be separated by spaces and can use Gaffer's +standard wildcards. + +attributePrefix +--------------- + +A prefix added to all per-instance attributes specified +via the "attributes" plug. + +encapsulateInstanceGroups +------------------------- + +Converts each group of instances into a capsule, which won't +be expanded until you Unencapsulate or render. When keeping +these locations encapsulated, downstream nodes can't see the +instance locations, which prevents editing but improves +performance. This option should be preferred to a downstream +Encapsulate node because it has the following benefits : + +- Substantially improved performance when the prototypes + define sets. +- Fewer unnecessary updates during interactive rendering. + +seedEnabled +----------- + +Creates a seed context variable based on a hash of the instance ID, which could come +from the primitive varable specified in the `id` plug or otherwise the point index. +This integer is available to the upstream prototypes network, and might typically +be used with a Random node to randomise properties of the prototype. + +seedVariable +------------ + +Name of the context variable to put the seed value in. + +seeds +----- + +The number of possible seed values. Increasing this allows for more different variations +to be driven by the seed, increasing the total number of variations required. + +seedPermutation +--------------- + +Changing the seedPermutation changes the mapping of ids to seeds. This results in a different +grouping of which instances end up with the same seed. + +rawSeed +------- + +Enable this in rare cases when it is required to pass through every single id directly into the seed +context variable. This is very expensive, because every single instance will need a separate +context, but is sometimes useful, and may be an acceptable cost if there isn't a huge number of +total instances. + +contextVariables +---------------- + +Specifies context variables to be created from primitive variables. These variables are +available to upstream prototypes network, allowing the prototypes scene to be generated +differently depending on the source point. Supports quantization to avoid re-evaluating the +prototypes scene too many times. + +timeOffset +---------- + +Modify the current time when evaluating the prototypes network, by adding a primvar. + +variations +---------- + +This special output plug returns an CompoundData dictionary with counts about how many +variations are being created. For each context variable variable being set ( including +"frame" when using Time Offset ), there is an entry with the name of the context variable, +with an IntData containing the number of unique values of that context variable. There is +also an entry for "", with an IntData for the total number of unique contexts, considering +all the context variables being created. + +Extracting the dictionary values and displaying them to users is handled by _VariationsPlugValueWidget. + +This information is important to display to users because varying the context requires +extra evaluations of the `prototypes` scene, and can dramatically increase the cost of the Instancer. + +Note that variations are measured across all locations in the scene where the instancer is filtered. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/InteractiveRender.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/InteractiveRender.md.txt new file mode 100644 index 000000000..fef7019c8 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/InteractiveRender.md.txt @@ -0,0 +1,48 @@ +InteractiveRender +================= + +Performs interactive renders, updating the render on the fly +whenever the input scene changes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +in +-- + +The scene to be rendered. + +renderer +-------- + +The renderer to use. Default mode uses the `render:defaultRenderer` option from +the input scene globals to choose the renderer. This can be authored using +the StandardOptions node. + +> Note : Changing renderer currently requires that the current render is +> manually stopped and restarted. + +state +----- + +Turns the rendering on and off, or pauses it. + +out +--- + +A direct pass-through of the input scene. + +resolvedRenderer +---------------- + +The renderer that will be used, accounting for the value of the +`render:defaultRenderer` option if `renderer` is set to "Default". + +messages +-------- + +Messages from the render process. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Isolate.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Isolate.md.txt new file mode 100644 index 000000000..6bd75c3e6 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Isolate.md.txt @@ -0,0 +1,73 @@ +Isolate +======= + +Isolates objects by removing paths not matching a filter from the scene. + +> Caution : The Isolate node does not work well with the `...` wildcard in +> PathFilters. Because of the way Gaffer generates scenes progressively +> from the root, the Isolate node needs to know if the filter matches any +> descendants (children, grandchildren etc) of the current location; if there +> are any matches then the current location is kept, otherwise it is removed. +> When faced with `...`, the Isolate node assumes that there will always be a +> descendant match because `...` matches anything. This can cause it to keep +> locations where in fact there may be no true descendant match. The only +> alternative would be to search the scene recursively looking for a true +> match, but this would defeat the goal of lazy evaluation and could cause +> poor performance. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +from +---- + +The ancestor to isolate the objects from. Only locations below +this will be removed. + +keepLights +---------- + +Keeps all lights and light filters, regardless of other settings. +This is useful when isolating an asset but wanting to render it +using a light rig located elsewhere in the scene. + +keepCameras +----------- + +Keeps all cameras, regardless of other settings. This is +useful when isolating an asset but wanting to render it +through a camera located elsewhere in the scene. + +adjustBounds +------------ + +By default, the bounding boxes of ancestor locations are +automatically updated when children are removed. This can +be turned off if necessary to get improved performance - in +this case the bounding boxes will still wholly contain the +contents at each location, but may be bigger than necessary. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/LightToCamera.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/LightToCamera.md.txt new file mode 100644 index 000000000..6579dff52 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/LightToCamera.md.txt @@ -0,0 +1,84 @@ +LightToCamera +============= + +Converts lights into cameras. Spotlights are converted to a perspective +camera with the field of view matching the cone angle, and distant lights are +converted to an orthographic camera. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +Specifies which lights to convert. + +filmFit +------- + +How the aperture gate (the frame defined by the aperture) will +fit into the resolution gate (the framed defined by the data +window). Fitting is applied only if the respective aspect +ratios of the aperture and the resolution are different. The +following fitting modes are available: + +- _Horizontal:_ The aperture gate will fit horizontally between +the left/right edges of the resolution gate, while preserving +its aspect ratio. If the aperture's aspect ratio is larger than +the resolution's, the top/bottom edges of the aperture will be +cropped. If it's smaller, then the top/bottom edges will +capture extra vertical scene content. +- _Vertical:_ The aperture gate will fit vertically between the +top/bottom edges of the resolution gate, while preserving its +aspect ratio. If the aperture's aspect ratio is larger than the +resolution's, the left/right edges of the aperture will be +cropped. If it's smaller, then the left/right edges will +capture more horizontal scene content. +- _Fit_: The aperture gate will fit horizontally (like +_Horizontal_ mode) or vertically (like _Vertical_ mode) inside +the resolution gate to avoid cropping the aperture, while +preserving its aspect ratio. If the two gates' aspect ratios +differ, the aperture will capture extra horizontal or vertical +scene content. +- _Fill:_ The aperture gate will fill the resolution gate such +that none of the aperture captures extra scene content, while +preserving its aspect ratio. In other words, it will make the +opposite choice of the _Fit_ mode. If the two gates' aspect +ratios differ, the aperture will be horizontally or vertically +cropped. +- _Distort:_ The aperture gate will match the size of the +resolution gate. If their aspect ratios differ, the resulting +image will appear vertically or horizontally stretched or +squeezed. + +distantAperture +--------------- + +The orthographic aperture used when converting distant lights +( which are theoretically infinite in extent ) + +clippingPlanes +-------------- + +Clipping planes for the created cameras. When creating a perspective camera, a near clip +<= 0 is invalid, and will be replaced with 0.01. Also, certain lights only start casting +light at some distance - if near clip is less than this, it will be increased. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/LocaliseAttributes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/LocaliseAttributes.md.txt new file mode 100644 index 000000000..51cad65ac --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/LocaliseAttributes.md.txt @@ -0,0 +1,39 @@ +LocaliseAttributes +================== + +Copies inherited attributes into local attributes. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +attributes +---------- + +The names of the attributes to localise. These should be +separated by spaces and can use Gaffer's standard wildcards +to match multiple attributes. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MapOffset.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MapOffset.md.txt new file mode 100644 index 000000000..58b3e58a0 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MapOffset.md.txt @@ -0,0 +1,51 @@ +MapOffset +========= + +Adds an offset to object texture coordinates. This provides a convenient way of +looking at specific texture UDIMs. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +offset +------ + +An offset added to the texture coordinates. Note that moving the +texture coordinates in the positive direction will move the texture +in the negative direction. + +udim +---- + +A specific UDIM to offset the texture coordinates to. The UDIM is +converted to an offset which is added to the offset above. + +uvSet +----- + +The name of the primitive variable holding the UV coordinates. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MapProjection.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MapProjection.md.txt new file mode 100644 index 000000000..6f4f05d16 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MapProjection.md.txt @@ -0,0 +1,52 @@ +MapProjection +============= + +Applies texture coordinates to meshes via a camera projection. +In Gaffer, texture coordinates (commonly referred to as UVs) +are represented as primitive variables. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +camera +------ + +The location of the camera to use for the projection. + +position +-------- + +The primitive variable that provides the position to be +used in the projection. + +uvSet +----- + +The name of the primitive variable used to store the +projected UV coordinates. This may be changed to store +multiple sets of UVs on a single mesh. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MergeScenes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MergeScenes.md.txt new file mode 100644 index 000000000..5e1a448d1 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MergeScenes.md.txt @@ -0,0 +1,82 @@ +MergeScenes +=========== + +Merges multiple input scenes into a single output scene. +Merging is performed left to right, starting with `in[0]`. + +By default, when more than one input contains the same +scene location, the location's properties from the leftmost +input are kept. In this mode, only _new_ locations are merged +in from the additional inputs. Optionally, the properties +can be replaced by or merged with the properties of the +subsequent inputs. + +Sets are always merged from all inputs. Where multiple inputs +have sets with the same name, the sets are merged into a union. + +> Caution : When `transformMode` and/or `objectMode` is not `Keep`, +> bounding box computations have significant overhead. Consider +> not using these operations, or turning off `adjustBounds`. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scenes + +transformMode +------------- + +The method used to merge transforms when the same location +exists in multiple input scenes. Keep mode keeps the transform +from the first input, and Replace mode replaces it with the +transform of the last input. + +attributesMode +-------------- + +The method used to merge attributes when the same location +exists in multiple input scenes. Keep mode keeps the attributes +from the first input, Replace mode replaces them with the attributes +from the last input, and Merge mode merges all attributes together +from first to last. + +objectMode +---------- + +The method used to merge objects when the same location +exists in multiple input scenes. Keep mode keeps the object +from the first input, and Replace mode replaces it with the +object from the last input which has one. + +globalsMode +----------- + +The method used to merge scene globals. Keep mode keeps the globals +from the first input, Replace mode replaces them with the globals +from the last input, and Merge mode merges all globals together +from first to last. + +adjustBounds +------------ + +Adjusts bounding boxes to take account of the merging operation. + +> Caution : This has considerable overhead when the `objectsMode` and/or +> `transformsMode` is not `Keep`. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshDistortion.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshDistortion.md.txt new file mode 100644 index 000000000..09221d2f9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshDistortion.md.txt @@ -0,0 +1,68 @@ +MeshDistortion +============== + +Measures how much a mesh has been distorted from a reference shape. +The distortion is calculated by comparing edge lengths between the +reference and deformed shapes. Compressed areas have negative distortion +values, stretched areas have positive distortion values, and areas with +no deformation have distortion values of zero. The calculated distortion +is output as primitive variables on the mesh. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +position +-------- + +The name of the primitive variable which contains the deformed vertex +positions for the mesh. + +referencePosition +----------------- + +The name of the primitive variable which contains the undeformed vertex +positions for the mesh. + +uvSet +----- + +The name of the primitive variable which contains the UV set used to +calculate UV distortion. + +distortion +---------- + +The name of the primitive variable created to store the distortion +values. This will contain a float per vertex. + +uvDistortion +------------ + +The name of the primitive variable created to store the UV distortion +values. This will contain a V2f with separate distortion values for the +U and V directions. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshNormals.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshNormals.md.txt new file mode 100644 index 000000000..3ad431db8 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshNormals.md.txt @@ -0,0 +1,62 @@ +MeshNormals +=========== + +Creates a normal primitive variable on a mesh, using the positions of adjacent vertices. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +interpolation +------------- + +The interpolation of the normal primitive variable we are creating. Affects the shape of the resulting normals, because Uniform ( Per-Face ) normals are inherently faceted, whereas Vertex normals are always smooth. + +weighting +--------- + +How to weight the multiple faces that contribute to the normal of a vertex. +"Equal" averages all faces connected to the vertex - simple to compute, but low quality. +"Angle" gives good results for most meshes. +"Area" may give good results on hard edge models with tight chamfers and large flat faces. + +thresholdAngle +-------------- + +Used to decide whether edges are smooth or sharp when generating a normal primvar with FaceVarying +interpolation. FaceVertices with normals that differ by less than this angle will be averaged +together into a smooth normal. + +position +-------- + +The name of the position primitive variable that drives everything. + +normal +------ + +The name of the normal primitive variable to output. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshSegments.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshSegments.md.txt new file mode 100644 index 000000000..04de8cb98 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshSegments.md.txt @@ -0,0 +1,54 @@ +MeshSegments +============ + +Creates a uniform primitive variable of integer indices indicating which +connected segment each face belongs to. May create segments based on +what is connected in the mesh's topology, or based on an indexed +primitive variable ( for example, you may segment based on which faces +share UVs in order to segment into UV islands ). + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +connectivity +------------ + +The name of the primitive variable which will determine the segmentation. +You may specify an empty string, or any vertex primitive variable to use +the vertex topology to determine segments, or use an indexed face-varying +primitive variable - this will segment based on which face-vertices are +connected ( for example, using indexed UVs will produce UV islands ). +Uniform and constant primitive variables are also supported for consistency, +but they just output which faces have the same uniform value, or put all +faces in one segment. + +segment +------- + +The name of the uniform primitive variable which will be created to hold +the segment index for each face. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshSplit.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshSplit.md.txt new file mode 100644 index 000000000..c16740018 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshSplit.md.txt @@ -0,0 +1,64 @@ +MeshSplit +========= + +Splits a mesh into separate meshes for each unique value of a chosen +Uniform ( per-face ) primitive variable. The meshes will be created as children +of the original mesh, and the original mesh will be removed. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +parent +------ + +Legacy plug. Do not use. + +segment +------- + +The name of the primitive variable to split based on. Must be a +Uniform ( per-face ) primitive variable. A separate mesh will be +created for each unique value of this primitive variable. + +nameFromSegment +--------------- + +If true, the resulting meshes will be named based on the value of +the primitive variable chosen by `segment`. Requires that the chosen +primitive variable be a string. + +Otherwise, the resulting meshes will just be named based on an integer index. + +preciseBounds +------------- + +Create tightly fitted bounding boxes that exactly fit each split child mesh. +This requires visiting the vertices of the input mesh, so is more expensive. +If false, the bounding box of the original mesh is used for all new meshes +- this is technically correct, since they are all contained within this +bounding box, but isn't as informative. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshTangents.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshTangents.md.txt new file mode 100644 index 000000000..fdc974a78 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshTangents.md.txt @@ -0,0 +1,87 @@ +MeshTangents +============ + +Adds surface tangent primitive variables to the mesh based on either UV or topology information. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +mode +---- + +The style of how to calculate the Tangents. +(UV) calculates the tangents based on the gradient of the the corresponding UVs +(FirstEdge) defines the vector to the first neighbor as tangent and the bitangent orthogonal to tangent and normal +(TwoEdges) defines the vector between the first two neighbors as tangent and the bitangent orthogonal to tangent and normal +(PrimitiveCentroid) points the tangent towards the primitive centroid and the bitangent orthogonal to tangent and normal + +orthogonal +---------- + +Adjusts vTangent to be orthogonal to the uTangent. + +leftHanded +---------- + +Make the local coordinate frame left handed + +position +-------- + +Name of the primitive variable which contains the position data used to calculate tangents & binormals. +For example 'Pref' would compute tangents using the reference positions (if defined) + +normal +------ + +Name of the primitive variable which contains the normals used to calculate tangents & binormals. + +uvSet +----- + +Name of the UV set primitive variable used to calculate uTangent & vTangent. + +uTangent +-------- + +Name of the primitive variable which will contain the uTangent data. + +vTangent +-------- + +Name of the primitive variable which will contain the vTangent data. + +tangent +------- + +Name of the primitive variable which will contain the tangent data. + +biTangent +--------- + +Name of the primitive variable which will contain the biTangent data. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshTessellate.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshTessellate.md.txt new file mode 100644 index 000000000..01ba16385 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshTessellate.md.txt @@ -0,0 +1,108 @@ +MeshTessellate +============== + +Tessellates meshes according to their subdivision scheme, converting them into higher polygon meshes +which follow the limit surface - usually the smooth regular quads of a Catmull-Clark scheme. + +Can be used similiarly to "subdivide" or "smooth" features in other packages, with one distinction: +because it puts output points directly on the limit surface, using the tessellated result as a subdiv +surface again will result in the surface shrinking. Tessellation gives the most accurate possible result +for a given number of divisions in one step, but is not appropriate for doing repeated operations on +the same mesh. + +This node implements the tessellation schemes described by OpenSubdiv, as described here: +https://graphics.pixar.com/opensubdiv/docs/bfr_overview.html#bfr-navlink-tessellation +( Note that OpenSubdiv's "tessellation rate" parameter is the same as our "divisions" parameter, +except "tessellation rate" is one higher than "divisions. ) + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +divisions +--------- + +The number of vertices to insert in each edge during tessellation. + +calculateNormals +---------------- + +Calculate normals based on the limit surface. If there are existing normals, they will be +overwritten. If this is not set, existing normals will be interpolated like any other primvar. + +Note that we currently output Vertex normals, which makes sense for most subdivs, but does not +accurately capture infinitely sharp creases. + +scheme +------ + +Overrides the subdivision scheme that determines the shape of the surface. By default, the +subdivision scheme used comes from the mesh's interpolation property, which should be set with +a MeshType node, so it will apply to rendering the surface, and also this node. Overriding is +useful if a mesh has not been tagged correctly ( for example, if you want to force a mesh +to be smooth, you can set scheme to CatmullClark ). + +tessellatePolygons +------------------ + +Force bilinear tessellation of meshes without subdivision schemes. + +If there is no subdivision scheme stored on the mesh ( `interpolation = "linear"` ), and you +haven't overridden the scheme, we interpret that to mean no tessellation is required. Bilinear +tessellation won't change the shape of the surface, but sometimes forcing tessellation is useful +anyways ( for example, to apply deformation on a denser mesh ). + +interpolateBoundary +------------------- + +Specifies which parts of mesh boundaries are forced to exactly meet the boundary. +Without this forcing, a subdivision surface will naturally shrink back from the boundary as it +smooths out. + +Usually, you want to force both edges and corners to exactly meet the boundary. The main reasons to +change this are to use `Edge Only` if you want to produce curved edges from polygonal boundaries, +or to use `None` if you're doing something tricky with seamlessly splitting subdiv meshes by +providing the split meshes with a border of shared polygons in order to get continuous tangents. + +faceVaryingLinearInterpolation +------------------------------ + +Specifies where face varying primitive variables should use a simple linear interpolation instead +of being smoothed. + +In order for UVs to correspond to approximately the same texture areas as the original polygons, +usually you want to, at minimum, pin the outside corners. But pinning the entire boundary causes +some pretty weird discontinuities, so finding the right compromise is tricky. + +See the OpenSubdiv docs for explanation of the details of options like `Corners Plus 1`: +https://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#schemes-and-options + +triangleSubdivisionRule +----------------------- + +Option to use a non-standard `Smooth` subdivision rule that provides slightly better results +at triangular faces in Catmull-Clark meshes than the standard Catmull-Clark algorithm. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshToPoints.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshToPoints.md.txt new file mode 100644 index 000000000..ede670db9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshToPoints.md.txt @@ -0,0 +1,52 @@ +MeshToPoints +============ + +Converts mesh primitives into points primitives. + +Primitive variables with FaceVarying or Uniform +interpolation are discarded (because they have the +wrong size for the new primitive), but all other +primitive variables are preserved during conversion. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +type +---- + +The render type for the newly converted +points primitives. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshType.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshType.md.txt new file mode 100644 index 000000000..7739fe453 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MeshType.md.txt @@ -0,0 +1,91 @@ +MeshType +======== + +Changes between polygon and subdivision representations +for mesh objects, and optionally recalculates vertex +normals for polygon meshes. + +Note that currently the Gaffer viewport does not display +subdivision meshes with smoothing, so the results of using +this node will not be seen until a render is performed. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +meshType +-------- + +The interpolation type to apply to the mesh. + +calculatePolygonNormals +----------------------- + +Causes new vertex normals to be calculated for +polygon meshes. Has no effect for subdivision +surfaces, since those are naturally smooth and do +not require surface normals. Vertex normals are +represented as primitive variables named "N". + +overwriteExistingNormals +------------------------ + +By default, vertex normals will only be calculated for +polygon meshes which don't already have them. Turning +this on will force new normals to be calculated even for +meshes which had them already. + +interpolateBoundary +------------------- + +Specifies which parts of mesh boundaries are forced to exactly meet the boundary. +Without this forcing, a subdivision surface will naturally shrink back from the boundary as it +smooths out. + +Usually, you want to force both edges and corners to exactly meet the boundary. The main reasons to +change this are to use `Edge Only` if you want to produce curved edges from polygonal boundaries, +or to use `None` if you're doing something tricky with seamlessly splitting subdiv meshes by +providing the split meshes with a border of shared polygons in order to get continuous tangents. + +faceVaryingLinearInterpolation +------------------------------ + +Specifies where face varying primitive variables should use a simple linear interpolation instead +of being smoothed. + +In order for UVs to correspond to approximately the same texture areas as the original polygons, +usually you want to, at minimum, pin the outside corners. But pinning the entire boundary causes +some pretty weird discontinuities, so finding the right compromise is tricky. + +See the OpenSubdiv docs for explanation of the details of options like `Corners Plus 1`: +https://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#schemes-and-options + +triangleSubdivisionRule +----------------------- + +Option to use a non-standard `Smooth` subdivision rule that provides slightly better results +at triangular faces in Catmull-Clark meshes than the standard Catmull-Clark algorithm. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MotionPath.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MotionPath.md.txt new file mode 100644 index 000000000..d86293cc9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/MotionPath.md.txt @@ -0,0 +1,97 @@ +MotionPath +========== + +Creates a motion path curve over the specified frame range for each filtered location. +Note the output scene will be isolated to the matching locations only. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +start +----- + +The first frame of motion tracking can be specified relative to the current frame or as an absolute value. + +start.mode +---------- + +Controls whether `start.frame` is relative to the current frame or an absolute value. + +start.frame +----------- + +The first frame of motion tracking. + +end +--- + +The last frame of motion tracking can be specified relative to the current frame or as an absolute value. + +end.mode +-------- + +Controls whether `end.frame` is relative to the current frame or an absolute value. + +end.frame +--------- + +The last frame of motion tracking. + +samplingMode +------------ + +Use "Fixed" mode for a curve with a constant vertex count. + +Use "Variable" mode for a curve sampled at regular `step` intervals. + +> Note : This curve may have a changing vertex count over a frame range. + +> Caution : In "Variable" mode it may not be possible to render with +deformation blur enabled. Be sure to disable it via `StandardAttributes` +if you want to render a variable sampled curve. + +step +---- + +The sampling rate between `start.frame` and `end.frame`. + +> Note : `start.frame` and `end.frame` will always be sampled +even if the `step` does not exactly fit the range. + +> Caution : With a small `step` size it may not be possible to render +with deformation blur enabled. + +samples +------- + +The exact number of samples (including `start.frame` and `end.frame`) when using a "Fixed" `samplingMode`. + +adjustBounds +------------ + +Opt in or out of bounds calculations. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ObjectToScene.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ObjectToScene.md.txt new file mode 100644 index 000000000..2d6380cc1 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ObjectToScene.md.txt @@ -0,0 +1,46 @@ +ObjectToScene +============= + +Converts objects to be used with the nodes in the +GafferScene module. Typically these objects would +come from a GafferCortex OpHolder node or ObjectReader +node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +object +------ + +The object to be placed in the output scene. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OpenGLAttributes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OpenGLAttributes.md.txt new file mode 100644 index 000000000..30bed7ac9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OpenGLAttributes.md.txt @@ -0,0 +1,204 @@ +OpenGLAttributes +================ + +Applies attributes to modify the appearance of objects in +the viewport and in renders done by the OpenGLRender node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +attributes +---------- + +The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python. + +attributes.primitiveSolid +------------------------- + +Whether or not the object is rendered solid, in which +case the assigned GLSL shader will be used to perform +the shading. + +attributes.primitiveWireframe +----------------------------- + +Whether or not the object is rendered as a wireframe. +Use the primitiveWireframeColor and primitiveWireframeWidth +plugs for finer control of the wireframe appearance. + +attributes.primitiveWireframeColor +---------------------------------- + +The colour to use for the wireframe rendering. Only +meaningful if wireframe rendering is turned on. + +attributes.primitiveWireframeWidth +---------------------------------- + +The width in pixels of the wireframe rendering. Only +meaningful if wireframe rendering is turned on. + +attributes.primitiveOutline +--------------------------- + +Whether or not an outline is drawn around the object. +Use the primitiveOutlineColor and primitiveOutlineWidth +plugs for finer control of the outline. + +attributes.primitiveOutlineColor +-------------------------------- + +The colour to use for the outline. Only +meaningful if outline rendering is turned on. + +attributes.primitiveOutlineWidth +-------------------------------- + +The width in pixels of the outline. Only +meaningful if outline rendering is turned on. + +attributes.primitivePoint +------------------------- + +Whether or not the individual points (vertices) of the +object are drawn. Use the primitivePointColor and primitivePointWidth +plugs for finer control of the point rendering. + +attributes.primitivePointColor +------------------------------ + +The colour to use for the point rendering. Only +meaningful if point rendering is turned on. + +attributes.primitivePointWidth +------------------------------ + +The width in pixels of the points. Only +meaningful if point rendering is turned on. + +attributes.primitiveBound +------------------------- + +Whether or not the bounding box of the object is drawn. +This is in addition to any drawing of unexpanded bounding +boxes that the viewer performs. Use the primitiveBoundColor +plug to change the colour of the bounding box. + +attributes.primitiveBoundColor +------------------------------ + +The colour to use for the bounding box rendering. Only +meaningful if bounding box rendering is turned on. + +attributes.pointsPrimitiveUseGLPoints +------------------------------------- + +Points primitives have a render type (set by the PointsType +node) which allows them to be rendered as particles, disks, +spheres etc. This attribute overrides that type for OpenGL +only, allowing a much faster rendering as raw OpenGL points. + +attributes.pointsPrimitiveGLPointWidth +-------------------------------------- + +The width in pixels of the GL points rendered when +the pointsPrimitiveUseGLPoints plug has overridden +the point type. + +attributes.curvesPrimitiveUseGLLines +------------------------------------ + +Curves primitives are typically rendered as ribbons +and as such have an associated width in object space. +This attribute overrides that for OpenGL only, allowing +a much faster rendering as raw OpenGL lines. + +attributes.curvesPrimitiveGLLineWidth +------------------------------------- + +The width in pixels of the GL lines rendered when +the curvesPrimitiveUseGLLines plug has overridden +the drawing to use lines. + +attributes.curvesPrimitiveIgnoreBasis +------------------------------------- + +Turns off interpolation for cubic curves, just +rendering straight lines between the vertices +instead. + +attributes.visualiserScale +-------------------------- + +Scales non-geometric visualisations in the viewport to make them +easier to work with. + +attributes.visualiserMaxTextureResolution +----------------------------------------- + +Visualisers that load textures will respect this setting to +limit their resolution. + +attributes.visualiserFrustum +---------------------------- + +Controls whether applicable locations draw a representation of +their projection or frustum. + +attributes.lightDrawingMode +--------------------------- + +Controls how lights are presented in the Viewer. + +attributes.lightFrustumScale +---------------------------- + +Allows light projections to be scaled to better suit the scene. + +global +------ + +Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter. + +extraAttributes +--------------- + +An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the `attributes` +CompoundDataPlug, with `IECoreScene.ShaderNetwork` being one example. + +If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OpenGLRender.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OpenGLRender.md.txt new file mode 100644 index 000000000..a33f8b939 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OpenGLRender.md.txt @@ -0,0 +1,104 @@ +OpenGLRender +============ + +Renders scenes using the same OpenGL engine as is used in the viewer. +Use the OpenGLShader and OpenGLAttributes nodes to specify the appearance +of objects within the render. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +in +-- + +The scene to be rendered. + +mode +---- + +The type of render to perform. + +fileName +-------- + +The name of the file to be generated when in scene description mode. + +out +--- + +A direct pass-through of the input scene. + +resolvedRenderer +---------------- + +The renderer that will be used, accounting for the value of the +`render:defaultRenderer` option if `renderer` is set to "Default". \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OpenGLShader.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OpenGLShader.md.txt new file mode 100644 index 000000000..c3b15c5f7 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OpenGLShader.md.txt @@ -0,0 +1,50 @@ +OpenGLShader +============ + +Loads GLSL shaders for use in the viewer and the OpenGLRender node. +GLSL shaders are loaded from *.frag and *.vert files in directories +specified by the IECOREGL_SHADER_PATHS environment variable. + +Use the ShaderAssignment node to assign shaders to objects in the +scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +type +---- + +The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +attributeSuffix +--------------- + +Suffix for the attribute used for shader assignment. + +parameters +---------- + +Where the parameters for the shader are represented. + +enabled +------- + +Turns the node on and off. + +out +--- + +The output from the shader. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OptionQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OptionQuery.md.txt new file mode 100644 index 000000000..b7ce393a2 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OptionQuery.md.txt @@ -0,0 +1,31 @@ +OptionQuery +=========== + +Queries global scene options, creating an output for each option. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +scene +----- + +The scene to query the options from. + +queries +------- + +The options to be queried - arbitrary numbers of options may be added +as children of this plug via the user interface, or via python. Each +child is a `NameValuePlug` whose `name` plug is the option to query, +and whose `value` plug is the default value to use if the option can +not be retrieved. + +out +--- + +The parent plug of the query outputs. The order of outputs corresponds +to the order of children of `queries`. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OptionTweaks.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OptionTweaks.md.txt new file mode 100644 index 000000000..8d58720a9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/OptionTweaks.md.txt @@ -0,0 +1,39 @@ +OptionTweaks +============ + +Makes modifications to options. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +ignoreMissing +------------- + +Ignores tweaks targeting missing options. When off, missing options +cause the node to error. + +tweaks +------ + +The tweaks to be made to the options. Arbitrary numbers of user defined +tweaks may be added as children of this plug via the user interface, or +using the OptionTweaks API via python. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Options.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Options.md.txt new file mode 100644 index 000000000..61bf41744 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Options.md.txt @@ -0,0 +1,48 @@ +Options +======= + +The base type for nodes that apply options to the scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +options +------- + +The options to be applied - arbitrary numbers of user defined options may be added +as children of this plug via the user interface, or using the CompoundDataPlug API via +python. + +extraOptions +------------ + +An additional set of options to be added. Arbitrary numbers +of options may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an option. +This is convenient when using an expression to define the options +and the option count might be dynamic. It can also be used to +create options whose type cannot be handled by the `options` +CompoundDataPlug. + +If the same option is defined by both the `options` and the +`extraOptions` plugs, then the value from the `extraOptions` +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Orientation.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Orientation.md.txt new file mode 100644 index 000000000..9a4e86fea --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Orientation.md.txt @@ -0,0 +1,208 @@ +Orientation +=========== + +Converts between different representations of orientation, stored as +primitive variables on an object. Supported representations include +euler angles, quaternions, axis-angle form, aim vectors and matrices. + +Typically used to prepare points for instancing, as the Instancer node +requires orientation to be provided as a quaternion, but it is often +more convenient to prepare orientations in another representation. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +inMode +------ + +The method used to define the input orientations. + +deleteInputs +------------ + +Deletes the input primitive variables, so that they are +not present on the output object. + +inEuler +------- + +Name of the primitive variable that defines the input orientation +as euler angles, measured in degrees. This variable should contain +V3fVectorData. + +inOrder +------- + +The rotation order of the input euler angles. + +inQuaternion +------------ + +Name of the primitive variable that defines the input orientation +as quaternions. This variable should contain QuatfVectorData. + +inAxis +------ + +Name of the primitive variable that defines the axis component of +the input orientations. This variable should contain V3fVectorData. + +inAngle +------- + +Name of the primitive variable that defines the angle component of +the input orientations. This variable should contain FloatVectorData. + +inXAxis +------- + +Name of the primitive variable that defines the direction in which the +X axis will be aimed. This variable should contain V3fVectorData. + +inYAxis +------- + +Name of the primitive variable that defines the direction in which the +Y axis will be aimed. This variable should contain V3fVectorData. + +inZAxis +------- + +Name of the primitive variable that defines the direction in which the +Z axis will be aimed. This variable should contain V3fVectorData. + +inMatrix +-------- + +Name of the primitive variable that defines the input orientations as +a matrix. This variable should contain M33fVectorData. + +randomEnabled +------------- + +Enables randomisation of the orientations. Randomisation +is applied as a pre-transform of the input orientation. + +randomAxis +---------- + +A reference axis which the randomisation is specified relative +to. Typically this would be the primary axis of the model being +instanced. + +randomSpread +------------ + +Applies a random rotation away from the axis, specified in +degrees. The maximum spread of 180 degrees gives a uniform +randomisation over all possible directions. + +randomTwist +----------- + +Applies a random rotation around the axis, specified in +degrees. + +randomSpace +----------- + +The space in which the randomisation is specified. This defines +how it is combined with the input orientations. + +Local +: The randomisation is specified in local space and + is therefore post-multiplied onto the input orientations. + When using the Instancer, this is equivalent to randomising + the prototypes before they are instanced. + +Parent +: The transformation is specified in parent space and + is therefore pre-multiplied onto the input orientations. + When using the Instancer, this is equivalent to randomising + the instances after they are positioned. + +outMode +------- + +The method used to define the output orientations. When +creating orientations for the Instancer, the Quaternion +mode should be used. + +outEuler +-------- + +Name of the primitive variable that will be created to store +the output orientations as euler angles, measured in degrees. + +outOrder +-------- + +The rotation order of the output euler angles. + +outQuaternion +------------- + +Name of the primitive variable that will be created to store +the output orientations as quaternions. + +outAxis +------- + +Name of the primitive variable that will be created to store +the axis component of the output orientation. + +outAngle +-------- + +Name of the primitive variable that will be created to store +the angle component of the output orientation. + +outXAxis +-------- + +Name of the primitive variable that will be created to store +the x-axis aim vector of the output orientation. + +outYAxis +-------- + +Name of the primitive variable that will be created to store +the y-axis aim vector of the output orientation. + +outZAxis +-------- + +Name of the primitive variable that will be created to store +the z-axis aim vector of the output orientation. + +outMatrix +--------- + +Name of the primitive variable that will be created to store +the output orientations as matrices. The matrices will be +stored as M33fVectorData. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Outputs.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Outputs.md.txt new file mode 100644 index 000000000..4b002dde3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Outputs.md.txt @@ -0,0 +1,35 @@ +Outputs +======= + +Defines the image outputs to be created by the renderer. Arbitrary +outputs can be defined within the UI and also via the +`Outputs::addOutput()` API. Commonly used outputs may also +be predefined at startup via a config file - see +$GAFFER_ROOT/startup/gui/outputs.py for an example. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +outputs +------- + +The outputs defined by this node. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Parameters.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Parameters.md.txt new file mode 100644 index 000000000..bcbd4d711 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Parameters.md.txt @@ -0,0 +1,40 @@ +Parameters +========== + +Modifies the parameters of cameras and procedurals. +Existing parameters can be tweaked and new parameters be added. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +parameters +---------- + +The parameters to be added - any number of arbitrary +parameters may be specified here using either the user +interface or the CompoundDataPlug API. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Parent.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Parent.md.txt new file mode 100644 index 000000000..009281284 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Parent.md.txt @@ -0,0 +1,65 @@ +Parent +====== + +Parents additional child hierarchies into the main scene hierarchy. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +parent +------ + +The location which the children are parented under. This is +ignored when a filter is connected, in which case the children +are parented under all the locations matched by the filter. + +destination +----------- + +The location where the children will be placed in the output scene. +The default is to place the children under the parent, but they may +be relocated anywhere while still inheriting the parent's transform. +This is particularly useful when parenting lights to geometry but +wanting to group them and control their visibility separately. + +When the destination is evaluated, the `${scene:path}` variable holds +the source location matched by the filter. This allows the children +to be placed relative to the "parent". For example, `${scene:path}/..` +will place the children alongside the "parent" rather than under it. + +children +-------- + +The child hierarchies to be parented. + +parentVariable +-------------- + +A context variable used to pass the location of the parent to the +upstream nodes connected into the `children` plug. This can be used +to procedurally vary the children at each different parent location. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ParentConstraint.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ParentConstraint.md.txt new file mode 100644 index 000000000..5194634c9 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ParentConstraint.md.txt @@ -0,0 +1,105 @@ +ParentConstraint +================ + +Constrains objects from one part of the scene hierarchy as if they were +children of another part of the hierarchy. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +targetScene +----------- + +The scene containing the target location to which objects are +constrained. If this is unconnected, the main input scene +is used instead. + +target +------ + +The scene location to which the objects are constrained. +The world space transform of this location forms the basis +of the constraint target, but is modified by the targetMode +and targetOffset values before the constraint is applied. + +ignoreMissingTarget +------------------- + +Causes the constraint to do nothing if the target location +doesn't exist in the scene, instead of erroring. + +targetMode +---------- + +The precise location of the target transform - this can be +derived from the origin, bounding box or from a specific primitive +uv coordinate or vertex id of the target location. + +targetUV +-------- + +UV coordinate used in "UV" target mode. +The node will error if the specified uv coordinate is out of range or does not map unambiguously +to a single position on the primitive's surface unless ignoreMissingTarget is true. + +targetVertex +------------ + +Vertex id used in "Vertex" target mode. +The node will error if the specified vertex id is out of range unless ignoreMissingTarget is true. +The node will error if the specified primitive does not have a set of uvs named "uv" with +FaceVarying or Vertex interpolation unless ignoreMissingTarget is true. The uvs will be used to +construct a local coordinate frame. + +targetOffset +------------ + +An offset applied to the target transform before the constraint +is applied. The offset is measured in the object space of the +target location unless the target mode is UV or Vertex in which case +the offset is measured relative to the local surface coordinate frame. + +keepReferencePosition +--------------------- + +Adjusts the constraint so that the original position of the object +at the `referenceFrame` is maintained. + +referenceFrame +-------------- + +The reference frame used by the `keepReferencePosition` mode. The constraint +is adjusted so that the original position at this frame is maintained. + +relativeTransform +----------------- + +Transforms the constrained object relative to the target location. + +> Note : This is ignored when `keepReferencePosition` is on. In this case it is easier +> to modify the reference position instead. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PathFilter.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PathFilter.md.txt new file mode 100644 index 000000000..75acdd8de --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PathFilter.md.txt @@ -0,0 +1,56 @@ +PathFilter +========== + +Chooses locations by matching them against a list of +paths. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +The on/off state of the filter. When it is off, the +filter does not match any locations. + +out +--- + +The result of the filter. This should be connected into +the "filter" plug of a FilteredSceneProcessor. + +paths +----- + +The list of paths to the locations to be matched by the filter. +A path is formed by a sequence of names separated by `/`, and +specifies the hierarchical position of a location within the scene. +Paths may use Gaffer's standard wildcard characters to match +multiple locations. + +The `*` wildcard matches any sequence of characters within +an individual name, but never matches across names separated +by a `/`. + + - `/robot/*Arm` matches `/robot/leftArm`, `/robot/rightArm` and + `/robot/Arm`. But does not match `/robot/limbs/leftArm` or + `/robot/arm`. + +The `...` wildcard matches any sequence of names, and can be +used to match locations no matter where they are parented in +the hierarchy. + + - `/.../house` matches `/house`, `/street/house` and `/city/street/house`. + +roots +----- + +An optional filter input used to provide multiple root locations +which the `paths` are relative to. This can be useful when working +on a single asset in isolation, and then placing it into multiple +locations within a layout. When no filter is connected, all `paths` +are treated as being relative to `/`, the true scene root. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Plane.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Plane.md.txt new file mode 100644 index 000000000..839894584 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Plane.md.txt @@ -0,0 +1,49 @@ +Plane +===== + +Produces scenes containing a plane. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +dimensions +---------- + +The size of the plane in the X and Y directions. + +divisions +--------- + +The number of subdivisions of the plane in the +X and Y directions. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PointConstraint.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PointConstraint.md.txt new file mode 100644 index 000000000..8fe5ddc0b --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PointConstraint.md.txt @@ -0,0 +1,122 @@ +PointConstraint +=============== + +Translates objects so that they are constrained to +the world space position of the target. Leaves the +scale and orientation of the object untouched. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +targetScene +----------- + +The scene containing the target location to which objects are +constrained. If this is unconnected, the main input scene +is used instead. + +target +------ + +The scene location to which the objects are constrained. +The world space transform of this location forms the basis +of the constraint target, but is modified by the targetMode +and targetOffset values before the constraint is applied. + +ignoreMissingTarget +------------------- + +Causes the constraint to do nothing if the target location +doesn't exist in the scene, instead of erroring. + +targetMode +---------- + +The precise location of the target transform - this can be +derived from the origin, bounding box or from a specific primitive +uv coordinate or vertex id of the target location. + +targetUV +-------- + +UV coordinate used in "UV" target mode. +The node will error if the specified uv coordinate is out of range or does not map unambiguously +to a single position on the primitive's surface unless ignoreMissingTarget is true. + +targetVertex +------------ + +Vertex id used in "Vertex" target mode. +The node will error if the specified vertex id is out of range unless ignoreMissingTarget is true. +The node will error if the specified primitive does not have a set of uvs named "uv" with +FaceVarying or Vertex interpolation unless ignoreMissingTarget is true. The uvs will be used to +construct a local coordinate frame. + +targetOffset +------------ + +An offset applied to the target transform before the constraint +is applied. The offset is measured in the object space of the +target location unless the target mode is UV or Vertex in which case +the offset is measured relative to the local surface coordinate frame. + +keepReferencePosition +--------------------- + +Adjusts the constraint so that the original position of the object +at the `referenceFrame` is maintained. + +referenceFrame +-------------- + +The reference frame used by the `keepReferencePosition` mode. The constraint +is adjusted so that the original position at this frame is maintained. + +xEnabled +-------- + +Enables the constraint in the world space x axis. + +yEnabled +-------- + +Enables the constraint in the world space y axis. + +zEnabled +-------- + +Enables the constraint in the world space z axis. + +offset +------ + +A world space translation offset applied on top +of the target position. + +> Note : This is ignored when `keepReferencePosition` is on. In this case it is easier +> to modify the reference position instead. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PointsType.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PointsType.md.txt new file mode 100644 index 000000000..7c34f7f7d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PointsType.md.txt @@ -0,0 +1,39 @@ +PointsType +========== + +Changes the render type for PointsPrimitive objects. +Depending on the renderer, points may be rendered as +particles, spheres, disks, patches or blobbies. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +type +---- + +The render type to assign. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PrimitiveVariableExists.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PrimitiveVariableExists.md.txt new file mode 100644 index 000000000..e515de4d2 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PrimitiveVariableExists.md.txt @@ -0,0 +1,27 @@ +PrimitiveVariableExists +======================= + +Returns true if the given primitive variable exists in the input scene +in the current scene path location. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +in +-- + +The scene to look for variables in. + +primitiveVariable +----------------- + +The name of the primitive vairable to check for. + +out +--- + +True if the given primitive variable exists. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PrimitiveVariableQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PrimitiveVariableQuery.md.txt new file mode 100644 index 000000000..8cbb38072 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PrimitiveVariableQuery.md.txt @@ -0,0 +1,39 @@ +PrimitiveVariableQuery +====================== + +Queries primitive variables at a scene location, creating an output for +each primitive variable. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +scene +----- + +The scene to query the primitive variable from. + +location +-------- + +The location within the scene to query the primitive variable at. +> Note : If the location does not exist then the query will not be +> performed and all outputs will be set to their default values. + +queries +------- + +The primitive variables to be queried - arbitrary numbers of primitive +variables may be added as children of this plug via the user interface, +or via python. Each child is a `NameValuePlug` whose `name` plug is the +name of the primitive variable to query, and whose `value` plug is the +default value to use if the primitive variable can not be retrieved. + +out +--- + +The parent plug of the query outputs. The order of outputs corresponds +to the order of children of `queries`. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PrimitiveVariables.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PrimitiveVariables.md.txt new file mode 100644 index 000000000..40d92f62f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/PrimitiveVariables.md.txt @@ -0,0 +1,42 @@ +PrimitiveVariables +================== + +Adds arbitrary primitive variables to objects. Currently only primitive +variables with constant interpolation are supported - see the OSLObject +node for a means of creating variables with vertex interpolation. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +primitiveVariables +------------------ + +The primitive variables to be applied - arbitrary numbers of user +defined primitive variables may be added as children of this plug +via the user interface, or using the CompoundDataPlug API via +python. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Prune.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Prune.md.txt new file mode 100644 index 000000000..4e5f9690b --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Prune.md.txt @@ -0,0 +1,40 @@ +Prune +===== + +A node for removing whole branches from the scene hierarchy. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +Filter to specify the branches to prune. The specified +locations and all locations below them will be removed from +the scene. + +adjustBounds +------------ + +Computes new tightened bounding boxes taking into account +the removed locations. This can be an expensive operation - +turn on with care. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Rename.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Rename.md.txt new file mode 100644 index 000000000..6fcc53354 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Rename.md.txt @@ -0,0 +1,127 @@ +Rename +====== + +Renames locations in the scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +name +---- + +The new name for the location. If this name is non-empty then it +takes precedence, and all other renaming operations are ignored. + +> Tip : The `${scene:path}` context variable contains the +> location's original name, and can be used in a Spreadsheet's +> `selector` to allow each row to define the new name for a +> particular location. + +deletePrefix +------------ + +A prefix to remove from the start of the original name. Prefixes are removed +before the suffixes and before the find and replace operation is +performed. + +deleteSuffix +------------ + +A suffix to remove from the start of the original name. Suffixes are removed +before the find and replace operation is performed. + +find +---- + +A string to search for within the original name. All occurrences of this string +will be replaced with the value of `replace`. When `useRegularExpressions` +is on, the search string is treated as a regular expression, with the +following syntax : + +Matching +-------- + +- `.` : Matches any character. +- `[aef]` : Matches any character in the set. +- `[^aef]` : Matches any character not in the set. +- `[a-z]` : Matches any character in the specified range. +- `[[:digit:]]` : Matches any numeric digit. +- `[[:space:]]` : Matches any whitespace character. + +Repetition +---------- + +- `*` : Matches the preceding pattern any number of times (including none). +- `+` : Matches the preceding pattern 1 or more times. +- `{N}` : Matches the preceding pattern N times. +- `{M,N}` : Matches the preceding pattern between M and N times. + +Alternatives +------------ + +- `A|B` : Matches either pattern A or pattern B. + +Captures +-------- + +- `()` : Captures the subgroup of the pattern within the brackets, +allowing it to be referenced by `{}` in the `replace` string. + +replace +------- + +The replacement for strings matched by the `find` plug. +When `useRegularExpressions` is on, this can refer to +captured patterns using Python's standard string formatting +syntax : + +- `{0}` : The entire string matched by the regular expresion. +- `{1}` : The 1st subgroup captured within `()` brackets by the `find` string. +- `{N}` : The Nth subgroup captured within `()` brackets by the `find` string. +- `{1:0>4}` : The 1st subgroup, aligned to the right and padded to width 4. + +useRegularExpressions +--------------------- + +When on, the `find` string is treated as a regular expression, +allowing it to perform complex pattern matching and to capture sections +of the match to be referenced by the `replace` string. + +addPrefix +--------- + +A string to add at the start of the name. Prefixes are +added last, after the find and replace operation has +been performed. + +addSuffix +--------- + +A string to add at the end of the name. Suffixes are +added last, after the find and replace operation has +been performed. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Render.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Render.md.txt new file mode 100644 index 000000000..33d18475c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Render.md.txt @@ -0,0 +1,112 @@ +Render +====== + +Performs offline batch rendering using any of the +available renderer backends, or optionally writes +scene descriptions to disk for later rendering via +a SystemCommand node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +in +-- + +The scene to be rendered. + +renderer +-------- + +The renderer to use. Default mode uses the `render:defaultRenderer` option from +the input scene globals to choose the renderer. This can be authored using +the StandardOptions node. + +mode +---- + +The type of render to perform. + +fileName +-------- + +The name of the file to be generated when in scene description mode. + +out +--- + +A direct pass-through of the input scene. + +resolvedRenderer +---------------- + +The renderer that will be used, accounting for the value of the +`render:defaultRenderer` option if `renderer` is set to "Default". \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPassShader.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPassShader.md.txt new file mode 100644 index 000000000..f07a1c26b --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPassShader.md.txt @@ -0,0 +1,44 @@ +RenderPassShader +================ + +Sets up a global shader in the options to replace a shader used by a render pass type. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +shader +------ + +The shader to be assigned. This will be stored as an +option within the scene globals. + +renderer +-------- + +The renderer the shader should affect. Shaders assigned to a specific +renderer will take precedence over shaders assigned to "All" when +rendering with that renderer. + +usage +----- + +How the shader is to be used. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPassTypeAdaptor.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPassTypeAdaptor.md.txt new file mode 100644 index 000000000..f126d5651 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPassTypeAdaptor.md.txt @@ -0,0 +1,38 @@ +RenderPassTypeAdaptor +===================== + +Adapts render pass types to a client and renderer. The behaviour of +how each render pass type is adapted is defined by one or more type +processors registered to this node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +client +------ + +The client to adapt render pass types to. + +renderer +-------- + +The renderer to adapt render pass types to. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPassWedge.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPassWedge.md.txt new file mode 100644 index 000000000..ffa228b6e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPassWedge.md.txt @@ -0,0 +1,112 @@ +RenderPassWedge +=============== + +Causes upstream nodes to be dispatched multiple times in a range +of contexts, each time with a different value for the `renderPass` +context variable. Each value of `renderPass` is the name of a +render pass created from one or more RenderPasses nodes in the +network upstream of the `in` plug. + +> Tip : Typically, a RenderPassWedge would be placed downstream of +> your render node of choice, allowing render tasks to be dispatched +> for each render pass. + +Tasks can be varied per pass by using `${renderPass}` in an upstream +Spreadsheet or NameSwitch's `selector` or through use of a +ContextQuery node or an expression. + +Specific passes can be disabled from wedging by setting the +`renderPass:enabled` option to `False` in contexts where that render +pass name is the value of the `renderPass` context variable. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +in +-- + +The input scene containing the render passes to wedge. + +out +--- + +A direct pass-through of the input scene. + +names +----- + +The names of the render passes to be wedged. + +> Note : Render pass names are queried at the +> script's start frame to ensure they do not vary +> over time and to prevent scenes with expensive +> globals from slowing task dispatch. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPasses.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPasses.md.txt new file mode 100644 index 000000000..2bb928ccd --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/RenderPasses.md.txt @@ -0,0 +1,50 @@ +RenderPasses +============ + +Appends render passes to the scene globals. + +Render passes can be used to define named variations of a scene. +These can be rendered by dispatching a RenderPassWedge node downstream +of your render node of choice, or written to disk by dispatching +a RenderPassWedge node downstream of a SceneWriter. + +Scenes can be varied per render pass based on the value of the +`renderPass` context variable, which will contain the name of the +current render pass being dispatched. `${renderPass}` can be used +on the `selector` plug of Spreadsheet or NameSwitch nodes to choose +specific plug values or branches of the node graph per render pass, +and its value can be queried using Expression or ContextQuery nodes. + +> Tip : The list of render passes is stored in the `renderPass:names` +> option in the scene globals. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +names +----- + +The names of render passes to be created. + +> Tip : If any of the specified names already exist, they +> will be removed from their existing position in the list +> and appended to the end. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ResamplePrimitiveVariables.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ResamplePrimitiveVariables.md.txt new file mode 100644 index 000000000..923326c3f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ResamplePrimitiveVariables.md.txt @@ -0,0 +1,164 @@ +ResamplePrimitiveVariables +========================== + +

Resamples the list of primitive variables in Names for either mesh, curves or point primitives.

+ +

The reampling algorithm either expands or reduces each primitive variable's data based on the primitive type, primitive variable source interpolation and target interpolation as detailed in the tables below

+ +

Mesh Primitive

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
source / targetConstantUniformVertexFaceVarying
Constant-copycopycopy
Uniformaverage-copycopy
Vertex / Varyingaveragepolygon average-copy
FaceVaryingaveragepolygon averagevertex average-
+ +

Curves Primitive

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
source / targetConstantUniformVertexFaceVarying
Constant-copycopycopy
Uniformaverage-copycopy
Vertexaveragecurve average-evaluated
Varying / FaceVaryingaveragecurve averageevaluated-
+ +

Points Primitive

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
source / targetConstantUniformVertex / FaceVarying
Constant-copycopy
Uniformcopy-copy
Vertex / Varying / FaceVaryingaverageaverage-
+ +

evaluated : spline evaluated to approximate vertex or varying values

+

copy : expand source values to target based on topology

+

average : calculate the mean of the primitive variable (either for the whole primitive, for face / curve or vertex)

+ +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +names +----- + +The names of the primitive variables to be affected. +Names should be separated by spaces, and Gaffer's +standard wildcard characters may be used. + +invertNames +----------- + +When on, the primitive variables matched by names +are unaffected, and the non-matching primitive +variables are affected instead. + +interpolation +------------- + +Target interpolation for the primitive variables \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ReverseWinding.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ReverseWinding.md.txt new file mode 100644 index 000000000..c68380b56 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ReverseWinding.md.txt @@ -0,0 +1,35 @@ +ReverseWinding +============== + +Reverses the winding order of each face of a mesh; this has the effect +of flipping the geometric normal. In Gaffer, a face is considered to +be front-facing if its vertices are wound in counter-clockwise order +relative to the viewer. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Scatter.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Scatter.md.txt new file mode 100644 index 000000000..72d79fba3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Scatter.md.txt @@ -0,0 +1,108 @@ +Scatter +======= + +Scatters points evenly over the surface of meshes. +This can be particularly useful in conjunction with +the Instancer, which can then apply instances to +each point. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +parent +------ + +The location of the mesh to scatter the +points over. The generated points will +be parented under this location. This is +ignored when a filter is connected, in +which case the filter may specify multiple +locations containing meshes to scatter points +over. + +destination +----------- + +The location where the points primitives will be placed in the output scene. +When the destination is evaluated, the `${scene:path}` variable holds +the location of the source mesh, so the default value parents the points +under the mesh. + +> Tip : `${scene:path}/..` may be used to place the points alongside the +> source mesh. + +name +---- + +The name given to the object generated - +this will be placed under the parent in +the scene hierarchy. + +density +------- + +The number of points per unit area of the mesh, +measured in object space. + +densityPrimitiveVariable +------------------------ + +A float primitive variable used to specify a varying +point density across the surface of the mesh. Multiplied +with the density setting above. + +referencePosition +----------------- + +If you want to preserve the uv positions of the points while the mesh animates, you can +set up an alternate reference position primitive variable ( usually the same as P, but +not animated ). This primitive variable will be used to compute the areas of the faces, +and therefore how many points each face receives. + +uv +-- + +The UV set used to distribute points. The size of faces in 3D space is used to determine +the number of points on each face, so the UV set should not affect the overall look of +the distribution for a particular seed, but using the UVs provides continuity when +adjusting density. If polygons that are large in 3D space are small and narrow in UV +space for the given UV set, you may encounter performance problems. + +primitiveVariables +------------------ + +Primitive variables to sample from the source mesh and output on the generated points. +Supports a Gaffer match pattern, with multiple space seperated variable names, optionally +using `*` as a wildcard. + +pointType +--------- + +The render type of the points. This defaults to +"gl:point" so that the points are rendered in a +lightweight manner in the viewport. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneElementProcessor.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneElementProcessor.md.txt new file mode 100644 index 000000000..a04bcd2b7 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneElementProcessor.md.txt @@ -0,0 +1,34 @@ +SceneElementProcessor +===================== + +Base class for nodes which modify individual scene +locations, but do not alter the hierarchy in any +way. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneNode.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneNode.md.txt new file mode 100644 index 000000000..ef72cef35 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneNode.md.txt @@ -0,0 +1,23 @@ +SceneNode +========= + +The base type for all nodes which are capable of generating a +hierarchical scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneProcessor.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneProcessor.md.txt new file mode 100644 index 000000000..1a26723b3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneProcessor.md.txt @@ -0,0 +1,26 @@ +SceneProcessor +============== + +The base type for all nodes which take an input scene and process it in some way. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneReader.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneReader.md.txt new file mode 100644 index 000000000..254ca913f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneReader.md.txt @@ -0,0 +1,52 @@ +SceneReader +=========== + +The primary means of loading external assets (models, animation and cameras etc) +from caches into Gaffer. Gaffer's native file format is the .scc (SceneCache) format +provided by Cortex, but Alembic and USD files are also supported. Other formats may be +added by registering a new implementation of Cortex's abstract SceneInterface. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +fileName +-------- + +The name of the file to be loaded. The file can be +in any of the formats supported by Cortex's SceneInterfaces. + +**Supported file extensions** : abc, lscc, scc, usd, usda, usdc, usdz, vdb + +refreshCount +------------ + +May be incremented to force a reload if the file has +changed on disk - otherwise old contents may still +be loaded via Gaffer's cache. + +tags +---- + +Limits the parts of the scene loaded to only those +with a specific set of tags. + +transform +--------- + +The transform used to position the cache. This is applied to +all children of the cache root. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneWriter.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneWriter.md.txt new file mode 100644 index 000000000..58d0845b3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SceneWriter.md.txt @@ -0,0 +1,98 @@ +SceneWriter +=========== + +Writes scenes to cache files on disk. Gaffer's native file format is the .scc +(SceneCache) format provided by Cortex, but other formats may be supported by +registering a new implementation of Cortex's abstract SceneInterface. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +in +-- + +The scene to be written. + +fileName +-------- + +The name of the file to be written. Note that unlike +image sequences, many scene formats write animation into +a single file, so using # characters to specify a frame +number is generally not necessary. + +**Supported file extensions** : abc, lscc, scc, usd, usda, usdc, usdz + +out +--- + +A direct pass-through of the input scene. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Set.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Set.md.txt new file mode 100644 index 000000000..3e741571d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Set.md.txt @@ -0,0 +1,74 @@ +Set +=== + +Creates and edits sets of objects. Each set contains a list of paths +to locations within the scene. After creation, sets can be used +by the SetFilter to limit scene operations to only the members of +a particular set. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +Defines the locations to be added to or removed from the set. + +mode +---- + +Create mode creates a new set containing only the +specified paths. If a set with the same name already +exists, it is replaced. + +Add mode adds the specified paths to an existing set, +keeping the paths already in the set. If the set does +not exist yet, this is the same as create mode. + +Remove mode removes the specified paths from an +existing set. If the set does not exist yet, nothing +is done. + +name +---- + +The name of the set that will be created or edited. Multiple sets +may be created or modified by entering their names separated by +spaces. Wildcards may also be used to match multiple input sets to +be modified. + +setVariable +----------- + +A context variable created to pass the name of the set +being processed to the nodes connected to the `filter` +plug. This can be used to vary the filter for each set. + +paths +----- + +The paths to be added to or removed from the set. + +> Caution : This plug is deprecated and will be removed +in a future release. No validity checks are performed on +these paths, so it is possible to accidentally generate +invalid sets. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SetFilter.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SetFilter.md.txt new file mode 100644 index 000000000..ef1d8cc16 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SetFilter.md.txt @@ -0,0 +1,54 @@ +SetFilter +========= + +A filter which uses sets to define which locations are matched. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +The on/off state of the filter. When it is off, the +filter does not match any locations. + +out +--- + +The result of the filter. This should be connected into +the "filter" plug of a FilteredSceneProcessor. + +setExpression +------------- + +A set expression that computes a set that defines +the locations to be matched. + +For example, the expression `mySpheresSet | myCubesSet` +will create a set that contains all objects in +`mySpheresSet` and `myCubesSet`. + +Gaffer supports the union operator (`|`) as shown in the +example and also provides intersection (`&`) and difference (`-`) +operations for set expressions. Names of locations +can be used to represent a set that contains only +that one location. + +In addition, the `in` and `containing` operators can be +used to query descendant and ancestor matches. For example, +`materialA in assetB` will select all locations in the `materialA` +set that are at or below locations in the `assetB` set. This +allows leaf matches to be made against sets that only contain +root or parent locations. `allAssets containing glass` will +selection locations in `allAssets` that have children in the +`glass` set. + +For more examples please consult the Scripting Reference +section in Gaffer's documentation. + +The context menu of the set expression text field provides +entries that help construct set expressions. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SetQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SetQuery.md.txt new file mode 100644 index 000000000..6052e7447 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SetQuery.md.txt @@ -0,0 +1,46 @@ +SetQuery +======== + +Queries the set memberships of a location, and outputs a list of +the sets that it belongs to. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +scene +----- + +The scene to query. + +location +-------- + +The location to query the set memberships for. + +sets +---- + +The sets to query. + +inherit +------- + +When on, locations are treated as being in a set if an +ancestor location is in that set. + +matches +------- + +The list of sets that the `location` is a member of. Returned in the +order they are listed in the `sets` plug. + +firstMatch +---------- + +The first set from the `matches` output, or `""` if there were no matches. +This is particularly convenient for use in a Spreadsheet's selector, to +select rows based on the set membership of a location. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SetVisualiser.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SetVisualiser.md.txt new file mode 100644 index 000000000..793f6a474 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SetVisualiser.md.txt @@ -0,0 +1,62 @@ +SetVisualiser +============= + +Visualises Set membership values by applying a custom shader and coloring +based on which sets each object belongs to. Membership of more than one set +is visualised by a stripe pattern. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +sets +---- + +A space separated list of sets to consider membership of. This +supports wild cards, eg: asset:* to allow membership display to +focus on a specific group of sets. Right-click to insert the name +of any sets in the input scene. + +includeInherited +---------------- + +When enabled, objects that inherit Set membership from their parents +will also be coloured. Disabling this will only color objects that +are exactly matched by any given Set. + +stripeWidth +----------- + +The thickness (in pixels) of the stripes used to indicate an object +is in more than one set. + +colorOverrides +-------------- + +Allows the randomly generated set colors to be overridden by +specific colors to use for Sets matching the supplied filter. This +can be a name, or a match string. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Shader.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Shader.md.txt new file mode 100644 index 000000000..09d5d0905 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Shader.md.txt @@ -0,0 +1,41 @@ +Shader +====== + +The base type for all nodes which create shaders. Use the +ShaderAssignment node to assign them to objects in the scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +type +---- + +The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +attributeSuffix +--------------- + +Suffix for the attribute used for shader assignment. + +parameters +---------- + +Where the parameters for the shader are represented. + +enabled +------- + +Turns the node on and off. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderAssignment.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderAssignment.md.txt new file mode 100644 index 000000000..56e25c674 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderAssignment.md.txt @@ -0,0 +1,43 @@ +ShaderAssignment +================ + +Assigns shaders to objects. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +shader +------ + +The shader to be assigned. + +label +----- + +A label for the shader to be assigned. If this is empty, the node +connected to the `shader` plug will be used instead. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderBall.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderBall.md.txt new file mode 100644 index 000000000..e2ca4c144 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderBall.md.txt @@ -0,0 +1,33 @@ +ShaderBall +========== + +Generates scenes suitable for rendering shader balls. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +shader +------ + +The shader to be rendered. + +resolution +---------- + +The resolution of the shader ball image, which +is always a square. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderQuery.md.txt new file mode 100644 index 000000000..c355ce5a3 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderQuery.md.txt @@ -0,0 +1,60 @@ +ShaderQuery +=========== + +Queries shader parameters from a scene location, creating outputs +for each parameter. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +scene +----- + +The scene to query the shader for. + +location +-------- + +The location within the scene to query the shader at. +> Note : If the location does not exist then the query will not be +> performed and all outputs will be set to their default values. + +shader +------ + +The name of the shader to query. +> Note : If the shader does not exist then the query will not be +> performed and all outputs will be set to their default values. + +inherit +------- + +Queries inherited shader assignments if the location has no local +assignment of its own. + +queries +------- + +The shader parameters to be queried - arbitrary numbers of shader +parameters may be added as children of this plug via the user interface, +or via python. Each child is a `NameValuePlug` whose `name` plug is +the shader parameter to query, and whose `value` plug is the default +value to use if the shader parameter can not be retrieved. + +The full network of the shader given by `shader` is available +to be queried. Parameters on shaders in the network other than the +output shader can be specified as `shaderName.parameterName`. + +> Note : If either the shader or parameter does not exist then the +> query will not be performed and all outputs will be set to their +> default values. + +out +--- + +The parent plug of the query outputs. The order of outputs corresponds +to the order of children of `queries`. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderTweakProxy.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderTweakProxy.md.txt new file mode 100644 index 000000000..635210320 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderTweakProxy.md.txt @@ -0,0 +1,48 @@ +ShaderTweakProxy +================ + +Represents a shader in the shader network that a ShaderTweaks node is modifying. Allows forming +connections from existing shaders to shaders that are being inserted. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +Hardcoded for ShaderTweakProxy nodes. + +type +---- + +Hardcoded for ShaderTweakProxy nodes. + +attributeSuffix +--------------- + +Suffix for the attribute used for shader assignment. + +parameters +---------- + +Where the parameters for the shader are represented. + +parameters.targetShader +----------------------- + +The handle of the upstream shader being fetched by this proxy - or Auto, indicating that +the original input of the parameter being ShaderTweaked will be used. + +enabled +------- + +Turns the node on and off. + +out +--- + +The output from the shader. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderTweaks.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderTweaks.md.txt new file mode 100644 index 000000000..35be0ec47 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShaderTweaks.md.txt @@ -0,0 +1,60 @@ +ShaderTweaks +============ + +Makes modifications to shader parameter values. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +shader +------ + +The type of shader to modify. This is actually the name +of an attribute which contains the shader network. + +ignoreMissing +------------- + +Ignores tweaks targeting missing parameters. When off, missing parameters +cause the node to error. + +tweaks +------ + +The tweaks to be made to the parameters of the shader. +Arbitrary numbers of user defined tweaks may be +added as children of this plug via the user +interface, or using the ShaderTweaks API via python. + +localise +-------- + +Turn on to allow location-specific tweaks to be made to inherited +shaders. Shaders will be localised to locations matching the +node's filter prior to tweaking. The original inherited shader will +remain untouched. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShuffleAttributes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShuffleAttributes.md.txt new file mode 100644 index 000000000..97bbc8c9e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShuffleAttributes.md.txt @@ -0,0 +1,48 @@ +ShuffleAttributes +================= + +ShuffleAttributes is used to copy or rename arbitrary numbers of attributes at +the filtered locations. The deleteSource plugs may be used to remove the original +source attribute(s) after the shuffling has been completed. The replaceDestination +plugs may be used to specify whether each shuffle should replace already written +destination data with the same name. + +An additional context variable `${source}` can be used on the destination plugs +to insert the name of each source attribute. For example, to prefix all attributes +with `user:` set the source to `*` and the destination to `user:${source}`. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +shuffles +-------- + +The attributes to be shuffled - arbitrary numbers of attributes may be shuffled +via the source/destination plugs. The deleteSource plug may be used to remove the +original attribute(s). The replaceDestination plug may be used to specify whether +each shuffle should replace already written destination data with the same name. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShufflePrimitiveVariables.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShufflePrimitiveVariables.md.txt new file mode 100644 index 000000000..be7d2068f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/ShufflePrimitiveVariables.md.txt @@ -0,0 +1,58 @@ +ShufflePrimitiveVariables +========================= + +ShufflePrimitiveVariables is used to copy or rename arbitrary numbers of primitive +variables at the filtered locations. The deleteSource plugs may be used to remove +the original source primitive variable(s) after the shuffling has been completed. +The replaceDestination plugs may be used to specify whether each shuffle should +replace already written destination data with the same name. + +An additional context variable `${source}` can be used on the destination plugs +to insert the name of each source primitive variable. For example, to append `ref` +to all primitive variables set the source to `*` and the destination to `${source}ref`. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +shuffles +-------- + +The primitive variables to be shuffled - arbitrary numbers of primitive variables +may be shuffled via the source/destination plugs. The deleteSource plug may be +used to remove the original primitive variable(s). The replaceDestination plug may +be used to specify whether each shuffle should replace already written destination +data with the same name. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Sphere.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Sphere.md.txt new file mode 100644 index 000000000..7de54d343 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Sphere.md.txt @@ -0,0 +1,73 @@ +Sphere +====== + +Produces scenes containing a sphere. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +type +---- + +The type of object to produce. May be a SpherePrimitive or a Mesh. + +radius +------ + +Radius of the sphere. + +zMin +---- + +Limits the extent of the sphere along the lower pole. +Valid values are in the range [-1,1] and should always +be less than zMax. + +zMax +---- + +Limits the extent of the sphere along the upper pole. +Valid values are in the range [-1,1] and should always +be greater than zMin. + +thetaMax +-------- + +Limits the extent of the sphere around the pole axis. +Valid values are in the range [0,360]. + +divisions +--------- + +Controls tesselation of the sphere when type is Mesh. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/StandardAttributes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/StandardAttributes.md.txt new file mode 100644 index 000000000..5a1c81866 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/StandardAttributes.md.txt @@ -0,0 +1,158 @@ +StandardAttributes +================== + +Modifies the standard attributes on objects - these should +be respected by all renderers. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +attributes +---------- + +The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python. + +attributes.visibility +--------------------- + +Whether or not the object can be seen - invisible objects are +not sent to the renderer at all. Typically more fine +grained (camera, reflection etc) visibility can be +specified using a renderer specific attributes node. +Note that making a parent location invisible will +always make all the children invisible too, regardless +of their visibility settings. + +attributes.doubleSided +---------------------- + +Whether or not the object can be seen from both sides. +Single sided objects appear invisible when seen from +the back. + +attributes.displayColor +----------------------- + +The default colour used to display the object in the absence +of a specific shader assignment. Commonly used to control +basic object appearance in the Viewer. + +> Tip : For more detailed control of object appearance in the +> Viewer, use the OpenGLAttributes node. + +attributes.transformBlur +------------------------ + +Whether or not transformation animation on the +object is taken into account in the rendered image. +Use the transformBlurSegments plug to specify the number +of segments used to represent the motion. + +attributes.transformBlurSegments +-------------------------------- + +The number of segments of transform animation to +pass to the renderer when transformBlur is on. + +attributes.deformationBlur +-------------------------- + +Whether or not deformation animation on the +object is taken into account in the rendered image. +Use the deformationBlurSegments plug to specify the +number of segments used to represent the motion. + +attributes.deformationBlurSegments +---------------------------------- + +The number of segments of transform animation to +pass to the renderer when transformBlur is on. + +attributes.linkedLights +----------------------- + +The lights to be linked to this object. Accepts a set expression or +a space separated list of lights. Use "defaultLights" to refer to +all lights that contribute to illumination by default. + +Examples +-------- + +All the default lights plus the lights in the `characterLights` set +: + +`defaultLights | characterLights` + +All the default lights, but without the lights in the `interiorLights` +set : + +`defaultLights - interiorLights` + +> Info : Lights can be added to sets either by using the `sets` plug +> on the light node itself, or by using a separate Set node. + +attributes.filteredLights +------------------------- + +The lights to be filtered by this light filter. Accepts a +set expression or a space separated list of lights. +Use "defaultLights" to refer to all lights that +contribute to illumination by default. + +attributes.automaticInstancing +------------------------------ + +By default, if Gaffer sees two objects are identical, it will pass them +to the renderer only once, saving a lot of memory. You can set this to +false to disable that, losing the memory savings. This can be useful +in certain cases like using world space displacement and wanting multiple +copies to displace differently. Disabling is currently only supported by +the Arnold render backend. + +global +------ + +Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter. + +extraAttributes +--------------- + +An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the `attributes` +CompoundDataPlug, with `IECoreScene.ShaderNetwork` being one example. + +If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/StandardOptions.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/StandardOptions.md.txt new file mode 100644 index 000000000..bff9d8fad --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/StandardOptions.md.txt @@ -0,0 +1,239 @@ +StandardOptions +=============== + +Specifies the standard options (global settings) for the +scene. These should be respected by all renderers. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +options +------- + +The options to be applied - arbitrary numbers of user defined options may be added +as children of this plug via the user interface, or using the CompoundDataPlug API via +python. + +options.renderCamera +-------------------- + +The primary camera to be used for rendering. If this +is not specified, then a default orthographic camera +positioned at the origin is used. + +options.filmFit +--------------- + +How the aperture gate (the frame defined by the aperture) will +fit into the resolution gate (the framed defined by the data +window). Fitting is applied only if the respective aspect +ratios of the aperture and the resolution are different. The +following fitting modes are available: + +- _Horizontal:_ The aperture gate will fit horizontally between +the left/right edges of the resolution gate, while preserving +its aspect ratio. If the aperture's aspect ratio is larger than +the resolution's, the top/bottom edges of the aperture will be +cropped. If it's smaller, then the top/bottom edges will +capture extra vertical scene content. +- _Vertical:_ The aperture gate will fit vertically between the +top/bottom edges of the resolution gate, while preserving its +aspect ratio. If the aperture's aspect ratio is larger than the +resolution's, the left/right edges of the aperture will be +cropped. If it's smaller, then the left/right edges will +capture more horizontal scene content. +- _Fit_: The aperture gate will fit horizontally (like +_Horizontal_ mode) or vertically (like _Vertical_ mode) inside +the resolution gate to avoid cropping the aperture, while +preserving its aspect ratio. If the two gates' aspect ratios +differ, the aperture will capture extra horizontal or vertical +scene content. +- _Fill:_ The aperture gate will fill the resolution gate such +that none of the aperture captures extra scene content, while +preserving its aspect ratio. In other words, it will make the +opposite choice of the _Fit_ mode. If the two gates' aspect +ratios differ, the aperture will be horizontally or vertically +cropped. +- _Distort:_ The aperture gate will match the size of the +resolution gate. If their aspect ratios differ, the resulting +image will appear vertically or horizontally stretched or +squeezed. + +options.renderResolution +------------------------ + +The resolution of the image to be rendered. + +options.pixelAspectRatio +------------------------ + +The `width / height` aspect ratio of the individual pixels in +the rendered image. + +options.resolutionMultiplier +---------------------------- + +Multiplies the resolution of the render by this amount. + +options.renderCropWindow +------------------------ + +Limits the render to a region of the image. The rendered image +will have the same resolution as usual, but areas outside the +crop will be rendered black. Coordinates range from (0,0) at +the top-left of the image to (1,1) at the bottom-right. The +crop window tool in the viewer may be used to set this +interactively. + +options.overscan +---------------- + +Whether to enable overscan, which adds extra pixels to the +sides of the rendered image. + +Overscan can be useful when camera shake or blur will be added +as a post-process. This plug just enables overscan as a whole – +use the _Overscan Top_, _Overscan Bottom_, _Overscan Left_ and +_Overscan Right_ plugs to specify the amount of overscan on +each side of the image. + +options.overscanTop +------------------- + +The amount of overscan at the top of the image. Specified as a +0-1 proportion of the original image height. + +options.overscanBottom +---------------------- + +The amount of overscan at the bottom of the image. Specified as +a 0-1 proportion of the original image height. + +options.overscanLeft +-------------------- + +The amount of overscan at the left of the image. Specified as a +0-1 proportion of the original image width. + +options.overscanRight +--------------------- + +The amount of overscan at the right of the image. Specified as +a 0-1 proportion of the original image width. + +options.depthOfField +-------------------- + +Whether to render with depth of field. To ensure the effect is +visible, you must also set an f-stop value greater than 0 on +this camera. + +options.defaultRenderer +----------------------- + +Specifies the default renderer to be used by the Render and +InteractiveRender nodes. + +options.includedPurposes +------------------------ + +Limits the objects included in the render according to the values of their `usd:purpose` +attribute. The "Default" purpose includes all objects which have no `usd:purpose` attribute; +other than for debugging, there is probably no good reason to omit it. + +> Tip : Use the USDAttributes node to assign the `usd:purpose` attribute. + +options.inclusions +------------------ + +A set expression that limits the objects included in the render to only those matched +and their descendants. Objects not matched by the set expression will be pruned from +the scene. + +> Tip : Cameras are included by default and do not need to be specified here. + +options.exclusions +------------------ + +A set expression that excludes the matched objects from the render. Exclusions +affect both `inclusions` and `additionalLights` and cause the matching objects and +their descendants to be pruned from the scene. + +options.additionalLights +------------------------ + +A set expression that specifies additional lights to be included in the render. +This differs from `inclusions` in that only lights and light filters will be +matched by this set expression. + +options.transformBlur +--------------------- + +Whether or not transform motion is taken into +account in the renderered image. To specify the +number of transform segments to use for each +object in the scene, use a StandardAttributes node +with appropriate filters. + +options.deformationBlur +----------------------- + +Whether or not deformation motion is taken into +account in the renderered image. To specify the +number of deformation segments to use for each +object in the scene, use a StandardAttributes node +with appropriate filters. + +options.shutter +--------------- + +The interval over which the camera shutter is open. Measured +in frames, and specified relative to the frame being rendered. + +options.sampleMotion +-------------------- + +Whether to actually render motion blur. Disabling this +setting while motion blur is set up produces a render where +there is no blur, but there is accurate motion information. +Useful for rendering motion vector passes. + +options.performanceMonitor +-------------------------- + +Enables a performance monitor and uses it to output +statistics about scene generation performance. + +extraOptions +------------ + +An additional set of options to be added. Arbitrary numbers +of options may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an option. +This is convenient when using an expression to define the options +and the option count might be dynamic. It can also be used to +create options whose type cannot be handled by the `options` +CompoundDataPlug. + +If the same option is defined by both the `options` and the +`extraOptions` plugs, then the value from the `extraOptions` +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SubTree.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SubTree.md.txt new file mode 100644 index 000000000..1d94b6a8b --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/SubTree.md.txt @@ -0,0 +1,62 @@ +SubTree +======= + +A node for extracting a specific branch from a scene. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +root +---- + +The location to become the new root for the output scene. +All locations below this will be kept, and all others will +be discarded. + +includeRoot +----------- + +Causes the root location to also be kept in the output scene, in +addition to its children. For instance, if the scene contains only +`/city/street/house` and the root is set to `/city/street`, then the +new scene will by default contain only `/house` - but the +`includeRoot` setting will cause it to contain `/street/house` +instead. + +inheritTransform +---------------- + +Maintains the subtree's world-space position by applying the `root` +location's full transform to the subtree's children. + +inheritAttributes +----------------- + +Maintains the subtree's attributes (including shader assignments) by +applying the `root` location's full attributes to the subtree's +children. + +inheritSetMembership +-------------------- + +Maintains the subtree's membership in sets by transferring the +`root` location's memberships to the subtree's children. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Text.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Text.md.txt new file mode 100644 index 000000000..78e18ab6d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Text.md.txt @@ -0,0 +1,54 @@ +Text +==== + +Creates an object containing a polygon representation +of an arbitrary string of text. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +text +---- + +The text to output. This is triangulated into a mesh +representation using the specified font. + +font +---- + +The font to use - this should be a .ttf font file which +is located on the paths specified by the IECORE_FONT_PATHS +environment variable. + +**Supported file extensions** : ttf \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Transform.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Transform.md.txt new file mode 100644 index 000000000..b75f3192a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Transform.md.txt @@ -0,0 +1,69 @@ +Transform +========= + +Applies a transformation to the local matrix +of all locations matched by the filter. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +space +----- + +The space in which the transformation is specified. +Note that no matter which space is chosen, only the +local matrices of the filtered locations are ever modified. +They are simply modified in such as way as to emulate a +modification in the chosen space. + +Local +: The transformation is specified in local space and + is therefore post-multiplied onto the local matrix. + +Parent +: The transformation is specified in parent space and + is therefore pre-multiplied onto the local matrix. + +World +: The transformation is specified in world space and + will therefore be applied as if the whole world was + moved. This effect is then applied on a per-location + basis to each of the filtered locations. + +Reset Local +: The local matrix is replaced with the specified transform. + +Reset World +: The transformation is specified as an absolute matrix + in world space. Each of the filtered locations will + be moved to this absolute position. + +transform +--------- + +The transform to be applied. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/TransformQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/TransformQuery.md.txt new file mode 100644 index 000000000..16553cd65 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/TransformQuery.md.txt @@ -0,0 +1,62 @@ +TransformQuery +============== + +Queries a particular location in a scene and outputs the transform. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +scene +----- + +The scene to query the transform for. + +location +-------- + +The location within the scene to query the transform at. + +> Note : If the location does not exist then the query will not be +> performed and all outputs will be set to their default values. + +space +----- + +The space to query the transform. + +relativeLocation +---------------- + +The location within the scene to query the transform for relative space mode. + +> Note : If the location does not exist then the query will not be +> performed and all outputs will be set to their default values. + +invert +------ + +Invert the result transform. + +matrix +------ + +4x4 matrix of the requested transform. + +translate +--------- + +Translation component of requested transform. + +rotate +------ + +Rotation component of requested transform (degrees). + +scale +----- + +Scaling component of requested transform. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/UDIMQuery.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/UDIMQuery.md.txt new file mode 100644 index 000000000..dbc337a88 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/UDIMQuery.md.txt @@ -0,0 +1,60 @@ +UDIMQuery +========= + +Gathering information about what UDIMs are present in meshes matching +the input scene and filter, and which meshes they belong to. + +The output is a three level dictionary ( stored as CompoundObjects ), containing information about the selected UDIMs. + +The keys of the top level are all the UDIMs containing part of the target meshes. +The keys of the second level are the meshes which touch that UDIM. +The keys of the third level are any attributes on that mesh which match extraAttributes, and the values of the third-level dictionary are the attribute values. + +An example result, with two udims, and "attributes" set to "bake:resolution", might look like this: + +``` +{ + "1001" : { + "/mesh1" : { "bake:resolution", 512 }, + "/mesh2" : { "bake:resolution", 1024 }, + }, + "1002" : { + "/mesh1" : { "bake:resolution", 512 }, + }, +} +``` + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +in +-- + +The scene to query UDIMs from. + +uvSet +----- + +The name of the primitive variable which drives the UVs to compute UDIMs from. +Should be a Face-Varying or Vertex interpolated V2f. + +attributes +---------- + +A space separated list of attribute names ( may use wildcards ), to collect from meshes +which have UDIMs, and return as part of the output. Inherited attributes are included. + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +out +--- + +A 3 level dictionary of results stored in a CompoundObject, as described in the node description. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/UVSampler.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/UVSampler.md.txt new file mode 100644 index 000000000..55117b76a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/UVSampler.md.txt @@ -0,0 +1,84 @@ +UVSampler +========= + +Samples primitive variables from specified UV positions on +the surface of a source primitive, and transfers the +values onto new primitive variables on the sampling object. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to determine which objects in the +`in` scene will receive primitive variables sampled +from the `sourceLocation` in the `source` scene. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +source +------ + +The scene that contains the source primitive that +primitive variables will be sampled from. + +sourceLocation +-------------- + +The location of the primitive in the `source` scene that +will be sampled from. + +primitiveVariables +------------------ + +The names of the primitive variables to be sampled from the source +primitive. These should be separated by spaces and can use Gaffer's +standard wildcards to match multiple variables. The sampled variables +are prefixed with `prefix` before being added to the sampling object. + +prefix +------ + +A prefix applied to the names of the sampled primitive variables before +they are added to the sampling object. This is particularly useful when +sampling something like "P", and not not wanting to modify the true +vertex positions of the sampling primitive. + +status +------ + +The name of a boolean primitive variable created to record the success or +failure of the sampling operation. + +uv +-- + +The primitive variable that provides the UV positions to +sample on the source primitive. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Unencapsulate.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Unencapsulate.md.txt new file mode 100644 index 000000000..fa9aca14d --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Unencapsulate.md.txt @@ -0,0 +1,39 @@ +Unencapsulate +============= + +Expands capsules created by Encapsulate back into regular scene hierarchy. This discards the +performance advantages of working with capsules, but is useful for debugging, or when it is +necessary to alter the internals of a capsule. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +parent +------ + +Deprecated. Use `filter` input instead. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/UnionFilter.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/UnionFilter.md.txt new file mode 100644 index 000000000..96a84877a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/UnionFilter.md.txt @@ -0,0 +1,30 @@ +UnionFilter +=========== + +Combines several input filters, matching the union +of all the locations matched by them. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +enabled +------- + +The on/off state of the filter. When it is off, the +result of the first input is passed through unchanged. + +out +--- + +The result of the filter. This should be connected into +the "filter" plug of a FilteredSceneProcessor. + +in +-- + +The filters to be combined. Any number +of inputs may be added here. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Wireframe.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Wireframe.md.txt new file mode 100644 index 000000000..55632f133 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/Wireframe.md.txt @@ -0,0 +1,57 @@ +Wireframe +========= + +Creates a wireframe representation of a mesh. The wireframe +is created as a CurvesPrimitive. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +position +-------- + +The primitive variable containing the positions to use +for the wireframe. This must have either Vertex or FaceVarying +interpolation and contain either V3fVectorData or V2fVectorData. + +> Tip : Use "uv" to create a wireframe representation of the +> UVs for a mesh. + +width +----- + +The width of the curves used to represent the wireframe. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferScene/index.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/index.md.txt new file mode 100644 index 000000000..48e026a06 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferScene/index.md.txt @@ -0,0 +1,134 @@ + + +GafferScene +=========== + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + AimConstraint.md + AttributeQuery.md + AttributeTweaks.md + AttributeVisualiser.md + Attributes.md + BoundQuery.md + Camera.md + CameraTweaks.md + ClippingPlane.md + ClosestPointSampler.md + CollectPrimitiveVariables.md + CollectScenes.md + CollectTransforms.md + CoordinateSystem.md + CopyAttributes.md + CopyOptions.md + CopyPrimitiveVariables.md + Cryptomatte.md + Cube.md + CurveSampler.md + CustomAttributes.md + CustomOptions.md + DeleteAttributes.md + DeleteCurves.md + DeleteFaces.md + DeleteGlobals.md + DeleteObject.md + DeleteOptions.md + DeleteOutputs.md + DeletePoints.md + DeletePrimitiveVariables.md + DeleteRenderPasses.md + DeleteSets.md + Duplicate.md + Encapsulate.md + ExistenceQuery.md + ExternalProcedural.md + Filter.md + FilterProcessor.md + FilterQuery.md + FilterResults.md + FilteredSceneProcessor.md + FramingConstraint.md + FreezeTransform.md + Grid.md + Group.md + ImageScatter.md + ImageToPoints.md + Instancer.md + InteractiveRender.md + Isolate.md + LightToCamera.md + LocaliseAttributes.md + MapOffset.md + MapProjection.md + MergeScenes.md + MeshDistortion.md + MeshNormals.md + MeshSegments.md + MeshSplit.md + MeshTangents.md + MeshTessellate.md + MeshToPoints.md + MeshType.md + MotionPath.md + ObjectToScene.md + OpenGLAttributes.md + OpenGLRender.md + OpenGLShader.md + OptionQuery.md + OptionTweaks.md + Options.md + Orientation.md + Outputs.md + Parameters.md + Parent.md + ParentConstraint.md + PathFilter.md + Plane.md + PointConstraint.md + PointsType.md + PrimitiveVariableExists.md + PrimitiveVariableQuery.md + PrimitiveVariables.md + Prune.md + Rename.md + Render.md + RenderPassShader.md + RenderPassTypeAdaptor.md + RenderPassWedge.md + RenderPasses.md + ResamplePrimitiveVariables.md + ReverseWinding.md + Scatter.md + SceneElementProcessor.md + SceneNode.md + SceneProcessor.md + SceneReader.md + SceneWriter.md + Set.md + SetFilter.md + SetQuery.md + SetVisualiser.md + Shader.md + ShaderAssignment.md + ShaderBall.md + ShaderQuery.md + ShaderTweakProxy.md + ShaderTweaks.md + ShuffleAttributes.md + ShufflePrimitiveVariables.md + Sphere.md + StandardAttributes.md + StandardOptions.md + SubTree.md + Text.md + Transform.md + TransformQuery.md + UDIMQuery.md + UVSampler.md + Unencapsulate.md + UnionFilter.md + Wireframe.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferTractor/TractorDispatcher.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferTractor/TractorDispatcher.md.txt new file mode 100644 index 000000000..2d7bd7b8a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferTractor/TractorDispatcher.md.txt @@ -0,0 +1,135 @@ +TractorDispatcher +================= + +Dispatches tasks by spooling them to a renderfarm +managed by Pixar's Tractor software. + +This dispatcher deliberately provides a very simple +one-to-one mapping between Gaffer's nodes and plugs +and Tractor's Tasks and attributes. This can be +customised on a site-by-site basis with user defaults +and expressions for the plugs, or for more complete +control, with TractorDispatcher.preSpoolSignal(). + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +tasks +----- + +The tasks to be executed by this dispatcher. + +framesMode +---------- + +Determines the active frame range to be dispatched as +follows : + + - CurrentFrame dispatches the current frame only, as + specified by the `${frame}` context variable. + - FullRange uses the full frame range as specified by the + `${frameRange:start}` and `${frameRange:end}` + context variables. + - CustomRange uses a user defined range, as specified by + the `frameRange` plug. + +frameRange +---------- + +The frame range to be used when framesMode is "CustomRange". + +jobName +------- + +A descriptive name for the job. + +jobsDirectory +------------- + +A directory to store temporary files used by the dispatcher. + +service +------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. The default +value matches all blades. Typically this default is +sufficient for the job itself, but more restrictive +values may be needed for the dispatcher.tractor.service +plugs on each dispatched node. + +envKey +------ + +An arbitrary key passed to the remote Tractor blade, +to be used by environment handlers which configure +the way the blade launches commands. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferTractor/index.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferTractor/index.md.txt new file mode 100644 index 000000000..59bb8b444 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferTractor/index.md.txt @@ -0,0 +1,12 @@ + + +GafferTractor +============= + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + TractorDispatcher.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDAttributes.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDAttributes.md.txt new file mode 100644 index 000000000..0462e2940 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDAttributes.md.txt @@ -0,0 +1,90 @@ +USDAttributes +============= + +Authors attributes which have specific meaning in USD, but which +do not influence Gaffer's native behaviour in any way (in which +case they would belong on the StandardAttributes node). + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +attributes +---------- + +The attributes to be applied - arbitrary numbers of user defined +attributes may be added as children of this plug via the user +interface, or using the CompoundDataPlug API via python. + +attributes.purpose +------------------ + +Specifies the purpose of a location to be `default`, `render`, +`proxy` or `guide`. See the [USD documentation](https://graphics.pixar.com/usd/release/glossary.html#usdglossary-purpose) +for more details. + +> Note : Gaffer doesn't assign any intrinsic meaning to USD's +> purpose. To control visibility using purpose, we recommend +> using an AttributeQuery and Expression to query `usd:purpose` +> and drive `StandardAttributes.visibility` appropriately. +> +> Also note that native proxy workflows can be built using +> Gaffer's contexts, such that proxy or render geometry can appear +> at the _same_ location in the scene hierarchy, depending on the +> value of a context variable. This has benefits when selecting +> and filtering objects. + +attributes.kind +--------------- + +Specifies the kind of a location to be any of the values +from USD's kind registry. See the [USD documentation](https://graphics.pixar.com/usd/release/glossary.html#usdglossary-kind) +for more details. + +> Note : Gaffer doesn't assign any intrinsic meaning to USD's +> kind. + +global +------ + +Causes the attributes to be applied to the scene globals +instead of the individual locations defined by the filter. + +extraAttributes +--------------- + +An additional set of attributes to be added. Arbitrary numbers +of attributes may be specified within a single `IECore.CompoundObject`, +where each key/value pair in the object defines an attribute. +This is convenient when using an expression to define the attributes +and the attribute count might be dynamic. It can also be used to +create attributes whose type cannot be handled by the `attributes` +CompoundDataPlug, with `IECoreScene.ShaderNetwork` being one example. + +If the same attribute is defined by both the attributes and the +extraAttributes plugs, then the value from the extraAttributes +is taken. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDLayerWriter.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDLayerWriter.md.txt new file mode 100644 index 000000000..4093d0cd6 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDLayerWriter.md.txt @@ -0,0 +1,118 @@ +USDLayerWriter +============== + +Takes two input scenes and writes a minimal USD file containing the +differences between them. This new file can then be layered in a USD +composition to transform the first scene into the second. This is useful for +baking modifications made in Gaffer into a USD file for consumption in other +hosts. + +A typical use case might be to share lookdev authored in Gaffer, with a +workflow like the following : + +- A SceneReader brings `model.usd` into Gaffer. +- Shaders and attributes are applied in Gaffer, using Gaffer's standard scene + processing nodes. +- A USDLayerWriter is used to bake this lookdev into a new `look.usd` layer on + disk, with the SceneReader for `model.usd` connected to the `base` input + and the lookdev connected into the `layer` input. +- A new USD file is created that layers `look.usd` over `model.usd`. This is + loaded into Gaffer or another host for lighting. + +> Note : To write a complete USD file (rather than a layer containing differences) +> use the standard SceneWriter node. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +preTasks +-------- + +Input connections to upstream nodes which must be +executed before this node. + +postTasks +--------- + +Input connections to nodes which must be +executed after this node, but which don't +need to be executed before downstream nodes. + +task +---- + +Output connections to downstream nodes which must +not be executed until after this node. + +dispatcher +---------- + +Container for custom plugs which dispatchers use to +control their behaviour. + +dispatcher.batchSize +-------------------- + +Maximum number of frames to batch together when dispatching tasks. +If the node requires sequence execution `batchSize` will be ignored. + +dispatcher.immediate +-------------------- + +Causes this node to be executed immediately upon dispatch, +rather than have its execution be scheduled normally by +the dispatcher. For instance, when using the LocalDispatcher, +the node will be executed immediately in the dispatching process +and not in a background process as usual. + +When a node is made immediate, all upstream nodes are automatically +considered to be immediate too, regardless of their settings. + +dispatcher.tractor +------------------ + +Settings that control how tasks are +dispatched to Tractor. + +dispatcher.tractor.service +-------------------------- + +A Tractor "service key expression" used to select +blades on which tasks will be executed. + +dispatcher.tractor.tags +----------------------- + +A space separated list of tags that can be +used with Tractor's limits to constrain +the number of concurrent tasks. Typically this is +used to ensure that tasks using commercial +software do not exceed the available license +count. + +base +---- + +The base scene that the `layer` input is compared to. + +layer +----- + +The scene to be written to `fileName`. This is compared to the +`base` scene, and only differences are written to the file. + +fileName +-------- + +The name of the USD file to be written. + +**Supported file extensions** : usd, usda, usdc + +out +--- + +A direct pass-through of the `layer` input. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDLight.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDLight.md.txt new file mode 100644 index 000000000..8c1c58d2e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDLight.md.txt @@ -0,0 +1,100 @@ +USDLight +======== + +Creates a scene with a single light in it. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +parameters +---------- + +The parameters of the light shader - these will vary based on the light type. + +defaultLight +------------ + +Whether this light illuminates all geometry by default. When +toggled, the light will be added to the "defaultLights" set, which +can be referenced in set expressions and manipulated by downstream +nodes. + +mute +---- + +Whether this light is muted. When toggled, the attribute "light:mute" +will be set to true. When not toggled, it will be omitted from the attributes. + +visualiserAttributes +-------------------- + +Attributes that affect the visualisation of this Light in the Viewer. + +visualiserAttributes.scale +-------------------------- + +Scales non-geometric visualisations in the viewport to make them +easier to work with. + +visualiserAttributes.maxTextureResolution +----------------------------------------- + +Visualisers that load textures will respect this setting to +limit their resolution. + +visualiserAttributes.frustum +---------------------------- + +Controls whether applicable lights draw a representation of their +light projection in the viewer. + +visualiserAttributes.lightFrustumScale +-------------------------------------- + +Allows light projections to be scaled to better suit the scene. + +visualiserAttributes.lightDrawingMode +------------------------------------- + +Controls how lights are presented in the Viewer. + +visualiserAttributes.lookThroughAperture +---------------------------------------- + +Specifies the aperture used when looking through this light. Overrides the Viewer's Camera Settings. + +visualiserAttributes.lookThroughClippingPlanes +---------------------------------------------- + +Specifies the clipping planes used when looking through this light. Overrides the Viewer's Camera Settings. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDShader.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDShader.md.txt new file mode 100644 index 000000000..99669099a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/USDShader.md.txt @@ -0,0 +1,46 @@ +USDShader +========= + +Loads shaders from USD's `SdrRegistry`. This includes shaders such as `UsdPreviewSurface` +and `UsdUVTexture`. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +name +---- + +The name of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +type +---- + +The type of the shader being represented. This should +be considered read-only. Use the Shader.loadShader() +method to load a shader. + +attributeSuffix +--------------- + +Suffix for the attribute used for shader assignment. + +parameters +---------- + +Where the parameters for the shader are represented. + +enabled +------- + +Turns the node on and off. + +out +--- + +The output from the shader. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/index.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/index.md.txt new file mode 100644 index 000000000..69fa7111f --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferUSD/index.md.txt @@ -0,0 +1,15 @@ + + +GafferUSD +========= + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + USDAttributes.md + USDLayerWriter.md + USDLight.md + USDShader.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/LevelSetOffset.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/LevelSetOffset.md.txt new file mode 100644 index 000000000..f601318d0 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/LevelSetOffset.md.txt @@ -0,0 +1,51 @@ +LevelSetOffset +============== + +Erodes or dilates a level set VDB. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +grid +---- + +Name of the level set grid to offset in the VDB object. + +offset +------ + +Amount to offset the level set by in voxel units. A positive number will erode the surface and negative will dilate. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/LevelSetToMesh.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/LevelSetToMesh.md.txt new file mode 100644 index 000000000..424dd5275 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/LevelSetToMesh.md.txt @@ -0,0 +1,57 @@ +LevelSetToMesh +============== + +Converts a level set VDB object to a mesh primitive . + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +adjustBounds +------------ + +Adjusts bounding boxes to account for the changes made to the object. + +> Caution : Adjusting boundings boxes has a performance penalty. +> If you do not need accurate bounds or you know that the bounds +> will only change slightly, you may prefer to turn this off. + +grid +---- + +Name of the level set grid to create a mesh primitive from. + +isoValue +-------- + +Value which defines the isosurface to convert to a mesh primitive. +Usually this is set to zero but setting a small positive number will generate a dilated mesh and negative will create an eroded mesh. + +adaptivity +---------- + +Adaptively generate fewer polygons from level set. 0 - uniform meshing, 1 - maximum level of adaptivity. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/MeshToLevelSet.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/MeshToLevelSet.md.txt new file mode 100644 index 000000000..60fa4643e --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/MeshToLevelSet.md.txt @@ -0,0 +1,52 @@ +MeshToLevelSet +============== + +Converts a mesh primitive to a level set VDB object. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +grid +---- + +Name of the level set grid to create in the VDB object. + +voxelSize +--------- + +Size of the voxel in the level set grid. Smaller voxel sizes will increase resolution, take more memory & longer to process. + +exteriorBandwidth +----------------- + +Defines the exterior width of the level set in voxel units. + +interiorBandwidth +----------------- + +Defines the interior width of the level set in voxel units. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/PointsGridToPoints.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/PointsGridToPoints.md.txt new file mode 100644 index 000000000..1adb54c5c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/PointsGridToPoints.md.txt @@ -0,0 +1,51 @@ +PointsGridToPoints +================== + +Converts a points grid in a VDB object to a points primitive. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +grid +---- + +Name of the points grid in the VDB to create a points primitive from. + +names +----- + +The names of the primitive variables to be extracted from VDB points grid. +Names should be separated by spaces, and Gaffer's +standard wildcard characters may be used. + +invertNames +----------- + +When on, the primitive variables matched by names +are not extracted, and the non-matching primitive +variables are extracted instead. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/PointsToLevelSet.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/PointsToLevelSet.md.txt new file mode 100644 index 000000000..029f5e5ab --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/PointsToLevelSet.md.txt @@ -0,0 +1,82 @@ +PointsToLevelSet +================ + +Converts a points primitive to an OpenVDB level set. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +width +----- + +The name of a `float` primitive variable specifying the width of each point. +The primitive variable may have either `Vertex` or `Constant` interpolation. +If the primitive variable doesn't exist, a width of 1.0 is used. + +> Note : A point's width needs to be at least 3x `voxelSize` to contribute to +> the level set. Smaller points will be ignored, and reported as a warning. + +widthScale +---------- + +An additional multiplier on the width of each point. + +useVelocity +----------- + +Enables the creation of trails behind the points, based +on the `velocity` primitive variable. + +velocity +-------- + +The name of a `V3f` primitive variable specifying the velocity +of each point. Velocity is specified in local-space units per +second, and the trail is automatically scaled to represent the +motion within a single frame. + +velocityScale +------------- + +An additional multiplier applied to the velocity of each point. + +grid +---- + +Name of the level set grid to be created. + +voxelSize +--------- + +Size of a voxel in the level set grid, specified in local space. Smaller voxel +sizes will increase resolution, but take more memory and computation time. + +halfBandwidth +------------- + +Defines the exterior and interior width of the level set in voxel units. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/SphereLevelSet.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/SphereLevelSet.md.txt new file mode 100644 index 000000000..805f40ce4 --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/SphereLevelSet.md.txt @@ -0,0 +1,63 @@ +SphereLevelSet +============== + +Creates a sphere level set. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs +an empty scene. + +name +---- + +The name of the object in the output scene. + +sets +---- + +A list of sets to include the object in. The +names should be separated by spaces. + +transform +--------- + +The transform applied to the object. + +grid +---- + +The name of the sphere levelset grid in the created VDB object. + +radius +------ + +Sphere radius in object space units. + +center +------ + +Local center of the sphere level set in object space. + +voxelSize +--------- + +Size of the voxels in the created sphere levelset. Smaller voxel results in more detail but higher memory usage. + +halfWidth +--------- + +Width of the signed distance field in voxels. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/VolumeScatter.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/VolumeScatter.md.txt new file mode 100644 index 000000000..ed56a117a --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/VolumeScatter.md.txt @@ -0,0 +1,72 @@ +VolumeScatter +============= + +Scatter points according the voxel values of a VDB grid. + +user +---- + +Container for user-defined plugs. Nodes +should never make their own plugs here, +so users are free to do as they wish. + +out +--- + +The processed output scene. + +enabled +------- + +The on/off state of the node. When it is off, the node outputs the input scene unchanged. + +in +-- + +The input scene + +filter +------ + +The filter used to control which parts of the scene are +processed. A Filter node should be connected here. + +parent +------ + +This plug has been deprecated in favour of using a filter to select the volume. + +destination +----------- + +The location where the points primitives will be placed in the output scene. +When the destination is evaluated, the `${scene:path}` variable holds +the location of the source mesh, so the default value parents the points +under the mesh. + +> Tip : `${scene:path}/..` may be used to place the points alongside the +> source mesh. + +name +---- + +The name given to the PointsPrimitive - +this will be placed under the location specified by +"destination". + +grid +---- + +Name of grid in VDBObject in which points will be scattered. + +density +------- + +This density is multiplied with the value of the grid to produce a number of points per unit volume. + +pointType +--------- + +The render type of the points. This defaults to +"gl:point" so that the points are rendered in a +lightweight manner in the viewport. \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/index.md.txt b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/index.md.txt new file mode 100644 index 000000000..679a2acac --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/GafferVDB/index.md.txt @@ -0,0 +1,18 @@ + + +GafferVDB +========= + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + LevelSetOffset.md + LevelSetToMesh.md + MeshToLevelSet.md + PointsGridToPoints.md + PointsToLevelSet.md + SphereLevelSet.md + VolumeScatter.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/NodeReference/index.md.txt b/1.4.6.0/_sources/Reference/NodeReference/index.md.txt new file mode 100644 index 000000000..d9656591c --- /dev/null +++ b/1.4.6.0/_sources/Reference/NodeReference/index.md.txt @@ -0,0 +1,21 @@ + + +Node Reference +============== + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + Gaffer/index.md + GafferArnold/index.md + GafferCycles/index.md + GafferDispatch/index.md + GafferImage/index.md + GafferOSL/index.md + GafferScene/index.md + GafferTractor/index.md + GafferUSD/index.md + GafferVDB/index.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/Reference/ScriptingReference/CommonOperations/index.md.txt b/1.4.6.0/_sources/Reference/ScriptingReference/CommonOperations/index.md.txt new file mode 100644 index 000000000..433132c2b --- /dev/null +++ b/1.4.6.0/_sources/Reference/ScriptingReference/CommonOperations/index.md.txt @@ -0,0 +1,308 @@ +Common Operations +================= + +Node Graphs +----------- + +### Create a node + +``` +import GafferScene +node = GafferScene.Sphere() +root.addChild( node ) +``` + +### Rename a node + +``` +node.setName( "newName" ) +``` + +### Get a node or plug name + +``` +name = node.getName() +``` + +### Get a node or plug name relative to an ancestor + +``` +name = node["plugName"].relativeName( root ) +``` + +### Get a plug value + +``` +value = node["plugName"].getValue() +``` + +### Set a plug value + +``` +node["plugName"].setValue( value ) +``` + +### Make a connection + +``` +destinationNode["destinationPlugName"].setInput( sourceNode["sourcePlugName"] ) +``` + +### Break a connection + +``` +node["plugName"].setInput( None ) +``` + +### Get a plug's input connection + +``` +input = node["plugName"].getInput() +``` + +### Get a plug's output connections + +``` +outputs = node["plugName"].outputs() +``` + +### Get all child plugs from a node + +``` +plugs = node.children( Gaffer.Plug ) +``` + +### Get the node from a plug + +``` +node = plug.node() +``` + +### Get the parent of a node or plug + +``` +parent = node.parent() +``` + +### Get a node's ancestor of type Gaffer.ScriptNode + +``` +script = node.ancestor( Gaffer.ScriptNode ) +``` + +### Get a node by name + +``` +node = root["nodeName"] +``` + +### Loop over all nodes + +``` +for node in root.children( Gaffer.Node ) : + ... +``` + +### Loop over child nodes of type GafferScene.Sphere + +``` +for node in GafferScene.Sphere.Range( root ) : + ... +``` + +### Loop over all descendant nodes of type Gaffer.Box + +``` +for node in Gaffer.Box.RecursiveRange( root ) : + ... +``` + +### Get the current filename + +``` +root["fileName"].getValue() +``` + +### Serialize the node graph to file + +``` +root.serialiseToFile( "/path/to/file.gfr" ) +``` + +### Load a script + +``` +root["fileName"].setValue( "/path/to/file.gfr" ) +root.load() +``` + +### Export a reference + +``` +root["boxToExport"].exportForReference( "/path/to/file.grf" ) +``` + +### Load a reference + +``` +referenceNode = Gaffer.Reference() +root.addChild( referenceNode ) +referenceNode.load( "/path/to/file.grf" ) +``` + +### Query a script variable + +``` +root.context()["project:rootDirectory"] +``` + +### Get selected nodes + +``` +root.selection() +``` + +### Select a node + +``` +root.selection().clear() +root.selection().add( root["nodeName"] ) +``` + +### Get the frame range + +``` +start = root["frameRange"]["start"].getValue() +end = root["frameRange"]["end"].getValue() +``` + +### Set the current frame + +``` +root.context().setFrame( frame ) +``` + +### Get the playback range + +``` +GafferUI.Playback.acquire( root.context() ).getFrameRange() +``` + +### Set the playback range + +``` +GafferUI.Playback.acquire( root.context() ).setFrameRange( start, end ) +``` + +### Set node as numeric bookmark 1 + +``` +Gaffer.MetadataAlgo.setNumericBookmark( root, 1, root["nodeName"] ) +``` + +### Get the node set as numeric bookmark 1 + +``` +Gaffer.MetadataAlgo.getNumericBookmark( root, 1 ) +``` + +### Set a node as the focus node + +``` +root.setFocus( root["nodeName"] ) +``` + +### Get the currently focussed node + +``` +root.getFocus() +``` + +Metadata +-------- + +### Register a value for a plug/node + +``` +Gaffer.Metadata.registerValue( plug, "name", value ) +Gaffer.Metadata.registerValue( node, "name", value ) +``` + +### Query a value for a plug/node + +``` +Gaffer.Metadata.value( plug, "name" ) +Gaffer.Metadata.value( node, "name" ) +``` + +### Find plugs/nodes with specific metadata + +``` +Gaffer.Metadata.plugsWithMetadata( root, "name" ) +Gaffer.Metadata.nodesWithMetadata( root, "name" ) +``` + +Scenes +------ + +### Get an option + +``` +g = node["out"]["globals"].getValue() +o = g["option:render:camera"].value +``` + +### Get an object at a location + +``` +o = node["out"].object( "/path/to/location" ) +``` + +### Get the local transform at a location + +``` +matrix = node["out"].transform( "/path/to/location" ) +``` + +### Get the full (world) transform at a location + +``` +node["out"].fullTransform( "/path/to/location" ) +``` + +### Get the local bounding box of a location + +``` +bound = node["out"].bound( "/path/to/location" ) +``` + +### Get the world space bounding box of a location + +``` +bound = node["out"].bound( "/path/to/location" ) * node["out"].fullTransform( "/path/to/location" ) +``` + +### Get the local attributes of a location + +``` +attributes = node["out"].attributes( "/path/to/location" ) +attribute = attributes["name"].value +``` + +### Get the full (inherited + local) attributes of a location + +``` +attributes = node["out"].fullAttributes( "/path/to/location" ) +attribute = attributes["name"].value +``` + +### Recurse through the scene hierarchy + +``` +def visit( scene, path ) : + + for childName in scene.childNames( path ) : + visit( scene, path.rstrip( "/" ) + "/" + str( childName ) ) + +visit( node["out"], "/" ) +``` diff --git a/1.4.6.0/_sources/Reference/ScriptingReference/Expressions/index.md.txt b/1.4.6.0/_sources/Reference/ScriptingReference/Expressions/index.md.txt new file mode 100644 index 000000000..f27895d47 --- /dev/null +++ b/1.4.6.0/_sources/Reference/ScriptingReference/Expressions/index.md.txt @@ -0,0 +1,33 @@ + + +Expressions +=========== + +Time +---- + +Operation | Python | OSL +-------------------|--------------------------------|---- +Get current time | `context.getTime()` | `time` +Get current frame | `context.getFrame()` | `context( "frame" )` +Get frame rate | `context.getFramesPerSecond()` | `context( "framesPerSecond" )` + +Plugs +----- + +Operation | Python | OSL +-------------------|------------------------------------------|---- +Get value | `value = parent["NodeName"]["plugName"]` | `value = parent.NodeName.plugName` +Set value | `parent["NodeName"]["plugName"] = value` | `parent.NodeName.plugName = value` + +Context Variables +----------------- + +Operation | Python | OSL +--------------------------------|------------------------------------------------------------------------------------------|---- +Get variable | `context["variableName"]` | `context( "variableName" )` +Get with default | `context.get( "variableName", default )` | `context( "variableName", default )` +Get array element | `context["variableName"][index]` | `contextElement( "variableName", index )` +Get array element with default | `a = context.get( "variableName", [] )`
`a[index] if len( a ) > index else default` | `contextElement( "variableName", index, default )` +Get array element from end | `context["variableName"][-index]` | `contextElement( "variableName", -index )` + diff --git a/1.4.6.0/_sources/Reference/ScriptingReference/Metadata/index.md.txt b/1.4.6.0/_sources/Reference/ScriptingReference/Metadata/index.md.txt new file mode 100644 index 000000000..188ef203f --- /dev/null +++ b/1.4.6.0/_sources/Reference/ScriptingReference/Metadata/index.md.txt @@ -0,0 +1,96 @@ +Metadata +======== + +Gaffer's UIs for plugs and nodes are defined using a metadata convention. This +makes it easy to customise the UI for a specific node type, or even for a +specific node instance. This document provides a reference for the most common +metadata items. + +General +------- + +Name | Purpose | Example values +--------------------|------------------------------------------------|--------------- +`label` | Label used instead of plug name | `"My Label"` +`description` | Describes the purpose of a node or plug | `"Turns on the thingammajig"` +`icon` | Name of an image file used to represent a node | `"myAwesomeNode.png"` +`documentation:url` | Link to node documentation | `!http://www.gafferhq.org"` +`userDefault` | Overrides the default value of a plug | `10.5` +`preset:` | Specifies a named preset value | `"preset:Max", 1` +`renameable` | Enables renaming by user | `True`, `False` +`deletable` | Enables deletion by user | `True`, `False` + +NodeEditor layout +----------------- + +Name | Purpose | Example values +----------------------------------|-----------------------------------------------|---------------- +`layout:divider` | Places a divider after the plug | `True` +`layout:index` | Integer index in the layout order | `0` (first), `-1` (last) +`layout:section` | Specifies the section the plug belongs in | `TabName.SectionName` +`layout:section::collapsed` | Specifies whether the section is collapsed | `True` (collapsed), `False` (expanded) +`layout:accessory` | Places widget on same line as previous widget | `True` +`layout:width` | Specifies a fixed width for the widget | `100` +`layout:minimumWidth` | Specifies a minimum width for the widget | `100` + +GraphEditor layout +------------------ + +Name | Purpose | Example values +-------------------------|---------------------------------|---------------- +`nodule:color` | The colour of the plug | `imath.Color3f( 0, 1, 0 )` +`connectionGadget:color` | The colour of input connections | `imath.Color3f( 1, 0, 0 )` +`nodeGadget:color` | The colour of a node | `imath.Color3f( 0, 0, 1 )` +`noduleLayout:section` | The edge the plug appears on | `"left"`, `"right"`, `"top"`, `"bottom"` +`noduleLayout:visible` | Shows/hides the plug | `True` (visible), `False` (hidden) + +Viewer layout +------------- + +Name | Purpose | Example values +------------------------|--------------------------------------------|------------------- +`layout:divider` | Places a divider after the plug | `True` +`layout:index` | Integer index in the layout order | `0` (first), `-1` (last) +`toolbarLayout:section` | The edge of the viewer the plug appears on | `"Left"`, `"Right"`, `"Top"`, `"Bottom"` + +PlugValueWidgets +---------------- + +Custom widget types may be registered for use in the Node Editor by adding `plugValueWidget:type` metadata to a plug. Note that not all widget types are compatible with all plug types - the table below lists the relevant widget types by plug type. + +Plug Type | Purpose | PlugValueWidgetType +---------------------------|--------------------------------|-------------------- +Plug (and subclasses) | Hide the plug permanently | `""` +Plug (and subclasses) | Display the input connection | `"GafferUI.ConnectionPlugValueWidget"` +ValuePlug (and subclasses) | Show a menu of presets | `"GafferUI.PresetsPlugValueWidget"` +IntPlug | Display a checkbox | `"GafferUI.BoolPlugValueWidget"` +StringPlug | Allow multi-line text entry | `"GafferUI.MultiLineStringPlugValueWidget"` +StringPlug | Show a file chooser | `"GafferUI.FileSystemPathPlugValueWidget"` +StringVectorDataPlug | Show a file chooser | `"GafferUI.FileSystemPathVectorDataPlugValueWidget"` + +These widget types may be further customised using additional metadata as follows + +### BoolPlugValueWidget + +Name | Purpose | Example values +-----------------------------------|-----------------------|--------------- +`boolPlugValueWidget:displayMode` | Change display style | `"checkBox"`, `"switch"` + +### FileSystemPathPlugValueWidget + +These options also apply to the FileSystemPathVectorDataPlugValueWidget. + +Name | Purpose | Example values +----------------------------------|--------------------------------|--------------- +`path:bookmarks` | Specify which bookmarks to use | `"image"` +`path:leaf` | Don't accept directories | `True`, `False` +`path:valid` | Only accept files that exist | `True`, `False` +`fileSystemPath:extensions` | Specify valid file types | `"jpg jpeg png"` +`fileSystemPath:extensionsLabel` | Describe valid file types | `"Web images"` +`fileSystemPath:includeSequences` | Display file sequences | `True` + +### PresetsPlugValueWidget + +Name | Purpose | Example values +-------------------------------------|---------------------------------|--------------- +`presetsPlugValueWidget:allowCustom` | Allow values not in preset list | `True`, `False` diff --git a/1.4.6.0/_sources/Reference/ScriptingReference/SetExpressions/index.md.txt b/1.4.6.0/_sources/Reference/ScriptingReference/SetExpressions/index.md.txt new file mode 100644 index 000000000..9e1424fe4 --- /dev/null +++ b/1.4.6.0/_sources/Reference/ScriptingReference/SetExpressions/index.md.txt @@ -0,0 +1,73 @@ +Set Expressions +=============== + +Set expressions are a convenient way to build sets from other sets or locations. For the following examples we will assume that the scene has the following hierarchy : + +- A +- B +- C +- D + - E + +Set memberships in this imaginary scene are as follows. + +set1 | set2 | set3 | set4 +------|-------|-------|----- +A B C | B C D | C D E | E + +The following operators are currently supported + +Operator | Behaviour +------------------|---------- +`\|` | Union, unites two sets +`&` | Intersection, intersects two sets +`-` | Difference, removes elements from sets +`in` | Descendant query, selects locations from one set which are parented under locations in another +`containing` | Ancestor query, selections locations from one set which are parents of locations in another + +Simple Examples +--------------- + +SetExpression | Objects in resulting set +-----------------------|------------------------- +`set1` | A B C +`set1 \| set2` | A B C D +`set1 & set2` | B C +`set1 - set2` | A +`set1 - C` | A B +`set4 in set2` | E +`set2 containing set4` | D + +The last example illustrates the use of objects in set expressions. Gaffer will interpret them as a set with the specified object as its sole member. Gaffer will also conveniently interpret space separated lists of sets and objects as a set that contains all the elements in the list (think of it as Gaffer inserting the \| for you). + +SetExpression | Objects in resulting set +------------------|------------------------- +`set1 set2` | A B C D +`set1 D` | A B C D + +Note that you can build sets on-the-fly to be used in the expression by using these space separated list of sets and objects. + +SetExpression | Objects in resulting set +-------------------|------------------------- +`set1 \| (D E)` | A B C D E +`set1 & (A B D)` | A B +`set1 - (B C)` | A + +Operator Precedence +------------------- + +Operations in the expression are executed in the following order : `-`, `&`, `containing` and then `in`. The following examples demonstrate this in action. + +SetExpression | Objects in resulting set +----------------------|------------------------- +`set1 \| set3 & set4` | A B C E +`set1 - set2 \| set4` | A E +`set1 - set3 & set2` | B + +Parenthesis can be used to explicitly change the order of evaluation. The following examples use the same sets and operations as before, and demonstrate the effect of changing the evaluation order. + +SetExpression | Objects in resulting set +------------------------|------------------------- +`(set1 \| set3) & set4` | E +`set1 - (set2 \| set4)` | A +`set1 - (set3 & set2)` | A B diff --git a/1.4.6.0/_sources/Reference/ScriptingReference/StringSubstitutionSyntax/index.md.txt b/1.4.6.0/_sources/Reference/ScriptingReference/StringSubstitutionSyntax/index.md.txt new file mode 100644 index 000000000..3f4fc94c1 --- /dev/null +++ b/1.4.6.0/_sources/Reference/ScriptingReference/StringSubstitutionSyntax/index.md.txt @@ -0,0 +1,13 @@ + + +String Substitution Syntax +========================== + +Substitution | Syntax | Example | Result +-------------------------|------------|---------------------|----------- +Frame number | `#` | `image.#.exr` | `image.1.exr` +Padded frame number | `####` | `image.####.exr` | `image.0001.exr` +Home directory | `~` | `~/gaffer/projects` | `/home/stanley/gaffer/projects` +Context variable | `${name}` | `${scene:path}` | `/world/sphere` +Environment variable | `${name}` | `/disk1/${USER}` | `/disk1/stanley` +Escape special character | `\\` | `\\$` | `$` diff --git a/1.4.6.0/_sources/Reference/ScriptingReference/index.md.txt b/1.4.6.0/_sources/Reference/ScriptingReference/index.md.txt new file mode 100644 index 000000000..779b1fa1a --- /dev/null +++ b/1.4.6.0/_sources/Reference/ScriptingReference/index.md.txt @@ -0,0 +1,18 @@ + + +Scripting Reference +=================== + + + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + CommonOperations/index.md + StringSubstitutionSyntax/index.md + Expressions/index.md + SetExpressions/index.md + Metadata/index.md +``` diff --git a/1.4.6.0/_sources/Reference/index.md.txt b/1.4.6.0/_sources/Reference/index.md.txt new file mode 100644 index 000000000..96d737c7d --- /dev/null +++ b/1.4.6.0/_sources/Reference/index.md.txt @@ -0,0 +1,17 @@ + + +Reference +========= + + + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + NodeReference/index.md + ScriptingReference/index.md + CommandLineReference/index.md + ContextVariables/index.md +``` diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.0.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.0.0.md.txt new file mode 100644 index 000000000..c77b9dfad --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.0.0.md.txt @@ -0,0 +1,187 @@ +1.0.0.0 +======= + +> Note : This release requires Arnold version 7.1.0.0 or newer. + +Features +-------- + +- Viewer : + - Added optional raytraced rendering, to provide high quality preview of lighting and shading. Initially only Arnold is supported, but other renderers will be added in future. + - Added FPS counter option to Gadget menu. +- ImageReader : Improved support for multi-part OpenEXR files, including fixes for reading many non-standard-conforming files from 3rd party software ([#4559](https://github.com/GafferHQ/gaffer/issues/4559)). The new `channelInterpretation` plug controls the naming of channels loaded from multi-part files. +- ImageWriter : Added support for writing multi-part OpenEXR files using a new `layout` plug. This includes presets for standard conforming single-part and multi-part files, and several presets that match Nuke's behaviour. +- ImageNode : Added support for multi-view images. + - ImageNodes can now output multiple "views". Views are effectively independent images, and may have separate data windows, formats, channels and metadata, and even be mixtures of deep and flat images. + - The multi-view feature was originally intended for storing stereo renders, but may also may used for general processing where it is convenient to group multiple images into one stream. + - A new `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. + - Multi-view images can be read from and written to EXR files via the ImageReader and ImageWriter nodes. + - Added new nodes specifically for working with multi-view images : + - CreateViews : For combining single view images into a multi-view image. + - SelectView : For choosing one view from a multi-view image as a single view image. + - CopyViews : For combining views from multi-view sources. + - DeleteViews : For removing views from multi-view images. + - Anaglyph : For viewing stereo images in a format appropriate for red-blue anaglyph glasses. + - A new dropdown menu in the Viewer chooses which view is being displayed. +- ContextQuery : Added node to access a context variable value directly without needing to use an expression. + +Improvements +------------ + +- Viewer : Improved accuracy of OpenColorIO display transforms when applied using the GPU. +- Outputs : + - Added support for `layerName` string parameter, which can be used to customise the naming of channels in EXR outputs. Currently only supported for Arnold renders. + - Added support for `layerPerLightGroup` boolean parameter, which automatically splits the outputs into separate layers, one for each light group. +- USD : + - Added support for purpose-based material assignments in SceneReader and SceneWriter. To render or author such assignments, a ShuffleAttributes node must currently be used to shuffle to and from the standard shader attributes. + - Added basic support for loading UsdLux lights. The data is available in Gaffer, but needs manual conversion to meet the requirements of a specific renderer. +- ImageReader/ImageWriter : Added support for JPEG 2000 (`.jp2`) images. +- Spreadsheet : Added `activeRowIndex` plug, which outputs the index of the currently active row. +- InteractiveArnoldRender : Added support for an `updateInteractively` bool parameter for render outputs. This can be used to request more frequent updates for AOVs other than the beauty image. +- ChannelPlugValueWidget : Improved the ordering of channel names presented in the menu. +- PresetsPlugValueWidget : The children of compound plugs are now shown when in "Custom" mode. +- LightEditor/SceneViewInspector : Improved performance when viewing complex scenes, by improving cache usage during history queries. +- Node menu : Removed unsupported Arnold shaders `ramp_rgb` and `ramp_float`. The OSL `ColorSpline` and `FloatSpline` shaders should be used instead. +- Image Channel Selectors : Channel names are now shown in "natural order". This means a numerical part of the name is compared numerically, instead of alphabetically (so "channel13" comes after "channel2"). + +Fixes +----- + +- Seeds : Fixed point distribution generated on MacOS to match the point distribution generated on Linux. +- RenderController : Fixed duplicate `callback( Completed )` calls from `updateInBackground()` when priority paths are specified. +- PresetsPlugValueWidget/FormatPlugValueWidget : Fixed handling of evaluation errors (now turns red instead of failing to draw). +- ImageTestCase : Fixed bug in `assertImagesEqual()` where bad pixel data could go undetected when using `ignoreDataWindow`. +- Merge : Fixed rare failure to update when changing which channels existed on input. +- CollectScenes : An empty `rootNameVariable` value no longer causes the creation of a context variable named `""`. Instead, no context variable is created (but the scenes are still collected). +- TransformQuery : Removed unnecessary elements from hash. +- ViewportGadget : + - Fixed bug which could cause `setCamera()` to emit `cameraChangedSignal()` even when the camera was unchanged. + - Fixed `setCenterOfInterest()` so that it doesn't emit `cameraChangedSignal()` if the center of interest is unchanged. + - Added GIL release in `setViewport()` Python bindings. +- AnimationEditor : Fixed glitches in the drawing of tangent handles during drags. +- ArnoldMeshLight : Fixed bug which caused `ai:autobump_visibility` attributes to be inadvertently modified. +- ArnoldShader/ArnoldLight : Fixed potential buffer overrun when loading color parameters with `gaffer.plugType` metadata. +- Plug : + - The `removeOutputs()` method now also removes any outputs from child plugs. This is consistent with the `setInput()` method, which has always managed child plug inputs. + - Fixed bug which meant that child output connections were not removed when a plug was removed from a node. +- Expression : Fixed error when updating an expression which was previously connected to a deleted spreadsheet row ([#4614](https://github.com/GafferHQ/gaffer/issues/4614)). +- ArnoldRender : Fixed rendering of single-channel AOVs specified using Gaffer's generic `float|int|uint ` syntax. Outputs specified using Arnold's ` FLOAT|INT|UINT` syntax will now issue a warning, and should be updated to use the generic syntax. +- Constraint : Restricted `targetVertex` to positive integers. +- ScriptContainer : Fixed `typeName()`, which was omitting the `Gaffer::` prefix. +- Text : Fixed wrapping bug that caused blank lines to be inserted if a single word was too long for the line. +- SceneReader : Fixed loading of USD asset paths containing `` tokens. + +API +--- + +- ImageNode : Added virtual `hashViewNames()` and `computeViewNames()` methods which must be implemented by derived classes (unless an input connection is made for `out.viewNames`). +- ImagePlug : + - Added `viewNames` plug for outputting the names of the views in an image. + - Added ViewScope class for specifying the `image:viewName` context variable. + - Added optional `viewName` arguments to the convenience accessors such as `channelNames()` and `channelData()`. +- ImageAlgo : + - Added optional `viewName` arguments to `image()`, `imageHash()` and `tiles()`. + - Added `viewIsValid()` function. + - Added `sortedChannelNames()` function. +- PlugAlgo : Added optional `value` argument to `canSetValueFromData()`. +- RenderController : + - Added Python bindings for optional `callback` argument to `update()` and `updateMatchingPaths()`. + - Added Python binding for `updateInBackground()`. + - Added `pathForID()`, `pathsForIDs()`, `idForPath()` and `idsForPaths()` methods. These make it possible to identify an object in the scene from a `uint id` AOV. +- TestCase : Added `assertNodeIsDocumented()` method. +- ImageTestCase : Added `metadataBlacklist` argument to `assertImagesEqual()`. +- MenuButton : Added `setErrored()` and `getErrored()` methods. +- SceneView : + - Added `registerRenderer()` and `registeredRenderers()` methods. These allow any suitable `IECoreScenePreview::Renderer` to be used to draw the scene. + - Added `renderer.name` plug to control which renderer is used. + - Added `renderer.arnold` plug to control Arnold render settings. +- PlugLayout : Improved activator support. The `layout:activator` and `layout: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. +- ViewportGadget : Added a `CameraFlags` enum, which is used in `cameraChangedSignal()` to specify what aspects of the camera have changed. +- NodeAlgo : Added support for presets on compound plugs. If all child plugs have a particular preset then the parent plug is considered to have it too, and calling `applyPreset( parent, preset )` will apply it to all the children. +- Signals : + - Added a new Signals namespace with Signal, Connection, ScopedConnection and Trackable classes. This provides significant performance and memory usage improvements over the old `boost::signals` library. + - Removed usage of `boost::signals::detail::unusable` as a substitute for the `void` return type in the Signal bindings. Custom SlotCallers may now use a standard `void` return type. + - The following signals now use a `CatchingCombiner` so that exceptions in one slot will not interfere with calls to other slots : + - ApplicationRoot : ClipboardSignal. + - GraphComponent : UnarySignal and BinarySignal. + - Gadget : VisibilityChangedSignal, EnterLeaveSignal and IdleSignal. + - Node : UnaryPlugSignal, BinaryPlugSignal, ErrorSignal. + - ScriptNode : ActionSignal, UndoAddedSignal. + - ViewportGadget : UnarySignal. + - The following signals now handle exceptions thrown from C++ slots as well as Python slots : + - Gadget : ButtonSignal, DragBeginSignal, DragDropSignal, KeySignal. + - The following signals no longer suppress exceptions thrown from Python slots : + - StandardSet : MemberAcceptanceSignal. +- Monitor : Subclasses may now override `mightForceMonitoring()` and `forceMonitoring()` in order to ensure the monitored processes always run, instead of being skipped when they are cached. +- ValuePlug : Added `hashCacheTotalUsage()` function. +- ScriptContainer : Added Python binding. +- Version.h : Added `versionString()` function. + +Breaking Changes +---------------- + +- ImagePlug : The `image:viewName` context variable must now be set when evaluating plugs other than `viewNamesPlug()`. The `gui` app provides a default, but standalone scripts may need to be adjusted to specify `image:viewName` explicitly. +- ImageWriter/SceneWriter : The overrides for TaskNode virtual methods are now `protected` rather than `public`. Use the `TaskPlug` API instead. +- ShaderQuery : `addQuery()` now creates `query` and `out` plugs with numeric suffixes starting at 0 (rather than 1). +- TweakPlug and TweaksPlug : + - Moved to `Gaffer` module. + - Removed methods for tweaking shader networks. + - Backwards compatibility is provided when loading old `.gfr` files. +- Arnold : Removed support for Arnold versions prior to 7.1.0.0. +- CollectScenes : Changed behaviour when `rootNameVariable` is empty. +- PopupWindow : + - Removed `sizeMode` and `closeOnLeave` constructor arguments. + - Removed visibility animation. + - Removed drag&drop positioning. +- ViewportGadget : Added a `changes` argument to CameraChangedSignal. +- ImageReader : Changed the default interpretation of channel names in multi-part OpenEXR files. Set the `channelInterpretation` plug to `Legacy` to preserve the old behaviour. +- ImageWriter : Multi-part OpenEXR files are now written by default. Set the `layout` plug to `Single Part` to write a single-part file instead. +- SubTree : Removed the `/` root location from generated sets, because root membership is unsupported elsewhere in Gaffer. +- OSLShader : Removed `prepareSplineCVsForOSL()` method. Use `IECoreScene::ShaderNetworkAlgo::expandSplineParameters()` instead. +- ArnoldMeshLight : The `ai:autobump_visibility` attributes are no longer modified. Use a separate ArnoldAttributes node if necessary. +- Spreadsheet : + - Renamed `activeRowNames` plug to `enabledRowNames`. Backwards compatibility is provided when loading old `.gfr` files. + - Renamed `ui:spreadsheet:activeRowNamesConnection` metadata to `ui:spreadsheet:enabledRowNamesConnection`. +- Signals : + - Replaced all usage of `boost::signals` with `Gaffer::Signals`. These are largely source-compatible, with the following changes : + - Boost `snake_case` naming has been replaced with `CamelCase`. + - Connection groups are not supported. Use `connectFront()` to connect in front of existing slots. + - The Connection class has simple `setBlocked()/getBlocked()` accessors, rather than `block()/unblock()/blocked()` methods. + - Removed the `Gaffer/BlockedConnection.h` header file. BlockedConnection can now be found in the Signals namespace provided by `Gaffer/Signals.h`. + - Remove the `Gaffer/CatchingSignalCombiner.h` header file. CatchingSignalCombiner can now be found as `Signals::CatchingCombiner` in `Gaffer/Signals.h`. + - Moved all Python classes into the `Gaffer.Signals` submodule. + - Deprecated the default value for the `scoped` argument to `Signal.connect()`. Pass `scoped = True` to maintain the previous behaviour, or consider using an unscoped connection. +- ViewportGadget : Removed `RenderRequestSignal` type. Use the identical `UnarySignal` instead. +- Replaced all usage of `boost::optional` with `std::optional`. +- Random : Renamed `contextEntry` plug to `seedVariable`. Old `.gfr` files will be converted automatically on loading. +- SceneAlgo : Removed `historyIDContextName()` function. `history()` no longer uses an ID in the context to ensure fresh evaluations, it instead uses `Monitor::forceMonitoring()` to temporarily disable caching. + +Build +----- + +- Moved minimum required C++ standard to C++17. +- Updated to GCC 9.3.1 for Linux builds. +- Updated to GafferHQ/dependencies 5.0.0 : + - Alembic : Updated to version 1.8.3. + - Blosc : Updated to 1.21.1. + - Boost : Updated to version 1.76.0. + - CMark : Updated to 0.29.0. + - Cortex : Updated to 10.4.0.0. + - CMark : Updated to 0.29.0. + - HDF5 : Updated to 1.12.0. + - LibFFI : Updated to 3.4.2. + - LibPNG : Updated to 1.6.37. + - LLVM : Updated to version 11.1.0. + - OpenColorIO : Updated to version 2.1.1. + - OpenJPEG : Added version 2.4.0. + - OpenImageIO : Updated to version 2.3.11.0. + - OpenShadingLanguage : Updated to version 1.11.17.0. + - OpenSSL : Updated to 1.1.1i. + - OpenVDB : Updated to version 9.1.0, and added nanovdb. + - PySide : Updated to 5.15.4. + - Python : Updated to 3.8.13 (MacOS only). + - Qt : Updated to 5.15.4. + - Subprocess32 : Now packaged as a regular module rather than as a `.egg` package. + - TBB : Updated to version 2020.3. + - USD : Updated to version 21.11. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.1.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.1.0.md.txt new file mode 100644 index 000000000..b94b54de7 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.1.0.md.txt @@ -0,0 +1,26 @@ +1.0.1.0 +======= + +Improvements +------------ + +- TweakPlug : Added new tweak modes. + - Min : Resulting value will be the lesser of the existing value and the tweak value. For values with multiple components, such as `Color3f`, each component is compared individually. + - Max : Same as `Min` except the resulting value is the greater of the existing value and the tweak value. + - ListAppend : Values in the tweak list are added to the end of the existing list. If a value is in both the existing list and the tweak list, it is removed from the existing list before being added. + - ListPrepend : Same as `ListAppend` except the tweak list is added to the beginning of the existing list. + - ListRemove : Values in the tweak list are removed from the existing list. +- Added horizontal scroll bars to the Light Editor, Scene Inspector and Shader Browser when their content is too wide to fit within the widget. + +Fixes +----- + +- LightEditor : + - Fixed error when pressing Return or Enter with no cells selected. + - Fixed error when double-clicking the `Name` column. +- Catalogue : + - Fixed bug that prevented saving of images. + - Fixed bugs in column listing for multi-view images. +- ShaderQuery and ShaderTweaks : Fixed error `TypeError: object of type 'NoneType' has no len()` when clicking "Input" column of a shader row. +- OSLObject/OSLImage : Fixed bug which resulted in undefined values for derivatives. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.2.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.2.0.md.txt new file mode 100644 index 000000000..8c00410e7 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.2.0.md.txt @@ -0,0 +1,21 @@ +1.0.2.0 +======= + +Improvements +------------ + +- TweakPlug : Using the `ListAppend` and `ListPrepend` modes to add to a non-existent list now creates a list with the new values. Using the `ListRemove` mode to modify a non-existent list results in a non-existent list. All other modes retain their current `missingMode` behavior. +- ImageWriter : The `openexr.dataType` plug now accepts an expression or spreadsheet input to set per-channel data types. + +Fixes +----- + +- ImageWriter : Fixed bug with color transform alpha handling when the alpha channel was not the last channel. +- Viewer : Fixed images not displaying when the display window was offscreen. +- UV Inspector : Fixed texture display (broken in 1.0.0.0). +- Animation : Prevented negative zero slope. +- Animation Editor : + - Fixed glitch when dragging a tangent having an opposite tangent with (+/-) inf slope. + - Fixed bug that caused exception to be raised when the parent node of an editable curve was removed. + - Fixed bug that prevented signals from being disconnected when a key was deleted. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.2.1.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.2.1.md.txt new file mode 100644 index 000000000..992679e99 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.2.1.md.txt @@ -0,0 +1,10 @@ +1.0.2.1 +======= + +Fixes +----- + +- TweakPlug : Added `Min` and `Max` tweak modes to the UI for numeric tweaks. These were previously only available through Python. +- Arnold : Fixed rendering error for cubic curves with Vertex interpolation Quatf primitive variables. +- ImageReader : Fixed reading of signed integer TIFF files, which were failing due to a missing colorspace configuration. Signed integer files are now assumed to contain linear data ([#4772](https://github.com/GafferHQ/gaffer/issues/4772)). + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.3.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.3.0.md.txt new file mode 100644 index 000000000..4365ab624 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.3.0.md.txt @@ -0,0 +1,66 @@ +1.0.3.0 +======= + +This release introduces support for the open source [Cycles](https://www.cycles-renderer.org/) renderer. This is introduced as an opt-in feature preview intended for early testing and feedback as breaking changes can be expected while we continue to improve Cycles integration in future releases. As such, the use of Cycles is disabled by default but can be enabled via an environment variable. Additionally we've added support for viewing parameter history in the Light Editor, automatic render-time translation of UsdPreviewSurface shaders and UsdLuxLights for Arnold and made the usual small fixes and improvements. + +> Note : +> +> The Cycles feature preview can be enabled by setting the `GAFFERCYCLES_FEATURE_PREVIEW` environment variable to `1`. + +Features +-------- + +- Cycles : Added initial support for the Cycles renderer. +- Light Editor : Added a non-modal dialog to view the history of a parameter. It can be accessed by right-clicking a parameter in the Light Editor and selecting `Show History...`. Within the dialogue : + - Double clicking a node name will open a Node Editor popup. + - Dragging a node name into the Graph Editor will zoom to the node. + - Double clicking, pressing Return or Enter on a parameter value or operation will open a plug popup to edit the value. + +Improvements +------------ + +- USD : + - Added automatic render-time translation of UsdPreviewSurface shaders and UsdLuxLights for Arnold. + - The SceneReader now loads all UsdLuxLights into the `defaultLights` set so that they are linked by default. +- SceneReader : + - Added support for Alembic visibility attributes. + - Added loading of `treatAsPoint` and `treatAsLine` parameters from UsdLux lights. +- SceneWriter : Added support for Alembic visibility attributes. +- ColorPlugValueWidget : Hid the color chooser button (sliders) for output plugs. +- Arnold : Added metadata for new `standard_volume` shader parameters introduced in Arnold 7.1.3.0. +- VectorDataWidget : Added a color swatch column for `Color3f` and `Color4f` elements. These are currently included in the `RandomChoice` node when `choices` is set to a list of colors, and for color primitive variables in the Primitive Inspector. +- NameWidget : Added a check to prevent users from setting a node or plug name to a value starting with a double underscore. +- ShaderTweaks : Added Create and Remove tweak modes. + +Fixes +----- + +- Qt : Added missing QtUiTools module. +- SceneReader : Fixed shader type for UsdLux lights. It was `surface` and is now `light`. +- Fixed a bug in `SceneAlgo::attributeHistory` that would return a branching history from a `ShaderTweaks` node with `inherit` enabled. +- Arnold : Fixed errors when making interactive render edits to lights with component-level connections between OSL shaders. +- PathListingWidget : + - Fixed bug where one more rows at the bottom of the list could not be selected. + - Fixed error when dragging from shader browser name columns, shader browser input columns and Catalogue columns. +- PathFilter : Improved positioning of PathFilters created by dropping paths onto a node. +- GraphEditor : + - Improved handling of Backdrops when laying out nodes. Individual nodes are no longer pushed outside backdrops, and backdrops themselves are positioned as a group containing all their child nodes. + - Improved positioning of pasted nodes, so that they are less likely to overlap with any node they are automatically connected to. + +API +--- + +- StandardLightVisualiser : + - Added support for parameters specifying the width and height of quad lights, and the length of cylinder lights. + - The `coneAngleParameter` metadata is now supported for all light types. + +Documentation +------------- + +- Improved "Controls and Shortcuts" and added link in help menu. + +Build +----- + +- Cortex : Updated to 10.4.1.0. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.4.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.4.0.md.txt new file mode 100644 index 000000000..dd0a0db6b --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.4.0.md.txt @@ -0,0 +1,37 @@ +1.0.4.0 +======= + +Features +-------- + +- Edit Menu : Added "Duplicate with Inputs" menu item, with Ctrl+D shortcut. +- OptionTweaks : Added node for tweaking options in a scene. +- OptionQuery : Added node for querying options from a scene. +- StandardAttributes : Added `automaticInstancing` plug to allow instancing to be disabled on selected locations. Currently supported only by the Arnold renderer. + +Improvements +------------ + +- TweakPlug : Added the ability to set `InternedStringData` from `StringData`. +- GraphEditor : Added a warning for attempts to open the node creation menu in a read-only graph. +- Light Editor : + - Added explanation to cell popup when a parameter cannot be edited because there are no editable sources. + - Added an error icon to a cell with an explanation in the tooltip when there is an error computing its value ([#4805](https://github.com/GafferHQ/gaffer/issues/4805)). + +Fixes +----- + +- SceneReader : + - Fixed reading of Alembic files with animated visibility. + - Fixed reading of primitive variables from UsdGeomPointInstancers. +- GraphEditor : Fixed bugs which allowed new connections to be made in read-only graphs. +- NodeEditor : Fixed bugs which allowed plugs to be added to read-only tweaks nodes. +- CyclesOptions : Fixed errors in section summaries. +- NoduleLayout : Fixed shutdown crashes triggered by custom gadgets implemented in Python. +- ShaderTweaks : Fixed error when attempting to use a `:` in a parameter name. + +Build +----- + +- Cortex : Updated to 10.4.1.2. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.5.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.5.0.md.txt new file mode 100644 index 000000000..26032b318 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.5.0.md.txt @@ -0,0 +1,39 @@ +1.0.5.0 +======= + +Features +-------- + +- Rename : Added a new node for renaming scene locations ([#1201](https://github.com/GafferHQ/gaffer/issues/1201)). +- LookTransform : Added a new node for applying OpenColorIO looks to images. + +Improvements +------------ + +- SplinePlug : Added `Constant` interpolation mode. +- SceneReader : Added reading of more Alembic GeomParam types. Specifically `unsigned char`, `uint16`, `int16` and `uint32` GeomParams are loaded as `UCharVectorData`, `UShortVectorData`, `ShortVectorData` and `UIntVectorData` PrimitiveVariables respectively. +- SceneWriter : Added writing of more Alembic GeomParam types, mirroring the improved reading mentioned above. +- Light Editor : Added the ability to select linked objects and to delete lights. Both commands can can be accessed by right-clicking a light name and selecting either 'Select Linked Objects' or 'Delete'. +- Graph Editor : When changing the root of the Graph Editor (such as entering or exiting a Box), framing is now restored specifically for the current Graph Editor. Previously, a single framing history was used for all Graph Editors. + +Fixes +----- + +- GraphEditor : Fixed handling of errors on `Dot.labelType` and `Dot.label` plugs. +- EditScope : Fixed mislocated plug nodules when connecting a new `EditScope` to a `BoxIn`, `BoxOut` or `Box` node. +- Backdrop : Fixed bug selecting or moving a backdrop when zoomed out in the GraphEditor, where drag-resizing the top edge was incorrectly being given precedence. +- CDL : Fixed handling of values for the `direction` plug. Previously, `OCIO::TransformDirection` enum values were being used directly as plug values, but OpenColorIO 2 broke compatibility by changing the enum. A new `GafferImage::CDL::Direction` enum provides stable values for use in the `CDL.direction` plug, insulating Gaffer from future changes. +- ViewPlugValueWidget : + - Fixed bug which caused images to be evaluated in the wrong context. + - Fixed error handling bug which could prevent the NodeEditor from building. +- CropWindowTool : + - Fixed bug which caused images to be evaluated in the wrong context. + - Fixed bug handling images with non-default views. +- Cycles : Fixed rendering with a non-default crop window. +- Arnold : Fixed handling of closure shader connections in USD materials exported from Maya. + +Build +----- + +- Cortex : Updated to 10.4.2.1. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.5.1.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.5.1.md.txt new file mode 100644 index 000000000..2a9f53c4f --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.5.1.md.txt @@ -0,0 +1,13 @@ +1.0.5.1 +======= + +Fixes +----- + +- GafferImage : Fixed `Context has no variable named "image:viewName"` errors. If `image:viewName` is not provided by a context, GafferImage automatically falls back to a value of `default`. + +API +--- + +- GUI config : Stopped adding an `image:viewName` variable to `Script.variables`. This was an attempt to provide fallbacks for legacy code that didn't provide the `image:viewName` context variable, but it was only partially effective. It is unnecessary now that GafferImage has internal fallbacks instead. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.6.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.6.0.md.txt new file mode 100644 index 000000000..d6f111319 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.6.0.md.txt @@ -0,0 +1,18 @@ +1.0.6.0 +======= + +Improvements +------------ + +- Constraint : + - Added `maintainReferencePosition` plug. This allows the constraint to maintain the original position of the object at a specifed reference time. + - Improved performance for UV constraints where the target has static geometry but an animated transform. One such benchmark shows a greater than 40x speedup. + +Fixes +----- + +- Shape : Fixed unnecessary serialisation of internal connection. +- ScaleTool : + - Fixed oversensitive scaling when zoomed out in the Viewer. + - Prevented uniform scaling from becoming negative. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.6.1.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.6.1.md.txt new file mode 100644 index 000000000..8ac0c2143 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.6.1.md.txt @@ -0,0 +1,14 @@ +1.0.6.1 +======= + +Fixes +----- + +- NodeEditor : Fixed update of section summaries when they are changed in the UI Editor. +- ArnoldColorManager : Fixed broken presets for `color_space_narrow` and `color_space_linear`. +- ArnoldDisplacement : Removed irrelevant shader name widget and `Reload` button. +- ImageView : Fixed error with display of negative colors. +- Spreadsheet : + - Fixed bugs with inconsistent column ordering. + - Fixed bug that allowed operations on hidden columns included through shift-selection (was seen by users as the disable hotkey unexpectedly affecting columns on other tabs). + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.6.2.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.6.2.md.txt new file mode 100644 index 000000000..800fe7cfe --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.6.2.md.txt @@ -0,0 +1,16 @@ +1.0.6.2 +======= + +Fixes +----- + +- GraphEditor : Fixed crash when focussing an empty ContextVariables, NameSwitch or Loop node ([#4944](https://github.com/GafferHQ/gaffer/issues/4944)). +- UI : + - Fixed tooltips containing raw HTML. + - Fixed stalls caused by Qt repeatedly accessing the same icon files. +- Viewer : Fixed context used to compute the view menu for the image being shown. On the first update, an empty context was being used instead of the script's context. +- DocumentationAlgo : Fixed handling of raw HTML by `markdownToHTML()`. +- Reference : Fixed unnecessary serialisation of connections from internal plugs to external plugs. These are serialised in the `.grf` file already, so do not need to be duplicated on the Reference node itself. This bug prevented changes to the internal connections from taking effect when reloading a modified `.grf` file, and could cause load failures when the connections were from an internal Expression ([#4935](https://github.com/GafferHQ/gaffer/issues/4935)). +- MeshToLevelSet, LevelSetOffset : Fixed bug that could cause partial results to be returned if a previous operation was cancelled. +- PlugValueWidget : Fixed unnecessary updates when calling `setContext()` with the same context. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.6.3.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.6.3.md.txt new file mode 100644 index 000000000..a57cc594e --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.6.3.md.txt @@ -0,0 +1,9 @@ +1.0.6.3 +======= + +Fixes +----- + +- Catalogue : Fixed crashes when using the or keys immediately after adding or removing a column. +- PathListingWidget : Fixed bug tracking the last selected path, which could cause crashes if the path was deleted or the columns were changed. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.6.4.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.6.4.md.txt new file mode 100644 index 000000000..5a8112ea2 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.6.4.md.txt @@ -0,0 +1,10 @@ +1.0.6.4 +======= + +Fixes +----- + +- MessagesBinding : Fixed GIL management bug that could cause crashes when performing an interactive render. +- Spreadsheet : Fixed crash when connecting a StringVectorDataPlug to a row's `name` plug. +- Documentation : Fixed "In this article" navigation column contents on pages containing figures. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.6.5.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.6.5.md.txt new file mode 100644 index 000000000..18f750baa --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.6.5.md.txt @@ -0,0 +1,8 @@ +1.0.6.5 +======= + +Fixes +----- + +- NodeEditor : Fixed updates for the green "non-default-value" dots in plug labels. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.0.6.6.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.0.6.6.md.txt new file mode 100644 index 000000000..5c0a5f47d --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.0.6.6.md.txt @@ -0,0 +1,8 @@ +1.0.6.6 +======= + +- ShaderTweaks : Fixed `Remove` mode. +- FilterQuery : Fixed bug which prevented the output from updating when the input scene changed ([#5066](https://github.com/GafferHQ/gaffer/issues/5066)). +- Random : Fixed GIL management bug which could lead to hangs. +- Arnold : Fixed rendering of `token` enum parameter values loaded from USD. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.0.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.0.0.md.txt new file mode 100644 index 000000000..6b4f549f5 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.0.0.md.txt @@ -0,0 +1,49 @@ +1.1.0.0 +======= + +Features +-------- + +- Image Viewer : Added image comparisons and wipes. Press Q in Viewer to enable. The primary image is compared to an Output Index set on the currently viewed Catalogue. Comparison modes including `Over`, `Under`, `Difference` and `Replace` can be selected from a dropdown menu. A wipe can be positioned by dragging in the viewer, and toggled using W. +- Catalogue : Added Output Index column which can be used to set particular images as numbered outputs that can be referenced from the Viewer and CatalogueSelect nodes. + +Fixes +----- + +- Plug : Fixed bug that could prevent `plugDirtiedSignal()` from ever being emitted again if an exception was thrown during parenting. This could cause the UI to stop updating. +- FileSystemPath (Windows only) : + - `.` characters are now excluded from the path entries. These were being inserted in some cases even when the user did not input one. + - Fix browsing UNC paths in file browsers. +- UI : + - Fixed one pixel alignment issue with highlighted and disabled icons. + - Improved appearance of adjoined widgets. + - Clicking on a button no longer assigns focus to it. + - Fixed appearance of disabled MenuButtons, so that they match the appearance of disabled Buttons. + +API +--- + +- Signals : + - Added `Trackable::disconnectTrackedConnections()` method. + - Added `ScopedConnection` move constructor and move assignment operator. +- ViewportGadget : Added `setPostProcessShader()`. This allows the main layer to be rendered to a framebuffer, and processed by a shader before being displayed. Useful for applying color transforms on the GPU after rendering. +- GafferImageUI : Added `OpenColorIOAlgo::displayTransformToFramebufferShader()`. Converts an OCIO processor to a shader suitable for use with `setPostProcessShader()`. +- ImageView : ImageView now uses a color transform on the viewport instead of ImageGadget. Should not impact user visible behaviour, but paves the way for future work. +- ImageGadget : Added functions for setting wipe and blend mode. +- Path : Added virtual `rootAndNames()` method. This can be overridden to modify the `root` and `names` values as set by `setFromString()`. +- FileSystemPath : + - Added support for Windows paths. + - Added `nativeString()` function to return the path as an OS-specific string. + - (Windows only) Paths beginning with a single `/` or `\` not followed by a drive letter are interpreted as UNC paths. +- WidgetAlgo : Improved `joinEdges()` to support a wider range of widget types. +- OpenColorIOTransform : Consolidated the duplicate `Direction` enums from CDL, LookTransform and LUT in to a single `OpenColorIOTransform::Direction` enum. + +Breaking Changes +---------------- + +- ImageGadget : Removed setters and getters for `DisplayTransform`, `UseGPU`, `Clipping`, `Exposure`, `Gamma`. Instead use `ViewportGadget::setPostProcessShader()` to set up a GPU color transform, or set the plug values on `ImageView`. +- ImageView : Using CPU color transforms is now deprecated. We can't properly support wipes in CPU mode, and OCIO now offers full quality on the GPU, in addition to the performance being much better. While the CPU functionality still exists, the UI has been hidden. +- Signals : Removed flawed `ScopedConnection` copy constructor and assignment operator. Use move construction and assignment instead. +- ImagePlug : Removed unused `viewName` argument from `viewNames()` and `viewNamesHash()` methods. +- StandardAttributes : Removed backwards compatibility for StandardAttributes nodes saved from Gaffer `0.95.0` (May 2014) and earlier. If necessary, resave affected files using a recent Gaffer version. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.1.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.1.0.md.txt new file mode 100644 index 000000000..b34b8a990 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.1.0.md.txt @@ -0,0 +1,18 @@ +1.1.1.0 +======= + +Improvements +------------ + +- LightEditor : Improved update performance, as a result of general improvements to the PathListingWidget that may improve performance elsewhere too. + +Fixes +----- + +- Viewer : Fixed rendering of background in `Replace` comparison mode. + +Build +----- + +- Fixed backwards compatibility with Boost 1.73 (broken in 1.1.0.0). + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.2.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.2.0.md.txt new file mode 100644 index 000000000..1185f2c6f --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.2.0.md.txt @@ -0,0 +1,54 @@ +1.1.2.0 +======= + +Improvements +------------ + +- Viewer : Added support for selecting an image comparison node. This can be accessed by selecting the focus or selected node from the comparison widget at the top of the viewer, or by dragging an image node to the comparison widget. +- Catalogue : + - Improved performance when interacting with large Catalogues. + - Added hover state to the output index column, to indicate clickability. + - Improved default column layout, so output index column is more compact. +- Sets : Added "Select Affected Objects" to the following plugs' right click menu : + - Set expression and set name plugs + - Spreadsheet cells connected to a set expression or set name plug + - Plugs promoted from a set expression or set name plug +- PathFilter : Added "Select Affected Objects" to the following plugs' right click menu : + - Plugs promoted from a `PathFilter.paths` plug (an unpromoted `PathFilter.paths` plug supports this since 0.61.13.0) + - Spreadsheet cells connected to a `PathFilter.paths` plug. + - Spreadsheet row names when the spreadsheet selector is set to `scene:path`. +- Spreadsheet : Added support for metadata on the `name` and `enabled` plug of each row. Metadata registered on plugs in the default row is mirrored automatically onto all other rows. +- ShuffleAttributes, ShufflePrimitiveVariables : + - Added `replaceDestination` plugs that may be used to specify whether each shuffle replaces existing destination data with the same name. + - Shuffles are now performed in the order they are defined, and separate shuffles may write to the same destination. + +Fixes +----- + +- Catalogue : Removed incorrect error message on empty Catalogues. +- Cycles : + - Fixed crash rendering a scene containing a CoordinateSystem ([#4865](https://github.com/GafferHQ/gaffer/issues/4865)). + - Fixed crash rendering a PointPrimitive with `N` primitive variable ([#4876](https://github.com/GafferHQ/gaffer/issues/4876)). + - Fixed handling of `Varying` primitive variable interpolation ([#4849](https://github.com/GafferHQ/gaffer/issues/4849)). + - Fixed handling of `Constant Color3f` primitive variables. + - Fixed handling of indexed primitive variables. + - Fixed `"attribute edit required geometry to be regenerated"` error when changing attributes on a camera. + - Fixed `cycles:shader:displacement_method` attribute handling ([#4893](https://github.com/GafferHQ/gaffer/issues/4893)). + - Fixed shader attribute substitutions ([#4921](https://github.com/GafferHQ/gaffer/issues/4921)). +- PathFilter : Fixed error when selecting a path element from a promoted `PathFilter.paths` plug (introduced in 0.61.13.0). +- ImageView : Fixed error with display of negative colors. +- NodeEditor : Fixed updated of section summaries when they are changed in the UI Editor. +- ArnoldColorManager : Fixed broken presets for `color_space_narrow` and `color_space_linear`. +- Spreadsheet : + - Fixed bugs with inconsistent column ordering. + - Fixed bug that allowed operations on hidden columns included through shift-selection (was seen by users as the disable hotkey unexpectedly affecting columns on other tabs). +- ArnoldDisplacement : Removed irrelevant shader name widget and `Reload` button. + +API +--- + +- PathColumn : Added support for a different icon to be shown when a cell is hovered. +- SetUI : Removed `ui:scene:acceptsSet*` metadata from entries that are promoted along with a plug. +- MetadataAlgo : Added `isPromotable()` method. +- StandardLightVisualiser : Added a `muted` boolean to wireframe light drawing methods. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.3.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.3.0.md.txt new file mode 100644 index 000000000..4aeff5d34 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.3.0.md.txt @@ -0,0 +1,42 @@ +1.1.3.0 +======= + +Features +-------- + +- Image Viewer : + - Added "Match Display Windows" option to Compare Mode menu. This allows the comparison mode to directly view a low-res render over a high-res plate, providing better performance than scaling up the render using the node graph. + - The Color Inspector now shows color values for both images when comparing. Picking a color by dragging from the image now selects the composited on-screen color, taking into account "Compare Mode" and the wipe. + +Improvements +------------ + +- EditScope Menu : + - Changed the order of listed EditScopes to be alphabetical. + - Added an icon to menu items that are ancestors of the active EditScope. + - Menu items that only have a single item in their sub-menu are now collapsed into the parent item. + +Fixes +----- + +- Shader Viewer : Fixed (was broken in 1.1.2.0). +- Image Viewer : + - Fixed visual artifact when using a wipe with Replace compare mode on images with mismatched pixel aspect ratios. + - Fixed context used to compute the view menu for the image being shown. On the first update, an empty context was being used instead of the script's context. + - Color Inspector : + - Corrected half-pixel offset in measured pixel values. + - Pixel location indicators are no longer affected by the display color transform. +- GraphEditor : Fixed crash when focussing an empty ContextVariables, NameSwitch or Loop node ([#4944](https://github.com/GafferHQ/gaffer/issues/4944)). +- UI : + - Fixed tooltips containing raw HTML. + - Fixed stalls caused by Qt repeatedly accessing the same icon files. +- DocumentationAlgo : Fixed handling of raw HTML by `markdownToHTML()`. +- Reference : Fixed unnecessary serialisation of connections from internal plugs to external plugs. These are serialised in the `.grf` file already, so do not need to be duplicated on the Reference node itself. This bug prevented changes to the internal connections from taking effect when reloading a modified `.grf` file, and could cause load failures when the connections were from an internal Expression ([#4935](https://github.com/GafferHQ/gaffer/issues/4935)). +- MeshToLevelSet, LevelSetOffset : Fixed bug that could cause partial results to be returned if a previous operation was cancelled. +- PlugValueWidget : Fixed unnecessary updates when calling `setContext()` with the same context. + +API +--- + +- MenuDefinition : Added `icon` attribute support to `subMenu` items. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.4.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.4.0.md.txt new file mode 100644 index 000000000..f3d6c4535 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.4.0.md.txt @@ -0,0 +1,18 @@ +1.1.4.0 +======= + +Improvements +------------ + +- Cycles : Added support for custom attributes with either a `user:` or `render:` prefix. These can be authored in Gaffer and then read at render time using Cycle's attribute shader. + +Fixes +----- + +- Catalogue : Fixed crashes when using the or keys immediately after adding or removing a column. +- PathListingWidget : Fixed bug tracking the last selected path, which could cause crashes if the path was deleted or the columns were changed. +- Image Viewer : Fixed dragging a color from the image view using a context with the wrong time, and an error that could show up when deleting the currently viewed image. +- Cycles : + - Fixed background shader bug that could cause a crash, or cause the initial render in the Cycles viewport to be blank. + - Fixed light bug that triggered an assertion in Cycles debug builds. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.5.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.5.0.md.txt new file mode 100644 index 000000000..b848f99c1 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.5.0.md.txt @@ -0,0 +1,32 @@ +1.1.5.0 +======= + +Features +-------- + +- PrimitiveVariableQuery : Added new node to query multiple primitive variables from a scene location. + - Each query specifies the name and type of the primitive variable + - Each query has a corresponding output plug with `exists`, `interpolation`, `type` and `value` child plugs. + +Improvements +------------ + +- ArnoldOptions : Added support for `texture_use_existing_tx`, `texture_auto_generate_tx` and `texture_auto_tx_path`. +- Arnold : Added support for attributes containing InternedStringData, as would be obtained by loading `token` primvars from a USD file. +- Random : Added the `outFloat` plug to the NodeEditor, and moved output plugs into their own `Outputs` section. + +Fixes +----- + +- Arnold : + - Fixed deletion of `ai:transform_type` attribute during interactive renders. The object now reverts to the default transform type in this case. + - Fixed broken Viewer after Arnold encountered an error (such as a missing texture). + - Fixed `Tools/Arnold/Flush Cache` not working when no interactive renders are running. + +API +--- + +- TypedObjectPlug : Added V2fVectorDataPlug and V3iVectorDataPlug. +- PlugAlgo : Added support for V2iVectorData, V3fVectorData and Color3fVectorData types in `canSetValueFromData()` and `setValueFromData()` functions. +- VectorDataPlugValueWidget : Added support for V2iVectorData and Color3fVectorData plug types. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.6.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.6.0.md.txt new file mode 100644 index 000000000..c914a1eaf --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.6.0.md.txt @@ -0,0 +1,35 @@ +1.1.6.0 +======= + +Features +-------- + +- SetQuery : Added a new node for querying the set memberships of a location. + +Improvements +------------ + +- UIEditor : Added `Allow Custom Values` checkbox to the Widget Settings section for the Presets Menu widget. When on, this allows the user to enter their own custom values in addition to choosing presets from the menu. +- Image View : Added support for custom presets for choosing catalogue outputs to compare to. This can be set up like `Gaffer.Metadata.registerNodeValue( GafferImageUI.ImageView, "compare.catalogueOutput", "preset:MyPreset", "myNamespace:specialImage" )`. The Catalogue won't know how to deal with a request for "myNamespace:specialImage", and will just output an error image, but this could be useful in pipelines where Catalogue's are wrapped in custom nodes that can respond to this special value of the `catalogue:imageName`. If you want to provide a custom icon for your custom mode, Gaffer will search for an icon name `catalogueOutput{preset name}.png`. +- Animation Editor : Added UI tooltips to menu items for TieMode and Interpolation. +- CopyPrimitiveVariables : Added `ignoreIncompatible` plug which will cause the node to not error when attempting to copy primitive variables from the source object that are imcompatible with the destination object. +- Arnold : Enabled support for using the `layerName` parameter with non-LPE outputs. This requires a minimum of Arnold 7.1.3.0, because it contains a fix for ARNOLD-12282. +- ShaderQuery : Added "From Selection" menu item to the popup menus for the `shader` plug and parameter adder. +- File browsers : Excessively long filter labels are now truncated, instead of making the widget too wide. +- PathParameterValueWidget : The `extensions` specified by the parameter are now translated to `fileSystemPath:extensions` metadata, enabling filtering in the Gaffer file browser. + +Fixes +----- + +- Viewer : Added missing bookmarks 1-4 to the image comparison menu. +- MessagesBinding : Fixed GIL management bug that could cause crashes when performing an interactive render. +- Spreadsheet : Fixed crash when connecting a StringVectorDataPlug to a row's `name` plug. +- Documentation : Fixed "In this article" navigation column contents on pages containing figures. + +API +--- + +- Animation : + - Added `description` metadata for `Animation.Interpolation` enum values that is used to generate UI tooltips. + - Added `description` metadata for `Animation.TieMode` enum values that is used to generate UI tooltips. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.6.1.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.6.1.md.txt new file mode 100644 index 000000000..814f1fb87 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.6.1.md.txt @@ -0,0 +1,12 @@ +1.1.6.1 +======= + +Fixes +----- + +- NodeEditor : Fixed updates for the green "non-default-value" dots in plug labels. +- Cycles : + - Fixed handling of OSL shader component connections ([#4926](https://github.com/GafferHQ/gaffer/issues/4926)). + - Fixed crash when attempting to use a non-existent OSL shader. + - Fixed `Unsupported socket "tiles"` warning when loading the `image_texture` shader. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.7.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.7.0.md.txt new file mode 100644 index 000000000..778cc2cc0 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.7.0.md.txt @@ -0,0 +1,40 @@ +1.1.7.0 +======= + +Features +-------- + +- ContextVariableTweaks : Added a new node for tweaking the context used to evaluate upstream nodes. + +Improvements +------------ + +- Cycles : + - Replaced `size` on portals and quad lights with separate `width` and `height` parameters, and renamed `size` parameter of disk lights to `width`. + - Added `use_camera`, `use_caustics` and `normalize` parameters to lights. +- TweakPlug : Added a `CreateIfMissing` mode, to only create a new value if one does not currently exist. +- OSLObject : Added support for attribute substitutions using `` syntax in string parameters, provided that `useAttributes` is turned on. +- UIEditor : Increased maximum size of the "Button Click Code" editor. + +Improvements +------------ + +- NodeEditor : Added "Promote Value and Switch" context menu item for promoting NameValuePlugs to Boxes. + +Fixes +----- + +- Viewer : + - Fixed Default display transform so that it updates correctly when the default is changed via the Preferences dialogue, and when the context changes. + - Fixed drawing of image pixels to the left of the display window. +- Cycles : + - Fixed custom AOVs (for SVM shading mode only, Cycles doesn't support custom AOVs in OSL mode) ([#5044](https://github.com/GafferHQ/gaffer/issues/5044)). + - Fixed units for distant light angle (now degrees and not radians). + - Fixed assignment of `emission` shader. Previously this was being assigned as a `cycles:light` attribute instead of `cycles:surface` ([#5058](https://github.com/GafferHQ/gaffer/issues/5058)). + - Hid internal shader plugs which shouldn't be exposed to the user (e.g. `surface_mix_weight`). +- UVInspector : Fixed update delay when changing display transform. +- Random : Fixed GIL management bug which could lead to hangs. +- ShaderTweaks : Fixed `Remove` mode. +- FilterQuery : Fixed bug which prevented the output from updating when the input scene changed ([#5066](https://github.com/GafferHQ/gaffer/issues/5066)). +- Arnold : Fixed rendering of `token` enum parameter values loaded from USD. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.8.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.8.0.md.txt new file mode 100644 index 000000000..b13d8a0d2 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.8.0.md.txt @@ -0,0 +1,27 @@ +1.1.8.0 +======= + +Features +-------- + +- MeshSegments : Added a node for identifying faces in contiguous segments. + +Improvements +------------ + +- USD : + - Added support for Arnold-USD's convention for representing connections to individual indices of an array. + - Added loading of `float4` USD shader parameters as `Color4` parameters in Gaffer. + +Fixes +----- + +- Viewer : Fixed bug which made it impossible to switch back to a previously used display transform. +- Cycles : Disabled auto-tiling mode for the viewport/interactive render mode, which caused odd/glitchy behaviour on larger than 2k renders. +- HierarchyView : Fixed P and N editor focus hotkeys. + +Build +----- + +- Cortex : Updated to 10.4.4.0. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.9.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.9.0.md.txt new file mode 100644 index 000000000..d9673901c --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.9.0.md.txt @@ -0,0 +1,31 @@ +1.1.9.0 +======= + +Improvements +------------ + +- Arnold : Disabled ADP more thoroughly, using `ARNOLD_ADP_DISABLE=1` for Arnold 7.1.4.0 and greater. Set `ARNOLD_ADP_DISABLE=0` before running Gaffer if you wish to use ADP. +- Cycles : + - Added warning when a shader contains a parameter which does not exist in Cycles. + - Added warning when a shader contains a parameter with an unsupported datatype. + - Added warning when a shader contains an enum parameter with an invalid value. + - Added support for passing InternedStringData to enum and string parameters. + +Fixes +----- + +- Backups : Fixed error when a backup file contained characters that couldn't be represented using the current locale. This could be triggered by a separate bug in OpenShadingLanguage that caused the locale to be changed unnecessarily ([#5048](https://github.com/GafferHQ/gaffer/issues/5048)). +- Viewer : + - Fixed crash when switching from Cycles to OpenGL rendering ([#5051](https://github.com/GafferHQ/gaffer/issues/5051)). + - Fixed potential crash when destroying a raytraced viewport. +- Cyles : + - Fixed crashes caused by providing unsupported data types in shader parameters. + - Fixed support for Color4f values on colour shader parameters. This can be useful when loading non-standard USD files. + - Fixed support for V[23]i values on vector shader parameters. + - Fixed handling of colour array parameters. + +API +--- + +- TestCase : Added `scopedLocale()` method. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.9.1.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.9.1.md.txt new file mode 100644 index 000000000..032388e9d --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.9.1.md.txt @@ -0,0 +1,9 @@ +1.1.9.1 +======= + +Fixes +----- + +- Cycles : Fixed crash triggered by unsupported shader parameters ([#5147](https://github.com/GafferHQ/gaffer/issues/5147)). +- CompoundPlugValueWidget : Fixed errors when refreshing the widget. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.9.2.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.9.2.md.txt new file mode 100644 index 000000000..43db2c901 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.9.2.md.txt @@ -0,0 +1,13 @@ +1.1.9.2 +======= + +Fixes +----- + +- Tweak nodes : Fixed bugs which prevented the creation of new tweaks when an existing tweak had an input connection. +- Preferences : Fixed bug which caused UI metadata to be serialised unnecessarily into `~/gaffer/startup/gui/preferences.py`. +- OpenGL Texture shader : Fixed bug which allowed transparent regions to obscure objects behind them. +- Viewer : + - Fixed visualisation of Arnold `image` nodes with non-default UV Coordinates settings. + - Fixed Arnold selection bugs caused by the `ai:fis_filter` option. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.9.3.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.9.3.md.txt new file mode 100644 index 000000000..1913fc35b --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.9.3.md.txt @@ -0,0 +1,8 @@ +1.1.9.3 +======= + +Fixes +----- + +- ImageReader : Made error message more descriptive when trying to access a channel that doesn't exist. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.9.4.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.9.4.md.txt new file mode 100644 index 000000000..246779c35 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.9.4.md.txt @@ -0,0 +1,8 @@ +1.1.9.4 +======= + +Fixes +----- + +- Viewer : Fixed bugs which could prevent an object from being updated if its computation was previously interrupted. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.9.5.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.9.5.md.txt new file mode 100644 index 000000000..860733ca1 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.9.5.md.txt @@ -0,0 +1,8 @@ +1.1.9.5 +======= + +Fixes +----- + +- VectorDataWidget : Fixed bugs preventing the display of headers and values for matrix and box data. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.9.6.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.9.6.md.txt new file mode 100644 index 000000000..d5cc0cc55 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.9.6.md.txt @@ -0,0 +1,8 @@ +1.1.9.6 +======= + +Fixes +----- + +- SceneReader : Fixed rounding errors which could cause the wrong sample to be read from a USD file. This was particularly noticeable for non-interpolable attributes such as visibility. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.1.9.7.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.1.9.7.md.txt new file mode 100644 index 000000000..b4dd54430 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.1.9.7.md.txt @@ -0,0 +1,9 @@ +1.1.9.7 +======= + +Fixes +----- + +- EditMenu : Fixed errors using "Duplicate with Inputs" with certain configurations of Dot node ([#5309](https://github.com/GafferHQ/gaffer/issues/5309)). +- Dot : Fixed the display of context-sensitive `label` values ([#5330](https://github.com/GafferHQ/gaffer/issues/5330)). + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.0.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.0.0.md.txt new file mode 100644 index 000000000..aa61cf78c --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.0.0.md.txt @@ -0,0 +1,184 @@ +1.2.0.0 +======= + +This version enables Cycles support by default, as we believe we have made sufficient progress to allow wider testing. We may continue to make behaviour-changing updates if necessary though, so support is not yet considered final. + +> Note : Python 2 support has been removed. All builds are now using Python 3. + +Features +-------- + +- Windows : Added official builds for Windows. +- HierarchyView : Added control over the Visible Set, which defines the locations within the scene that are loaded and rendered by the Viewer. + - The Inclusions column adds locations to the Visible Set, so that they and their descendants are rendered in the Viewer without needing to be expanded in the HierarchyView. + - The Exclusions column excludes locations from the Visible Set, so that they and their descendants are never rendered in the Viewer, regardless of any other expansions or inclusions. + - Locations can have their Visible Set inclusion or exclusion toggled by clicking within the appropriate column. Shift-clicking will remove the location and any of its descendants from the Visible Set. When multiple locations are selected, edits to any of the selected locations will affect all selected locations. +- Mute/Solo : Added the ability to mute and solo lights. + - A light can be muted by setting the `light:mute` attribute. If that attribute is not present, the light will not be muted. + - One or more lights can be enabled exclusively via membership in the `soloLights` set. If that set has one or more members, only the lights in that set will emit. If the set is empty, all lights emit according to their mute state. If a light is both muted and in the `soloLights` set, it will emit. + - Light Editor : + - Added a "Mute" column for toggling a light's mute attribute on and off. + - Added a "Solo" column to quickly add and remove lights from the `soloLights` set. + - Lights : Added a `mute` toggle, which can be accessed in the node editor from the `Light Linking` tab. + - Added a visual indication to lights in the viewport when they are muted. Muted lights use a dark gray outline instead of yellow. + - Cycles : Muted lights are disabled in renders. + - Arnold : Muted lights are disabled in renders. +- Animation : + - Added new curve extrapolation modes to determine the shape of a curve outside the range of its keys. + - Constant : Curve is extended as a flat line. + - Linear : Curve is extended as a line with slope matching tangent in direction of extrapolation. + - Cycle : Curve is repeated indefinitely. + - CycleOffset : Curve is repeated indefinitely with each repetition offset in value to preserve continuity. + - CycleFlop : Curve is repeated indefinitely with each repetition mirrored in time. + - CycleFlip : Curve is repeated indefinitely with each repetition inverted in value and offset to preserve continuity. + - Added new curve tab in Animation Editor with controls for setting the extrapolation modes of a curve. + +Improvements +------------ + +- Cycles : Updated to Cycles 3.4. +- OSLObject, OSLImage : Improved performance when running heavy shaders on Linux (by 3x in one benchmark). This is achieved using OSL's recently added batched shading API. In the event of any problem, the optimisation may be disabled by setting the environment variable `GAFFEROSL_USE_BATCHED=0`. +- NodeEditor : Improved interactivity by moving computations onto background threads. The UI will no longer hang while the NodeEditor waits for the result of a slow computation. +- LightEditor : + - Added a "Disable Edit" command to the right-click menu, to easily disable tweaks in EditScopes (shortcut D). + - Added a "Remove Attribute" command to the right-click menu, to delete attributes using the EditScope (shortcut Delete). + - Adjustments made to the width of the "Name" column are now preserved when switching between sections. +- Isolate : The `keepLights` setting now also keeps light filters. +- AttributeTweaks : Added `Remove` mode. +- PathListingWidget : Added support for columns that can automatically stretch to make use of available space. +- Animation Editor : For protruding tangents the slope and scale controls are now disabled (non editable) and display constrained values. +- Expression : `pathlib.Path` values may now be assigned to StringPlugs. +- Render : An error is now emitted if the render camera is hidden, instead of rendering through a default camera instead ([#5131](https://github.com/GafferHQ/gaffer/issues/5131)). +- ResamplePrimitiveVariables : Extended the supported data types when resampling from a Constant primitive variable. +- Viewer : If Arnold is available, then it is preferred over Appleseed for performing OSL shader previews. If neither is available, then Cycles will be used ([#5084](https://github.com/GafferHQ/gaffer/issues/5084)). +- FormatPlugValueWidget, ChannelPlugValueWidget, ChannelMaskPlugValueWidget, RGBAChannelsPlugValueWidget, ViewPlugValueWidget : Added support for showing multiple plugs at once, as needed when multiple Spreadsheet cells are selected for editing. +- SceneReader : + - Improved read performance for sets in USD files, with a benchmark reading a moderately large set seeing more than 2x speedup. + - Improved cancellation responsiveness when reading large sets from USD files. +- SceneWriter : Improved performance when writing sets to USD files. +- Spreadsheet : Improved display of image formats. + +Fixes +----- + +- Layouts : Fixed bug applying window size and position from saved layouts ([#5042](https://github.com/GafferHQ/gaffer/issues/5042)). +- Arnold : + - Fixed input connections to individual color and vector components when rendering with a GPU device. + - The `ai:GI_diffuse_depth` and `ai:GI_specular_depth` options now default to `2` when they are left unspecified, matching the default values on the ArnoldOptions node. +- CompoundNumericPlugValueWidget : Fixed failure to construct with an empty list of plugs. +- ChannelPlugValueWidget : Fixed compatibility with multi-view images. +- FilteredSceneProcessor : + - Fixed bugs which allowed read-only nodes to be edited. + - Fixed undo for `Remove` menu item in Filter tab. +- NodeEditor : Fixed bugs in handling of "green dot" non-default-value indicators with nested plugs. +- 3Delight : Fixed rendering with recent versions of 3Delight, which no longer use the `DL_DISPLAYS_PATH` to search for display drivers. +- Metadata : + - Fixed memory leak. + - Fixed thread safety bug that prevented concurrent access to metadata for the _same_ plug or node from multiple threads. +- ShufflePrimitiveVariables, ShuffleAttributes, OptionQuery, PrimitiveVariableQuery, ShaderQuery, ContextQuery, CreateViews, SetVisualiser, OSLImage, OSLObject, OSLCode, Outputs : Fixed bugs which allowed read-only nodes to be edited. +- CodeWidget : Fixed auto-complete for `pathlib.Path` objects, and any other classes which throw `AttributeError` for an attribute advertised by `dir()`. +- Expression : Fixed non-deterministic parsing order for Python expressions ([#4935](https://github.com/GafferHQ/gaffer/issues/4935)). +- FileSequencePathFilter : Fixed bug whereby files were considered to be part of a sequence if they were in a numbered directory. Now only numbers in the file's name are considered. +- BoolWidget : Fixed bug triggered by calling `setImage()` from within a `with widgetContainer` block. +- LevelSetOffset, MeshToLevelSet, LevelSetToMesh, SphereLevelSet : Fixed bugs which could cause unnecessary repeated computations, or in the worst case, lead to deadlock. +- ValuePlug : Fixed rare deadlock when a TaskParallel compute recurses to a Legacy compute with the _same_ hash. +- GafferTest : Fixed bug which caused `parallelGetValue()` to use the wrong context. +- LightEditor : Fixed bug which could cause attribute edits to be made for a parent location instead of the desired one. +- BackgroundMethod : Fixed bug that could cause the `postCall` to be called on a widget that had already been removed from the UI. + +API +--- + +- Filesystem path handling : Adopted `std::filesystem::path` and `pathlib.Path` in the C++ and Python APIs respectively, with automatic conversion between the two. These simplify common use cases, and provide for more elegant cross-platform path handling. + - ScriptNode : `serialiseToFile()`, `executeFile()` and `importFile()` now take `filesystem::path` arguments. + - Reference : + - `load()` now takes a `filesystem::path` argument. + - `fileName()` now returns a `filesystem::path` argument. + - Box : `exportForReference()` now takes a `filesystem::path` argument. + - ApplicationRoot : + - `savePreferences()` now takes a `filesystem::path` argument. + - `preferencesLocation()` now returns a `filesystem::path`. + - FileSystemPath : + - Added a constructor that accepts a `filesystem::path`. + - Added a `standardPath()` method returning a `std::filesystem::path` object in C++ and a `pathlib.Path` object in Python. + - StringPlug : Added a `setValue()` overload taking a `filesystem::path`. + - Dispatcher : `jobDirectory()` now returns a `filesystem::path`. + - Backups : File names are now represented using `pathlib.Path`. + - TestCase : `temporaryDirectory()` now returns a `pathlib.Path`. + - ShaderView : `registerReferenceScene()` now takes a `filesystem::path`. + - Catalogue : `save()` and `load()` take a `filesystem::path`, and `generateFileName()` returns one. + - ExtensionAlgo : `exportExtension()` now takes a `pathlib.Path` in the `directory` argument. +- PlugValueWidget : Added new API to provide asynchronous updates. The old `_updateFromPlugs()` and `_plugConnections()` methods are deprecated, and support for them will be removed in a future version. +- PathColumn : Added `setSizeMode()` and `getSizeMode()` methods, and `sizeMode` constructor argument. These allow the size behaviour of a PathColumn to be configured. +- EditScopeAlgo : Added `acquireSetEdits()` method. +- TestCase : Added `scopedLocale()` method. +- Animation : + - The slope and scale of protruding tangents is now constrained to match the values of the sibling tangent. + - Added `curve.extrapolationChangedSignal()` function, returns a signal that is called when a curve's extrapolation has changed. + - Added new api for curve extrapolation modes (see header `Animation.h` for full details). + - Added `description` metadata for curve extrapolation modes that is used to generate UI tooltips. +- PlugAlgo : Added `findDestination()` utility method. +- Style : `renderAnimationCurve()` function now takes a vector of curve vertices and an `inKeyRange` argument that indicates whether the specified curve vertices lie within the time range of the curve's keys. +- PlugAlgo : Added `dependsOnCompute()` utility method. +- PathColumn : Added `buttonPressSignal()`, `buttonReleaseSignal()` and `buttonDoubleClickSignal()`. These allow a PathColumn to implement its own event handling. +- Capsule : Removed attempts to detect invalidated Capsules. +- VisibleSet/VisibleSetData : Added struct used to define a subset of the scene to be rendered based on expansions, inclusions, and exclusions. This is used to allow scene locations to be defined as always or never renderable, overriding the usual UI expansion behaviour. +- ContextAlgo : Added `setVisiblesSet()`, `getVisibleSet()`, and `affectsVisibleSet()` methods. +- SceneGadget : Added `setVisibleSet()`, and `getVisibleSet()` methods. +- EditScopeAlgo : Added methods to modify and query modifications to set members in an Edit Scope. +- Widget : Added support for a `_postContructor()` method, which is called after the widget is fully constructed. This can be useful for performing post-initialisation work from a base class. +- GafferTest : Added ObjectPlug overloads for `repeatGetValue()` and `parallelGetValue()`. +- SceneTestCase : Added `assertParallelGetValueComputesObjectOnce()`. This can be used to check that expensive computes are using an appropriate cache policy. +- Gaffer ( Python module ) : Added `rootPath()` and `executablePath()` methods. +- TestLightFilter : Added new node to GafferSceneTest, to aid in testing of scenarios involving LightFilters. + +Breaking Changes +---------------- + +- Python : Removed support for Python 2. +- MaterialX : The majority of OSL shaders in `shaders/MaterialX` are no longer provided, as the `OpenShadingLanguage` project removed them and no direct equivalent exists in the `MaterialX` project itself. We recommend using alternative shaders, or if necessary, sourcing them from a previous Gaffer release. +- Arnold : Changed the default values for the `ai:GI_diffuse_depth` and `ai:GI_specular_depth` options. +- Locale : Removed `LC_NUMERIC=C` environment variable assignment from wrapper. This was a workaround for an OpenColorIO bug that has since been fixed. +- Style : Changed the signature of the `renderAnimationCurve()` virtual function. +- Signal : Removed `disconnect( slot )` method. This was a performance hazard because it was linear in the number of connections. Use `Connection::disconnect()` instead, which is constant time. +- GafferTest : Removed `expectedFailure()` decorator. Use `unittest.expectedFailure()` instead. +- SceneWriter : + - Sets are now only written on the first frame for each file written. + - `SceneInterface::writeSet()` is now used in preference to `SceneInterface::writeTags()` for all non-legacy file formats. +- SceneReader : `SceneInterface::readSet()` is now used in preference to `SceneInterface::readTags()` for all non-legacy formats. +- CatalogueUI : Hid OutputIndexColumn from public API. +- ContextAlgo : Removed use of the `ui:scene:expandedPaths` context variable. Any code directly accessing `ui:scene:expandedPaths` should instead use the `getExpandedPaths()/setExpandedPaths()/expand()/expandDescendants()` methods provided by `ContextAlgo`. +- SceneGadget : Removed `setExpandedPaths()` and `getExpandedPaths()` methods. `setVisibleSet()` and `getVisibleSet()` are now used instead. +- GafferUI : Removed the `setReadOnly()` and `getReadOnly()` methods from the following widgets : + - `GafferUI.PlugValueWidget` + - `GafferUI.NodeEditor` + - `GafferUI.NodeUI` + - `GafferUI.PlugLayout` +- Reference : The `fileName()` Python binding now returns a `pathlib.Path` argument, or `None` for empty file names. +- ApplicationRoot : The `preferencesLocation()` Python binding now returns a `pathlib.Path` argument. +- StringPlug : `setValue( std::filesystem::path & )` now uses `path.generic_string()` for the value, whereas before an automatic conversion would have used `path.string()` (the native string). +- Dispatcher : the `jobDirectory()` Python binding now returns a `pathlib.Path`, or `None` if it is empty. +- `Context::EditableScope`, `ImagePlug::ChannelDataScope`, `ScenePlug::PathScope/SetScope` : Removed deprecated functions which didn't take pointers and required duplication of data. +- ViewportGadget : Removed deprecated `gadgetsAt()` signature. +- Isolate : The `keepLights` setting now also keeps light filters. + +Build +----- + +- Updated to GafferHQ/dependencies 6.0.0 : + - Cortex : Updated to version 10.4.5.0. + - Cycles : Updated to version 3.4. + - Embree : Updated to version 3.13.4. + - Expat : Added version 2.5.0. + - Fmt : Added version 9.1.0. + - OpenColorIO : Updated to version 2.1.2. + - OpenImageIO : Updated to version 2.4.8.0. + - OpenShadingLanguage : Updated to version 1.12.9.0. + - OpenSubdiv : Updated to version 3.4.4. + - PyString : Added version 1.1.4. + - USD : + - Updated to version 23.02. + - Enabled the OpenImageIO plugin. Among other things, this allows OpenEXR textures to be shown in `usdview`. + - YAML-CPP : Added version 0.7.0. +- 3Delight : Updated to 3Delight version 2.9.17. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.0.1.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.0.1.md.txt new file mode 100644 index 000000000..138af94ee --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.0.1.md.txt @@ -0,0 +1,8 @@ +1.2.0.1 +======= + +Fixes +----- + +- Viewer : Fixed crash displaying Arnold quad lights in portal mode. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.0.2.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.0.2.md.txt new file mode 100644 index 000000000..7728f576d --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.0.2.md.txt @@ -0,0 +1,13 @@ +1.2.0.2 +======= + +Fixes +----- + +- Viewer : Fixed flickering and empty menu in the channel selector for the image view. +- RGBAChannelsPlugValueWidget, ChannelPlugValueWidget, ChannelMaskPlugValueWidget : + - Fixed unnecessary updates when channel data changed. +- RGBAChannelsPlugValueWidget : Fixed bug that prevented errors being shown. +- Cycles : Fixed crash triggered by unsupported shader parameters ([#5147](https://github.com/GafferHQ/gaffer/issues/5147)). +- CompoundPlugValueWidget : Fixed errors when refreshing the widget. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.1.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.1.0.md.txt new file mode 100644 index 000000000..cd7696fe6 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.1.0.md.txt @@ -0,0 +1,54 @@ +1.2.1.0 +======= + +Features +-------- + +- SetEditor : Added a new editor UI for inspecting sets. This can be found in the tab next to the SceneInspector in the Standard layouts. Sets are displayed hierarchically using ":" characters in set names as separators. +- ImageToPoints : Added a new node for converting images to points primitives. +- MeshSplit : Added node for splitting a mesh into multiple meshes based on the values of a primitive variable. May be combined with the recently added MeshSegments to split meshes into connected parts. + +Improvements +------------ + +- USD : Added translation of UsdUVTexture's `scale`, `bias` and `fallback` parameters to Arnold. +- StringPlugValueWidget : Added support for converting StringVectorData values pasted or dropped onto the widget. The string value is formed by joining the string array using spaces. +- Spreadsheet : Improved support for converting StringVectorData to StringData when dropping values on cells. The string value is formed by joining the string array using spaces. +- CompoundPathFilter : Canceller is now passed to member filters. +- PathListingWidget : Improved performance when sorting items based on the name column. +- Scene : Improved performance computing the bounding box for a primitive. +- aiQuadLight : Added `width` and `height` parameters. + +Fixes +----- + +- Locale : + - Reintroduced `LC_NUMERIC=C` environment variable assignment to wrapper. This was removed in `1.2.0.0` but is still necessary due to a [bug in Cortex](https://github.com/ImageEngine/cortex/issues/1338). + - Fixed serialisation of `.gfr` files in locales with non-default numeric formatting ([#5158](https://github.com/GafferHQ/gaffer/issues/5158)). +- Tweak nodes : Fixed bugs which prevented the creation of new tweaks when an existing tweak had an input connection. +- Preferences : Fixed bug which caused UI metadata to be serialised unnecessarily into `~/gaffer/startup/gui/preferences.py`. +- OpenGL Texture shader : Fixed bug which allowed transparent regions to obscure objects behind them. +- Viewer : + - Fixed visualisation of Arnold `image` nodes with non-default UV Coordinates settings. + - Fixed Arnold selection bugs caused by the `ai:fis_filter` option. +- SceneReader : Invalid primitive variables in USD files are now skipped during loading, with a warning being emitted instead. +- DeleteFaces : Fixed sudivision crease handling bug. +- USD RectLight : Fixed the orientation of textures applied to the light to be oriented with the top-left of the image at the top-left of the quad light when viewed from an object receiving illumination. + +Documentation +------------- + + - Added more Python examples to the Scripting Reference "Common Operations" article. + - Added instructions for installing and configuring Gaffer on Windows to the "Getting Started" guide. + +API +--- + +- RGBAChannelsPlugValueWidget : Added support for `rgbaChannelsPlugValueWidget:allowNone` metadata. + +Build +----- + +- Cortex : Updated to version 10.4.6.0. +- Added support for Inkscape versions greater than 1.0. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.1.1.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.1.1.md.txt new file mode 100644 index 000000000..b8889505b --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.1.1.md.txt @@ -0,0 +1,9 @@ +1.2.1.1 +======= + +Fixes +----- + +- TractorDispatcher : Fixed `TypeError : unsupported operand types` error that prevented dispatch. +- ImageReader : Made error message more descriptive when trying to access a channel that doesn't exist. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.10.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.10.0.md.txt new file mode 100644 index 000000000..481c63db8 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.10.0.md.txt @@ -0,0 +1,18 @@ +1.2.10.0 +======== + +Improvements +------------ + +- EditScopeUI : Added the ability to turn off visibility of selected objects in the viewer using the Ctrl+H shortcut. + +Fixes +----- + +- Instancer : Fixed bug that could cause the `scene:path` context variable to be leaked into the evaluation of `prototypes.set` in rare circumstances. +- NumericPlugValueWidget ([#5335](https://github.com/GafferHQ/gaffer/issues/5335)) : + - Fixed bug causing the cursor position to be reset to the end if the number of digits in the plug value changed while incrementing/decrementing with the keyboard up/down arrow keys. + - Fixed bug causing the cursor position to be reset to the end when incrementing an animated plug. + - Fixed intermittent `---` values when drag-changing an animated plug value. +- EditScopes : Fixed bug where the enabled state of `AttributeEdits`, `OptionEdits` and `SetMembershipEdits` did not have any effect. This fix will only apply to newly created `AttributeEdits`, `OptionEdits` and `SetMembershipEdits`. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.10.1.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.10.1.md.txt new file mode 100644 index 000000000..84eed8020 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.10.1.md.txt @@ -0,0 +1,13 @@ +1.2.10.1 +======== + +Fixes +----- + +- Viewer : Fixed visualisation of shaping cones for UsdLux lights, which were previously drawn at half the correct angle. +- Arnold + - Fixed translation of `vector` typed outputs defined as `vector ` in an output definition. + - Fixed translation of `shadow:enable` and `shadow:color` parameters on UsdLux lights, which were previously ignored. +- BranchCreator : Fixed bug which could cause inconsistent hashes to be generated. +- LightEditor : Fixed toggling values in cases where inherited light attributes were set by a script context variable without including a default. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.10.2.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.10.2.md.txt new file mode 100644 index 000000000..b96de055f --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.10.2.md.txt @@ -0,0 +1,15 @@ +1.2.10.2 +======== + +Fixes +----- + +- Arnold : Fixed screen window export for Lentil cameras. +- Application : Fixed the `-threads` argument to clamp the number of threads to the number of available hardware cores ([#5403](https://github.com/GafferHQ/gaffer/issues/5403)). +- CompareFloat, CompareColor, CompareVector : Worked around crashes in OSL's batched shading system ([#5430](https://github.com/GafferHQ/gaffer/issues/5430)). +- GafferUI : Fixed TableView bug causing the horizontal scrollbar to potentially overlap the last row ([#5328](https://github.com/GafferHQ/gaffer/issues/5328)). +- Viewer : + - Fixed visualisation of Cycles point light size. + - Fixed visualisation of Arnold light gobo textures with scaled UV coordinates. +- Dispatch App : Fixed bug that prevented setting specific dispatcher plug values from the command line ([#5434](https://github.com/GafferHQ/gaffer/issues/5434)). + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.10.3.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.10.3.md.txt new file mode 100644 index 000000000..3d1f68de9 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.10.3.md.txt @@ -0,0 +1,8 @@ +1.2.10.3 +======== + +Fixes +----- + +- DispatchDialogue : Changed the button label for the results display from "Ok" to "Close". + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.10.4.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.10.4.md.txt new file mode 100644 index 000000000..a5d0cbb6e --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.10.4.md.txt @@ -0,0 +1,11 @@ +1.2.10.4 +======== + +Fixes +----- + +- GraphEditor : Removed dynamic raster-space sizing of focus icon, as it caused excessive overlap with other nodes at certain zoom levels and on certain high resolution displays ([#5435](https://github.com/GafferHQ/gaffer/issues/5435)). +- StringPlugValueWidget : Fixed bug handling Esc. +- Arnold : Fixed unnecessary `opaque` attribute deprecation warnings. These are now only emitted in the case that `opaque` has been explicitly turned off. +- ShaderUI : Fixed bug causing identical but independent shaders in a shader network from being included in the shader browser. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.10.5.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.10.5.md.txt new file mode 100644 index 000000000..98bdbbcdb --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.10.5.md.txt @@ -0,0 +1,9 @@ +1.2.10.5 +======== + +Fixes +----- + +- NameSwitch : Fixed bug which prevented drag and drop reordering of rows with an input connection. +- Scatter : Fixed loading of Scatter nodes saved from Gaffer 1.3+ (where the Seeds node was renamed to Scatter). + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.10.6.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.10.6.md.txt new file mode 100644 index 000000000..c992416ea --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.10.6.md.txt @@ -0,0 +1,8 @@ +1.2.10.6 +======== + +Fixes +----- + +- Context : Fixed potential crash when setting a variable with ownership. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.2.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.2.0.md.txt new file mode 100644 index 000000000..fbd5718a6 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.2.0.md.txt @@ -0,0 +1,27 @@ +1.2.2.0 +======= + +Improvements +------------ + +- Playback : + - Added Ctrl+Right hotkey toggle for forward playback. + - Added Ctrl+Left hotkey toggle for backward playback. + - Pressing either of Right or Left will also stop playback. +- Transform Tools : Added O shortcut to cycle through the orientation modes. + +Fixes +----- + +- Reference : Fixed bug reloading a Reference after changing the number of points in a SplinePlug. The complete edited spline is now maintained across a reload. If the spline has not been edited, then the value is updated from the `.grf` file as before ([#5170](https://github.com/GafferHQ/gaffer/issues/5170)). +- DispatchDialogue : Fixed `AttributeError: '__Implementation' object has no attribute 'message'` error. +- Catalogue : Fixed errors caused by empty image selections. +- MultiLineStringPlugValueWidget : Fixed bug handling Esc. +- PathListingWidget : Fixed issue with columns set to automatically stretch not resizing if column headers are hidden. +- Viewer : Fixed bugs which could prevent an object from being updated if its computation was previously interrupted. + +Documentation +------------- + +- Updated the "Assembling The Gaffer Bot" tutorial to use Cycles instead of Appleseed. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.3.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.3.0.md.txt new file mode 100644 index 000000000..6f7b99894 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.3.0.md.txt @@ -0,0 +1,51 @@ +1.2.3.0 +======= + +Features +-------- + +- Arnold : Added support for Arnold 7.2. +- PointsToLevelSet : Added a new node for converting points primitives into OpenVDB level sets. + +Improvements +------------ + +- ArnoldOptions : Exposed Arnold 7.2.1.0's Global Light Sampling feature via a new `lightSamples` plug. +- ArnoldAttributes : Added `shadowAutoBumpVisibility` plug, since Arnold 7.2.1.0 now correctly implements this feature. +- Shader : Added support for shading input connections to splines. After double clicking on a spline to open the editor, you may select a control point, and then drag an input to the value control. Works in GafferImage, GafferObject and Arnold. Supports a max of 32 values in the spline. +- FloatSpline and ColorSpline OSL shaders : Added a `direction` parameter, with options of `U`, `V`, `Diagonal`, `Radial` and `Custom`. +- Constraint : Disabled the `referenceFrame` plug in the NodeEditor when `keepReferencePosition` is off. + +Fixes +----- + +- OSLObject/OSLImage : Fixed missing `+` buttons in GraphEditor on Windows ([#5222](https://github.com/GafferHQ/gaffer/issues/5222)). +- Viewer : Fixed missing VDB visualisations on Windows ([#5223](https://github.com/GafferHQ/gaffer/issues/5223)). +- SceneReader : Fixed reading of USD primitives containing `primvars:normals`. These are now correctly loaded as a primitive variable called N, taking precedence over the UsdGeomPointBased normals attribute. +- SceneWriter : Fixed writing of indexed normals to USD files, so that the indexing is retained on load. Note that this means that normals are now always written as `primvars:normals` and never via the UsdGeomPointBased `normals` attribute. +- CompoundDataPlugValueWidget : Fixed bug which prevented the addition of new plugs when an existing plug had an input connection. This affected the ContextVariables, CustomOptions and CustomAttributes nodes, among others. + +API +--- + +- NoduleLayout : Added a warning message when a required custom gadget has not been registered. +- GafferUITest.TestCase : Added testing of NodeGadgets to `assertNodeUIsHaveExpectedLifetime()`. +- SceneView : Added Python binding for `resolutionGate()` method. +- ViewportGadget : Added Python binding for `RasterScope` class. +- OSLShader : Added support for `visibleExpression` and `enabledExpression` metadata in OSL shaders. These may provide an OSL expression to control the activation of parameters in Gaffer's node editor. + +Build +----- + +- Cortex : Updated to version 10.4.7.0. + +Documentation +------------- + +- Updated the "Anamorphic Camera Setup" example to use Cycles instead of Appleseed. +- Updated the "Contact Sheet Generation" example to use Cycles instead of Appleseed. +- Updated the "Macbeth Chart" example to use Cycles instead of Appleseed. +- Updated the "Per-location Light Tweak Spreadsheet" example to use Cycles instead of Appleseed. +- Updated the "Wedge Tests" example to use Cycles instead of Appleseed. +- Updated the "Setting Up a Spreadsheet" tutorial to use Cycles instead of Appleseed. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.4.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.4.0.md.txt new file mode 100644 index 000000000..ab16727d8 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.4.0.md.txt @@ -0,0 +1,23 @@ +1.2.4.0 +======= + +Features +-------- + +- FramingConstraint : Added a new node for moving cameras to frame a chosen target. + +Improvements +------------ + +- CollectImages : Added `mergeMetadata` plug. This allows the metadata from all collected images to be merged, whereas before only the metadata from the first image was passed through. +- SpreadsheetUI : Added the ability to filter the rows displayed in a spreadsheet's UI ([#5092](https://github.com/GafferHQ/gaffer/issues/5092)). + +Fixes +----- + +- Arnold : Moved `distance` shader to the `Shader/Utility` section of the node menu (previously in `Shader/Other`). +- Graph Editor : Fixed a bug for some video drivers that led to a crash when using nodes with icons. +- Node Editor : Removed `Gang/Ungang` menu options from output plugs. +- SpreadsheetUI : Fixed bug which prevented the addition of new rows and columns when an existing plug had an input connection ([#5248](https://github.com/GafferHQ/gaffer/issues/5248)). +- VectorDataWidget : Fixed bugs preventing the display of headers and values for matrix and box data. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.5.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.5.0.md.txt new file mode 100644 index 000000000..92089ec86 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.5.0.md.txt @@ -0,0 +1,21 @@ +1.2.5.0 +======= + +Improvements +------------ + +- SceneReader : Improved performance when computing bounds for complex USD stages containing scenegraph instancing. + +Fixes +----- + +- SceneReader : + - Fixed rounding errors which could cause the wrong sample to be read from a USD file. This was particularly noticeable for non-interpolable attributes such as visibility. + - Fixed transforms loaded from USD files using the `UsdGeomXformable::ResetXformStack` operator. +- SceneWriter : The UsdShadeMaterialBindingAPI schema is now applied to all prims with material bindings, making the written files compatible with `USD_SHADE_MATERIAL_BINDING_API_CHECK=strict` mode. + +Build +----- + +- Cortex : Updated to version 10.4.7.1. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.6.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.6.0.md.txt new file mode 100644 index 000000000..bef036b11 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.6.0.md.txt @@ -0,0 +1,13 @@ +1.2.6.0 +======= + +Improvements +------------ + +- SceneReader : Improved error messages when encountering unexpected problems reading USD files. + +Build +----- + +- Cortex : Updated to version 10.4.8.0. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.7.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.7.0.md.txt new file mode 100644 index 000000000..d8bbb6304 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.7.0.md.txt @@ -0,0 +1,33 @@ +1.2.7.0 +======= + +Improvements +------------ + +- SceneReader : + - Improved performance when reading sets from USD compositions with many instances. + - Improved performance when reading materials from USD instances. + - Removed `scene:path` and `scene:setName` variables from context used to evaluate `fileName`, `refreshCount` and `tags` plugs. This prevents logical impossibilities like changing the file per location, and also reduces pressure on the hash cache. + - Improved performance when USD files are queried for sets which don't exist. This can be a substantial improvement when a complex USD file without sets is used within a node graph which adds many sets downstream. + +Fixes +----- + +- SceneReader : Fixed loading of `__cameras`, `__lights` and `usd:pointInstancers` sets from USD instances. +- Gaffer module : Delayed loading of config files until the Gaffer module is completely defined. + +API +--- + +- SceneReader : Added environment variables to control cache policies. + - `GAFFERSCENE_SCENEREADER_OBJECT_CACHEPOLICY` controls the policy for objects. + - `GAFFERSCENE_SCENEREADER_SETNAMES_CACHEPOLICY` controls the policy for set names. + - `GAFFERSCENE_SCENEREADER_SET_CACHEPOLICY` controls the policy for sets. + - Default policies remain unchanged, but `Standard` policy may yield improved performance and + reduced memory usage for Alembic or USD files making heavy use of instancing. + +Build +----- + +- Cortex : Updated to 10.4.9.0. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.8.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.8.0.md.txt new file mode 100644 index 000000000..ddc9d57a3 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.8.0.md.txt @@ -0,0 +1,30 @@ +1.2.8.0 +======= + +Improvements +------------ + +- ArnoldAttributes : Added `pointsMinPixelWidth` plug. +- EditScope : Hid the `BoxIn.name` and `BoxOut.name` plugs from the NodeEditor, since it is not editable and the name is _always_ `in` or `out` respectively. +- Limits : Increased soft file handle limit (`RLIMIT_NOFILE`) to match the hard limit (Linux only). +- SceneReader : + - Fixed `I/O Exception` errors triggered by closing and reopening the same USD file. + - Increased the default limit for the number of open files to 2000 (or 25% of the file handle limit, whichever is lowest). + +Fixes +----- + +- NodeEditor : Reverted change that prevented a plug being unlocked if static `readOnly` metadata was registered against it. +- EditMenu : Fixed errors using "Duplicate with Inputs" with certain configurations of Dot node ([#5309](https://github.com/GafferHQ/gaffer/issues/5309)). +- Dot : Fixed the display of context-sensitive `label` values ([#5330](https://github.com/GafferHQ/gaffer/issues/5330)). + +API +--- + +- CatalogueUI : Made ImageListing widget public so it can be customized using the API. + +Build +----- + +- Cortex : Updated to 10.4.9.1. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.2.9.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.2.9.0.md.txt new file mode 100644 index 000000000..eef8e7591 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.2.9.0.md.txt @@ -0,0 +1,38 @@ +1.2.9.0 +======= + +> Caution : A bug fix in the handling of the `ai:volume:step_scale` attribute may change the appearance of Arnold volume renders. + +Improvements +------------ + +- DelightOptions : Added new options for modern 3Delight, as of version `2.9.39`. +- ShaderQuery and ShaderTweaks : Added a filter for shader parameter names in the shader browser ([#5293](https://github.com/GafferHQ/gaffer/issues/5293)). +- ImageReader : Added `availableFrames` output plug, listing all the available frames in the current file sequence. +- MatchPatternPathFilterWidget : Added the name of the property being filtered to the placeholder text. +- OpenImageIOReader : The `availableFrames` plug no longer errors for a missing file sequence - instead it outputs an empty list. +- PathListingWidget : Header data is now computed asynchronously, without locking the UI. +- CollectScenes : Improved cancellation responsiveness for large lists of `rootNames`. + +Fixes +----- + +- Arnold : Fixed bug that caused `ai:volume:step_scale` to be ignored if `ai:volume_step` was set explicitly to `0.0`. This was different to the behaviour when `ai:volume_step` was not set at all. +- LightEditor : + - Fixed hang caused by the `soloLights` set triggering on an upstream Python expression or ComputeNode ([#5365](https://github.com/GafferHQ/gaffer/issues/5365)). + - Fixed thread-safety bug that meant the LightEditor attempted to perform computes while the graph was being edited. +- OSLImage : Fixed bug preventing channels / layers from being deleted using the right-click menu. +- HierarchyView : Fixed crash triggered by layouts with two or more HierarchyViews ([#5364](https://github.com/GafferHQ/gaffer/issues/5364)). +- Context : Fixed crash triggered by a reentrant call to `Context::set()` from within a slot connected to `Context::changedSignal()`. + +API +--- + +- MatchPatternPathFilterWidget : Made the entries in the property menu configurable. +- TweakPlug : Added `PathMatcherData` compatibility in `Replace`, `Create`, `ListAppend`, `ListPrepend` and `ListRemove` modes. +- PlugAlgo : + - Added support for creating a `PathMatcherDataPlug` from `PathMatcherData` in `createPlugFromData()`. + - Added support for getting `PathMatcherData` from a `PathMatcherDataPlug` in `getValueAsData()`. +- EditScopeAlgo : Added support for editing options. +- BackgroundTask : A warning is now emitted if the `subject` can not be associated with a ScriptNode for cancellation purposes. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.0.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.0.0.md.txt new file mode 100644 index 000000000..1c2b27e2b --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.0.0.md.txt @@ -0,0 +1,214 @@ +1.3.0.0 +======= + +Features +-------- + +- MeshNormals : Added a new node for adjusting mesh normals. +- VolumeScatter : Added a new node for scattering points throughout a volume. +- Cycles : Updated to version 3.5.0. +- LightTool : Added 3d viewer tool for manipulating lights. Manipulation of spot light cone and penumbra angles is currently supported. + +Improvements +------------ + +- 3D Viewer : + - Added OpenColorIO colour management. + - Added exposure, gamma and solo channel settings. + - Ancestors and siblings of locations included in the Visible Set are no longer drawn while their ancestors are collapsed. + - Added red wireframe colour to the bounding box of locations excluded from the Visible Set. +- UVInspector : Added exposure, gamma and solo channel settings. +- ImageReader : The `colorSpace` widget now displays the name of the assumed colorspace when in `Automatic` mode. +- ImageReader, ImageWriter : The `colorSpace` menu is now filtered using the `file-io` category, if the current OpenColorIO config provides it. +- ImageReader, OpenImageIOReader : Added `fileValid` BoolPlug that outputs `True` if the required file exists for the current frame. +- OpenColorIO : + - Updated default config to ACES Studio 1.3. + - Added `openColorIO` plug to ScriptNode, allowing the OpenColorIO config, working space, variables and display transform to be customised on a per-script basis. + - Added automatic configuration of Arnold color manager from Gaffer's OpenColorIO configuration. This may be overridden by using an ArnoldColorManager node to define an alternative color manager. + - Improved colorspace menus : + - Organised colorspaces into submenus by family. + - Removed unwanted title-casing, so that names are now displayed verbatim. + - Added control over the presence of roles by registering `openColorIO:includeRoles` metadata to the relevant plugs. + - Improved View display transform menu : + - Ordered menu items to match the order in the OpenColorIO config. + - Removed "Default" view. + - Added menu options for changing the current Display. + - Allowed the available views to be filtered using an `openColorIO:activeViews` metadata value registered on the View's `displayTransform.name` plug. Values should be space-separated names, optionally containing wildcards. + - OpenColorIOContext : Added a new node that creates Gaffer context variables to define the OpenColorIO config used by upstream nodes. This allows different OpenColorIO configs to be used in different Gaffer contexts. + - OpenColorIOTransform : + - Improved performance. + - Improved detection of no-op transforms, such as when converting between colorspace aliases like `scene_linear` and `ACEScg`. + - ColorSpace : Defaulted the input and output space to the current working space. + - DisplayTransform : Defaulted the input space to the current working space, and the display and view to the defaults defined by the current OpenColorIO config. + - ArnoldColorManager : Improved defaults to match Gaffer's current OpenColorIO configuration. +- Seeds : + - Renamed to Scatter. + - Added sampling of primitive variables from the source mesh onto the scattered points, controlled using the new `primitiveVariables` plug. + - Added `referencePosition` plug to allow point distribution to be fixed on animated meshes. + - Added `uv` plug to allow the space within which the points are scattered to be controlled. + - Added support for density primitive variable values above `1`. + - Improved numerical accuracy. + - Improved performance. +- VectorDataPlugValueWidget : Computation errors are now reflected by a red background colour. +- VectorWarp : Added `Bilinear` filter, for faster but lower quality warping. +- Dilate, Erode, Median, Resample, Resize, ImageTransform, Blur, VectorWarp : Improved performance significantly. For example, a Blur with a large radius is now almost 6x faster. +- RotateTool : Added the ability to rotate an axis whose plane of rotation is parallel or nearly parallel to the view. +- OptionQuery : Added support for querying generic `IECore::Object` values using an `ObjectPlug`. +- HierarchyView : + - Added support for inclusion and exclusion of leaf level locations to the Visible Set. + - Added F shortcut to expand ancestors and frame selected paths. This replaces the previous behaviour of automatic updates to expansion and framing in the HierarchyView on selection change. +- CyclesOptions : + - Added `useLightTree` plug. + - Added path guiding options. +- CyclesAttributes : + - Added `emissionSamplingMethod` plug. + - Added `isCausticsCaster` and `isCausticsReceiver` plugs. +- Render : Improved clearing of the compute and hash caches prior to rendering, potentially providing more memory to the renderer. Note that clearing is now only performed in the `execute` and `dispatch` apps. + +Fixes +----- + +- UVInspector : Removed display transform from UV wireframes and grid. +- Viewer : + - Gamma is now applied after the display transform, not before. + - Fixed image viewer's active tile indicators from becoming stuck when a computation was cancelled. +- Expression : Fixed parsing of Python expressions combining subscripts (`[]`) and `context` methods ([#3088](https://github.com/GafferHQ/gaffer/issues/3088), [#3613](https://github.com/GafferHQ/gaffer/issues/3613), [#5250](https://github.com/GafferHQ/gaffer/issues/5250)). +- ConnectionCreatorWrapper : Fixed bug which forced PlugAdder derived classes to implement `updateDragEndPoint()` unnecessarily. +- Plug : Fixed bug which caused stale values to be retrieved from the cache for plugs that had been renamed. +- ValuePlug : Fixed results when graph edits and computes are interleaved within a DirtyPropagationScope ([#1971](https://github.com/GafferHQ/gaffer/issues/1971)). +- OpenColorIOTransform : Fixed error processing deep image tiles containing no samples. +- Seeds : + - Fixed duplicate points at triangle edges. + - Fixed handling of points exactly at the density threshold. +- ObjectSource, Group : Prevented the creation of locations with invalid names - `..`, `...` or anything containing `/` or a filter wildcard. +- BranchCreator : Prevented the use of `...` and other filter wildcards in the `destination`. +- TranslateTool : Fixed dragging in a plane parallel to an orthographic view. Translation in that case now behaves the same as dragging an axis. +- Window : Fixed handling of `**kw` constructor arguments. These were being passed to the `QWidget` constructor where they caused errors, instead of being passed to the ContainerWidget base class. +- PresetsPlugValueWidget : Fixed label update for context-sensitive presets. +- PlugValueWidget : Fixed value update when auxiliary plugs depend on the context but the primary plugs do not. +- Cycles : Fixed handling of `cycles:shader:volume_sampling_method` and `cycles:shader:volume_interpolation_method` attributes, which were being ignored previously. +- OptionQuery : Fixed bug which allowed duplicate queries to be added in the UI. + +API +--- + +- GraphComponent : + - Added an `oldName` argument to `nameChangedSignal()` slot signature. + - Added a `nameChanged()` protected virtual method, which can be overridden to receive notifications of name changes before + they are made public by `nameChangedSignal()`. + - Colon (`:`) is now an allowed character in names. +- View : Added DisplayTransform add-on class which can be used to add colourspace management to any View. +- ViewportGadget : A post-process shader can now be applied to any layer, not just the main one. +- SceneGadget : Added `setLayer()` and `getLayer()` methods, which allow the destination `Gadget::Layer` to be specified. +- TestCase : Added `ignoreMessage()` method, to register messages that should not be treated as test failures. +- OpenColorIOTransform : Automated image pass-throughs when the `transform()` method returns a no-op. Derived classes no longer need to implement their own pass-through. +- OpenColorIOTransformUI : + - Added support for `openColorIO:categories` and `openColorIO:includeRoles` metadata to `colorSpacePresetNames()`. These may be registered on a per-plug basis to control the colorspaces shown for that plug. + - Added support for `openColorIO:extraPresetNames` and `openColorIO:extraPresetValues` metadata to add presets not defined by the OpenColorIO config. +- OpenColorIOAlgo : Added a new namespace that allows the OpenColorIO config and working space to be defined via the Gaffer context. +- OpenColorIOConfigPlug : Added a new plug type to aid in configuring the OpenColorIO context for a ScriptNode. +- ImageReader/ImageWriter : Added a `config` argument to the `DefaultColorSpaceFunction` definition. This is passed the OpenColorIO config currently being used by the node. +- ValuePlug : + - Added Python bindings for derived classes' `ValueType` type alias. + - Added `now` argument to `clearHashCache()` method. +- Color4fVectorDataPlug : Added a plug type for storing arrays of `Color4f`. +- TypedObjectPlug : Added default value for `direction` and `defaultValue` constructor arguments. +- VectorDataWidget : Added `setErrored()` and `getErrored()` methods to control an error state. Errors are reflected by a red background colour. +- PlugLayout : + - Added support for `layout:minimumWidth` metadata. + - Tabs are now hidden if all their child plugs are hidden by `layout:visibilityActivator` metadata. +- PlugValueWidget : + - Added `typeMetadata` argument to `create()` to use an alternative key to `plugValueWidget:type` when looking up widget type. + - Added `_valuesDependOnContext()` method which may be overridden by derived classes. +- PresetsPlugValueWidget : Added `presetsPlugValueWidget:customWidgetType` metadata, to allow the type for the custom widget to be specified. +- TabbedContainer : Added `setTabVisible()` and `getTabVisible()` methods. +- Removed use of `RTLD_GLOBAL` for loading Python modules. +- SceneAlgo : Added `validateName()` function. +- Sampler : Added `visitPixels()` method, which provides an optimised method for accessing all pixels in a region. +- Handle::AngularDrag : Added `isLinearDrag()` method. +- Widget : Added per-widget control over colour display transforms via new `setDisplayTransform()`, `getDisplayTransform()` and `displayTransform()` methods. +- VisibleSet : Added `VisibleSet::Visibility` struct containing `drawMode` and `descendantsVisible` members. +- ValuePlug : Improved `getValue()` performance, particularly when retrieving previously computed values from the cache. One benchmark shows a 50% reduction in runtime when the cache is under heavy contention from many threads. +- PathListingWidget : + - Added `expandToSelection()` method. + - Added `scrollToFirst()` method to scroll to the first path found in the provided PathMatcher. + +Breaking Changes +---------------- + +- Appleseed : Removed Appleseed support. We suggest Cycles as an actively maintained open-source alternative. +- ColorSwatch, ColorChooser, ColorChooserDialogue : Removed `useDisplayTransform` constructor argument. Use `Widget.setDisplayTransform()` instead. +- GraphComponent : Changed slot signature for `nameChangedSignal()`. +- GLWidget : + - A GL context is no longer available in `_resize()`. + - Removed `BufferOptions.Double`. +- GadgetWidget : Removed `bufferOptions` constructor argument. +- ImageView : + - Removed `lutGPU` plug. + - Removed DisplayTransform methods. Use `View::DisplayTransform` instead. + - Moved `exposure`, `gamma`, `clipping` and `soloChannel` plugs under a `displayTransform` parent plug. + - Moved the `displayTransform` plug to `displayTransform.name`. +- ViewportGadget : Changed function signature for `setPostProcessShader()` and `getPostProcessShader()`. +- UVInspector : Moved the `displayTransform` plug to `displayTransform.name`. +- ImageReader : Renamed `None` preset to `Automatic`. +- ImageReader/ImageWriter : Added a `config` argument to `DefaultColorSpaceFunction`. If implementing such a function in Python, it can be compatible with both Gaffer 1.2 and 1.3 if the argument is declared as `config = PyOpenColorIO.GetCurrentConfig()`. +- OpenColorIOTransform : + - Removed `availableColorSpaces()` and `availableRoles()` methods. + - Deprecated `context` plug. +- OpenColorIO : Changed default config. +- PathListingWidget : Removed `expandNonLeaf` argument from `setSelection()` and `setSelectedPaths()` methods. +- Subprocess32 : Removed Python module. +- Six : Removed Python module. +- Gaffer : Class constructors are now declared explicit disabling implicit conversions. +- Seeds : + - Renamed to Scatter. + - Bugs fixes have made small changes to the point distribution. +- ColorProcessor : Refactored virtual methods that must be implemented by derived classes : + - Replaced `processColorData()` with `colorProcessor()` method that returns a `ColorProcessorFunction`. + - Replaced `affectsColorData()` with `affectsColorProcessor()` and `hashColorData()` with `hashColorProcessor()`. + - Simplified implementation of pass-throughs when the color processor is a no-op. Derived classes may simply + return an empty `ColorProcessorFunction`, and everything else is taken care of in the base class. +- PlugValueWidget : + - Removed support for deprecated `layout:widgetType` metadata. Use `plugValueWidget:type` metadata instead. + - Removed `useTypeOnly` argument from `create()` function. Pass `typeMetadata = None` instead. +- MeshTangents : Changed the edge used by `Mode::FirstEdge`. +- Handle::AngularDrag : Fixed mismatch between comment and implementation regarding the axis for zero rotation. The constructor arguments `axis0` and `axis1` were changed to `normal` and `axis0` respectively. +- Preferences : Removed `displayColorSpace` plug. Use the ScriptNode's `openColorIO` plug instead. +- GafferUI.DisplayTransform : Removed. Use `Widget.setDisplayTransform()` instead. +- ColorSpace : The `inputSpace` and `outputSpace` default values are now interpreted as the working space rather than as invalid spaces. This means that a node where only one space has been specified is no longer a pass-through as it was before. +- DisplayTransform : + - The `inputSpace` default value is now interpreted as the working space rather than as an invalid space. This means that a node without `inputSpace` specified is no longer a pass-through as it was before. + - The `display` and `view` default values are now interpreted as the default defined by the current OpenColorIO config, rather than as invalid values. This means that a node without `display` or `view` specified is no longer a pass-through as it was before. +- gaffer test : Replaced `-performanceOnly` flag with `-category` argument which may be set to `performance` for the same as the old `-performanceOnly`, or `standard` for the converse. +- VisibleSet : Renamed `VisibleSet::match()` to `visibility()` and changed return type. +- SceneView : Removed `gridPlug()` method. +- TypedPlug : Moved implementation code from `TypedPlug.inl` to `TypedPlugImplementation.h`. +- TypedObjectPlug : Moved implementation code from `TypedObjectPlug.inl` to `TypedObjectPlugImplementation.h`. +- Xerces : Removed. This library was only needed by Appleseed. +- CyclesAttributes : Replaced `useMis` with `emissionSamplingMethod`. + +Build +----- + +- Boost : + - Updated to version 1.80.0. + - Stopped linking unnecessarily to `iostreams`, `date_time`, `wave` and `system` libraries. +- Cortex : Updated to version 10.5.0.0. +- Cycles : Updated to version 3.5.0. +- Imath : Added version 3.1.7. +- MaterialX : Added version 1.38.4. +- Minizip : Added version 3.0.9. +- OpenColorIO : Updated to version 2.2.1. +- OpenEXR : + - Updated to version 3.1.7. + - Stopped linking unnecessarily to the `IlmImf` library. +- OpenImageIO : Updated to version 2.4.11.0. +- OpenPGL : Added version 0.4.1. +- Partio : Added version 1.14.6. +- PCG : Added latest version. +- PyBind11 : Updated to version 2.10.4. +- PySide : Updated to version 5.15.8. +- Qt : Updated to version 5.15.8. +- USD : Updated to version 23.05. +- ZLib : Added version 1.2.13. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.1.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.1.0.md.txt new file mode 100644 index 000000000..9a11330f5 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.1.0.md.txt @@ -0,0 +1,52 @@ +1.3.1.0 +======= + +Features +-------- + +- USDShader : Added a node for loading shaders from USD's `SdrRegistry`. This includes shaders such as `UsdPreviewSurface` and `UsdUVTexture`, which are now available in the `USD/Shader` section of the node menu. +- USDLight : Added a node for defining UsdLux lights. This is available from the `USD/Light` section of the node menu. +- SceneReader, SceneWriter : Added limited support for reading and writing Usd Volume prims. + +Improvements +------------ + +- LightEditor : Added section displaying UsdLux shadow parameters. +- Cycles : Added support for UsdLux lights. +- LightTool : Added support for editing animated plugs. +- Median, Erode, Dilate : Improved performance significantly for wide filters. Measured improvements of 100x faster for Erode/Dilate, and 10x faster for Median. + +Fixes +----- + +- SceneWriter : Fixed writing of UsdLux lights. +- Viewer : Fixed visualisation of shaping cones for UsdLux lights, which were previously drawn at half the correct angle. +- DisplayTransform : Fixed missing `view` presets when `display` is at the default value ([#5392](https://github.com/GafferHQ/gaffer/issues/5392)). +- Arnold + - Fixed translation of `vector` typed outputs defined as `vector ` in an output definition. + - Fixed translation of `shadow:enable` and `shadow:color` parameters on UsdLux lights, which were previously ignored. +- LightTool : Fixed bug causing non-settable plugs to be enabled, such as plugs with an expression as input or those using the default spreadsheet row for their value. This generated the error `ERROR : EventSignalCombiner : Cannot set value for plug {plug} except during computation`. +- LightEditor : Fixed toggling values in cases where inherited light attributes were set by a script context variable without including a default. +- GLWidget : Fixed rare crash when showing a GLWidget for the first time. +- BranchCreator : Fixed bug which could cause inconsistent hashes to be generated. +- Cycles : + - Fixed rendering of meshes with faceted normals, which were previously being rendered as smooth. This applies to meshes without an `N` primitive variable, and meshes where `N` has `Uniform` or `FaceVarying` interpolation. Note that Cycles has no native support for `FaceVarying` interpolation so that in this case all faces are rendered faceted. + - Fixed translation of Uniform `N` primitive variables. These are now available to be queried from the standard `Ng` attribute in Cycles. +- ImageSampler : Fixed handling of exceptional floating point values. Now returns `inf` if `inf` values are present in the image, rather than `3.4e38`. +- Merge : + - Fixed the Difference operation to return correct values for exceptional floating point values. Now there is 0 difference between `inf` and `inf`, or `NaN` and `NaN`. Additionally, there is infinite difference between `NaN` and any other number, so assertImagesEqual will correctly report `NaN`s that don't belong. + - Fixed the Divide operation to return 0 for 0/0. This is consistent with how we previously handled fully black tiles, and avoids introducing `NaN` values which create problems in compositing. +- Median/Erode/Dilate : Fixed possible crash bug if there were `NaN`s in the input image. +- ValuePlug : Fixed bug which caused `ComputeNode::computeCachePolicy()` to be called unnecessarily for input plugs in some circumstances. This could affect performance, particularly when the plug belonged to a node implemented in Python. + +API +--- + +- OptionalValuePlug : Added a new plug type that pairs an `enabled` BoolPlug with a `value` ValuePlug. +- Shader : Added support for using OptionalValuePlug to represent optional parameters. + +Build +----- + +- Cortex : Updated to version 10.5.1.0. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.10.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.10.0.md.txt new file mode 100644 index 000000000..d8430eda7 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.10.0.md.txt @@ -0,0 +1,38 @@ +1.3.10.0 +======== + +Features +-------- + +- LightPositionTool : Added tool to the scene viewer to place shadows. With a light selected, holding Shift + V and clicking on geometry will set the pivot point used for casting a shadow. Holding V and clicking sets the point to receive the shadow. The light is repositioned to be the same distance from the pivot, along the pivot-shadow point line, and oriented to face the shadow point. + +Improvements +------------ + +- ArnoldShader, ArnoldColorManager, CyclesShader : Improved browsers for file parameters ([#5592](https://github.com/GafferHQ/gaffer/issues/5592), [#5602](https://github.com/GafferHQ/gaffer/issues/5602)) : + - Added filtering by extension. + - Added bookmarks. +- USDLight : Added file browser for `shaping:ies:file` parameter. +- OpenColorIOContext : Added file browser for `config` plug. +- Layouts : Added the ability to load layouts containing editors that aren't currently available. This allows layouts containing new editors introduced in Gaffer 1.4 to be loaded in Gaffer 1.3. +- TranslateTool, RotateTool : Added tooltip to the upper left corner of the Viewer explaining how to use the target modes. +- LightTool : Changed the color of the non-highlighted handles to orange and the highlighted handles to cyan for consistency with other highlight colors. +- Outputs : Variable substitutions are now applied to `gaffer:context:*` image metadata values. This is needed when the value of a context variable contains references to other variables, with the default value for `project:rootDirectory` being one example. + +Fixes +----- + +- Arnold : Fixed translation of USD `uchar` attributes and shader parameters. +- Orientation/Instancer : Now normalizes unnormalized quaternion inputs - this allows correctly processing files with primvars that contain unnormalized quaternions ( which it is possible to write from Houdini ). + +API +--- + +- EditScopeAlgo : Added support for editing options for a specific render pass. +- ArnoldShaderUI : Added support for Gaffer filebrowser metadata in Arnold `.mtd` files. The following fields are supported, and correspond directly to the metadata documented on the PathPlugValueWidget and FileSystemPathPlugValueWidget : + - `path:leaf` + - `path:valid` + - `path:bookmarks` + - `fileSystemPath:extensions` + - `fileSystemPath:extensionsLabel` + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.11.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.11.0.md.txt new file mode 100644 index 000000000..125e53f3c --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.11.0.md.txt @@ -0,0 +1,32 @@ +1.3.11.0 +======== + +Features +-------- + +- 3Delight : Added support for USD `SphereLight`, `RectLight`, `DiskLight`, `DistantLight`, `DomeLight` and `CylinderLight`. +- RenderPassEditor : Added a new editor UI for inspecting and editing render passes. + +Improvements +------------ + +- Arnold : + - ArnoldShader : Added a colour space presets menu for the `image` shader. + - Added specific warning for outputs with space in name. + - Added normal and depth AOVs. +- CyclesShader : Added a colour space presets menu for the `image_texture` and `environment_texture` shaders ([#5618](https://github.com/GafferHQ/gaffer/issues/5618)). + +Fixes +----- + +- Reference : Fixed bug where `GAFFER_REFERENCE_PATHS` was not being searched when performing "Duplicate as Box" action. +- Outputs : + - Fixed bug which meant that adding an output via the UI was not undoable. + - Fixed bug which allowed outputs to be added to a read-only node via the UI. + +API +--- + +- ArnoldShaderUI : Added support for `colorSpace` widget type metadata, allowing an OpenColorIO colour space to be chosen. +- PathColumn : Added `CellData::foreground` member, to provide additional control over foreground colours in the PathListingWidget. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.12.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.12.0.md.txt new file mode 100644 index 000000000..9bdf94a28 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.12.0.md.txt @@ -0,0 +1,46 @@ +1.3.12.0 +======== + +Improvements +------------ + +- SceneReader : Added basic loding of UsdGeomNurbsCurves, converting them to CurvesPrimitives (basis curves). +- Console output : Every line is now prefixed with the message level. +- RenderPasses : Added validation of render pass names entered in the `names` plug. +- RenderPassEditor : + - Added support for adding a new render pass to an EditScope by clicking the plus button at the bottom of the editor. + - Added support for deleting selected render passes by clicking the minus button at the bottom of the editor, or by right-clicking one of the names and selecting 'Delete Selected Render Passes'. + +Fixes +----- + +- Viewer : Fixed context handling bug in the shader view ([#5654](https://github.com/GafferHQ/gaffer/issues/5654)). +- PythonCommand : Fixed misleading results for `repr( variables )` and `str( variables )`, which would suggest the dictionary was empty when it was not. +- CompoundObject : Fixed crashes in Python bindings caused by passing `None` as a key. +- Windows : Fixed "{path} was unexpected at this time." startup error when environment variables such as `PATH` contain `"` characters. +- PathListingWidget : Fixed bug which caused the pointer to be stuck displaying the "values" icon after dragging cells with no value. +- SceneAlgo : Fixed computation of history through Expression nodes. +- LightTool : Fixed crash when deleting the node being viewed. +- USD : Fixed loading of Arnold lights previously exported from Gaffer to USD. +- Catalogue : Fixed connection delays on Windows. +- Context : Fixed potential crash when setting a variable with ownership. + +Documentation +------------- + +- Added Render Pass Editor shortcuts to the "Controls and Shortcuts" section. +- Added Render Pass Editor (Arnold) example demonstrating use of the Render Pass Editor, as well as the RenderPasses and RenderPassWedge nodes. + +API +--- + +- EditScopeAlgo : Added support for creating render passes. +- RenderPasses : Added `registerRenderPassNameWidget()` and `createRenderPassNameWidget()` methods for registration and creation of the widget used for editing render pass names. +- RenderPassEditor : Added `addRenderPassButtonMenuSignal()` to allow customisation of the add render pass button behaviour. +- ConfirmationDialogue : The cancel button may now be omitted by passing `cancelLabel = None` to the constructor. + +Build +----- + +- Cortex : Updated to version 10.5.6.2. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.13.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.13.0.md.txt new file mode 100644 index 000000000..ae3b5c584 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.13.0.md.txt @@ -0,0 +1,24 @@ +1.3.13.0 +======== + +Improvements +------------ + +- Viewer : Added Ctrl+PgUp shortcut for displaying the RGBA image layer (or the first available layer if RGBA doesn't exist). +- RenderPassEditor : + - Added "Inclusions", "Exclusions" and "Additional Lights" columns, to provide control over the locations included in the render for each render pass. + - Added the ability to display render passes grouped in a hierarchy generated from the render pass name. The default grouping uses the first token delimited by "_" from the render pass name, such that render passes named "char_gafferBot" and "char_cow" would be displayed under a "/char" group, while "prop_ball" and "prop_box" would be displayed under a "/prop" group. + - Render pass grouping can be configured in a startup file by using `GafferSceneUI.RenderPassEditor.registerPathGroupingFunction( f )`, where `f` is a function that receives a render pass name and returns the path that the render pass should be grouped under. + - Grouped display can be enabled by default in a startup file by using `Gaffer.Metadata.registerValue( GafferSceneUI.RenderPassEditor.Settings, "displayGrouped", "userDefault", IECore.BoolData( True ) )`. + - Dragging cells selected from the "Name" column now provides a list of the selected render pass names, rather than their paths. + - Disabled render pass names are now dimmed to more clearly indicate their state. +- RenderPassEditor, LightEditor, PathListingWidget : Boolean values are now displayed as checkboxes rather than `0` or `1`. +- StandardOptions : Added `inclusions`, `exclusions` and `additionalLights` plugs, to control which locations are included in a render based on set expressions entered on these plugs. These, plus the existing `includedPurposes` plug are now grouped under the "Render Set" section of the UI. +- GafferScene : Registered the "RenderSetAdaptor" adapting the `render:inclusions`, `render:exclusions` and `render:additionalLights` options to prune scene locations before rendering. + +API +--- + +- ScenePath : Added automatic conversion of a list of Python strings to a ScenePath. +- RenderPassEditor : Added `registerPathGroupingFunction()` and `pathGroupingFunction()` methods. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.13.1.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.13.1.md.txt new file mode 100644 index 000000000..b07058185 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.13.1.md.txt @@ -0,0 +1,13 @@ +1.3.13.1 +======== + +Fixes +----- + +- DocumentationAlgo : Fixed generation of duplicate entries for aliased nodes in `exportNodeReference()`. + +Documentation +------------- + +- Node Reference : Removed duplicate entries for nodes that have been aliased by compatibility configs. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.14.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.14.0.md.txt new file mode 100644 index 000000000..b68a724e7 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.14.0.md.txt @@ -0,0 +1,10 @@ +1.3.14.0 +======== + +Features +-------- + +- Render, InteractiveRender : Added new nodes capable of rendering to any supported renderer, and using the `render:defaultRenderer` option to determine which to use by default. +- StandardOptions : Added `render:defaultRenderer` option, allowing the scene globals to specify which renderer is used by the Render and InteractiveRender nodes. +- RenderPassEditor : Added a column for the `render:defaultRenderer` option, allowing each pass to be rendered in a different renderer. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.15.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.15.0.md.txt new file mode 100644 index 000000000..4ff003cdc --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.15.0.md.txt @@ -0,0 +1,15 @@ +1.3.15.0 +======== + +Improvements +------------ + +- Render, InteractiveRender : Added `resolvedRenderer` plug, which outputs the name of the renderer that will be used, taking into account the influence of the `render:defaultRenderer` option. + +Fixes +----- + +- InteractiveRender : Fixed context used to evaluate scene globals when renderer is set to "Default". +- Instancer : Fixed handling of unindexed primvars in RootPerVertex mode. +- ArnoldShader : Fixed startup errors caused by unknown values in `widget` metadata. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.16.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.16.0.md.txt new file mode 100644 index 000000000..d0f4333c3 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.16.0.md.txt @@ -0,0 +1,15 @@ +1.3.16.0 +======== + +Improvements +------------ + +- Shuffle : Added the ability to load Shuffles from Gaffer 1.4. +- Instancer : Added support for `Varying` primitive variables whenever they are equivalent to (have the same size as) a `Vertex` primitive variable. + +Fixes +----- + +- Encapsulate : Fixed bug which could cause unwanted cancellation when rendering or unencapsulating. +- Unencapsulate : Fixed bug which prevented cancellation of long-running computes. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.16.1.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.16.1.md.txt new file mode 100644 index 000000000..26ad2fdd2 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.16.1.md.txt @@ -0,0 +1,9 @@ +1.3.16.1 +======== + +Fixes +----- + +- NodeAlgo : Fixed presets inheritance for promoted plugs with multiple outputs. +- TaskNode / GafferCortex : Fixed missing GIL releases that caused hang at ImageEngine + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.16.2.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.16.2.md.txt new file mode 100644 index 000000000..46dbb6219 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.16.2.md.txt @@ -0,0 +1,8 @@ +1.3.16.2 +======== + +Fixes +----- + +- File Browser : Windows only : Fixed bug in `HiddenFilePathFilter` that caused sequences to be treated as though they are hidden files ([#5810](https://github.com/GafferHQ/gaffer/issues/5810)). + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.16.3.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.16.3.md.txt new file mode 100644 index 000000000..8d99c73a4 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.16.3.md.txt @@ -0,0 +1,8 @@ +1.3.16.3 +======== + +Fixes +----- + +- ColorChooserPlugValueWidget : Fixed bug that allowed the editing of locked plugs and nodes. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.16.4.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.16.4.md.txt new file mode 100644 index 000000000..46dd5554c --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.16.4.md.txt @@ -0,0 +1,9 @@ +1.3.16.4 +======== + +Fixes +----- + +- SceneWriter : Fixed writing of locations with names that are not valid USD identifiers. +- LightPositionTool : Fixed bug that caused the target / pivot positions to be removed when placing a light with Z scale not equal to 1.0. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.2.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.2.0.md.txt new file mode 100644 index 000000000..292ef4d42 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.2.0.md.txt @@ -0,0 +1,54 @@ +1.3.2.0 +======= + +Features +-------- + +- LightTool : Added manipulator for quad lights. +- Collect : Added a utility node for collecting the values of arbitrary inputs across a range of contexts. + +Improvements +------------ + +- Viewer : + - Added visualisation of light filters for USD lights. + - Added support for USD lights and shaders in the floating inspector panel. + - Improved support for looking through USD spot lights. +- ShaderTweaks/ShaderQuery : Added presets for USD light and surface shaders. +- Test app : + - The `-category` argument now accepts a space-separated list of categories, optionally containing wildcards. + - Added `-excludedCategories` and `-showCategories` arguments. + - Added information about performance test timings to the output stream. +- LightToCamera : Added support for USD spot lights. + +Fixes +----- + +- Viewer : + - Fixed crash when visualising lights with a light filter intended for a different renderer. + - Fixed visualisation of Cycles point light size. + - Fixed visualisation of Arnold light gobo textures with scaled UV coordinates. +- Arnold : + - Fixed screen window export for Lentil cameras. + - Fixed writing of image metadata for empty strings and strings containing spaces. This fixes the `malformed line "string 'gaffer:context:ocio:config'"` warning. +- Application : Fixed the `-threads` argument to clamp the number of threads to the number of available hardware cores ([#5403](https://github.com/GafferHQ/gaffer/issues/5403)). +- CompareFloat, CompareColor, CompareVector : Worked around crashes in OSL's batched shading system ([#5430](https://github.com/GafferHQ/gaffer/issues/5430)). +- PlugValueWidget : Fixed search for auxiliary plugs of output plugs. In this case, the inputs are now searched instead of the outputs. +- GafferUI : Fixed TableView bug causing the horizontal scrollbar to potentially overlap the last row ([#5328](https://github.com/GafferHQ/gaffer/issues/5328)). +- Dispatch App : Fixed bug that prevented setting specific dispatcher plug values from the command line ([#5434](https://github.com/GafferHQ/gaffer/issues/5434)). + +API +--- + +- ThreadMonitor : Added new class for tracking the threads used to perform processes. +- PlugAlgo : Added `findSource()` method. +- TestRunner : + - Added `CategorisedTestMethod` decorator used to assign categories to test methods. + - Added `categories()` static method to return the list of available categories in a test suite. + - Added `filterCategories()` static method to skip tests according to included and excluded categories. + +Documentation +------------- + +- Removed release notes for versions prior to 1.0.0.0. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.3.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.3.0.md.txt new file mode 100644 index 000000000..4b9c76bd6 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.3.0.md.txt @@ -0,0 +1,56 @@ +1.3.3.0 +======= + +Features +-------- + +- 3Delight : + - Added support for VDB volume objects. + - Added support for `vdbVolume` shader. + - Added support for `volumeshader` and `displacementshader` attributes. + - Added support for spline parameters in shaders. + +Improvements +------------ + +- SceneReader : Added support for reading from in-memory USD stages using a filename of the form `stageCache:{id}.usd` where `{id}` specifies a stage which has been inserted in the `UsdUtilsStageCache`. +- Resample, Resize, Blur, ImageTransform : Improved performance, resulting in a 3x speedup in an obscure case, and a 5-10% speedup in more common cases. +- ImageSampler : Added `interpolate` plug to control interpolation. Previously created ImageSamplers are unaffected, but interpolation is off by default for newly created ImageSamplers. +- 3Delight : + - Moved shaders to `3Delight/Shader` menu and removed outdated shaders from the menu. + - Shaders (including light shaders) are only loaded from the `osl` subdirectory of the 3Delight installation. + - Primitive variables named `uv` are now automatically renamed `st` for compatibility with the `uvCoord` shader's expectation. + - Added a default `uvCoord` shader during internal shader network preprocessing to shader parameters that do not have an input connection. +- SetEditor : Added columns for controlling the Visible Set membership of set members. These allow the current members of a set to be included or excluded from the Visible Set by clicking within the Set Editor's Inclusions and Exclusions columns. + +Fixes +----- + +- SceneReader : + - Fixed handling of invalid values on the following USD attributes : + - PointBased : `positions`, `normals`, `velocities`, `accelerations`. + - Curves : `widths`. + - PointInstancer : `ids`, `protoIndices`, `orientations`, `scales`, `velocities`, `accelerations`, `angularVelocities`. + - Points : `ids`, `widths`. + Invalid values are now ignored with a warning, instead of loading as invalid primitive variables. + - Fixed treatment of unconnected material outputs. If they were "authored" but not connected to a source, they were incorrectly being treated as valid attributes, and were being loaded as empty ShaderNetworks which caused problems elsewhere. +- DispatchDialogue : Changed the button label for the results display from "Ok" to "Close". +- Viewer : Fixed display of infinite values in the pixel inspectors. These were being incorrectly displayed as `nan` instead of `inf`. +- OptionTweaks : Fixed bug that prevented multiple tweaks being made to the same option in one node. + +API +--- + +- SceneAlgo : + - Added `findAll()` method, for finding all scene locations matching a predicate. + - Added `findAllWithAttribute()` method, for finding all scene locations with a particular attribute. +- ThreadState : Added `process()` method. +- Process : Added const overload for `handleException()` method. The non-const version will be removed in future. +- ContextMonitor : Added `Statistics::variableHashes()` method, allowing introspection of specific variable values. + +Build +----- + +- MacOS : Fixed compilation with Clang 13. +- Cortex : Updated to version 10.5.2.0. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.4.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.4.0.md.txt new file mode 100644 index 000000000..3a0dce6ce --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.4.0.md.txt @@ -0,0 +1,37 @@ +1.3.4.0 +======= + +Improvements +------------ + +- Viewer : Added per-purpose control over which locations are shown in the viewer, according to their `usd:purpose` attribute. + - The Drawing Mode dropdown menu can be used to to choose the visible purposes. + - The default purposes can be specified in a startup file using `Gaffer.Metadata.registerValue( GafferSceneUI.SceneView, "drawingMode.includedPurposes.value", "userDefault", IECore.StringVectorData( [ "default", "proxy" ] ) )`. +- StandardOptions : Added `includedPurposes` plug, to control which locations are included in a render based on the value of their `usd:purpose` attribute. +- 3Delight : Added additional output presets. + +Fixes +----- + +- GraphEditor : Removed dynamic raster-space sizing of focus icon, as it caused excessive overlap with other nodes at certain zoom levels and on certain high resolution displays ([#5435](https://github.com/GafferHQ/gaffer/issues/5435)). +- StringPlugValueWidget : Fixed bug handling Esc. +- Arnold : Fixed unnecessary `opaque` attribute deprecation warnings. These are now only emitted in the case that `opaque` has been explicitly turned off. +- ShaderUI : Fixed bug causing identical but independent shaders in a shader network from being included in the shader browser. +- Encapsulate : + - Fixed bug where global attributes (from the point of encapsulation) were baked into the contents of the capsule instead of being inherited naturally (from the node being rendered). + - Fixed motion blur so that global settings are now taken from the downstream node being rendered, not from the input to the Encapsulate node. + +API +--- + +- SceneTestCase : Added `assertScenesRenderSame()` method. +- RenderController : Added missing `updateRequired()` Python binding. +- CapturingRenderer : + - Added `capturedObjectNames()` method. + - Added `capturedName()` and `capturedLinkTypes()` methods to CapturedObject class. + +Build +----- + +- Fixed compilation with Boost versions prior to 1.74. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.5.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.5.0.md.txt new file mode 100644 index 000000000..d3fd1de8c --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.5.0.md.txt @@ -0,0 +1,32 @@ +1.3.5.0 +======= + +Features +-------- + +- ImageScatter : Added a new node for scattering points across an image, with density controlled by an image channel. + +Improvements +------------ + +- Viewer : Changed the default image comparison (wipe) mode from `Over` to `Replace`. +- Spreadsheet : + - Popups for string cells and row names are now sized to fit their column. + - Added "Triple" and "Quadruple" width options to the spreadsheet row name popup menu. +- Node : Improved performance when casting Python-derived types to ComputeNode. + +Fixes +----- + +- ValuePlug : Fixed performance regression (introduced in 1.3.1.0) getting values from plugs without an input connection. This could severely affect scene generation times in some cases. +- NameSwitch : Fixed bug which prevented drag and drop reordering of rows with an input connection. +- PythonEditor : + - Fixed output for `print()` calls with multiple arguments, which was previously spread across multiple lines. + - Fixed bug that prevented editors being destroyed at the right time. +- FileSystemPath : Fixed bug on Windows where paths on an exFAT partition were not considered valid. + +API +--- + +- Sampler : Added `populate()` method, which populates the internal tile cache in parallel, and subsequently allows `sample()` to be called concurrently. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.6.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.6.0.md.txt new file mode 100644 index 000000000..e16b2fb4e --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.6.0.md.txt @@ -0,0 +1,53 @@ +1.3.6.0 +======= + +Features +-------- + +- LightTool : + - Added manipulator for disk and point light radii. + - Added manipulators for cylinder length and radius. +- Tools Menu : Added "Metadata/Clean Up" menu item to optimise file size by removing redundant metadata. + +Improvements +------------ + +- CollectScenes : Improved performance when computing sets, with a 3x speedup being seen in one particular benchmark. +- LightTool : Changed spot light and quad light edge tooltip locations so that they follow the cone and edge during drag. +- Arnold : Improved speed of translation of encapsulated scenes when using many threads. +- CollectImages : Added `addLayerPrefix` plug, to allow the layer prefix to be omitted in the case that the input images are already prefixed. +- OSL Expression : Added support for getting an element of an array context variable using `contextElement( variableName, index )` or `contextElement( variableName, index, defaultValue )`. Negative indices can be used to get elements relative to the end of the array. + +Fixes +----- + +- ValuePlug : Fixed hangs and poor performance caused by plugs depending on upstream plugs with an identical hash ([#4978](https://github.com/GafferHQ/gaffer/issues/4978)). +- Filter : Fixed bug which allowed the `scene:path` context variable to "leak" upstream via the `Filter.enabled` plug. This caused unnecessary evaluations of the input, and also provided a loophole via which the filter result could be made inconsistent with respect to descendant and ancestor matches. +- Windows : + - Fixed a bug preventing anything except strings from being copied and pasted. + - Fixed likely cause of crash when resizing Spreadsheet column width ([#5296](https://github.com/GafferHQ/gaffer/issues/5296)). +- Reference : Fixed rare reloading error. +- PlugLayout : Fixed lack of update when `layout:customWidget:*` metadata changes. +- Dispatch app : Removed unnecessary and misleading "Execute" button. +- SceneAlgo : Fixed history queries for `ScenePlug.object` in networks with nodes derived from `ObjectProcessor`. These include : `CameraTweaks`, `ClosestPointSampler`, `CollectPrimitiveVariables`, `CopyPrimitiveVariables`, `CurveSampler`, `DeleteCurves`, `DeleteFaces`, `DeletePoints`, `MapOffset`, `MapProjection`, `MeshDistortion`, `MeshNormals`, `MeshSegments`, `MeshTangents`, `MeshToPoints`, `MeshType`, `Orientation`, `PointsType`, `PrimitiveSampler`, `PrimitiveVariables`, `ReverseWinding`, `ShufflePrimitiveVariables` and `UVSampler` ([#5406](https://github.com/GafferHQ/gaffer/issues/5406)). +- Metadata : Fixed redundant copying of metadata when promoting plugs. +- OpenColorIO : Fixed hang when opening a script which didn't yet have the `openColorIO.config` plug. +- Context : Fixed bug preventing the retrieval of `V2iVectorData`, `V2fVectorData`, `V3iVectorData` and `V3fVectorData` from a context. + +API +--- + +- Process : Added `acquireCollaborativeResult()` method, providing an improved mechanism for multiple threads to collaborate on TBB tasks spawned by a single process they all depend on. +- ValuePlug : Added `Default` CachePolicy and deprecated `Standard`, `TaskIsolation` and `Legacy` policies. +- Metadata : + - Added `RegistrationTypes` enum that allows the different types of registrations to be identified. + - Added improved `registeredValues()` and `value()` overloads that provide finer-grained queries based on the type of registration. + - Deprecated `instanceOnly` and `persistentOnly` arguments in favour of new `registrationTypes` arguments. + - Prevented `renameable` and `deletable` metadata from being copied during plug promotion. +- MetadataAlgo : Added `deregisterRedundantValues()` method. + +Build +----- + +- Cortex : Updated to version 10.5.3.0. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.6.1.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.6.1.md.txt new file mode 100644 index 000000000..953bd30b4 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.6.1.md.txt @@ -0,0 +1,23 @@ +1.3.6.1 +======= + +Fixes +----- + +- Catalogue : Fixed bugs which caused additional images to appear when changing light groups or crop in an Arnold render ([#4267](https://github.com/GafferHQ/gaffer/issues/4267), [#4633](https://github.com/GafferHQ/gaffer/issues/4633)). +- Instancer : + - Fixed failure to update encapsulated instancers when prototype properties changed during interactive renders. + - Prevented unnecessary updates for encapsulated instancers when prototype globals changed. +- Process : Fixed bug which caused a `No result found` exception to be thrown when a more descriptive exception should have been thrown instead. +- Shader : Added support for reading from USD `token` attributes in `` string parameter substitutions. + +API +--- + +- Display : Added `driverClosed()` method. + +Build +----- + +- Cortex : Updated to version 10.5.4.0. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.7.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.7.0.md.txt new file mode 100644 index 000000000..2f76c1dab --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.7.0.md.txt @@ -0,0 +1,25 @@ +1.3.7.0 +======= + +Improvements +------------ + +- ArnoldShader : Improved support for camera projections by exposing the `camera` plug on the `camera_projection` shader. +- Instancer : + - Improved scene generation for encapsulated instancers significantly, with some production scenes now generating 5-7x faster. + - Added `omitDuplicateIds` plug, to determine whether points with duplicate IDs are ignored or should trigger an error. +- ScenePathPlugValueWidget : Added fallback to browsing the focussed scene when no other scene can be found. This makes the widget suitable for use on ShaderNodes. +- Windows : Disabled Arnold's ADP usage and crash reporting module by default. Users can enable it by setting `ARNOLD_ADP_DISABLE=0` for Arnold versions after 7.1.4.0 or `ARNOLD_ADP_OPTIN=1` for earlier versions. + +Fixes +----- + +- Catalogue : Fixed performance regressive when saving interactive renders with multiple AOVs (introduced in 1.3.6.1). + +API +--- + +- Capsule : Added protected `renderOptions()` and `throwIfNoScene()` methods. +- ScenePath : Added support for passing `nullptr` for the scene. +- ArnoldShaderUI : Added support for `camera` widget type metadata, to add a camera browser to a string parameter. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.8.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.8.0.md.txt new file mode 100644 index 000000000..4f42701c4 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.8.0.md.txt @@ -0,0 +1,50 @@ +1.3.8.0 +======= + +Features +-------- + +- Viewer : Added "Snapshot To Catalogue" command to the right-click menu of the 3D view. +- RenderPasses : Added new nodes for working with render passes. Render passes are defined as a list of names stored in the `renderPass:names` option in the scene globals, and can be used to dispatch tasks that vary based on those names. This can be useful for purposes such as producing multiple renders with varying object visibility and shading, or for writing variations of a scene to individual files. + - RenderPasses : Added a new node for appending render passes to the scene globals. + - DeleteRenderPasses : Added a new node for removing render passes from the scene globals. + - RenderPassWedge : Added a new node for causing upstream tasks to be dispatched in a range of contexts where the value of the `renderPass` context variable is varied based on the render pass names defined in the `renderPass:names` option. + +Improvements +------------ + +- GraphEditor : Added drag & drop of files into the graph editor, automatically creating a SceneReader, ImageReader or Reference node as appropriate. +- ImageTransform, Resample : Improved performance for non-separable filters without scaling, with 2-6x speedups in some benchmark cases. +- Outputs : Included `renderPass` in the filename for newly created Arnold, Cycles and 3Delight outputs. Allowing rendered images to be written to a specific directory based on the name of the current render pass. +- GUI Config : Included `renderPass` in the default filename when writing ass files from an ArnoldRender node. +- NameSwitch/Spreadsheet : Added "Render Pass" preset to `selector` plug. + +Fixes +----- + +- InteractiveRender : Fixed unnecessary updates to encapsulated locations when deforming an unrelated object. +- InteractiveArnoldRender : Fixed creation of new Catalogue image when editing output metadata or pixel filter. +- GraphEditor : Fixed error caused by additional connections to `dragEnterSignal()`. +- Windows `Scene/OpenGL/Shader` Menu : Removed `\` at the beginning of menu items. +- Arnold : + - Fixed translation of `UsdPreviewSurface` normal maps. + - Fixed translation of `UsdPreviewSurface` `specularColor` fallback value. +- Scene History : Fixed error caused by `Alt+E` keypress on panels other than the Viewer, HierarchyView, LightEditor or NodeEditor. +- ImageReader : Fixed crashes caused by null `ustring` metadata values. +- Exception handling : Fixed memory leak caused by translation of `IECore::Exception` from C++ to Python and back again. + +API +--- + +- SceneGadget : Added `snapshotToFile()` method. +- SceneAlgo : + - Added `history()` overload for returning computation history independent of a scene location, this is useful when generating history from the globals. + - Added `optionHistory()` method which returns a computation history for one specific option. +- Widget : Added handling for drag & drop from an external application via the existing `dragEnterSignal()`, `dragMoveSignal()`, `dragLeaveSignal()` and `dropSignal()` signals. + +Build +----- + +- Cortex : Updated to version 10.5.4.2. +- Instancer : Fixed ambiguous reference compilation errors when building with Boost 1.70. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.3.9.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.3.9.0.md.txt new file mode 100644 index 000000000..aada89326 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.3.9.0.md.txt @@ -0,0 +1,22 @@ +1.3.9.0 +======= + +Improvements +------------ + +- 3Delight : Added support for subdivision corners and creases. +- SetEditor : + - Added "Selection" column displaying the number of currently selected members for each set. + - Added "Hide Empty Selection" checkbox. When on, the SetEditor will only display sets with currently selected members. + +Fixes +----- + +- TransformTools : Fixed editing of XYZ component plugs with individual input connections, such as when only a single component is promoted to a Box. +- AttributeQuery, OptionQuery, PrimitiveVariableQuery, ShaderQuery : Added support for querying values of all numeric data types, whereas before queries were limited to `bool`, `int` and `float` values. + +API +--- + +- PlugAlgo : `setPlugFromData()` now supports conversions from all numeric data types to `BoolPlug`, `IntPlug` and `FloatPlug` values. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.4.0.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.4.0.0.md.txt new file mode 100644 index 000000000..b0aaabbc2 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.4.0.0.md.txt @@ -0,0 +1,284 @@ +1.4.0.0 +======= + +> Note : This release introduces `linux-gcc11` builds which are only compatible with Linux distributions using glibc 2.28 or higher. +> These specific `linux-gcc11` builds are intended for testing purposes while we upgrade our toolchain and dependencies to better align +> with VFX Platform 2023, and should be considered "beta" in advance of a stable release in Gaffer 1.5. + +Features +-------- + +- Arnold : Added support for Arnold 7.3. Note that a minimum of 7.3.1.0 is required, meaning that 7.3.0.0 is _not_ supported. +- Cycles : + - Updated to version 4.0.2. + - Added support for CUDA and Optix devices (GCC 11 and Windows builds only). +- Dispatcher : Dispatchers are now TaskNodes, allowing them to be nested in a task graph. Possibilities include : + - Using a LocalDispatcher and a Wedge to launch multiple TractorDispatcher jobs. + - Using a nested LocalDispatcher to perform a group of tasks on a single blade within a TractorDispatcher job. +- SelectionTool : Added select mode plug. When set to anything except `Standard` using the SelectionTool causes the actual scene location selected to potentially be modified from the originally selected location. Selection modifiers work identically for deselection. Currently, two selectors are implemented : + - USD Kind : When selecting, the first ancestor location with a `usd:kind` attribute matching the chosen list of USD Kind will ultimately be selected. USD's Kind Registry includes `Assembly`, `Component`, `Group`, `Model` and `SubComponent` by default and can be extended via USD startup scripts. + - Shader Assignment : When selecting, the first ancestor location with a renderable and direct (not inherited) shader attribute will ultimately be selected. This can be used to select either surface or displacement shaders. +- GraphEditor : Added X shortcut for removing connections between nodules. Hold X then left click to remove all connections under the cursor. Hold X then left drag to draw a line, all connections that intersect with the line will be removed once the drag is ended ([#788](https://github.com/GafferHQ/gaffer/issues/788)). +- LightPosition Tool : Added a variation on the shadow placement tool to place highlights. Lights are positioned such that they will create a specular highlight at the target point. +- DeepSlice : Added a new node for clipping out part of an image based on depth. +- MeshTessellate : Added a new node for increasing the polycount of subdivision meshes. +- ImageInspector : Added a new panel for inspecting image format, metadata and channel statistics. + +Improvements +------------ + +- Arnold : + - OSL shaders with connections from multiple outputs are no longer duplicated on export to Arnold. + - Gaffer's native OpenColorIO config is now automatically translated to Arnold. Use an ArnoldColorManager node to override this behaviour. +- ArnoldShader : Added parameter tooltips based on `help` metadata provided by Arnold. +- CyclesOptions : Improved device selection UI. +- 3Delight : + - Added NSI screen static sampling pattern option (`dl:staticsamplingpattern`). + - Added support for `layerName` parameter in output definitions. + - Added support for `filter` parameter in output definitions. + - Added camera overscan support. + - Added support for reading `dl:` and `user:` attributes from shaders. + - Added `importanceSampleFilter` plug to DelightOptions, providing denoiser-compatible output. + - Added support for external procedurals. + - Matched DelightOptions default values for `oversampling` and `shadingSamples` to 3Delight's own default values. + - NSI scene description export format is now based on file extension - `.nsi` for binary and `.nsia` for ASCII. +- EditScope : Added a summary of edits in the NodeEditor, with the ability to select the affected objects and quickly navigate to the processor nodes. +- GraphEditor : + - The source node for any location can be located by dragging the location into the GraphEditor from the Viewer or HierarchyView. + - Removed all renderer-specific Render and InteractiveRender nodes from the node menu. These nodes still exist for backwards compatibility with old scenes, but the generic Render and InteractiveRender nodes should now be used instead. + - Improved logic used to connect a newly created node to the selected nodes. +- GraphComponent : Node and Plug names may now start with a numeric digit. +- LocalDispatcher : + - Added a new dockable LocalJobs editor, to replace the floating window previously accessible via the "Execute/Local Jobs" menu item. + - Task output is now shown in the UI. + - Jobs are no longer removed from the UI as soon as they complete. + - Incomplete jobs are now killed automatically when the application is closed, after prompting to confirm that shutdown should go ahead. +- LightPositionTool : The tool is now only visible for members of the `__lights` set, instead of all objects. +- Catalogue : Added `imageNames` output plug, containing the names of all images in the Catalogue. Among other things this can be used to drive a Wedge or ContactSheet node and a CatalogueSelect. +- ImageReader : Added `fileValid = False` metadata to images from missing frames, when `missingFrameMode` is `Black` or `Hold`. +- Collect : Added the ability to collect StringVectorData inputs. +- Toolbars : Changed hotkey behavior to toggle any tool on and off. Exclusive tools such as the Translate and Crop Window tools activate the first tool (currently Selection Tool) when they are toggled off. +- CropWindowTool : Added `Alt` + `C` for toggling both the crop window tool and the relevant crop window `enabled` plug. +- TaskList, FrameMask : Reimplemented in C++ for improved performance. +- Cache : Increased default computation cache size to 8Gb. Call `Gaffer.ValuePlug.setCacheMemoryLimit()` from a startup file to override this. +- Dispatcher : Reduced internal overhead of `dispatch()` call, with one benchmark showing around a 3x speedup. +- ScriptWindow : Added "Save" option to dialogue shown when closing a window containing unsaved changes. +- Resize : + - Added support for deep images. + - Added "Nearest" filter. +- Shuffle : + - Reimplemented to match ShuffleAttributes and ShufflePrimitiveVariables. + - Any number of shuffles can be added using the UI. + - Wildcards can be used to match multiple source channels, and expressions can be used to map them to destination channels. + - Source channels can optionally be deleted after shuffling. + - Overwriting of destination channels can optionally be avoided. + - Added `missingSourceMode` plug to determine behaviour when a source channel doesn't exist. +- NodeEditor : Improved image channel selectors : + - Added "Custom" option, to allow strings to be entered manually. + - Added right-click context menu. +- Switch : Added `connectedInputs` output plug. +- Backdrop : Improved drawing order for nested backdrops : + - Larger backdrops are automatically drawn behind smaller ones, so that nested backdrops will always appear on top. + - Added a `depth` plug to assign a manual drawing depth for the rare cases where the automatic depth is unwanted. +- ImageStats : Added `areaSource` plug, allowing area to be driven by the input display window or data window. +- ScenePlug, ImagePlug : Child plugs are now serialisable. Among other things, this enables them to be driven by expressions ([#3986](https://github.com/GafferHQ/gaffer/issues/3986)). +- Premultiply : Added `useDeepVisibility` plug, which weights samples according to their visibility based on the opacity of samples in front. +- ImageReader : Improved multithreading of EXR reads. This can result in a performance improvement of around 4X for large images. +- Added OIIO config that disables OIIO threading by default. This simplifies our threading model, and has no impact on performance for our main use cases. If read performance of Gaffer compositing using non-EXR formats, such as Tiff, is important to you, you may want to add your own config to turn OIIO threading back on. +- Wireframe : + - Improved performance ~3x. + - Improved cancellation responsiveness. + +Fixes +----- + +- Arnold : + - Fixed rendering of shaders imported from HtoA via USD. + - Fixed USD export of shaders to use `outputs:out` instead of `outputs:DEFAULT_OUTPUT`. + - Fixed rendering of `osl` shaders using the `code` parameter. +- Cycles : + - Fixed hangs and crashes when using non-default session modes such as SVM shading. + - Fixed failure to render background light in batch renders ([#5234](https://github.com/GafferHQ/gaffer/issues/5234)). + - Fixed failure to update when reverting a background shader to previous values. +- 3Delight : + - Fixed failure to change sampling pattern per frame. + - Fixed Resolution Multiplier support. + - Fixed UI visibility of `angle` parameter for distant lights, which was previously hidden. + - Fixed export of `Varying` primitive variables on meshes ([#5781](https://github.com/GafferHQ/gaffer/issues/5781)). + - Fixed loading of surface shaders such as `dlStandard` so that they can be connected to the inputs of shaders such as `dlLayeredMaterial`. +- Widget : + - Fixed bug that prevented Gadgets from receiving drops from another application. + - Fixed errors when dragging from another application onto widgets that didn't expect it. +- Gadget : Fixed access to `DragDropEvent.sourceWidget` and `DragDropEvent.destinationWidget` from Python slots connected to a Gadget's DragDropSignals. +- GraphGadget : Fixed unwanted highlighting of nodes when custom drag & drop handlers were active. +- Viewer : Fixed selection overlay glitches with an Arnold `skydome_light` and an empty selection. +- GafferTest, GafferImageTest : Fixed import of these modules if the `Gaffer` module had not been imported previously. +- ViewportGadget : Fixed selection issues with Intel GPUs ([#901](https://github.com/GafferHQ/gaffer/issues/901), [#2788](https://github.com/GafferHQ/gaffer/issues/2788)). +- TransformTool : Fixed alignment of green "value changed" icon for `orientation` plugs. +- PlugAlgo : + - Updated `canSetValueFromData()`, `setValueFromData()` and `getValueAsData()` with support for missing types. + - Fixed promotion of CompoundDataPlugs with non-dynamic children, such as the `Camera.renderSettingOverrides` plug. +- Catalogue : + - Fixed undo for image reordering via drag & drop. + - Fixed bugs caused by reordering images using `GraphComponent::reorderChildren()`. +- Expression : `setExpression()` now respects configs that provide backwards compatibility for old plug names. +- FlatImageProcessor : Fixed bug that could cause an input to be evaluated with an invalid `image:viewName`. +- Collect : Fixed display of results collected from TypedObjectPlug inputs. +- BackgroundTask : Fixed potential deadlock caused by destroying a BackgroundTask from Python while it was still running. +- Dispatcher : The job directory is no longer created when dispatch is cancelled by a slot connected to `preDispatchSignal()`. +- LocalDispatcher : + - Fixed delays and zombie processes caused by shutting down Gaffer while background jobs were running. Background jobs are now killed before Gaffer exits instead. + - Stopped failed jobs jumping to the end of the Local Jobs UI. + - Fixed message log update. + - Fixed `Job.statistics()` errors on Windows, ensuring that a `pid` is always returned when available. +- ImageStats : + - Fixed output of infinite values, which were previously being clamped. + - Results for min/max now correctly reflect zero values outside the data window. +- NodeMenu, NodeEditor : `userDefault` metadata is now evaluated in the script context, so it can depend on script variables. +- DeepState : Fixed handling of `NaN` values and samples where `ZBack` is less than `Z`. +- Premultiply : Fixed handling of non-existent alpha channel. +- ColorToVector : Fixed parameter types. +- Windows : Removed "Error(s) running Gaffer" shutdown message. It was misleading when errors originated in the renderer rather than Gaffer itself. + +API +--- + +- SelectionTool : Added static `registerSelectMode()` method for registering a Python or C++ function that will modify a selected scene path location. Users can choose which mode is active when selecting. +- EditScopeUI : Added an API for customising the EditScope's NodeEditor with summaries for each processor : + - ProcessorWidget provides a base class for custom widgets, and a factory mechanism for registering them against processors. + - SimpleProcessorWidget provides a base class for widgets with a simple summary label and optional action links. +- TractorDispatcher : The `preSpoolSignal()` now provides an additional `taskData` argument to slots, which maps from Tractor tasks to information about the Gaffer tasks they will execute. +- LabelPlugValueWidget : Added optional `labelPlugValueWidget:showValueChangedIndicator` metadata entry. If a plug has this entry set to `False`, the icon next to the label that indicates the value has changed will not be shown. Defaults to `True` if the value is not set. +- TypedObjectPlug : Added Python bindings for the default values of the `defaultValue` constructor argument. +- Box2fVectorDataPlug : Added new plug type for storing arrays of Box2f. +- Catalogue : Deprecated `image:index` metadata. +- ImageGadget : Removed `textureLoader()` method. +- Pointer : Added `fileName()` method. +- ExtensionAlgo : Added `exportNode()` and `exportNodeUI()` functions. +- Widget : Added a 0.5 pixel offset to `ButtonEvent.line` objects passed to mouse event signals such as `buttonPressSignal()` and `dragMoveSignal()` +- PathColumn : + - Added `CellData::sortValue` member, to provide additional control over sorting in the PathListingWidget. + - Added missing Python binding for `headerData()` method. +- StandardPathColumn : + - Added constructor which allows the full header CellData to be specified. + - Added missing Python binding for `property()` method. +- IconPathColumn : + - Added constructor which allows the full header CellData to be specified. + - Added `prefix()` and `property()` accessors. +- Window : Added `preCloseSignal()`, which allows connected slots to prevent a window from being closed. +- LocalDispatcher : + - Added `Job.status()` and `Job.statusChangedSignal()` methods. + - Added `Job.messages()` and `Job.messagesChangedSignal()` methods. + - Added `Job.frameRange()`, `Job.environmentCommand()` and `Job.startTime()` methods. + - Added `Job.cpuUsage()` and `Job.memoryUsage()` methods. + - Added `JobPool.addJob()` and `JobPool.removeJob()` methods. +- GafferTractor : Added `tractorAPI()` method used for accessing the `tractor.api.author` module. +- GafferTractorTest : Added `tractorAPI()` method which returns a mock API if Tractor is not available. This allows the GafferTractor module to be tested without Tractor being installed. +- ParallelAlgo : Added `canCallOnUIThread()` function. +- Label : Added `textSelectable` constructor argument. +- ShufflesPlug : + - Added `ignoreMissingSource` argument to `shuffle()`. + - Added `shuffleWithExtraSources()` method. +- ShufflePlugValueWidget : Widgets for the `source` and `destination` plugs can now be customised using standard `plugValueWidget:type` metadata. +- ImageTestCase : in `assertImageEqual` function, maxDifference may now be a tuple, to specify an asymmetric range. +- Editor : Added `Settings` class, which should be used to store settings for subclasses. See LightEditor and ImageInspector for examples. +- DeepPixelAccessor : Added utility class for accessing deep samples while abstracting away the underlying tile storage. +- Color3fPlug : Added `setValue( V3f() )` overload. + +Documentation +------------- + +- Updated with generic Render and InteractiveRender nodes in place of deprecated renderer-specific nodes. + +Breaking Changes +---------------- + +- Arnold : Removed support for Arnold 7.1. +- Cycles : Updated to version 4.0.2. +- 3Delight : + - Changed default layer names for outputs. + - Changed NSI scene description export with `.nsi` file extension from ASCII to binary (`.nsia` is used for ASCII now). +- InteractiveRenderTest : Subclasses must now return the shader output plug from creation methods such as `_createConstantShader()`. +- StandardLightVisualiser : Added `attributeName` argument to `surfaceTexture()` virtual method. +- CyclesAttributes : Removed the `cycles:dupliGenerated` and `cycles:dupliUV` attributes. +- CyclesOptions : + - Changed `hairShape` default value to "ribbon", to match Cycles' and Blender's own defaults. + - Removed `useFrameAsSeed` plug. The frame is now automatically used as the seed if `seed` is not set. + - Removed all texture cache options. These had never been exposed in the UI because this never became an official Cycles feature. + - Removed `cryptomatteAccurate`. This feature is no longer present in Cycles. + - Removed `cycles:integrator:sampling_pattern` option. This is intended only for debugging, but is still available via a CustomOptions node. +- Pointer : + - Removed `Pointer( const ImagePrimitive * )` constructor. + - Removed `image()` method. +- Render : Changed `render:includedPurposes` default to `"default", "render"`. +- Backdrop : Changed default drawing order. Use the new `depth` plug to override the order if necessary. +- ValuePlug : Removed deprecated `getObjectValue()` overload. +- Preferences : Removed `cache` plug. +- TaskNode : + - The `Task` constructor no longer takes a copy of the context, so the context must not be modified after being passed. + - Removed `Task( taskNode, context )` constructor. Use `Task( taskNode["task"], context )` instead. +- Dispatcher : + - Removed `createMatching()` method. + - Removed non-const TaskBatch accessors `frames()` and `preTasks()`. + - Made `TaskBatch` constructors private. + - The job directory is no longer available in slots connected to `preDispatchSignal()`. + - Removed `nodes` arguments from dispatch signals. Use the `dispatcher["tasks"]` plug instead. + - Removed `script` and `context` arguments from `frameRange()` method. The current frame and full frame range are now queried from the current context. +- DispatcherUI : + - Removed `appendMenuDefinitions()`, `appendNodeContextMenuDefinitions()`, `executeSelected()` and `repeatPrevious()` functions. + - Removed `DispatcherWindow` class. +- LocalDispatcher : + - Removed `JobPool.jobFailedSignal()`. + - Removed `JobPool.failedJobs()` method. Failed jobs now remain in place in the main `jobs()` container. + - Removed `Job.failed()` and `Job.killed()` methods. Use `Job.status()` instead. + - Removed `Job.execute()` method. This should not have been public. + - Removed `Job.messageHandler()` method. Use `Job.messages()` instead. + - Removed `Job.description()` method. + - Removed `Job.statistics()` method. Use `Job.memoryUsage()` and `Job.cpuUsage()` instead. + - JobPool no longer derives from RunTimeTyped. +- LocalDispatcherUI : Removed `appendMenuDefinitions()` function. +- Process : Removed non-const variant of the `handleException()` method. +- StringPlug : Removed deprecated `precomputedHash` argument from `getValue()` method. +- OpenColorIOContext : Removed `configEnabledPlug()`, `configValuePlug()`, `workingSpaceEnabledPlug()` and `workingSpaceValuePlug()` methods. Use the OptionalValuePlug child accessors instead. +- Windows launch script : Removed the hardcoded `/debugexe` switch used when `GAFFER_DEBUG` is enabled, making it possible to use debuggers other than Visual Studio. Debug switches can be added to the `GAFFER_DEBUGGER` environment variable instead. +- Enums : Replaced `IECore.Enum` types with standard Python types from the `enum` module. +- Shuffle : + - Removed ChannelPlug type. Use `Gaffer.ShufflePlug` instead. + - Renamed `channels` plug to `shuffles` plug, matching nodes such as ShuffleAttributes and ShufflePrimitiveVariables. +- ShuffleUI : Removed `nodeMenuCreateCommand()`. +- ImageStatsUI : Removed `postCreate()`. +- OSLShader : Output parameters are now loaded onto the `out` plug for all types (`surface`, `displacement` etc), not just `shader`. +- DelightOptions : Changed default values for `oversampling` and `shadingSamples` plugs. +- SceneProcessor : Subclasses no longer serialise internal connections to the `out` plug. +- ImageProcessor : Internal connections to the `out` plug are no longer serialised. +- USD : Removed Embree Hydra delegate. + +Build +----- + +- Cortex : Updated to version 10.5.6.2. +- Cycles : Updated to version 4.0.2. +- Embree : Updated to version 4.3.0. +- Imath : Updated to version 3.1.9. +- MaterialX : Updated to version 1.38.8. +- LibWebP : Added version 1.3.2. +- OpenEXR : + - Updated to version 3.1.12. + - Applied patches from the following pull requests : + - https://github.com/AcademySoftwareFoundation/openexr/pull/1591 + - https://github.com/AcademySoftwareFoundation/openexr/pull/1684 +- OpenImageIO : Updated to version 2.5.8.0. +- OpenPGL : Updated to version 0.5.0. +- OpenShadingLanguage : Updated to version 1.12.14.0. +- OpenSubdiv : Updated to version 3.5.1. +- OpenSSL : Removed. +- OpenVDB : Updated to version 10.1.0. +- PsUtil : Added version 5.9.6. +- PySide : Updated to version 5.15.12. +- Python : Updated to version 3.10.13. +- Qt : + - Updated to version 5.15.12. + - Removed QtPurchasing library. + - Removed QtNetworkAuth library. +- USD : Updated to version 23.11. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.4.1.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.4.1.0.md.txt new file mode 100644 index 000000000..9010b9972 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.4.1.0.md.txt @@ -0,0 +1,33 @@ +1.4.1.0 +======= + +Features +-------- + +- MeshTessellate/MeshType : Added support for special-purpose subdiv options: interpolateBoundary, faceVaryingLinearInterpolation, triangleSubdivisionRule. + +Improvements +------------ + +- Group : Added `sets` plug, to control what sets the group belongs to. +- 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. + - Added "Matte Inclusions" and "Matte Exclusions" columns, providing control over the scene locations used as holdout mattes in each render pass. + +Fixes +----- + +- NameSwitch : Fixed NodeEditor tab order, so that the Settings tab precedes the Advanced tab. +- NodeAlgo : Fixed presets inheritance for promoted plugs with multiple outputs. +- TaskNode / GafferCortex : Fixed missing GIL releases that caused hang at ImageEngine. + +Build +----- + +- Cortex : Updated to version 10.5.7.0. +- OpenEXR : Updated to version 3.1.13. +- USD : Added `sdrOsl`, for inclusion of OSL shaders in the Sdr Registry. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.4.2.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.4.2.0.md.txt new file mode 100644 index 000000000..e4696a7cf --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.4.2.0.md.txt @@ -0,0 +1,53 @@ +1.4.2.0 +======= + +Features +-------- + +- ContactSheet : Added new node for creating contact sheets from multiple input images. +- LightPositionTool : Added `Diffuse` mode for placing lights along the normal of the target position. + +Improvements +------------ + +- TweakPlug : `ListAppend`, `ListPrepend` and `ListRemove` modes are now supported for string values. In this case, the string is treated as a space-separated list. +- Cycles : + - Changed default value for `principled_bsdf.specular_ior_level` to `0.5`, matching Blender. + - Added support for `uv.tangent` and `uv.tangent_sign` primitive variables to assist in rendering with normal maps ([#5269](https://github.com/GafferHQ/gaffer/issues/5269)). +- AttributeQuery, PrimitiveVariableQuery, ContextQuery, OptionQuery, ShaderQuery : Added support for querying arrays of length 1 as their equivalent scalar types. +- CodeWidget : Added Ctrl+L shortcut for selecting all text on the current line. +- AttributeTweaks, CameraTweaks, ShaderTweaks, OptionTweaks, PrimitiveVariableTweaks : + - Added support for a `{source}` token which is substituted with the original value when tweaking a string in `Replace` mode. + - Added tooltips documenting the tweak modes. +- 3Delight : Added automatic render-time translation of UsdPreviewSurface shaders to 3Delight. +- USDLight : + - Added Arnold-specific extension parameters. + - Added parameter tooltips. +- LightEditor : Added columns for Arnold-specific parameters on USD lights. +- Switch : Added `deleteContextVariables` plug. + +Fixes +----- + +- Viewer : Fixed Cycles shader balls. +- TweakPlug : Fixed incorrect results and potential crashes in list modes. +- USD : Fixed `Unsupported value type "StringData" for parameter "input"` warning when converting `UsdTransform2d` shaders with no `in` connections to Arnold. +- File Browser : Windows only : Fixed bug in `HiddenFilePathFilter` that caused sequences to be treated as though they are hidden files ([#5810](https://github.com/GafferHQ/gaffer/issues/5810)). + +API +--- + +- PlugAlgo : `setValueFromData()` and `canSetValueFromData()` now support conversion of arrays of length 1 to their equivalent scalar types. +- BoxPlug : Added Python bindings for `ValueType`, `PointType` and `ChildType` type aliases. +- RenderPassEditor : Added `deregisterColumn()` method. +- DocumentationAlgo : Added table and strikethrough support to `markdownToHTML()`. +- LightEditor : Added `columnName` parameter to `registerParameter()` method, matching the behaviour of `RenderPassEditor.registerOption()`. +- USDShader : Added support for loading from the UsdSchemaRegistry as well as from the SdrRegistry. This is now used when loading UsdLuxLights. +- PlugLayout : Added support for activators in Boxes and extension nodes by allowing `layout:activator:activatorName` metadata to contain a Python string to be executed. Execution is performed in an environment where a `parent` variable refers to node or plug represented by the layout, and from which plug values can be obtained. +- ContactSheetCore : Added a new node to do provide the basis for networks that create contact sheets from multiple input images. + +Build +----- + +- MacOS : Fixed issue where `Python.framework` may not be found when building with a prebuilt dependencies package. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.4.3.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.4.3.0.md.txt new file mode 100644 index 000000000..0a33034c7 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.4.3.0.md.txt @@ -0,0 +1,39 @@ +1.4.3.0 +======= + +Features +-------- + +- 3Delight : Added "3Delight Cloud" renderer, for rendering using the 3Delight cloud. + +Improvements +------------ + +- Arnold : If it exists, an `ai:volume` attribute is preferred over an `ai:surface` attribute when resolving shaders for volumes. +- Cycles : + - Updated the UI of Cycles shaders and lights for ease of use and to match Blender conventions. + - Hide certain parameters based on UI selections. + - Renamed and reordered parameters and created sections to match Blender. + - Changed all the Cycles items in the Gaffer tab menu to title case. +- PythonCommand : Added standard popup menu to `command` widget in NodeEditor. + +Fixes +----- + +- Arnold : + - Fixed rendering of `ai:volume` shaders loaded from USD ([#5830](https://github.com/GafferHQ/gaffer/issues/5830)). + - Renamed Arnold/Globals/Imager menu option to Arnold/Globals/Imagers so that the actual ArnoldImager node menu option wasn't overwritten. +- CodeWidget : Fixed errors handling highlights which spanned more than one line, such as triple-quoted strings in the PythonEditor. +- NodeEditor : Fixed broken layouts caused by computation errors in plugs used by section summaries. +- ColorChooserPlugValueWidget : Fixed bug that allowed the editing of locked plugs and nodes. + +API +--- + +- SceneAlgo : Added mechanism for scoping render adaptors to specific clients and/or renderers. + +Build +----- + +- Fixed issue where `gaffer` wrapper may not exist when calling `usdGenSchema` from a clean build. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.4.4.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.4.4.0.md.txt new file mode 100644 index 000000000..223d645ba --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.4.4.0.md.txt @@ -0,0 +1,43 @@ +1.4.4.0 +======= + +Features +-------- + +- RenderPassEditor : + - Added `type` column for configuring specific passes to render with a predefined type. We provide default configurations of a number of render pass types, these can be modified to suit specific workflows via the RenderPassShader node or by registering new types and processors via the RenderPassTypeAdaptor in a startup file. + - The default render pass type configurations include : + - A "shadow" type for catching shadows cast by `caster` locations on `catcher` locations. + - A "reflection" type for catching reflections cast by `caster` locations on `catcher` locations. The roughness of the reflective material can be configured per catcher location by creating a `user:renderPass:reflectionCatcher:roughness` float attribute. + - A "reflectionAlpha" type for catching reflection mattes cast by `caster` locations on `catcher` locations. The colour of the matte can be configured per caster location by creating a `user:renderPass:reflectionCaster:color` Color3f attribute. +- RenderPassShader : Added new node for overriding a shader used by a render pass type. + +Improvements +------------ + +- 3Delight : + - Added support for multipart EXR renders by using the same file name parameter on multiple outputs. + - Added support for scalarformat, colorprofile, filterwidth and arbitrary custom NSI outputlayer and outputdriver attributes. + - Updated the default output presets to include scalarformat, colorprofile, filter and filterwidth output parameters. +- LightPositionTool : Changed the pointer to `notEditable` when using keyboard combinations that do not apply to the current tool mode. +- LightEditor : Added the ability to register columns for editing any parameter in a light's shader network. The parameter to edit is registered in the form `shaderName.parameterName` when calling `GafferSceneUI.LightEditor.registerParameter`. +- PathFilterUI : Added the ability to drag and drop scene paths onto Box and Reference nodes. Doing so will create a new PathFilter with the selected paths if none is connected, or update an existing connected PathFilter. + +Fixes +----- + +- SceneReader, SceneWriter : Fixed handling of Arnold-specific parameters on UsdLux lights. +- SceneWriter : Fixed import of `treatAsPoint` and `treatAsLine` parameters on UsdLux lights. +- Linux : Fixed crashes at startup on platforms - including RHEL 9.4 - with a more recent `glibc` ([#5856](https://github.com/GafferHQ/gaffer/issues/5856)). +- LightPositionTool : Fixed bug that allowed a non-light object to be moved by clicking or dragging the target or pivot. +- OptionQuery : Fixed bug which allowed the `scene:path` context variable to leak into the context used to evaluate the globals. + +API +--- + +- ShaderPlug : Added `parameterSource()` method returning the `ValuePlug` responsible for generating a parameter in a shader network. +- ParameterInspector : Added the ability to inspect parameters on any shader in a light or shader's shader network. +- RenderPassTypeAdaptor : + - Added registration methods for defining render pass types and processors. + - Added `registerAutoTypeFunction()` method to define a function used to automatically derive the render pass type from the render pass name when the `renderPass:type` option value is "auto". + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.4.5.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.4.5.0.md.txt new file mode 100644 index 000000000..adf87d866 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.4.5.0.md.txt @@ -0,0 +1,47 @@ +1.4.5.0 +======= + +Features +-------- + +- ShaderTweaks : Added support for creating ShaderTweakProxy nodes that allow making input connections to the original network. +- 3Delight : Added interactive Viewer renderer. + +Improvements +------------ + +- SetFilter, StandardAttributes, StandardOptions : Added syntax highlighting and auto-complete for set expressions. +- NodeEditor, UIEditor, PythonEditor : Added popup hint for the Ctrl+Return shortcut. +- CodeWidget : Added highlighting of braces and operators. +- RenderPassEditor : Added preset menu for choosing a render pass type from the list of available registered types. An "auto" type is included in the list when an auto type function has been registered. +- OptionTweaks : Tweak `value` plugs can now access metadata registered globally to `option:{tweakName}`, where `{tweakName}` is the value of the tweak's `name` plug. +- Spreadsheet : Added support for metadata to be automatically forwarded from plugs downstream of a column's `out` plug to the column's default row. + +Fixes +----- + +- CodeWidget : + - Removed unwanted `\n` prefix in lines passed to `Completers`. + - Prevented spurious emission of `editingFinishedSignal()` when showing the completions menu. + - Prevented the completion menu from popping up inappropriately when the highlighter was changed. +- MultiLineTextWidget : + - Fixed rendering of disabled widgets, which now show faded text. + - Fixed behaviour of `editingFinishedSignal()` to match TextWidget : it is now also emitted when the text is activated (see `activatedSignal()`). +- MultiLineStringMetadataWidget : The Ctrl+Return shortcut now updates the metadata value immediately. +- UIEditor : The Ctrl+Return shortcut now updates the button code immediately. +- Cryptomatte : + - Fixed errors when the input image didn't contain the main `RGBA` channels. + - Fixed inaccurate hash. +- SceneAlgo : Fixed exception handling for Python render adaptors. Previously an exception during adaptor construction caused a `SystemError`. +- InteractiveRender : + - Fixed crash triggered by a render adaptor depending on its `renderer` input to adapt the scene globals. + - Removed unintentional ability for render adaptors to change the renderer being used. + +API +--- + +- TextWidget : Added `selectedText()` convenience method. +- MultiLineTextWidget : Added `setSelection()` and `getSelection()` methods. +- SetExpressionPlugValueWidget : Added new editor for set expressions, with syntax highlighting and auto-complete. +- RenderPassTypeAdaptor : Added `autoTypeFunction()` method. + diff --git a/1.4.6.0/_sources/ReleaseNotes/1.4.6.0.md.txt b/1.4.6.0/_sources/ReleaseNotes/1.4.6.0.md.txt new file mode 100644 index 000000000..b8d88cbae --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/1.4.6.0.md.txt @@ -0,0 +1,30 @@ +1.4.6.0 +======= + +Improvements +------------ + +- EditScopePlugValueWidget : Added icon representing the Edit Scope node colour. + +Fixes +----- + +- LightPositionTool : Fixed bug that caused the target/pivot positions to be lost when placing a light with Z scale not equal to 1.0. +- SceneWriter : + - Fixed writing of locations with names that are not valid USD identifiers. + - Fixed handling of shader parameters not supported in USD, such as texture inputs to OpenGLShader. +- SceneReader : Fixed duplicate loading of `arnold:*` attributes on lights. These are now omitted, since they are converted to parameters on the light shader itself. +- ShaderTweaks : Fixed potential crash if a ShaderTweakProxy was used to accidentally create a cyclic connection. +- Spreadsheet : Fixed "Sets", "Operators" and "Select Affected Objects" popup menu items, which were broken in 1.4.5.0. + +Build +----- + +- Cortex : Updated to version 10.5.8.0. + +API +--- + +- Menu : Menu items with "checkBox" enabled now draw their checked indicator in place of their "icon" when both are defined. +- Image : Added `createSwatch()` static method. + diff --git a/1.4.6.0/_sources/ReleaseNotes/index.md.txt b/1.4.6.0/_sources/ReleaseNotes/index.md.txt new file mode 100644 index 000000000..9d1945dc3 --- /dev/null +++ b/1.4.6.0/_sources/ReleaseNotes/index.md.txt @@ -0,0 +1,92 @@ + + +# Release Notes # + +```{eval-rst} +.. toctree:: + :titlesonly: + + 1.4.6.0.md + 1.4.5.0.md + 1.4.4.0.md + 1.4.3.0.md + 1.4.2.0.md + 1.4.1.0.md + 1.4.0.0.md + 1.3.16.4.md + 1.3.16.3.md + 1.3.16.2.md + 1.3.16.1.md + 1.3.16.0.md + 1.3.15.0.md + 1.3.14.0.md + 1.3.13.1.md + 1.3.13.0.md + 1.3.12.0.md + 1.3.11.0.md + 1.3.10.0.md + 1.3.9.0.md + 1.3.8.0.md + 1.3.7.0.md + 1.3.6.1.md + 1.3.6.0.md + 1.3.5.0.md + 1.3.4.0.md + 1.3.3.0.md + 1.3.2.0.md + 1.3.1.0.md + 1.3.0.0.md + 1.2.10.6.md + 1.2.10.5.md + 1.2.10.4.md + 1.2.10.3.md + 1.2.10.2.md + 1.2.10.1.md + 1.2.10.0.md + 1.2.9.0.md + 1.2.8.0.md + 1.2.7.0.md + 1.2.6.0.md + 1.2.5.0.md + 1.2.4.0.md + 1.2.3.0.md + 1.2.2.0.md + 1.2.1.1.md + 1.2.1.0.md + 1.2.0.2.md + 1.2.0.1.md + 1.2.0.0.md + 1.1.9.7.md + 1.1.9.6.md + 1.1.9.5.md + 1.1.9.4.md + 1.1.9.3.md + 1.1.9.2.md + 1.1.9.1.md + 1.1.9.0.md + 1.1.8.0.md + 1.1.7.0.md + 1.1.6.1.md + 1.1.6.0.md + 1.1.5.0.md + 1.1.4.0.md + 1.1.3.0.md + 1.1.2.0.md + 1.1.1.0.md + 1.1.0.0.md + 1.0.6.6.md + 1.0.6.5.md + 1.0.6.4.md + 1.0.6.3.md + 1.0.6.2.md + 1.0.6.1.md + 1.0.6.0.md + 1.0.5.1.md + 1.0.5.0.md + 1.0.4.0.md + 1.0.3.0.md + 1.0.2.1.md + 1.0.2.0.md + 1.0.1.0.md + 1.0.0.0.md +``` \ No newline at end of file diff --git a/1.4.6.0/_sources/WorkingWithImages/AnatomyOfAnImage/index.md.txt b/1.4.6.0/_sources/WorkingWithImages/AnatomyOfAnImage/index.md.txt new file mode 100644 index 000000000..eff603391 --- /dev/null +++ b/1.4.6.0/_sources/WorkingWithImages/AnatomyOfAnImage/index.md.txt @@ -0,0 +1,105 @@ +# Anatomy of an Image # + +> Tip : +> In this article, if a term is vital to describing images in Gaffer, its first occurence will be highlighted in **bold**. + +Gaffer's image nodes output data that describe a 2D image. In this article, we will outline the structure and terminology associated with an image. + +Image properties can be broken into two areas: +- Global properties of the whole image +- Channel data (pixels) + +This is merely a conceptual division to help understand how Gaffer processes images: when building graphs, there is no significant practical divide between any of an image's properties. All of them are subject to modification by image nodes. + +> Note : +> Users familiar with [OpenEXR](http://www.openexr.com) will recognize that Gaffer shares many of the same image property terms. The main divergence is that Gaffer refers to them generically as properties rather than attributes. + + +## Image properties ## + +### Format ### + +**Format** describes the image's output format in pixel width, height, and aspect ratio. Typical values for this correspond to standards such as Full HD, 2K UHD, 4K UHD, etc. Custom formats are also supported. + +The format property can be conceived of as the combination of OpenEXR's **display window** and **pixel aspect ratio** attributes. + + +#### Display window #### + +Display window is the rectangular region that represents the final boundary of the output image. Its values are the coordinates of the bottom-left and top-right corners of the region. + + +#### Pixel aspect ratio #### + +Pixel aspect ratio is a floating-point value that specifies the ratio between the width and height of a pixel. The default value is 1.0 (square pixels), which is the most commonly used. Non-default values would typically only be used when working with anamorphic source images. + + +### Data window ### + +**Data window** is the rectangular region that defines the usable processing area of the image. Its values are the coordinates of the bottom-left and top-right corners of the region. + +The data window differs from the display window in that only the pixels inside it are processed during a node computation. Its position and size are independent of the display window. There are useful rendering applications in making it bigger (overscan rendering, blurring, lens distortion, and camera shake) and smaller (isolating a sub-region of pixels for performance, or cropping out negative space) than the display window. + +```{eval-rst} +.. figure:: images/gafferImageWindows.png + :scale: 100% + :alt: A sample of an image with non-identical data window and display window, with annotated corner coordinate values + + **Figure A:** The data and display windows for an image with overscan. Notice that there is pixel data beyond the boundaries of the display window. +``` + + +### Metadata ### + +**Metadata** is a list of arbitrary, strongly typed name-value pairs that represent non-pixel data in the image. A common source of image metadata is Exif/TIFF tags generated by a source image's camera(s). Compatible metadata types consist of the common string, integer, float, V2i, Box2i, etc. types that are available for Gaffer plugs, and some additional types such as TimeCode, unsigned integers, and vector data types. + +Gaffer can read, add, and remove metadata from an image, but it assigns no specific meaning to any particular value. For a node graph to respond to a metadata value, it will need to be accessed by an Expression node. + +> Note : +> Gaffer follows the OpenImageIO conventions for metadata naming, as specified in [Appendix B](../../../../../share/doc/OpenImageIO/openimageio.pdf#page=397) of the project's _Programmer Documentation_. + + +### Channel names ### + +Channel names is a list of arbitrary names specifying the channels in the image. The default channel names are `R`, `G`, `B`, and `A` for standard additive color images. + +Additional channels are grouped into layers using a prefix-based naming convention. For example, `diffuse.R`, `diffuse.G` and `diffuse.B` are the RGB channels of the `diffuse` layer. By convention, `Z` identifies a depth channel, and any other name identifies an auxiliary channel. + +> Note : +> Gaffer follows the [OpenEXR convention for channel names](https://openexr.com/en/latest/InterpretingDeepPixels.html). + + +### Channel data ### + +**Channel data** contains each channel's list of pixel values. Internally, Gaffer represents pixels as 32-bit floating point values, which are converted to and from other bit depths by the ImageReader or ImageWriter nodes, as needed. + +Channel data contains no positional information. When an image's pixel data is processed by a computation, the pixels of each channel are grouped into 128x128 pixel tiles, which are arranged in rows and columns to form the complete image. Images can be computed in parallel, on a per-tile, per-channel basis. + + +### Image coordinate system ### + +```{eval-rst} +.. figure:: images/gafferImageCoordinates.png + :scale: 100% + :alt: A checkerboard pattern on a cartesian graph, with a standout pixel and non-overlapping data and display windows + + **Figure B:** A model of the image coordinate system in Gaffer. +``` + +Gaffer's image coordinate system is defined on an integer grid, with the origin in the bottom-left, and one unit equal to one pixel. As _y_ values increase, the image grows upwards. A pixel is referenced by the _x_ and _y_ coordinates of its bottom-left corner. + +Pixel areas, such as data and display windows, form a rectangle between the coordinates of the bottom-left corner of their bottom-left pixel and the top-right corner of their top-right pixel. + +When sub-pixel values are needed for a process, such as rotating an image on a pivot point, the coordinate system uses floating-point values, with (_x_ + 0.5, _y_ + 0.5) being the pixel centre. + +> Note : +> The OpenEXR coordinate system has two counterintuitive aspects: +> - As _y_ values increase, the image grows **downward**. +> - Pixel areas do not incorporate the furthest pixel's outer edge, leading to unintuitive width and height ranges, e.g. 0–1919 and 0–1079 for Full HD. +> +> In order to make manipulating images more intuitive for users, the Gaffer coordinate system differs from these aspects by design. + + +## See also ## + +- [Anatomy of a Scene](../../WorkingWithScenes/AnatomyOfAScene/index.md) diff --git a/1.4.6.0/_sources/WorkingWithImages/index.md.txt b/1.4.6.0/_sources/WorkingWithImages/index.md.txt new file mode 100644 index 000000000..9d3f8b1a6 --- /dev/null +++ b/1.4.6.0/_sources/WorkingWithImages/index.md.txt @@ -0,0 +1,15 @@ + + +# Working with Images # + +Here you can find information on how to read and manipulate 2d images, and how Gaffer interprets image data. + + + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + AnatomyOfAnImage/index.md +``` diff --git a/1.4.6.0/_sources/WorkingWithScenes/AnatomyOfACamera/index.md.txt b/1.4.6.0/_sources/WorkingWithScenes/AnatomyOfACamera/index.md.txt new file mode 100644 index 000000000..03e697e41 --- /dev/null +++ b/1.4.6.0/_sources/WorkingWithScenes/AnatomyOfACamera/index.md.txt @@ -0,0 +1,138 @@ +# Anatomy of a Camera # + +> Tip : +> In this article, if a term is vital to describing cameras in Gaffer, its first occurence will be highlighted in **bold**. + +The camera in Gaffer is designed to accommodate two related but sometimes divergent conceptions of a camera: the idealized "CG" cameras that we use in software, and the real cameras used in photography and cinematography. + +![](images/illustrationCamerasRealCG.png "A real camera and CG camera") + +Fundamentally, current mainstream renderers use the CG camera model. However, many users are well-versed in the operating principles of real cameras, in particular the properties of aperture and focal length. Some DCC and scene format developers have made an effort to integrate these properties into their projects, to make camera construction easier for this audience. Gaffer does the same. + +Therefore, when using Gaffer, and in its scene data, a camera can be thought in terms of, and defined by, aperture and focal length. Cameras in Gaffer are also fully compatible with the Alembic and USD scene formats. Within a scene, a camera's properties are stored as special values known as **parameters**. + + +## Camera model ## + + +### Projection ### + +By default, Gaffer supports cameras with either perspective or orthographic projection. Perspective projection can be thought of as a horizontal and a vertical field of view that form a viewing frustum. Orthographic projection can be thought of as collimating light to create parallel projection lines. + +Three parameters determine camera projection: + +- **projection** +- **aperture** +- **focalLength** + +```{eval-rst} +.. figure:: images/illustrationPerspectiveOrthographic.png + :scale: 100% + :alt: Perspective and orthographic cameras in Gaffer + + **Figure 1.** The projection parameters of the two default camera types. +``` + +When the projection parameter is set to `perspective`, the angle of view can be controlled in the application by either the Field of View plug (as for a CG camera), or the Aperture and Focal Length plugs (as for a real camera). These latter two plugs replicate camera film back/sensor size, and lens focal length, respectively. When using these plugs, the user does not need to convert camera/lens projection into an angle, making it straightforward to replicate a real camera that was used in a shot. In the scene data, perspective is always stored as the aperture and focalLength parameters, even if the Field of View plug is used. + +When the projection parameter is set to `orthographic`, the size of the orthographic view is controlled by the Orthographic Aperture plug. In this mode, the corresponding aperture parameter defines the width and height of the film back/sensor, in world space units. + +Keep in mind that even though the scene describes projection with optical analogues, the result is still an approximation of a real camera. As with any CG camera, the implementation breaks with reality: + +- With perspective projection, the aperture and focalLength parameters are dimensionless – numbers without units of measure. They are interoperable with values that define equivalent horizontal and vertical fields of view. +- As mentioned earlier, the term _aperture_ does not refer to an opening in a lens, but rather a rectangular region in 3D space that receives the image. It is, for practical purposes, equivalent to the film back/sensor. Since there is no lens, the image does not flip vertically before "hitting" this aperture. +- Other than focal length, lenses are not truly accounted for, except for when adding depth of field blur to the final image. + + +### Aperture offset ### + +The **apertureOffset** parameter represents the amount by which the aperture is shifted parallel to the image plane. + +```{eval-rst} +.. figure:: images/illustrationApertureOffset.png + :scale: 100% + :alt: Aperture offset in Gaffer + + **Figure 2.** The aperture offset parameters, applicable to either projection type. +``` + +The scale of the offset depends on the projection. With perspective projection, the offset is proportional to the field of view (when the Field of View plug is used) or to the camera's unit of measure (e.g. millimeter; when the Aperture and Focal Length plugs are used). + + +### Depth of field blur ### + +Four parameters determine depth of field blur: +- **focalDistance** +- **fStop** +- **focalLengthWorldScale** +- focalLength + +In order to simulate depth of field blur, the camera needs a virtual opening: a circle in 3D space on a plane perpendicular to the camera's direction. In effect, this is a **lens aperture**. From this circle, Gaffer calculates the angle of incidence of light coming from objects at a distance greater or less than the focalDistance. The larger the circle, the stronger the depth of field blur. The smaller the circle, the weaker. + +```{eval-rst} +.. figure:: images/illustrationDepthOfField.png + :scale: 100% + :alt: Depth of field blur in Gaffer + + **Figure 3.** An approximation of depth of field blur in Gaffer. +``` + +> Important : +> The term _lens aperture_ has a meaning near to its real-world counterpart – it really can be thought of as a round opening in space. + +The fStop and focalDistance parameters are identical to f-number and focus distance in real lenses. They allow easy replication of real lens settings. + +The third parameter, focalLengthWorldScale, sets the scale between the camera's unit of measure and the world space's unit of measure. Because the circle occupies 3D space, the circle must be measured in world space units. Complicating things is the fact that the world space units might not be measured in millimeters. The scene could use any scale – centimeter, meter, foot, kilometer, etc. Therefore, the scale factor between them must be defined. + +For depth of field, lens aperture is calculated with the formula: + +``` +lens aperture = (focalLength × focalLengthWorldScale) / fStop +``` + +For example, assume a lens with a focalLength of 50mm, an fStop of 4, and a world space measured in centimeters (default for Alembic/USD). First, we need to scale the focal length from mm to cm. Using a focalLengthWorldScale of 0.1 yields `50mm × 0.1 = 0.5cm`. This is the lens aperture at its widest. Dividing by the fStop of 4 results in the stopped-down lens aperture of `0.5cm / 4 = 0.125cm`. + + +## Cameras in the scene ## + + +### Camera data ### + +Within the [scene paradigm](../../../AnatomyOfAScene/index.html#scene-hierarchy), a camera, just like any other scene component, starts with a location in the scene hierarchy. To define a camera, the location must have the following data: + +- **Transform:** The vectors that define the position and orientation of the camera. +- **Object:** A special camera object at the location. Instead of geometry, the object stores camera data, called parameters. + - **Parameters:** The crucial values that define a camera, such as the perspective type, field of view/aperture, and depth of field settings. If defined, a special kind of optional parameter, called a **render override**, will supercede one of the scene's **[render options](../../../AnatomyOfAScene/index.html#options)** during computation and rendering.
+ ![](images/interfaceCameraParameters.png "Camera parameters in the Scene Inspector") +- **Sets:** A list of sets the location belongs to. By default, every camera is assigned to an automatic "Cameras" set, accessible in the API by the `__cameras` variable.
+ ![](images/interfaceCameraSets.png "Camera sets in the Scene Inspector") + + +### Data flow ### + +Like geometry, cameras are represented as objects at locations in the scene hierarchy. To actually look through a camera (either in a Viewer, or during a render), Gaffer needs additional information, such as the resolution and film fit. This information is provided in the scene globals as render options, and combined with the camera's data at the point of use. Below is a description of this data flow, with a demonstration of how a camera can optionally override these render options. + +```{eval-rst} +.. figure:: images/illustrationCameraDataFlow.png + :scale: 100% + :alt: Camera data flow in a node graph + + **Figure 4.** The camera data flow through a node graph, with data passing between a Camera node, CameraTweaks node, and a StandardOptions node. +``` + +Each Camera node creates a camera, appearing in the scene hierarchy as its own location (by default called `/camera`). Each location will have its respective data. The locations and their data are passed to downstream scene nodes, like normal. + +A downstream CameraTweaks node can add, remove, modify, or replace parameters of one or more cameras in the scene. Standard camera parameters can be removed: strictly speaking, there are no mandatory camera parameters, as Gaffer will supply fallback defaults. The addition of parameters with custom names and values is supported. + +Camera and CameraTweaks nodes can add render overrides, which are a special kind of camera parameter. When a Viewer or a renderer looks through the camera, if a parameter has the same name as a render option, its value will take precedence over that option. An override can be added before its equivalent render option exists in the scene. + +At a later point in the graph, a StandardOptions node selects the camera to use, and defines the scene's render options. If the camera has any render overrides, their values will supercede those of their equivalent render options. + +Finally, all camera parameters and render options are passed to the renderer. All these data are used in combination by the renderer to calculate the image projection map, the image size, the motion blur, and the depth of field blur in the render. + + +## See also ## + +- [Camera](../Camera/index.md) +- [Camera node reference](../../Reference/NodeReference/GafferScene/Camera.md) +- [Anatomy of a Scene](../AnatomyOfAScene/index.md) diff --git a/1.4.6.0/_sources/WorkingWithScenes/AnatomyOfAScene/index.md.txt b/1.4.6.0/_sources/WorkingWithScenes/AnatomyOfAScene/index.md.txt new file mode 100644 index 000000000..0d06649f1 --- /dev/null +++ b/1.4.6.0/_sources/WorkingWithScenes/AnatomyOfAScene/index.md.txt @@ -0,0 +1,94 @@ +# Anatomy of a Scene # + +> Tip : +> In this article, if a term is vital to describing scenes in Gaffer, its first occurence will be highlighted in **bold**. + +A scene **node** in Gaffer outputs data structured to describe a 3D scene. In this article we will describe this structure and the terminology associated with it. + +The structure of a scene can be broken down into two main areas: +- Hierarchy +- Globals + + +## Scene hierarchy ## + +In common with most DCCs, Gaffer represents a 3D scene as a hierarchy or tree structure. We refer to positions within this tree as **locations**, specified by their path within the scene, e.g. `/world/city/building01`. Locations are arranged via parent-child relationships, such that `/world/city` is considered the parent of the child `/world/city/building01`. Do not confuse locations in the scene hierachy with nodes in the node graph; nodes **output** scenes, but are not part of them. + +![](images/hierarchyView.png "The Hierarchy View with a location selected") + +Each location has a number of properties that describe the content of the scene at that point in the hierarchy. They can be inspected in the _Selection_ tab of the Scene Inspector. Each property of each location is computed independently, allowing Gaffer to generate the scene lazily on demand. + +![](images/sceneInspector.png "All of a location's property sections in the Selection tab Scene Inspector") + +> Important : +> In this article, "property" only refers generically to a piece of data that describes a scene. It does not carry the more specific meanings from other DCCs. + + +### Transform ### + +The **transform** contains a 4x4 matrix storing the local transformation of the location. It is used to position the location in 3D space using a combination of translation, rotation and scaling. + +![](images/sceneInspectorTransformSection.png "A location's Transform section in the Scene Inspector") + + +### Bound ### + +The **bound** contains the union of the bounding box of the location's contents and of the contents of all of its descendants. This is stored relative to the location’s local space. The bound may be computed independently of the contents themselves. + +![](images/sceneInspectorBoundSection.png "A location's Bound section in the Scene Inspector") + + +### Object ### + +When a location contains a 3D object, such as a primitive or a camera, it is stored in the **object** property. Although any location can have an object, typically they are only stored at leaf locations. + +![](images/sceneInspectorObjectSection.png "A location's Object section in the Scene Inspector") + + +#### Primitive variables #### + +Primitive variables are properties of primitives (example primitive types include meshes, curves, and points). Common examples are "P", which stores vertex positions, "N" which stores normals and "uv" which stores texture coordinates. In addition to these, objects can store any number of additional variables. Primitive variables can store a single value for the whole object, or can store values per-face, per-vertex or per-face-vertex. + + +### Attributes ### + +The **attributes** store an arbitrary number of named values for the location. Gaffer defines standard attributes for object visibility, motion blur, and more. Additional attributes are defined to provide renderer-specific settings for things such as shader assignment, ray visibility and tessellation. Custom attributes may additionally be created by users for any purpose, often to control shading variation. + +Locations inherit attributes from their parent, with attributes local to the location overriding any equivalent attribute from the parent. + +> Note : +> Maya users should note that attributes in Gaffer are not equivalent to attributes in Maya’s _Attribute Editor_. The equivalent term in Gaffer is **plug**. An attribute in Gaffer always refers to a property of a scene. +> +> Katana users may be accustomed to thinking of every property in a scene as an attribute. In Gaffer, attributes **only** refer to arbitrary values for the location. Transforms, geometry, and bounds are **not** attributes. +> +> Users familiar with RenderMan may be reassured to know that Gaffer derives its use of the term attribute from RenderMan. Gaffer and RenderMan attributes are very much alike. + +![](images/sceneInspectorAttributesSection.png "A location's Attributes section in the Scene Inspector") + + +## Globals ## + +The **globals** are properties of a scene as a whole, rather than a particular location. + + +### Options ### + +The **options** are typically used to define render settings. Gaffer defines standard options for settings such as render resolution, pixel aspect ratio, and overscan. Additional options are defined to provide renderer-specific settings for things such as ray depth, sampling, and logging. Users can create custom options to store arbitrary information. + + +### Outputs ### + +The **outputs** define the images to be generated by the renderer. They specify things such as output data, filename, filetype and filtering. + +> Note : +> Both options and outputs in Gaffer can be considered similar to render globals in Maya. + + +### Sets ### + +**Sets** are collections of paths specifying a subset of locations within the scene. They are typically used to specify which locations a node acts upon. Gaffer automatically maintains a set containing all lights and a set containing all cameras. Users can create arbitrary custom sets of their own. + + +## See also ## + +- [Tutorial: Querying a Scene](../../WorkingWithThePythonScriptingAPI/TutorialQueryingAScene/index.md) diff --git a/1.4.6.0/_sources/WorkingWithScenes/Camera/index.md.txt b/1.4.6.0/_sources/WorkingWithScenes/Camera/index.md.txt new file mode 100644 index 000000000..b90a0610f --- /dev/null +++ b/1.4.6.0/_sources/WorkingWithScenes/Camera/index.md.txt @@ -0,0 +1,235 @@ +# Camera # + +Gaffer's cameras setups are quite flexible, allowing for a variety of camera types, measurement systems, and industry-standard formats. With this freedom, you can simulate many common camera and lens setups. + +![](images/interfaceCameraNode.png "The Camera node") + +In this article, we will assume you are fairly familiar with camera terminology and the settings of real cameras and lenses. + +Before you begin, we highly recommend you read [Anatomy of a Camera](../AnatomyOfACamera/index.md). + + +## Camera basics ## + +Each Camera node (_Scene_ > _Source_ > _Camera_) adds a scene containing a single location (`/camera` by default) with a camera object. When previewing the scene in the Viewer, the camera object is represented by a wireframe model. The width and size of the frustum on the model roughly corresponds to the angle of view and aspect ratio of the camera. + +![](images/interfaceCameraVisualizer.png "The camera visualizer in the Viewer") + +Scenes can support multiple cameras, but renderers typically work with one at a time. The StandardOptions node, placed downstream, sets which camera in the scene to use for a given render. + +When looking through a camera, the Viewer matches its projection, so the scene will appear as foreshortened or as flat as dictated by the projection parameters. This lets you preview the precise framing and composition of the scene. Additionally, a frame overlay appears in the Viewer, showing the aperture gate, the resolution gate, and the crop window. + +![](images/interfaceFrameOverlay.png "The elements of the frame overlay") + +> Tip : +> If the aperture gate isn't visible, that means it is identical to the resolution gate. + + +## Instructions ## + + +### Manipulating a camera ### + + +#### Selecting, translating, and rotating a camera #### + +Like other objects in the scene, the camera can be manipulated in the Viewer. You can select it by clicking it or dragging a marquee around it, rotate it with the Rotate Tool ![](images/gafferSceneUIRotateTool.png "RotateTool") (W), and translate it with the Translate Tool ![](images/gafferSceneUITranslateTool.png "Translate Tool") (E). + +![](images/taskSelectTranslateRotateCamera.gif "Selecting, translating, and rotating a camera object in the Viewer") + + +#### Selecting a look-through camera for a Viewer #### + +Each Viewer can be set to look through a camera in the scene, rather than the default free camera. This can be quite useful if the scene has multiple cameras and you need to preview each in a separate Viewer at once, such as in a scene with witness cameras, or if you simply want to compare the flat-shaded scene to its render preview. + +![](images/taskSelectLookThroughCamera.gif "Selecting a look-through camera in the Viewer") + +To select a look-through camera for a Viewer: + +1. In the Viewer, click ![](images/cameraOff.png "Camera"). A drop-down menu of objects will appear. +2. Select either _Render Camera_ for the current scene's render camera (if defined by a StandardOptions node), or a camera from the _Camera_ sub-menu (a list of all cameras in the current scene). + + +#### Translating and rotating the look-through camera #### + +With the Camera Tool ![](images/gafferSceneUICameraTool.png "Camera Tool") toggled on, you can translate and rotate the look-through camera with the [camera controls](../../../../Interface/ControlsAndShortcuts/index.html#d-scenes). + +![](images/taskCameraToolLookThroughCamera.gif "Manipulating the camera with the Camera Tool and camera controls") + +> Note : +> The shortcuts for the clipping plane affect the clipping plane of the default free camera, **not** the look-through camera. + + +#### Orbiting with the look-through camera #### + +Like the default free camera, you can set the look-through camera to focus on an object in the scene, and orbit it around that object's position. + +![](images/taskOrbitLookThroughCamera.gif "Orbiting the look-through camera around an object") + +To orbit with the look-through camera: + +1. Make sure the Camera Tool ![](images/gafferSceneUICameraTool.png "Camera Tool") (T) is activated. +2. Select an object in the scene. +3. Hit F. The camera will aim at the object and adjust position. +4. Use the [camera controls](../../../../Interface/ControlsAndShortcuts/index.html#d-scenes) to orbit around the object. + + +### Constructing a perspective camera ### + +When constructing a camera with perspective projection, there are two projection modes available: _Field Of View_, and _Aperture and Focal Length_. With _Field Of View_, you can provide an angle of view, like with a typical CG camera. With _Aperture and Focal Length_, you can replicate the real projection settings of a camera/lens setup by inputting its actual aperture and focal length settings. + +To construct a perspective camera: + +1. Create a Camera node (_Scene_ > _Source_ > _Camera_). +2. In the Node Editor, set the Projection plug to _Perspective_. + +Then, assign the projection parameters using one of the perspective modes: + + +#### Using field of view #### + +![](images/taskCameraFOVPlugs.png "The Field of View projection mode, with plugs that define a horizontal FOV of 40 and an aspect ratio of 1.778") + +1. Set the Perspective Mode plug to _Field Of View_. +2. Input an angle for the Field Of View plug, in degrees. +3. For the Aperture Aspect Ratio plug, input an appropriate horizontal-to-vertical ratio for the image. For example, a 16:9 frame would be `1.778`. + + +#### Using aperture and focal length #### + +![](images/taskCameraApertureFocalLengthPlugs.png "The Aperture and Focal Length projection mode, with plugs that define a 50mm lens on a Full Frame 35mm body") + +1. Set the Perspective Mode plug to _Aperture and Focal Length_. +2. For the Aperture plug, select the appropriate camera from the list of standard camera film backs/sensors. If the camera you need is not available: + 1. Select _Custom_. Two new plug fields will appear. Fill in: + ![](images/taskCameraCustomAperturePlugs.png "The custom aperture plugs in the Node Editor") + - aperture.x: The horizontal film back/sensor length, typically in millimeters. + - aperture.y: The vertical film back/sensor length, typically in millimeters. + 2. Set the Focal Length plug to an appropriate lens focal length. This is typically in millimeters. + +> Important : +> You can set the Aperture and Focal Length plugs as numbers in any unit of measure (millimeter, centimeter, inch, etc.), so long as they use the **same** unit of measure, and the lengths are proportional to each other. For example, if the film back is in millimeters, then the focal length should also be in millimeters. + + +### Offsetting a camera ### + +The offset is the amount by which the camera view is shifted parallel to the image plane. This parameter is used in special cases, such as simulating a tilt-shift lens, rendering tiles for a panorama, or matching a plate that has been asymmetrically cropped. + +![](images/taskAdjustApertureOffset.gif "The camera frustum adjusting in response to Aperture Offset") + +A camera's Aperture Offset plug controls the horizontal and vertical offset. The length of one unit of offset depends on the projection type of the camera: +- Perspective projection: + - _Field Of View_ mode: 1 offset = 1 whole horizontal field of view (for example, 45°). + - _Aperture and Focal Length_ mode: 1 offset = 1 aperture unit of measure (for example, 1 millimeter). +- Orthographic projection: 1 offset = 1 world space unit. + + +### Adding depth of field blur ### + +![](images/renderDepthOfFieldBlur.png "A render with depth of field blur") + +Depth of field is controlled as if the camera had a lens, with plugs analogous to real lens settings – F Stop and Focus Distance plugs. You can use these settings to replicate the depth of field of a real lens. + +> Tip : +> If you need to preview depth of field blur, render the scene through an interactive renderer. + +To add depth of field blur: + +1. Select the Camera node in the Graph Editor. +2. In the Node Editor, switch to the _Depth of Field_ tab. +3. Input an appropriate F Stop plug value for the lens aperture. The higher the number, the less depth of field blur. +4. Select a Focal Length World Scale plug value. This is the scale factor between the camera's focal length unit of measure and the world space unit of measure. For example, if the focal length is measured in millimeters but the world is measured in centimeters, select _Millimeters to Centimeters (0.1)_. For most scenes and scene formats, use this scale. If the scale you need isn't provided, select _Custom_ and input a custom scale. +5. Input the Focus Distance plug value between the camera and the object(s) in focus, in world space units. + ![](images/taskCameraDepthOfFieldPlugs.png "The Depth of Field tab and plugs of a Camera node in the Node Editor") +6. On a downstream StandardOptions node, enable the Depth Of Field plug (click ![](images/toggleOff.png "Switch")) and turn it on. + ![](images/taskStandardOptionsDepthOfFieldPlug.png "The Depth of Field plug of a StandardOptions node in the Node Editor") + +> Important : +> Depth of field information will only be passed to the renderer if the Camera node's F Stop plug is greater than `0` and a downstream StandardOptions node has its Depth of Field Blur plug enabled and turned on. Otherwise, your render will not have depth of field blur. + + +## Render overrides and camera tweaks ## + +Depending on your workflow and pipeline process, and how upstream data is inherited by your graph (such as from Reference nodes), you may find yourself in situations where you need to: + +- Introduce a camera that, to work correctly, must override one or more of the scene's [render options](../../../AnatomyOfAScene/index.html#options) (such as the film fit), preempting the downstream StandardOptions node. +- Override an upstream camera's parameters, or preempt the downstream render options, without modifying the associated nodes. +- Completely override a camera to create a custom camera type. + +You can resolve these by enabling the Camera node's render overrides, employing a CameraTweaks node, or a combination of both. + + +### Render overrides ### + +A **render override** is a special camera parameter that overrides a corresponding render option. + +![](images/taskCameraRenderOverridePlugs.png "The Resolution override plug in the Render Overrides tab in the Node Editor") + +Since an override is a parameter, and thus data on the camera's object, it does not modify the actual render option. It instead takes precedence over the render option during computation or rendering. An override can be tweaked or removed at a later point in the graph. If removed, the corresponding render option will come into effect again. + +To activate a render override: + +1. Select a Camera node in the Graph Editor. +2. In the Node Editor, switch to the _Render Overrides_ tab. +3. Enable the override (click ![](images/toggleOff.png "Switch")) and adjust its plug values as needed. + + +### Camera tweaks ### + +![](images/interfaceCameraTweaksNode.png "The CameraTweaks node") + +The CameraTweaks node (_Scene_ > _Object_ > _Camera Tweaks_) is a special node that adds any number of adjustments, known as as **camera tweaks**, to render options and camera parameters. A camera tweak can also add custom camera parameters to the scene data. + +![](images/taskCameraTweaksTweaks.png "Two camera tweaks in the Node Editor") + +Multiple tweaks can be applied to the same parameter or render option. If so, they apply their operations in sequence. + +Every tweak from the CameraTweaks node is applied to every camera specified by the node's filter. + +To add a camera tweak: + +1. Create a CameraTweaks node at a point in the graph that is downstream of the target camera(s). +2. Create a PathFilter node, add the path location(s) of the camera(s) to it, and connect it to the filter plug of the CameraTweaks node. +3. Select the CameraTweaks node. +4. In the Node Editor, click ![](images/plus.png "Add") and select a parameter or render option to tweak. The tweak will appear in the editor as a compound plug. +5. Enable the tweak (click ![](images/toggleOff.png "Switch")). +6. Assign the tweak operation:
+ ![](images/taskCameraTweaksPlugs.png "The plugs of a camera tweak in the Node Editor") + - Mode: The operation to apply between the new value and old value of the parameter or render option. You have a choice between _Replace_, _Add_, _Multiply_, and _Remove_. String values cannot be multiplied/added/subtracted. For example, with default parameter value `A`, operation _Multiply_, and new value `B`, the tweak would apply `A × B`. + - Value: The new value to use in the operation. + + +## Example graphs ## + + +### Anamorphic camera setup ### + +![](images/exampleAnamorphicCameraSetup.png "Preview of anamorphic camera setup example") + +This can be loaded in Gaffer from _Help_ > _Examples_ > _Rendering_ > _Anamorphic Cameras_. + +A setup that replicates an anamorphic camera and lens, by rendering with a non-square pixel aspect ratio. + + +### Spherical camera in Arnold ### + +![](images/exampleSphericalCameraSetupArnold.png "Preview of Arnold spherical camera example") + +This can be loaded in Gaffer from _Help_ > _Examples_ > _Rendering_ > _Spherical Cameras (Arnold)_. + +A camera with spherical projection that is compatible with the Arnold renderer. To achieve this, a CameraTweaks node overrides certain camera parameters to create a custom projection type. The tweaks are: + +![](images/exampleSphericalCameraSetupArnoldTweaks.png "The parameter tweaks needed for a spherical camera in Arnold") + +> Tip : +> Other renderers will likely use similar means to achieve spherical cameras. + +> Note : +> Due to a bug, when rendering a spherical camera for Arnold, the `filmFit` tweak must be set to _Horizontal_, not _Distort_. + + +## See also ## + +- [Anatomy of a Camera](../AnatomyOfACamera/index.md) +- [Camera Node Reference](../../Reference/NodeReference/GafferScene/Camera.md) +- [CameraTweaks Node Reference](../../Reference/NodeReference/GafferScene/CameraTweaks.md) diff --git a/1.4.6.0/_sources/WorkingWithScenes/LightLinking/index.md.txt b/1.4.6.0/_sources/WorkingWithScenes/LightLinking/index.md.txt new file mode 100644 index 000000000..83c91513a --- /dev/null +++ b/1.4.6.0/_sources/WorkingWithScenes/LightLinking/index.md.txt @@ -0,0 +1,163 @@ +# Light Linking # + +When lighting a scene, you will sometimes need to selectively control whether a piece of geometry is illuminated by a particular light, both for artistic purposes and to cut down on rendering time. The relationships that determine whether a light applies to an object are collectively known as **light linking**, and are controlled by the object's `linkedLights` attribute. + +![](images/illustrationLightLinking.png "A sphere, a cube, and two lights, but the second light only illuminates the cube") + +> Note : +> The only supported renderer that currently implements light linking is Arnold. + +> Tip : +> Maya users will be familiar with the concept of light-centric (light-to-object) and object-centric (object-to-light) light linking. The procedure for linking lights in Gaffer is similar to object-centric linking. + + +## Mechanics of light linking ## + +From the light side of things, by default, each light is a member of a set named **"defaultLights"**, and will cast light on every object in the scene. Each light's node has a Default Light plug, which is checked by default. If unchecked, the light is removed from "defaultLights", and, from then on, will only illuminate objects that are expressly linked to it. + +![](images/interfaceDefaultLightPlug.png "The Default Light plug of a light") + +From the object side of things, by default, an object is lit by all lights belonging to the "defaultLights" set. To bring about any other behaviour, such as having the object only lit by one light, a `linkedLights` attribute must be added to the object's location in the hierarchy, and the attribute must specify one or more lights, or sets of lights. The `linkedLights` attribute follows standard [inheritance rules for attributes](../../../AnatomyOfAScene/index.html#attributes) in the hierarchy, so if the object doesn't have the `linkedLights` attribute, but one of its ancestors does, it will inherit the attribute. + +```{eval-rst} +.. figure:: images/interfaceLinkedLightsAttribute.png + :scale: 100% + :alt: The linkedLights attribute of an object as it appears in the Scene Inspector. + + The linkedLights attribute of an object, as it appears in the Scene Inspector. +``` + + +## Instructions ## + +In a graph, in order to actually link a light to an object, you must connect a StandardAttributes node downstream of the object, filter for the object's location, and then add a set expression to the Linked Lights plug. + +![](images/interfaceLightLinkSetupGraphEditor.png "A StandardAttributes node downstream of an object node") + +![](images/interfaceLinkedLightsPlug.png "The Linked Lights plug of an object") + +Once the Linked Lights plug is toggled on, the `linkedLights` attribute is added to the object's location. The value of the Linked Lights plug is a [set expression](../../Reference/ScriptingReference/SetExpressions/index.md), which can consist of individual light locations, set names, or both. We will cover how to filter for both types below. + +> Important : +> The Linked Lights plug is an exclusive list. If you toggle the plug and leave the list blank, the object will not be illuminated by any lights **at all**. +> In order to link a particular light **in addition to** all default lights to an object, you must include `defaultLights` in the set expression, for example `defaultLights /group/light`. + + +### Linking by location ### + +To link a light by location, simply add the light's full location to the set expression. No additional node is needed. + +![](images/taskLightLinkingSetExpressionLocation.png "A light linking set expression with a location") + +> Important : +> When linking a light by its location, the path you provide **must** be the final location of the light within the hierarchy **as delivered to the render node**. For example, if you link to a light at `/group/light`, but later in the graph you shuffle the hierarchy and the light exists at `/building/lights/light`, the renderer will look for the light at the original location, find nothing there, and then the link will fail. Therefore, you would unintuitively need to target a downstream location in an upstream part of the graph. + + +### Linking by set ### + +In setups with more than a few lights, managing a set expression with multiple light locations is prone to user error, and tedious to maintain. That's why it's usually better to link objects to one or more sets containing lights, as the term _set expression_ suggests. Put another way, you can perform **set**-centric light linking. The end result would still be the same, in that specific objects are linked to specific lights. + +A light can be added to any number of custom sets using the Sets plug on the light's node, or a separate Set node. Custom sets are separate and do not affect the "defaultLights" set. + +![](images/interfaceLightSetGraphEditor.png "A Set node downstream of a light node in the Graph Editor") + +![](images/interfaceLightSetNodeEditor.png "A Set node in the Node Editor") + +To link one or more lights by a set, simply add it to the set expression. + +![](images/taskLightLinkingSetExpressionSet.png "A light linking set expression with a set") + +Be aware that if an object belongs to multiple sets with light linking, the object will only inherit the `linkedLights` attribute from the last set that was linked in the graph, as shown in the illustration below. + +![](images/illustrationLightLinkingMultipleSets.png "A graph where an object belongs to multiple sets, each with different linked lights") + + +## Example scenario ## + +Here we'll explore an example scenario where link lighting would be appropriate, and then propose a way to set it up. + + +### An artistically-lit scene ### + +Picture a scene where a giant robot attacks a highly detailed metropolitan city at night. For dramatic effect, let's say we want the robot's eyes to shine with some menacing red highlights. What's more, on the robot's chest is affixed the logo of its evil creator, and we want to make sure the audience can just make out the logo, regardless of the ambient illumination. With a photorealism mindset, both of these lights would be conceits, as they would have no plausible light source. Even so, with their inclusion, the scene becomes more evocative. + +![](images/exampleGaffyAttacksScene.png "A preview of the example scenario in the Viewer") + +To achieve both of these highlights, we could add special lights in front of the robot's eyes and chest. But, by default, these lights would also illuminate the rest of the robot, and everything else in the scene. This may not achieve our artistic intent, and could also affect render time and memory usage. + + +### Light linking solution ### + +Let's consider a possible light link setup for this scene, with the goal of achieving our artistic intent while reducing the impact of the special lights on render time and memory. + + +### Lights ### + +Location | Default Light plug value | Special light sets +-------------|---------------------------|------------------- +/lights/sky | `True` | +/lights/moon | `True` | +/lights/eyes | `False` | "lights:eyes" +/lights/logo | `False` | "lights:logo" + + +### Objects ### + +Location | `Linked Lights` expression +-----------------------------------------|--------------------------- +/assets/... | - +/assets/GAFFERBOT/[etc]/L_eyeLens001_REN | `defaultLights lights:eyes` +/assets/GAFFERBOT/[etc]/R_eyeLens001_REN | `defaultLights lights:eyes` +/assets/GAFFERBOT/[etc]/C_torso009_REN | `defaultLights lights:logo` + + +### Results ### + +The above set expressions link the special lights and sets. The eyes are linked to all lights plus the eye light's set; the logo is linked to all lights plus the logo light's set. The result is that the special lights only illuminate the subjects we want them to: the eye light hits the eyes, and the logo light hits the logo. + +![](images/exampleGaffyAttacksResults.png "The resulting render of the example scenario with the correct light links") + +Set name | Set members +----------------|------------ +"defaultLights" | /lights/sky /lights/moon +"lights:eyes" | /lights/eyes +"lights:logo" | /lights/logo + +Object |Linked lights +-----------------------------------------|--------------- +/assets/... | – +/assets/GAFFERBOT/[etc]/L_eyeLens001_REN | /lights/sky /lights/moon /lights/eyes +/assets/GAFFERBOT/[etc]/R_eyeLens001_REN | /lights/sky /lights/moon /lights/eye +/assets/GAFFERBOT/[etc]/C_torso009_REN | /lights/sky /lights/moon /lights/logo + + +## Example graphs ## + +### Light linking basics ### + +> _Help_ > _Examples_ > _Lighting_ > _Light Linking Basics (Arnold)_ + +![](images/exampleLightLinkingBasics.png "Example: Light linking basics") + +This example contains the various permutations of light linking on objects: + +1. No link (default) +2. Link to a light's location +3. Link to a set containing a light +4. Link to a set and the "defaultLights" set +5. Link to a non-default light +6. Link to a blank expression + + +### Light linking city attack ### + +> _Help_ > _Examples_ > _Lighting_ > _Light Linking City Attack (Arnold)_ + +![](images/exampleLightLinkingCityAttack.png "Example: Light linking city attack") + +In this example, a supersized version of our mascot, Gaffy, is throwing a tantrum, and attacking a city. Two special and unrealistic light sources are added to the scene, in order to add highlights to Gaffy's eyes and chest logo. This graph contains the light-link setup described in the above example scenario. + + +## See also ## + +- [Set Expressions Reference](../../Reference/ScriptingReference/SetExpressions/index.md) diff --git a/1.4.6.0/_sources/WorkingWithScenes/index.md.txt b/1.4.6.0/_sources/WorkingWithScenes/index.md.txt new file mode 100644 index 000000000..18ec2c7e7 --- /dev/null +++ b/1.4.6.0/_sources/WorkingWithScenes/index.md.txt @@ -0,0 +1,18 @@ + + +# Working with Scenes # + +Here you can find information on how to read, manipulate, and construct 3D scenes, and how Gaffer interprets scene data. + + + +```{eval-rst} +.. toctree:: + :titlesonly: + :maxdepth: 1 + + AnatomyOfAScene/index.md + AnatomyOfACamera/index.md + Camera/index.md + LightLinking/index.md +``` diff --git a/1.4.6.0/_sources/WorkingWithTheNodeGraph/BoxNode/index.md.txt b/1.4.6.0/_sources/WorkingWithTheNodeGraph/BoxNode/index.md.txt new file mode 100644 index 000000000..87bbefe17 --- /dev/null +++ b/1.4.6.0/_sources/WorkingWithTheNodeGraph/BoxNode/index.md.txt @@ -0,0 +1,261 @@ +# Box Node # + +A Box node (_Utility_ > _Box_) is a container for holding a nested node network inside a node graph. The network contained by a Box is called a **sub-graph**. A sub-graph can only be viewed if you enter its containing Box. You can use Boxes to organize and add modularity to your node graphs. +![](images/illustrationBoxBasics.png "A Box in the main graph, and its contents in a sub-graph") + + +## Usage ## + +Boxes are powerful tools for structuring, organizing, and abstracting node graphs. They are the primary structure that adds modular capabilities to your graphs, and can form the backbone of multi-user, multi-stage pipelines. With Boxes, you can author discrete graphs with custom UI and documentation, enabling you to share methods, processes, workflows, and tricks across your facility or work group without needing to code new modules. + +In their most basic uses, you can simplify large graphs by wrapping up complicated portions in Boxes, or sub-divide a graph into a series of component sub-graphs. + +![](images/illustrationBoxUses.png "Left: boxing up complex sections. Right: boxing up component sections") + +You can also nest Boxes, to maintain modularity and simplicity in your sub-graphs. + +![](images/illustrationBoxNesting.png "Boxes nested like Matryoshka dolls") + +In more advanced uses, Boxes serve to export (and occasionally import) saved sub-graphs, known as **reference scripts**. When you export a Box, it preserves any custom UI, descriptions, tooltips, and documentation links in the network and on the Box itself, giving you the ability to document the network's purpose and function for other users. + +![](images/illustrationBoxReferences.png "Importing reference scripts into your node graph") + + +## Box data flow ## + +Like any other node, a Box can have in and out plugs. It can take plugs from the main graph, make their data available to the sub-graph, and then output them back into the main graph. + + +### BoxIn and BoxOut nodes ### + +While you can connect the nodes inside a Box to the main graph, you cannot view both the main graph and a sub-graph in the same Graph Editor. To compensate, a sub-graph's main input and output connections are represented by the special **BoxIn** (_Utility_ > _BoxIn_) and **BoxOut** (_Utility_ > _BoxOut_) nodes. When a Box has in or out plugs, these nodes behave as proxies for them in the sub-graph. The names of the BoxIn and BoxOut nodes will match the names of their corresponding plugs on the Box, and vice versa. + +![](images/illustrationBoxInBoxOutNodes.png "Left: the in and out plugs in the main graph. Right: the corresponding BoxIn and BoxOut nodes in the sub-graph") + + +### Promoted plugs ### + +When boxing up portions of your node graph, the in plugs of the top-most node(s) and out plugs of the bottom-most node(s) are promoted up to the Box. These **promoted plugs** pass data between the main graph and the sub-graph. This is not limited to main in and out plugs: any plug in the sub-graph can be promoted to the Box. + +![](images/illustrationPromotedPlug.png "A promoted plug in the Node Editor, and how it appears on the Box in the Graph Editor") +In the sub-graph, promoted plugs are read-only (they appear greyed out in the Node Editor). They can only be edited on the Box in the main graph. + + +## Instructions ## + +The following instructions cover the fundamental component actions you can perform with Boxes. You can combine these actions to set up Boxes in an almost limitless number of configurations and arrangements. + + +### Boxing up nodes ### + +The most basic action you can perform with a Box is to select a bunch of nodes and wrap them up in a new Box. +To box up a bunch of nodes: + +1. Select one or more nodes in the Graph Editor. +2. Create a Box (_Utility_ > _Box_). + +![](images/taskBoxUpNodes.gif "Boxing up some nodes") + +The selected nodes will be replaced by a Box. If they were connected to other nodes in the main graph, the Box and the sub-graph will automatically populate with corresponding in and out plugs to maintain the connections. + +![](images/taskBoxUpNodesResult.png "The resulting sub-graph after boxing up some nodes") + + +### Entering and exiting a Box ### + +The Graph Editors can only view the main graph or a sub-graph at a time. To navigate between them, you must enter or exit the Box, or open a new Graph Editor. + +#### Entering #### + +To enter a Box: + +1. Select the Box. +2. Hover the cursor over the Graph Editor, then hit . + + +#### Entering through a new Graph Editor #### + +To enter a Box through a new Graph Editor: + +- Right-click the Box, then select _Show Contents..._ from the context menu. The new Graph Editor will appear in a tab on the same panel as the first Graph Editor. + + +#### Exiting #### + +To exit a Box: + +- Hover the cursor over the Graph Editor, then hit . + +### Connecting a Box to the main graph ### +You can connect the main graph to the sub-graph by adding in and out plugs to the Box. There are two main methods to accomplish this. + +The simplest way to connect a Box to a main graph is to promote a node's main in or out plug: + +1. Enter the Box. +2. Right-click an in or out plug on a node in the sub-graph, then select _Promote to Box_. The plug will become available on the Box in the main graph. + - If the plug is an in array plug, such as the input of a Group node, you can instead select _Promote Array to Box_. +3. Exit the Box, and connect the new plug to a node in the main graph. + +![](images/taskConnectBox.gif "Connecting a Box to the main graph, from sub-graph to main graph") + +Alternatively, dragging a connection to a ![](images/plugAdder.png "Plug adder") on the Box creates a corresponding BoxIn or BoxOut node in the sub-graph: + +![](images/taskConnectBoxAlt.gif "Connecting a Box to the main graph, from main graph to sub-graph") + + +### Setting up a Box for pass-through ### + +By default, you cannot disable a Box. If it has in and out plugs set up, you also cannot automatically interject it by dropping it over a connection. The BoxOut node has a special PassThrough plug, which, when connected to a BoxIn node, provides data pass-through, which enables dropping onto connections and disabling. + +![](images/interfacePassthroughPlug.png "The passThrough plug on a BoxOut node") + +> Important : +> The BoxIn node and its connected BoxOut node with the PassThrough plug become the main plugs that connect when you drag and drop the Box over a connection. + +To set up a Box for disabling and pass-through: + +1. Enter the Box. +2. Connect the PassThrough plug to a BoxIn node. + +![](images/taskConnectPassthroughPlug.gif "Connecting a passThrough node, so that the Box can be dropped over connections and disabled") + + +### Promoting and demoting a plug ### + +Any plug in the sub-graph can be promoted to the Box. If the plug is not the main in or out plug of the node, it will become available for editing on the Box node. If you no longer need a plug on a Box, you can demote (remove) it from the Box. + + +#### Promoting a plug #### + +To promote a plug to a Box: + +1. In the sub-graph, select the node. +2. In the Node Editor: + - Single element plug: right-click the plug **value**, then select _Promote to Box_ from the context menu. + - Multi-element plug: right-click the plug **name**, then select _Promote to Box_ from the context menu. + - Compound plug: right-click the plug **name**, then select _Promote to Box_ . + The plug will become locked. + +When promoted, the following plug types will also add a plug to the Box in the Graph Editor: + +- Floating-point number +- Multi-element plug +- Compound plug + +Once promoted, you can set the name and value of the plug on the Box using the Node Editor. If the promotion added a plug to the Box in the Graph Editor, you can drive its value by connecting it to a node. + +![](images/taskPromotePlug.gif "Promoting a plug to allow disabling a node using the Box") + + +#### Demoting a plug #### + +Promoted plugs can be demoted (removed) from the Box, either on source node in the sub-graph, or on the Box itself. + +> Note : +> Demoting a plug does not delete it from the sub-graph. + +To demote a plug: + +1. Enter the Box. +2. Select the node with the promoted plug. +3. In the Node Editor, right-click the plug label, then select _Unpromote from Box_ from the context menu. + +![](images/taskDemotePlug.gif "Demoting a plug") + +> Tip : +> For faster results, you can unpromote a plug on the Box itself by first right-clicking the plug label in the Node Editor, then selecting _Delete_ or _Unpromote from Box_ from the context menu. + + +### Editing the UI of a Box ### + +#### Adjusting plug position #### + +Like other utility nodes with addable plugs, you can reposition and rearrange the plugs on a Box. You can move a plug to any edge of the Box in the Graph Editor, or adjust the order of the plugs on an edge. + +> Note : +> An addable plug (![](images/plugAdder.png "addable plug")) cannot be moved or re-ordered. You must connect or promote a plug to it first. + +To adjust the position of a plug on a node, first right-click the plug in the Graph Editor. The context menu will open. Then: + +- Move the plug to a different node edge: + - Select _Move To_, then select _Top_/_Bottom_, or _Left_/_Right_. +- Re-order plugs on a node edge: + - Select _Move Up_/_Move Down_, or _Move Left_/_Move Right_. + +![](images/taskAdjustPlugPosition.gif "Adjusting plug position and order around the Box edge in the Graph Editor") + + +#### Renaming and relabelling plugs #### + +You can **rename** and **relabel** any plug on a Box in the Graph Editor, including a main in or out plug, to clarify its function. + +Plug names differ from plug labels. A plug's name is its actual name when referenced in the node graph, and will appear when you hover over the plug in the Graph Editor; its label is how it appears in the Node Editor. Renaming a plug in the Graph Editor changes its name, while renaming a plug in the Node Editor actually changes its label. + +To rename a plug: + +1. In the Graph Editor, right click the plug, then select _Rename..._ from the context menu. A renaming dialogue will open. +2. Type a new name, then click _Rename_. + +> Tip : +> Since BoxIn and BoxOut nodes behave as proxies for the main in and out plugs, you can modify their node names to rename the corresponding plugs on the Box. + +To relabel a plug: + +1. Select the node with the plug. +2. In the Node Editor, double-click the plug label, +3. Type a new label. + + +#### Metadata and appearance #### + +The metadata plugs of a Box, which comprise its name, description, documentation URL, and color, can be edited to better describe and provide support information for it. These plugs are preserved when the Box is exported as a reference script, so their values are crucial for authoring custom Reference nodes. + +- Name: The node's name. Same as the name plug. +- Description: Text that appears in the tooltip and the Node Editor. Can be adjusted to explain the Box's purpose, contents, and connections. + > Tip : + > You can format the Description plug using [Markdown](https://commonmark.org) syntax. +- Documentation URL: The main help link for the Box (visited by clicking ![](images/info.png "Info") in the _Node Editor_). Can be edited to point to a location with custom documentation on your studio filesystem or the internet. +- Color: Determines the color of the Box in the Graph Editor. + +To edit the metadata and appearance of a Box: + +1. Select the Box. +2. In the Node Editor, click ![](images/gear.png "Gear"), then select _Edit UI..._. The UI Editor will open. +3. Edit the _Name_, _Description_, _Documentation URL_, and _Color_ values as needed. + +![](images/interfaceUIEditor.png "The UI Editor with customized plugs") + + +### Exporting and importing a reference script ### + +A Box, its sub-graph, its promoted plugs, and its metadata can all be exported as a single reference script. A Box can also import a reference script, which will **add** (not replace) the contents of the script to its sub-graph. + +> Tip : +> Unlike the Reference node, when you load a reference script into a Box, its contents are writeable, meaning you can edit the sub-graph of the reference. + +To export a Box as a reference script, or import a reference script into a Box: + +1. Select the Box. +2. In the Node Editor, click ![](images/gear.png "Gear"). +3. Select _Export Reference_ or _Import Reference_. A file dialogue will open. +4. Using the file dialogue, export or import a `.grf` file. + + +## Example graphs ## + + +### Box basics ### + +![](images/exampleBoxBasics.png "Box basics example") + +This can be loaded in Gaffer from _Help_ > _Examples_ > _Box Basics_. + +A very simple Box with in and out plugs, promoted plugs, and custom UI. + + +## Limitations ## + + +### Attribute history focus ### + +If you use the attribute history to find a node, and the node is inside a Box, the Graph Editor will focus on the whole node graph, rather than the Box. diff --git a/1.4.6.0/_sources/WorkingWithTheNodeGraph/Contexts/index.md.txt b/1.4.6.0/_sources/WorkingWithTheNodeGraph/Contexts/index.md.txt new file mode 100644 index 000000000..71eee13bd --- /dev/null +++ b/1.4.6.0/_sources/WorkingWithTheNodeGraph/Contexts/index.md.txt @@ -0,0 +1,276 @@ +# Contexts # + +A **Context** is a bundle of variables provided to each operation performed by a node. Nodes need a subset of these variables to tell them which fragment of the scene or image to generate. You can add your own variables to the graph, to control the behaviour of upstream nodes. + +Contexts are central to Gaffer's processing of 2D and 3D data in a graph, as well as its deferred evaluation engine. Contexts allow nodes to deal with data in small slices rather than as a whole, and generate exactly what is needed. They are the core of every node operation. Depending on the data being processed, a typical variable inside a Context is responsible for specifying one aspect of the scene or image fragment being generated, such as: + +- Frame number +- Scene location +- Image tile +- Image channel + +Gaffer automatically manages Contexts during processing. These are silently passed upstream, from node to node as they compute requested data. Certain nodes can also add and modify their own variables, for use in driving graph behaviour. + +There is no single interface in Gaffer for manually controlling and inspecting a Context in its entirety, but nodes like NameSwitch, Spreadsheet, and Expression can add Context-dependent behaviour to graphs, and the [Python API](../../WorkingWithThePythonScriptingAPI/index.md) provides methods for creating and inspecting Contexts. + + +## Nodes and Contexts ## + +In order to provide a background for why Contexts are necessary, we should look at what kind of workload a node would be up against without them. + +Let's consider a 3D scene. Keeping in mind [how scenes are structured](../../WorkingWithScenes/AnatomyOfAScene/index.md), imagine it is filled with hundreds of thousands of locations. Clearly, not every location can be processed at once. Gaffer needs a way to divide up the work to compute the locations one at a time. + +This is where Contexts come in. In Gaffer, at no point does a node operate on the entire scene/image. Contexts break the scene/image down into digestible fragments, so each node only generates the parts that they were told to, while deferring the rest. Each computing thread has its own Context, so multiple threads may be processing different parts of the scene/image in parallel, greatly improving efficiency and performance. + +```{eval-rst} +.. figure:: images/illustrationContextsSlices.png + :scale: 100% + :alt: A scene file being sliced up by location. + + **Figure A:** Contexts allow a scene file to be processed in slices, one location at a time. +``` + + +## Context flow ## + +While scene and image data flows down the graph, Contexts flow upstream. + +Computation begins when a node is queried to compute a value for its output plug, by something such as a dispatcher or an editor in the interface. At the start of the computation, whatever made the request creates a Context and sets its variables to specify the target location, set, image tile, channel, etc. + +The Context then passes up to any plugs that contribute to the output value. When an input plug on the queried node is connected to a plug on an upstream node, it pulls on that upstream plug to retrieve its value. If necessary, the upstream node may need to compute in turn, to produce the upstream plug's value. This pull-compute reaction occurs up through the graph until all required plug values have been calculated to create an output value for the original queried node. + +```{eval-rst} +.. figure:: images/illustrationContextsFlow.png + :scale: 100% + :alt: Illustration of Contexts flowing through a network. + + **Figure B:** A visualization of Context and computation flow: +``` + +
+
    +
  1. A suitable Context is created. The node’s output plug is queried. The node begins computation.
  2. +
  3. The node's in plugs are computed. If connected, they pull on connected input plugs, and pass along the Context.
  4. +
  5. A chain reaction of plug value pulling and Context passing ensues.
  6. +
  7. Once the last input plugs in the chain are computed, input plugs begin delivering values to the plugs that pulled on them.
  8. +
  9. A chain reaction of plug value returning ensues.
  10. +
  11. The out plug is computed.
  12. +
+
+ +Some nodes modify the variables inside the Context before they pass it upstream. One example is a node that simply adds a new variable, like a CollectScenes node, which adds a variable that contains the name of the current root location being added to the scene. Another example would be a node that changes a value, such as the TimeWarp node, which can adjust the frame variable so that the upstream nodes compute for a different part of the frame range. + + +## Context Variables ## + +An individual variable inside a Context is called a **Context Variable**. Within the graph, Context Variables are a means of wielding Contexts to drive values, and can be employed to powerful effect to iterate and optimize results. + +All Context Variables reside inside their Contexts, and are assignable. Any Context Variable present in a node's Context during processing can have its value expanded in an Expression node, or string plug with [string substitution syntax](../../Reference/ScriptingReference/StringSubstitutionSyntax/index.md). + +There are a handful of special Context Variables that are worth noting, which we will informally refer to here as **built-in** Context Variables. + + +### Built-in Context Variables ### + +Built-in Context Variables are hard-coded variables that scene and image nodes read for specifying scene and image fragments to generate. These are the variables that allow Contexts to specify the smallest part of the scene/image at a time. They are declared and assigned values automatically by the node processes themselves. + +For a full list of built-in Context Variables and their purposes, see the [Context Variables reference](../../Reference/ContextVariables/index.md). + +For a scene computation, the most common built-in Context Variables present are: + +- `frame` +- `scene:path` + +For an image computation, the most common Context Variables present are: + +- `frame` +- `image:tileOrigin` +- `image:channelName` + +> Tip : `frame` and `scene:path` will most likely be the only built-in Context Variables that you explicitly reference in plugs. + +When Contexts are passed from plug to plug in a scene network, there are two facts you should remember for `scene:path`: + +- **Shader networks:** To improve performance, shader networks do not support the use of `scene:path`, and consequently you cannot use it in string substitutions. As a workaround, you can use a CustomAttributes node to generate an attribute that varies with `scene:path`, and then have the shader network reference that attribute. +- **Globals:** When scene globals are computed, the `scene:path` Context Variable is not present in the Context, as location paths are not relevant. + +### Other Context Variables ### + +All other Context Variables must be declared and initialized, either in the graph itself or in the Gaffer app that's executing the graph. They can handle all the same value types as plug, such as string, int, float, vector, matrix, etc. These other Context Variables are often used to pass an arbitrary variable value upstream. + +A Context Variable created at the root of the graph is referred to as a **global** Context Variable. Global Context Variables are always passed into all Contexts, regardless of which node is being executed. They are declared and initialized in the Variables tab of the Settings window (File > Settings...), and can be overridden in individual networks. For a list of the default global Context Variable names, see [Global Context Variables](../../Reference/ContextVariables/index.html#global-context-variables). + +Some nodes create and add Context Variables, such as ContextVariables, Wedge, CollectScenes, and CollectImages nodes. They each have at least one string plug that generates a Context Variable to vary upstream behaviour. For convenience, some of these string plugs have default variable names, but you can provide your own. For a list of the nodes with default node Context Variable names, see [Node default Context Variables](../../Reference/ContextVariables/index.html#node-default-context-variables). + + +## Contexts in action ## + +Let's work through a series of practical examples of wielding Contexts in scene and image networks. Each of these modify the Context to achieve a result, but all demonstrate the same principles: Contexts start at the queried node, and flow up the graph to upstream connected plugs. + + +### Reading a Context Variable with a string plug ### + +```{eval-rst} +.. image:: images/conceptContextsReadingContextVariable.png + :width: 100% + :alt: A basic scene network where a string plug substitutes a Context Variable. +``` + +In this most basic example, a ContextVariables node inserts a `message` string Context Variable into the Context. Then, through string substitution, the upstream Text node reads the variable (`${message}`). When the scene is computed, the geometry displays the value of the variable: `received`. + + +### Editor focus and Context flow ### + +Let's put Context flow into practice, and examine how editor focus can trip you up with regards to Context flow. This is a very common mistake to make when first learning how to wield Contexts. + +Let's reuse the above network, which we demonstrated by focusing the editors on the ContextVariables node. As we mentioned earlier, focusing an editor on a node queries it. Let's see what happens when we focus on the Text node, instead. + +```{eval-rst} +.. image:: images/conceptContextsEditorFocus.png + :width: 100% + :alt: The prior network, but the scene hasn't computed. +``` + +The editors are focused on it, but no geometry is visible. We can quickly tell that the node in fact did compute, because its location is visible in the Hierarchy View. The Text plug substituted the `message` Context Variable with an empty string, because it didn't exist. + +This is because the Text node **cannot** reach downstream to read `message`. Contexts start at the queried node, and then move **up** when computing plugs pull on their inputs. We need the ContextVariables node to compute **before** the Text node, so it can insert `message` into the Context and pass it up. In the interface, the only way to see the result of `message` is to query the ContextVariables node or something downstream of it. Therefore for the purposes of this network, to see the results of a successful substitution of `message`, we need to focus the editors on the ContextVariables node. + + +### Context Variables in expressions ### + +Like any other plug, when an Expression node drives a plug, that plug will pass along its Context during computation. The expression code can then read the values of the Context Variables with Python or OSL. For a full list of methods for accessing Context Variables in Python and OSL, see the [Expressions reference](../../Reference/ScriptingReference/Expressions/index.html#context-variables). + +> Important : The Expression node does **not** support creating or modifying Context Variables. + +In this network, we drive the vertical translation of a cube primitive with the frame number. The frame will produce a different height result when the provided Context contains a different frame value. + +```{eval-rst} +.. image:: images/conceptContextsContextVariablesInExpressions.png + :width: 100% + :alt: A basic scene network, where an expression uses a Context Variable to drive a plug. +``` + +When the node calculates its Transform plug, for the y value of its translation, it queries the Expression node. The Expression node, in turn, calculates the frame number from the Context: + +```{eval-rst} +.. image:: images/conceptContextsContextVariablesInExpressionsNodeEditor.png + :alt: The Expression node's code from the prior network. +``` + +> Tip : In Python, since accessing Context Variables with dictionary syntax does not allow you to define a fallback value, your expression could cause errors when the Context Variable is not defined, which will usually be the case at most nodes of the graph. We therefore recommend using the `context.get()` method and providing a fallback value, so the method always returns a value. + + +### Context Variables and the Random node ### + +```{eval-rst} +.. image:: images/conceptContextsRandomNode1.png + :width: 100% + :alt: A scene with duplicated cubes in a line, without any randomization. +``` + +In this next example, a cube has been duplicated several times, with each copy translated further to the side. We want to apply a random vertical translation to each cube by adjusting a Transform node. To do this, we must drive the Transform node's plug with a Random node, and the Random node will map a unique value to each of the scene's paths. + +```{eval-rst} +.. image:: images/conceptContextsRandomNode2.png + :width: 100% + :alt: The same scene, with random height translation. +``` + +```{eval-rst} +.. image:: images/conceptContextsRandomNode2NodeEditor.png + :alt: The plugs of the Random node, with the Context Entry referencing `scene:path` to vary the translation per location. +``` + +Here the Random node drives the _y_-translate of a Transform node filtered to the cubes. Its Context Entry plug targets `scene:path`. Set up this way, the Random node derives a random value between `-1` and `1` from the current path in the Context. From there, this random value is passed to the Transform node, and translates the cube's height. + +Since each location’s path is unique, the randomized values are based on the `scene:path` Context Variable, and the Transform node is filtered to every location in the scene, we end up with per-location random height on each sphere. + +> Important : In order to provide random results that can repeatedly match the set of random values to the locations/tiles in the same order, the Random node's values are derived from its seed in conjunction with a Context Variable in its Context Entry plug. + +We should note that for this network to function properly, the connected PathFilter node must filter for every location, so it has a value of `*`. + + +### Querying results with Contexts ### + +```{eval-rst} +.. image:: images/conceptContextsQueryingResults.png + :width: 100% + :alt: The same randomly-translated cube graph. +``` + +In the example above, we created a plug value that varies across Contexts via `scene:path`. As such, you won't be able to see the plug's actual values used during computation. This is because the Node Editor can only display one plug value at a time, and generally does so using the graph's global context. But, it is sometimes essential to know the exact value of a plug given a particular Context. + +You can do this with the Python API, by establishing a temporary Context and then querying the plug given a specific value of `scene:path`. + +First, let's try querying the _y_-translate value for the Transform node from the previous example in the Python Editor: + +``` +print( root["Transform"]["transform"]["translate"]["y"].getValue() ) +``` + +```{eval-rst} +.. image:: images/conceptContextsQueryingResultsPythonEditor.png + :alt: When a Python plug query occurs on its own, the return value is based on the Global context. +``` + +This simply gives us a height passed by the Random node with a blank location, which none of the cubes actually use. What we need is a statement along the lines of "given the cube at location X, what height is the transform?" In fact, the following code effectively does that, by first creating a Context and then querying the plug in it: + +```python +context = Gaffer.Context( root.context() ) +context["scene:path"] = IECore.InternedStringVectorData( ["cube2"] ) +with context: + print( root["Transform"]["transform"]["translate"]["y"].getValue() ) +``` + +```{eval-rst} +.. image:: images/conceptContextsQueryingResultsFixedPythonEditor.png + :alt: When a Python plug query occurs inside of an appropriate Context, the return value matches what occurs in the computed graph. +``` + +The translate value of the plug matches the cube's height as seen in the Scene Inspector: + +```{eval-rst} +.. image:: images/conceptContextsQueryingResultsSceneInspector.png + :alt: The queried location in the Scene Inspector. +``` + +Observe that we first established `scene:path`, which uses the `InternedStringVectorData` type, and that the path itself **doesn't** contain a forward slash (/). + + +### Contexts in parallel branches ### + +When two plugs in parallel branches are driven by a shared input plug, their Contexts are not shared with that input plug. During computation, each branch is processed in isolation. Take, for example, the following network: + +```{eval-rst} +.. image:: images/conceptContextsInParallelBranches.png + :width: 100% + :alt: A network that splits into two branches at the top. Nodes in the separate branches are connected to the same upstream Expression node. +``` + +```{eval-rst} +.. image:: images/conceptContextsInParallelBranchesNodeEditor.png + :alt: The expression code drives a plug in each respective node. +``` + +The Text plug of both branch's Text node is driven by a single Expression node. Despite the expression code making calls to both Context Variables, it only substitutes the one that is present in the Context in the branch that is currently computing. When the left branch is computed, only `apples` is defined, so only it returns its proper string. Conversely, when the right branch is computing, only `oranges` is defined, so you only see its string. + +The same principle applies when the branches are split at the bottom. In this next image network, the image is overlaid with author and description text if `versionAuthor` or `versionDescription` Context Variables are defined. + +```{eval-rst} +.. image:: images/conceptContextsInParallelBranchesDownstream.png + :width: 100% + :alt: A network that splits into two branches at the bottom. +``` + +```{eval-rst} +.. image:: images/conceptContextsInParallelBranchesDownstreamNodeEditor.png + :alt: The expression code drives a plug in the main branch, but will be empty if the appropriate Context Variables haven't been assigned. +``` + +When the ImageWriter_DailyOverlay node on the left is executed, the Context Variables are added to the graph, and Expression node substitutes the text. When the ImageWriter node on the right is executed, the text is empty, because its branch isn’t connected to the ContextVariables node. + + +## See also ## + +- [Performance Best Practices](../PerformanceBestPractices/index.html#context-and-expressions) +- [Context Variables reference](../../Reference/ContextVariables/index.md) diff --git a/1.4.6.0/_sources/WorkingWithTheNodeGraph/PerformanceBestPractices/index.md.txt b/1.4.6.0/_sources/WorkingWithTheNodeGraph/PerformanceBestPractices/index.md.txt new file mode 100644 index 000000000..91b901312 --- /dev/null +++ b/1.4.6.0/_sources/WorkingWithTheNodeGraph/PerformanceBestPractices/index.md.txt @@ -0,0 +1,158 @@ +# Performance Best Practices # + +As with most VFX processes and software, a Gaffer node graph is subject to performance considerations. Both its stucture and the expressions and statements that go into it can result in undesirably slow evaluation. Since the cause(s) of a slow graph might not be immediately apparent, developing a basic understanding of how Gaffer evaluates graphs, as well as the complexity pitfalls users commonly encounter, will help you ensure optimum performance. + +Here we will discuss the performance implications of various choices you might make in your Gaffer graphs, and provide some guidelines for keeping them running smoothly. + + +## Scene complexity and node graph structure ## + +Gaffer is designed to gracefully handle very large scenes by deferring the generation of each location until requested by the user or the renderer. It is also designed to be flexible, affording the user a great deal of control in how scenes are generated. These two goals can sometimes be at odds. + +A very rough estimate for the complexity of a scene can be made by considering the number of its locations, and the number of nodes through which each location passes. For instance, we might say that 10 locations passing through 10 nodes – `10 * 10 = 100` – is roughly equivalent to 20 locations passing through 5 nodes – `20 * 5 = 100`. When you consider that most scenes are comprised of a number of assets, each with an associated shader look, you can use this knowledge to structure your node graphs for the best performance. + +Consider a scene containing 4 assets, with the geometry cache for each imported into Gaffer through separate SceneReader nodes. Each asset has a lookdev setup from an accompanying Reference node, placed downstream of the SceneReader nodes. This presents us with two options for structuring the node graph. We can either: + +- Graph1: Group all the assets together, and then apply the lookdev nodes in series. + +![](images/graphEditorGroupFirst.png "Grouping, then applying lookdev") + +- Graph2: First apply the lookdev nodes, and then group all the resulting scenes together. + +![](images/graphEditorGroupSecond.png "Applying lookdev, then grouping") + +For the sake of simplicity, let's assume that each asset's scene contains 1000 locations, and each lookdev subgraph contains 100 nodes. Now we can estimate each graph's performance load. + +``` +graph1 = locations * nodes + = (locationsPerModel * numberOfAssets) * (nodesPerLook * numberOfAssets) + = (1000 * 4) * (100 * 4) + = 4000 * 400 + = 1600000 + +graph2 = locations * nodes + = locationsPerModel * numberOfAssets * nodesPerLook + = 1000 * 4 * 1000 + = 400000 +``` + +This results in a performance difference with a factor of 4, just from simple graph restructuring. This difference is tied to the number of assets: if the scene had 100 assets, we would be looking at a performance difference with a factor of 100. + +Formally, we can state that grouping second has linear complexity with respect to the number of assets, while grouping first has quadratic complexity. Practically, that means that grouping second is a dramatically better approach, and should be the first consideration when structuring large graphs. + +> Tip : +> Apply lookdev to component scenes and assets before combining them into a single scene, and combine them as late as possible in the node graph. + +The above guideline applies primarily to applying looks to published assets, and should not discourage you from editing large scenes. Much of Gaffer's flexibility and power comes from the ability to edit a large scene after it is built, which is invaluable when making edits on a per-shot or per-sequence basis. + + +## Path wildcards ## + +The `'...'` wildcard in a path expression means "match any number of names." So, in a large geographical scene, `'/world/.../house'` would return: + +- `'/world/village/house'` +- `'/world/country/state/metropolis/neighbourhood/street/house'` + +This can be very useful, but it comes at a price. Certain operations in Gaffer require the scene hierarchy to be searched for all matches below a particular location. The wildcard `'...'` tells the expression to go deeper, searching at every level of the hierarchy for any child (or a child of a child of a child) that matches. For large scenes, this becomes very expensive. + +> Caution : +> Limit the use of `'...'` in path expressions. + +The most expensive expression possible is `'/.../something'`, because it instructs Gaffer to "search **every** location of the whole scene." While this can be necessary at times, it is likely that a more precise wildcard search will provide the same results, with better performance. + +For instance, if you know that all the matching results are within a single asset, an expression such as `/AssetA/.../something` will limit the search to that asset only. Alternatively, if you know that all the matches are at a specific depth, expressions such as `/*/something` or `/*/*/something` would yield the same result without needing to visit deeper locations. Small changes such as this can have a significant impact on scene performance, so it is always worth your time to make your expressions as precise as possible. + +> Note : +> The `'...'` wildcard isn't always costly. For simple nodes such as ShaderAssignment and Attributes, the performance difference is negligible. Those nodes can operate on a single location in isolation, and never need to consider the big picture of the scene as a whole. Generally, only hierarchy-altering nodes such as Prune and Isolate are particularly performance sensitive to the `'...'` wildcard. In general, it is best to keep wary of `'...'`. + + +## Expressions ## + +Python is an excellent language, but with its limited multithreading support, it is not the quickest. In contrast, OSL is reasonably quick, and multithreads well. In situations where an expression will be evaluated frequently (such as once per scene location), the equivalent OSL expression can give significantly improved performance over Python. For instance, tests using a per-instance expression of 100,000 instances yielded a 2× speedup in total scene generation time when using one thread, and a 16× speedup when using 12 threads. + +> Tip : +> In expressions where performance is a concern, use OSL instead of Python. + +However, Python should not be entirely avoided. It can access databases, the filesystem, and the Gaffer and Cortex modules, providing far more flexibility than OSL. Typically, if a Python expression does not access `context["scene:path"]` or another frequently changing variable, Gaffer's caching mechanisms will ensure that the expression will be run only once, keeping everything running as smoothly as possible. + + +## Instancing ## + +The Instancer node is capable of generating a very high number of locations, so it too can have a significant performance impact. Because it also supports per-instance variation through the use of expressions on its upstream instance graph, it must evaluate the entire instance graph for every given instance. + +Keep in mind the rough complexity metric of `complexity = numberOfLocations * numberOfNodes` from earlier, and consider these guidelines when using the Instancer node: + +- Use the Instancer node carefully and with moderation. +- Use a minimum of nodes to generate the input for the upstream instance graph that connects to the Instancer node's in plug. If necessary, consider baking the instance graph to a cache and loading it in with a SceneReader node. +- Use a minimum of nodes below the Instancer node to modify the scene containing all the resulting instances. +- Group or parent the instances into the main scene as late as possible in the node graph. +- Try and assign shaders and set attributes at a location in the scene hierarchy above all the instances, rather than on a per-instance basis. + + +## Performance monitor ## + +Gaffer has a [performance monitor](../UsingThePerformanceMonitor/index.md) and a [stats app](../../Reference/CommandLineReference/stats.md) that can be used to measure and compare the real performance of your graph. + +> Tip : +> When performance is critical, use the performance monitor or the stats app. + + +## Contexts ## + +The number of unique [Contexts](../Contexts/index.md) used to compute a graph can increase the memory overhead and compute time it requires. The number of unique Contexts is dependent on the structure of the graph and the use of nodes that add or change Context Variables. As a general rule, the number of Contexts necessary for a particular graph is exponentially proportional to its number of locations or channels, sets, and iterative nodes like Loop or CollectScenes. Hundreds of thousands of Contexts could be needed for a moderately complex graph. + +The main performance pitfall you want to avoid is **leakage**, which is when nodes compute upstream plugs with unnecessarily varying Contexts. + +An example case of Context leakage would be a network that iterates on a scene: + +```{eval-rst} +.. image:: images/conceptPerformanceBestPracticesContextsViewer.png + :width: 100% + :alt: A scene with multiple cowboy robots rotated along the x-axis. +``` + +If we look at the graph, we can see that the `collect:rootName` Context Variable is used to vary the object's rotations. However, when the network is computed, `collect:rootName` is passed to the SceneReader, even though it doesn't use it: + +```{eval-rst} +.. image:: images/conceptPerformanceBestPracticesContextsGraphEditor.png + :width: 100% + :alt: The graph for the prior scene, using a CollectScenes node to duplicate the robots. +``` + +Despite being unaffected by `collect:rootName`, the SceneReader node will nonetheless be repeatedly checked in memory to verify that it doesn’t vary with the Context Variable. + +The more optimal solution would be to delete the Context Variable with a DeleteContextVariables node above the last node that uses it. We can directly compare the effect this has on the number of Contexts used by running the stats app, by [annotating](../UsingThePerformanceMonitor/index.html#annotating-scripts-with-performance-data) the script with the `-contextMonitor` and `-annotatedScript` options: + +```{eval-rst} +.. image:: images/conceptPerformanceBestPracticesContextsStats.png + :width: 100% + :alt: The graph, but with annotated performance stats. +``` + +```{eval-rst} +.. image:: images/conceptPerformanceBestPracticesContextsImprovedStats.png + :width: 100% + :alt: The graph with stats again, but a DeleteContextVariables node inserted, greatly reducing the number of Contexts used in the scene generation. +``` + +Observe how the SceneReader and Group nodes are queried with around 10 times fewer unique Contexts. + + +## Annotating scripts with performance data ## + +The above graphs with per-node performance annotations were automatically generated by the stats app using the built-in `-annotatedScript` option. This feature will make a copy of the monitored script and add each node's performance statistics as graph metadata. + +To annotate a script with performance data, use the following command: + +``` +gaffer stats + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Index
  • +
  • +
  • +
+
+
+
+
+ + +

Index

+ +
+ +
+ + +
+
+
+ +
+ +
+

© Copyright 2011-2019 John Haddon, 2011-2019 Image Engine Design Inc..

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/index.html b/1.4.6.0/index.html new file mode 100644 index 000000000..da22720da --- /dev/null +++ b/1.4.6.0/index.html @@ -0,0 +1,598 @@ + + + + + + + Introduction — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Introduction
  • +
  • +
  • +
+
+
+
+
+ +
+

Introduction

+

Welcome to the Gaffer user guide, API manual, and reference documentation.

+

This document provides instructions for how to use Gaffer to complete tasks relevant to both enthusiasts and studios in the VFX domains of look development, lighting, and automated processing and QC. It specifies the Gaffer API and describes some of the application’s underlying architecture. It also provide reference information for keyboard shortcuts, node types, and scripting commands.

+

To learn more about Gaffer, visit our website: https://gafferhq.org

+

For the purposes of this document, we will assume you have intermediate knowledge of VFX, its terminology, its methods, and its processes. We will also assume you have at least basic familiarity with using Linux and programming paradigms.

+

Gaffer is open source software hosted and maintained on GitHub: https://github.com/gafferhq. We strive to keep Gaffer and its documentation bug-free and up-to-date. If you find any bugs with the software, or inaccuracies with this document, we would very much appreciate it if you report it to us on our Issues page.

+
+

Start using gaffer

+

To start, you should:

+ +

If you are are looking to automate VFX processes or develop with Gaffer’s API, you should also:

+ + +
+
+
+
+
+
+ + +
+
+
+ +
+ +
+

© Copyright 2011-2019 John Haddon, 2011-2019 Image Engine Design Inc..

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/1.4.6.0/objects.inv b/1.4.6.0/objects.inv new file mode 100644 index 000000000..428718930 Binary files /dev/null and b/1.4.6.0/objects.inv differ diff --git a/1.4.6.0/search.html b/1.4.6.0/search.html new file mode 100644 index 000000000..289b7dce6 --- /dev/null +++ b/1.4.6.0/search.html @@ -0,0 +1,589 @@ + + + + + + Search — Gaffer 1.4.6.0 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • »
  • +
  • Search
  • +
  • +
  • +
+
+
+
+
+ + + + +
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2011-2019 John Haddon, 2011-2019 Image Engine Design Inc..

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/1.4.6.0/searchindex.js b/1.4.6.0/searchindex.js new file mode 100644 index 000000000..7dc94b75b --- /dev/null +++ b/1.4.6.0/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({docnames:["Appendices/License/index","Appendices/index","GettingStarted/ConfiguringGafferForThirdPartyTools/index","GettingStarted/InstallingGaffer/index","GettingStarted/LaunchingGafferFirstTime/index","GettingStarted/SettingUpGafferCommand/index","GettingStarted/TutorialAssemblingTheGafferBot/index","GettingStarted/index","Interface/ControlsAndShortcuts/index","Interface/index","Reference/CommandLineReference/browser","Reference/CommandLineReference/cli","Reference/CommandLineReference/dispatch","Reference/CommandLineReference/env","Reference/CommandLineReference/execute","Reference/CommandLineReference/gui","Reference/CommandLineReference/index","Reference/CommandLineReference/license","Reference/CommandLineReference/python","Reference/CommandLineReference/screengrab","Reference/CommandLineReference/stats","Reference/CommandLineReference/test","Reference/CommandLineReference/view","Reference/ContextVariables/index","Reference/NodeReference/Gaffer/Animation","Reference/NodeReference/Gaffer/Backdrop","Reference/NodeReference/Gaffer/Box","Reference/NodeReference/Gaffer/BoxIn","Reference/NodeReference/Gaffer/BoxOut","Reference/NodeReference/Gaffer/Collect","Reference/NodeReference/Gaffer/ComputeNode","Reference/NodeReference/Gaffer/ContextQuery","Reference/NodeReference/Gaffer/ContextVariableTweaks","Reference/NodeReference/Gaffer/ContextVariables","Reference/NodeReference/Gaffer/DeleteContextVariables","Reference/NodeReference/Gaffer/DependencyNode","Reference/NodeReference/Gaffer/Dot","Reference/NodeReference/Gaffer/EditScope","Reference/NodeReference/Gaffer/Expression","Reference/NodeReference/Gaffer/Loop","Reference/NodeReference/Gaffer/NameSwitch","Reference/NodeReference/Gaffer/Node","Reference/NodeReference/Gaffer/Preferences","Reference/NodeReference/Gaffer/Random","Reference/NodeReference/Gaffer/RandomChoice","Reference/NodeReference/Gaffer/Reference","Reference/NodeReference/Gaffer/ScriptNode","Reference/NodeReference/Gaffer/Spreadsheet","Reference/NodeReference/Gaffer/SubGraph","Reference/NodeReference/Gaffer/Switch","Reference/NodeReference/Gaffer/TimeWarp","Reference/NodeReference/Gaffer/index","Reference/NodeReference/GafferArnold/ArnoldAOVShader","Reference/NodeReference/GafferArnold/ArnoldAtmosphere","Reference/NodeReference/GafferArnold/ArnoldAttributes","Reference/NodeReference/GafferArnold/ArnoldBackground","Reference/NodeReference/GafferArnold/ArnoldCameraShaders","Reference/NodeReference/GafferArnold/ArnoldColorManager","Reference/NodeReference/GafferArnold/ArnoldDisplacement","Reference/NodeReference/GafferArnold/ArnoldImager","Reference/NodeReference/GafferArnold/ArnoldLight","Reference/NodeReference/GafferArnold/ArnoldLightFilter","Reference/NodeReference/GafferArnold/ArnoldMeshLight","Reference/NodeReference/GafferArnold/ArnoldOptions","Reference/NodeReference/GafferArnold/ArnoldRender","Reference/NodeReference/GafferArnold/ArnoldShader","Reference/NodeReference/GafferArnold/ArnoldShaderBall","Reference/NodeReference/GafferArnold/ArnoldTextureBake","Reference/NodeReference/GafferArnold/ArnoldVDB","Reference/NodeReference/GafferArnold/InteractiveArnoldRender","Reference/NodeReference/GafferArnold/index","Reference/NodeReference/GafferCycles/CyclesAttributes","Reference/NodeReference/GafferCycles/CyclesBackground","Reference/NodeReference/GafferCycles/CyclesLight","Reference/NodeReference/GafferCycles/CyclesMeshLight","Reference/NodeReference/GafferCycles/CyclesOptions","Reference/NodeReference/GafferCycles/CyclesRender","Reference/NodeReference/GafferCycles/CyclesShader","Reference/NodeReference/GafferCycles/CyclesShaderBall","Reference/NodeReference/GafferCycles/InteractiveCyclesRender","Reference/NodeReference/GafferCycles/index","Reference/NodeReference/GafferDispatch/Dispatcher","Reference/NodeReference/GafferDispatch/FrameMask","Reference/NodeReference/GafferDispatch/LocalDispatcher","Reference/NodeReference/GafferDispatch/PythonCommand","Reference/NodeReference/GafferDispatch/SystemCommand","Reference/NodeReference/GafferDispatch/TaskContextProcessor","Reference/NodeReference/GafferDispatch/TaskContextVariables","Reference/NodeReference/GafferDispatch/TaskList","Reference/NodeReference/GafferDispatch/TaskNode","Reference/NodeReference/GafferDispatch/TaskSwitch","Reference/NodeReference/GafferDispatch/Wedge","Reference/NodeReference/GafferDispatch/index","Reference/NodeReference/GafferImage/Anaglyph","Reference/NodeReference/GafferImage/BleedFill","Reference/NodeReference/GafferImage/Blur","Reference/NodeReference/GafferImage/CDL","Reference/NodeReference/GafferImage/Catalogue","Reference/NodeReference/GafferImage/CatalogueSelect","Reference/NodeReference/GafferImage/Checkerboard","Reference/NodeReference/GafferImage/Clamp","Reference/NodeReference/GafferImage/CollectImages","Reference/NodeReference/GafferImage/ColorSpace","Reference/NodeReference/GafferImage/Constant","Reference/NodeReference/GafferImage/ContactSheet","Reference/NodeReference/GafferImage/ContactSheetCore","Reference/NodeReference/GafferImage/CopyChannels","Reference/NodeReference/GafferImage/CopyImageMetadata","Reference/NodeReference/GafferImage/CopyViews","Reference/NodeReference/GafferImage/CreateViews","Reference/NodeReference/GafferImage/Crop","Reference/NodeReference/GafferImage/DeepHoldout","Reference/NodeReference/GafferImage/DeepMerge","Reference/NodeReference/GafferImage/DeepRecolor","Reference/NodeReference/GafferImage/DeepSampleCounts","Reference/NodeReference/GafferImage/DeepSampler","Reference/NodeReference/GafferImage/DeepSlice","Reference/NodeReference/GafferImage/DeepState","Reference/NodeReference/GafferImage/DeepTidy","Reference/NodeReference/GafferImage/DeepToFlat","Reference/NodeReference/GafferImage/DeleteChannels","Reference/NodeReference/GafferImage/DeleteImageMetadata","Reference/NodeReference/GafferImage/DeleteViews","Reference/NodeReference/GafferImage/Dilate","Reference/NodeReference/GafferImage/Display","Reference/NodeReference/GafferImage/DisplayTransform","Reference/NodeReference/GafferImage/Empty","Reference/NodeReference/GafferImage/Erode","Reference/NodeReference/GafferImage/FlatImageProcessor","Reference/NodeReference/GafferImage/FlatImageSource","Reference/NodeReference/GafferImage/FlatToDeep","Reference/NodeReference/GafferImage/FormatQuery","Reference/NodeReference/GafferImage/Grade","Reference/NodeReference/GafferImage/ImageMetadata","Reference/NodeReference/GafferImage/ImageNode","Reference/NodeReference/GafferImage/ImageProcessor","Reference/NodeReference/GafferImage/ImageReader","Reference/NodeReference/GafferImage/ImageSampler","Reference/NodeReference/GafferImage/ImageStats","Reference/NodeReference/GafferImage/ImageTransform","Reference/NodeReference/GafferImage/ImageWriter","Reference/NodeReference/GafferImage/LUT","Reference/NodeReference/GafferImage/LookTransform","Reference/NodeReference/GafferImage/Median","Reference/NodeReference/GafferImage/Merge","Reference/NodeReference/GafferImage/Mirror","Reference/NodeReference/GafferImage/Mix","Reference/NodeReference/GafferImage/Offset","Reference/NodeReference/GafferImage/OpenColorIOContext","Reference/NodeReference/GafferImage/OpenImageIOReader","Reference/NodeReference/GafferImage/Premultiply","Reference/NodeReference/GafferImage/Ramp","Reference/NodeReference/GafferImage/Rectangle","Reference/NodeReference/GafferImage/Resample","Reference/NodeReference/GafferImage/Resize","Reference/NodeReference/GafferImage/Saturation","Reference/NodeReference/GafferImage/SelectView","Reference/NodeReference/GafferImage/Shuffle","Reference/NodeReference/GafferImage/Text","Reference/NodeReference/GafferImage/Unpremultiply","Reference/NodeReference/GafferImage/VectorWarp","Reference/NodeReference/GafferImage/index","Reference/NodeReference/GafferOSL/OSLCode","Reference/NodeReference/GafferOSL/OSLImage","Reference/NodeReference/GafferOSL/OSLLight","Reference/NodeReference/GafferOSL/OSLObject","Reference/NodeReference/GafferOSL/OSLShader","Reference/NodeReference/GafferOSL/index","Reference/NodeReference/GafferScene/AimConstraint","Reference/NodeReference/GafferScene/AttributeQuery","Reference/NodeReference/GafferScene/AttributeTweaks","Reference/NodeReference/GafferScene/AttributeVisualiser","Reference/NodeReference/GafferScene/Attributes","Reference/NodeReference/GafferScene/BoundQuery","Reference/NodeReference/GafferScene/Camera","Reference/NodeReference/GafferScene/CameraTweaks","Reference/NodeReference/GafferScene/ClippingPlane","Reference/NodeReference/GafferScene/ClosestPointSampler","Reference/NodeReference/GafferScene/CollectPrimitiveVariables","Reference/NodeReference/GafferScene/CollectScenes","Reference/NodeReference/GafferScene/CollectTransforms","Reference/NodeReference/GafferScene/CoordinateSystem","Reference/NodeReference/GafferScene/CopyAttributes","Reference/NodeReference/GafferScene/CopyOptions","Reference/NodeReference/GafferScene/CopyPrimitiveVariables","Reference/NodeReference/GafferScene/Cryptomatte","Reference/NodeReference/GafferScene/Cube","Reference/NodeReference/GafferScene/CurveSampler","Reference/NodeReference/GafferScene/CustomAttributes","Reference/NodeReference/GafferScene/CustomOptions","Reference/NodeReference/GafferScene/DeleteAttributes","Reference/NodeReference/GafferScene/DeleteCurves","Reference/NodeReference/GafferScene/DeleteFaces","Reference/NodeReference/GafferScene/DeleteGlobals","Reference/NodeReference/GafferScene/DeleteObject","Reference/NodeReference/GafferScene/DeleteOptions","Reference/NodeReference/GafferScene/DeleteOutputs","Reference/NodeReference/GafferScene/DeletePoints","Reference/NodeReference/GafferScene/DeletePrimitiveVariables","Reference/NodeReference/GafferScene/DeleteRenderPasses","Reference/NodeReference/GafferScene/DeleteSets","Reference/NodeReference/GafferScene/Duplicate","Reference/NodeReference/GafferScene/Encapsulate","Reference/NodeReference/GafferScene/ExistenceQuery","Reference/NodeReference/GafferScene/ExternalProcedural","Reference/NodeReference/GafferScene/Filter","Reference/NodeReference/GafferScene/FilterProcessor","Reference/NodeReference/GafferScene/FilterQuery","Reference/NodeReference/GafferScene/FilterResults","Reference/NodeReference/GafferScene/FilteredSceneProcessor","Reference/NodeReference/GafferScene/FramingConstraint","Reference/NodeReference/GafferScene/FreezeTransform","Reference/NodeReference/GafferScene/Grid","Reference/NodeReference/GafferScene/Group","Reference/NodeReference/GafferScene/ImageScatter","Reference/NodeReference/GafferScene/ImageToPoints","Reference/NodeReference/GafferScene/Instancer","Reference/NodeReference/GafferScene/InteractiveRender","Reference/NodeReference/GafferScene/Isolate","Reference/NodeReference/GafferScene/LightToCamera","Reference/NodeReference/GafferScene/LocaliseAttributes","Reference/NodeReference/GafferScene/MapOffset","Reference/NodeReference/GafferScene/MapProjection","Reference/NodeReference/GafferScene/MergeScenes","Reference/NodeReference/GafferScene/MeshDistortion","Reference/NodeReference/GafferScene/MeshNormals","Reference/NodeReference/GafferScene/MeshSegments","Reference/NodeReference/GafferScene/MeshSplit","Reference/NodeReference/GafferScene/MeshTangents","Reference/NodeReference/GafferScene/MeshTessellate","Reference/NodeReference/GafferScene/MeshToPoints","Reference/NodeReference/GafferScene/MeshType","Reference/NodeReference/GafferScene/MotionPath","Reference/NodeReference/GafferScene/ObjectToScene","Reference/NodeReference/GafferScene/OpenGLAttributes","Reference/NodeReference/GafferScene/OpenGLRender","Reference/NodeReference/GafferScene/OpenGLShader","Reference/NodeReference/GafferScene/OptionQuery","Reference/NodeReference/GafferScene/OptionTweaks","Reference/NodeReference/GafferScene/Options","Reference/NodeReference/GafferScene/Orientation","Reference/NodeReference/GafferScene/Outputs","Reference/NodeReference/GafferScene/Parameters","Reference/NodeReference/GafferScene/Parent","Reference/NodeReference/GafferScene/ParentConstraint","Reference/NodeReference/GafferScene/PathFilter","Reference/NodeReference/GafferScene/Plane","Reference/NodeReference/GafferScene/PointConstraint","Reference/NodeReference/GafferScene/PointsType","Reference/NodeReference/GafferScene/PrimitiveVariableExists","Reference/NodeReference/GafferScene/PrimitiveVariableQuery","Reference/NodeReference/GafferScene/PrimitiveVariables","Reference/NodeReference/GafferScene/Prune","Reference/NodeReference/GafferScene/Rename","Reference/NodeReference/GafferScene/Render","Reference/NodeReference/GafferScene/RenderPassShader","Reference/NodeReference/GafferScene/RenderPassTypeAdaptor","Reference/NodeReference/GafferScene/RenderPassWedge","Reference/NodeReference/GafferScene/RenderPasses","Reference/NodeReference/GafferScene/ResamplePrimitiveVariables","Reference/NodeReference/GafferScene/ReverseWinding","Reference/NodeReference/GafferScene/Scatter","Reference/NodeReference/GafferScene/SceneElementProcessor","Reference/NodeReference/GafferScene/SceneNode","Reference/NodeReference/GafferScene/SceneProcessor","Reference/NodeReference/GafferScene/SceneReader","Reference/NodeReference/GafferScene/SceneWriter","Reference/NodeReference/GafferScene/Set","Reference/NodeReference/GafferScene/SetFilter","Reference/NodeReference/GafferScene/SetQuery","Reference/NodeReference/GafferScene/SetVisualiser","Reference/NodeReference/GafferScene/Shader","Reference/NodeReference/GafferScene/ShaderAssignment","Reference/NodeReference/GafferScene/ShaderBall","Reference/NodeReference/GafferScene/ShaderQuery","Reference/NodeReference/GafferScene/ShaderTweakProxy","Reference/NodeReference/GafferScene/ShaderTweaks","Reference/NodeReference/GafferScene/ShuffleAttributes","Reference/NodeReference/GafferScene/ShufflePrimitiveVariables","Reference/NodeReference/GafferScene/Sphere","Reference/NodeReference/GafferScene/StandardAttributes","Reference/NodeReference/GafferScene/StandardOptions","Reference/NodeReference/GafferScene/SubTree","Reference/NodeReference/GafferScene/Text","Reference/NodeReference/GafferScene/Transform","Reference/NodeReference/GafferScene/TransformQuery","Reference/NodeReference/GafferScene/UDIMQuery","Reference/NodeReference/GafferScene/UVSampler","Reference/NodeReference/GafferScene/Unencapsulate","Reference/NodeReference/GafferScene/UnionFilter","Reference/NodeReference/GafferScene/Wireframe","Reference/NodeReference/GafferScene/index","Reference/NodeReference/GafferTractor/TractorDispatcher","Reference/NodeReference/GafferTractor/index","Reference/NodeReference/GafferUSD/USDAttributes","Reference/NodeReference/GafferUSD/USDLayerWriter","Reference/NodeReference/GafferUSD/USDLight","Reference/NodeReference/GafferUSD/USDShader","Reference/NodeReference/GafferUSD/index","Reference/NodeReference/GafferVDB/LevelSetOffset","Reference/NodeReference/GafferVDB/LevelSetToMesh","Reference/NodeReference/GafferVDB/MeshToLevelSet","Reference/NodeReference/GafferVDB/PointsGridToPoints","Reference/NodeReference/GafferVDB/PointsToLevelSet","Reference/NodeReference/GafferVDB/SphereLevelSet","Reference/NodeReference/GafferVDB/VolumeScatter","Reference/NodeReference/GafferVDB/index","Reference/NodeReference/index","Reference/ScriptingReference/CommonOperations/index","Reference/ScriptingReference/Expressions/index","Reference/ScriptingReference/Metadata/index","Reference/ScriptingReference/SetExpressions/index","Reference/ScriptingReference/StringSubstitutionSyntax/index","Reference/ScriptingReference/index","Reference/index","ReleaseNotes/1.0.0.0","ReleaseNotes/1.0.1.0","ReleaseNotes/1.0.2.0","ReleaseNotes/1.0.2.1","ReleaseNotes/1.0.3.0","ReleaseNotes/1.0.4.0","ReleaseNotes/1.0.5.0","ReleaseNotes/1.0.5.1","ReleaseNotes/1.0.6.0","ReleaseNotes/1.0.6.1","ReleaseNotes/1.0.6.2","ReleaseNotes/1.0.6.3","ReleaseNotes/1.0.6.4","ReleaseNotes/1.0.6.5","ReleaseNotes/1.0.6.6","ReleaseNotes/1.1.0.0","ReleaseNotes/1.1.1.0","ReleaseNotes/1.1.2.0","ReleaseNotes/1.1.3.0","ReleaseNotes/1.1.4.0","ReleaseNotes/1.1.5.0","ReleaseNotes/1.1.6.0","ReleaseNotes/1.1.6.1","ReleaseNotes/1.1.7.0","ReleaseNotes/1.1.8.0","ReleaseNotes/1.1.9.0","ReleaseNotes/1.1.9.1","ReleaseNotes/1.1.9.2","ReleaseNotes/1.1.9.3","ReleaseNotes/1.1.9.4","ReleaseNotes/1.1.9.5","ReleaseNotes/1.1.9.6","ReleaseNotes/1.1.9.7","ReleaseNotes/1.2.0.0","ReleaseNotes/1.2.0.1","ReleaseNotes/1.2.0.2","ReleaseNotes/1.2.1.0","ReleaseNotes/1.2.1.1","ReleaseNotes/1.2.10.0","ReleaseNotes/1.2.10.1","ReleaseNotes/1.2.10.2","ReleaseNotes/1.2.10.3","ReleaseNotes/1.2.10.4","ReleaseNotes/1.2.10.5","ReleaseNotes/1.2.10.6","ReleaseNotes/1.2.2.0","ReleaseNotes/1.2.3.0","ReleaseNotes/1.2.4.0","ReleaseNotes/1.2.5.0","ReleaseNotes/1.2.6.0","ReleaseNotes/1.2.7.0","ReleaseNotes/1.2.8.0","ReleaseNotes/1.2.9.0","ReleaseNotes/1.3.0.0","ReleaseNotes/1.3.1.0","ReleaseNotes/1.3.10.0","ReleaseNotes/1.3.11.0","ReleaseNotes/1.3.12.0","ReleaseNotes/1.3.13.0","ReleaseNotes/1.3.13.1","ReleaseNotes/1.3.14.0","ReleaseNotes/1.3.15.0","ReleaseNotes/1.3.16.0","ReleaseNotes/1.3.16.1","ReleaseNotes/1.3.16.2","ReleaseNotes/1.3.16.3","ReleaseNotes/1.3.16.4","ReleaseNotes/1.3.2.0","ReleaseNotes/1.3.3.0","ReleaseNotes/1.3.4.0","ReleaseNotes/1.3.5.0","ReleaseNotes/1.3.6.0","ReleaseNotes/1.3.6.1","ReleaseNotes/1.3.7.0","ReleaseNotes/1.3.8.0","ReleaseNotes/1.3.9.0","ReleaseNotes/1.4.0.0","ReleaseNotes/1.4.1.0","ReleaseNotes/1.4.2.0","ReleaseNotes/1.4.3.0","ReleaseNotes/1.4.4.0","ReleaseNotes/1.4.5.0","ReleaseNotes/1.4.6.0","ReleaseNotes/index","WorkingWithImages/AnatomyOfAnImage/index","WorkingWithImages/index","WorkingWithScenes/AnatomyOfACamera/index","WorkingWithScenes/AnatomyOfAScene/index","WorkingWithScenes/Camera/index","WorkingWithScenes/LightLinking/index","WorkingWithScenes/index","WorkingWithTheNodeGraph/BoxNode/index","WorkingWithTheNodeGraph/Contexts/index","WorkingWithTheNodeGraph/PerformanceBestPractices/index","WorkingWithTheNodeGraph/SpreadsheetNode/index","WorkingWithTheNodeGraph/TutorialSettingUpASpreadsheet/index","WorkingWithTheNodeGraph/TutorialUsingTheOSLCodeNode/index","WorkingWithTheNodeGraph/UsingThePerformanceMonitor/index","WorkingWithTheNodeGraph/index","WorkingWithThePythonScriptingAPI/ThePythonEditor/index","WorkingWithThePythonScriptingAPI/TutorialNodeGraphEditingInPython/index","WorkingWithThePythonScriptingAPI/TutorialQueryingAScene/index","WorkingWithThePythonScriptingAPI/TutorialStartupConfig1/index","WorkingWithThePythonScriptingAPI/TutorialStartupConfig2/index","WorkingWithThePythonScriptingAPI/TutorialStartupConfig3/index","WorkingWithThePythonScriptingAPI/index","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["Appendices/License/index.md","Appendices/index.md","GettingStarted/ConfiguringGafferForThirdPartyTools/index.md","GettingStarted/InstallingGaffer/index.md","GettingStarted/LaunchingGafferFirstTime/index.md","GettingStarted/SettingUpGafferCommand/index.md","GettingStarted/TutorialAssemblingTheGafferBot/index.md","GettingStarted/index.md","Interface/ControlsAndShortcuts/index.md","Interface/index.md","Reference/CommandLineReference/browser.md","Reference/CommandLineReference/cli.md","Reference/CommandLineReference/dispatch.md","Reference/CommandLineReference/env.md","Reference/CommandLineReference/execute.md","Reference/CommandLineReference/gui.md","Reference/CommandLineReference/index.md","Reference/CommandLineReference/license.md","Reference/CommandLineReference/python.md","Reference/CommandLineReference/screengrab.md","Reference/CommandLineReference/stats.md","Reference/CommandLineReference/test.md","Reference/CommandLineReference/view.md","Reference/ContextVariables/index.md","Reference/NodeReference/Gaffer/Animation.md","Reference/NodeReference/Gaffer/Backdrop.md","Reference/NodeReference/Gaffer/Box.md","Reference/NodeReference/Gaffer/BoxIn.md","Reference/NodeReference/Gaffer/BoxOut.md","Reference/NodeReference/Gaffer/Collect.md","Reference/NodeReference/Gaffer/ComputeNode.md","Reference/NodeReference/Gaffer/ContextQuery.md","Reference/NodeReference/Gaffer/ContextVariableTweaks.md","Reference/NodeReference/Gaffer/ContextVariables.md","Reference/NodeReference/Gaffer/DeleteContextVariables.md","Reference/NodeReference/Gaffer/DependencyNode.md","Reference/NodeReference/Gaffer/Dot.md","Reference/NodeReference/Gaffer/EditScope.md","Reference/NodeReference/Gaffer/Expression.md","Reference/NodeReference/Gaffer/Loop.md","Reference/NodeReference/Gaffer/NameSwitch.md","Reference/NodeReference/Gaffer/Node.md","Reference/NodeReference/Gaffer/Preferences.md","Reference/NodeReference/Gaffer/Random.md","Reference/NodeReference/Gaffer/RandomChoice.md","Reference/NodeReference/Gaffer/Reference.md","Reference/NodeReference/Gaffer/ScriptNode.md","Reference/NodeReference/Gaffer/Spreadsheet.md","Reference/NodeReference/Gaffer/SubGraph.md","Reference/NodeReference/Gaffer/Switch.md","Reference/NodeReference/Gaffer/TimeWarp.md","Reference/NodeReference/Gaffer/index.md","Reference/NodeReference/GafferArnold/ArnoldAOVShader.md","Reference/NodeReference/GafferArnold/ArnoldAtmosphere.md","Reference/NodeReference/GafferArnold/ArnoldAttributes.md","Reference/NodeReference/GafferArnold/ArnoldBackground.md","Reference/NodeReference/GafferArnold/ArnoldCameraShaders.md","Reference/NodeReference/GafferArnold/ArnoldColorManager.md","Reference/NodeReference/GafferArnold/ArnoldDisplacement.md","Reference/NodeReference/GafferArnold/ArnoldImager.md","Reference/NodeReference/GafferArnold/ArnoldLight.md","Reference/NodeReference/GafferArnold/ArnoldLightFilter.md","Reference/NodeReference/GafferArnold/ArnoldMeshLight.md","Reference/NodeReference/GafferArnold/ArnoldOptions.md","Reference/NodeReference/GafferArnold/ArnoldRender.md","Reference/NodeReference/GafferArnold/ArnoldShader.md","Reference/NodeReference/GafferArnold/ArnoldShaderBall.md","Reference/NodeReference/GafferArnold/ArnoldTextureBake.md","Reference/NodeReference/GafferArnold/ArnoldVDB.md","Reference/NodeReference/GafferArnold/InteractiveArnoldRender.md","Reference/NodeReference/GafferArnold/index.md","Reference/NodeReference/GafferCycles/CyclesAttributes.md","Reference/NodeReference/GafferCycles/CyclesBackground.md","Reference/NodeReference/GafferCycles/CyclesLight.md","Reference/NodeReference/GafferCycles/CyclesMeshLight.md","Reference/NodeReference/GafferCycles/CyclesOptions.md","Reference/NodeReference/GafferCycles/CyclesRender.md","Reference/NodeReference/GafferCycles/CyclesShader.md","Reference/NodeReference/GafferCycles/CyclesShaderBall.md","Reference/NodeReference/GafferCycles/InteractiveCyclesRender.md","Reference/NodeReference/GafferCycles/index.md","Reference/NodeReference/GafferDispatch/Dispatcher.md","Reference/NodeReference/GafferDispatch/FrameMask.md","Reference/NodeReference/GafferDispatch/LocalDispatcher.md","Reference/NodeReference/GafferDispatch/PythonCommand.md","Reference/NodeReference/GafferDispatch/SystemCommand.md","Reference/NodeReference/GafferDispatch/TaskContextProcessor.md","Reference/NodeReference/GafferDispatch/TaskContextVariables.md","Reference/NodeReference/GafferDispatch/TaskList.md","Reference/NodeReference/GafferDispatch/TaskNode.md","Reference/NodeReference/GafferDispatch/TaskSwitch.md","Reference/NodeReference/GafferDispatch/Wedge.md","Reference/NodeReference/GafferDispatch/index.md","Reference/NodeReference/GafferImage/Anaglyph.md","Reference/NodeReference/GafferImage/BleedFill.md","Reference/NodeReference/GafferImage/Blur.md","Reference/NodeReference/GafferImage/CDL.md","Reference/NodeReference/GafferImage/Catalogue.md","Reference/NodeReference/GafferImage/CatalogueSelect.md","Reference/NodeReference/GafferImage/Checkerboard.md","Reference/NodeReference/GafferImage/Clamp.md","Reference/NodeReference/GafferImage/CollectImages.md","Reference/NodeReference/GafferImage/ColorSpace.md","Reference/NodeReference/GafferImage/Constant.md","Reference/NodeReference/GafferImage/ContactSheet.md","Reference/NodeReference/GafferImage/ContactSheetCore.md","Reference/NodeReference/GafferImage/CopyChannels.md","Reference/NodeReference/GafferImage/CopyImageMetadata.md","Reference/NodeReference/GafferImage/CopyViews.md","Reference/NodeReference/GafferImage/CreateViews.md","Reference/NodeReference/GafferImage/Crop.md","Reference/NodeReference/GafferImage/DeepHoldout.md","Reference/NodeReference/GafferImage/DeepMerge.md","Reference/NodeReference/GafferImage/DeepRecolor.md","Reference/NodeReference/GafferImage/DeepSampleCounts.md","Reference/NodeReference/GafferImage/DeepSampler.md","Reference/NodeReference/GafferImage/DeepSlice.md","Reference/NodeReference/GafferImage/DeepState.md","Reference/NodeReference/GafferImage/DeepTidy.md","Reference/NodeReference/GafferImage/DeepToFlat.md","Reference/NodeReference/GafferImage/DeleteChannels.md","Reference/NodeReference/GafferImage/DeleteImageMetadata.md","Reference/NodeReference/GafferImage/DeleteViews.md","Reference/NodeReference/GafferImage/Dilate.md","Reference/NodeReference/GafferImage/Display.md","Reference/NodeReference/GafferImage/DisplayTransform.md","Reference/NodeReference/GafferImage/Empty.md","Reference/NodeReference/GafferImage/Erode.md","Reference/NodeReference/GafferImage/FlatImageProcessor.md","Reference/NodeReference/GafferImage/FlatImageSource.md","Reference/NodeReference/GafferImage/FlatToDeep.md","Reference/NodeReference/GafferImage/FormatQuery.md","Reference/NodeReference/GafferImage/Grade.md","Reference/NodeReference/GafferImage/ImageMetadata.md","Reference/NodeReference/GafferImage/ImageNode.md","Reference/NodeReference/GafferImage/ImageProcessor.md","Reference/NodeReference/GafferImage/ImageReader.md","Reference/NodeReference/GafferImage/ImageSampler.md","Reference/NodeReference/GafferImage/ImageStats.md","Reference/NodeReference/GafferImage/ImageTransform.md","Reference/NodeReference/GafferImage/ImageWriter.md","Reference/NodeReference/GafferImage/LUT.md","Reference/NodeReference/GafferImage/LookTransform.md","Reference/NodeReference/GafferImage/Median.md","Reference/NodeReference/GafferImage/Merge.md","Reference/NodeReference/GafferImage/Mirror.md","Reference/NodeReference/GafferImage/Mix.md","Reference/NodeReference/GafferImage/Offset.md","Reference/NodeReference/GafferImage/OpenColorIOContext.md","Reference/NodeReference/GafferImage/OpenImageIOReader.md","Reference/NodeReference/GafferImage/Premultiply.md","Reference/NodeReference/GafferImage/Ramp.md","Reference/NodeReference/GafferImage/Rectangle.md","Reference/NodeReference/GafferImage/Resample.md","Reference/NodeReference/GafferImage/Resize.md","Reference/NodeReference/GafferImage/Saturation.md","Reference/NodeReference/GafferImage/SelectView.md","Reference/NodeReference/GafferImage/Shuffle.md","Reference/NodeReference/GafferImage/Text.md","Reference/NodeReference/GafferImage/Unpremultiply.md","Reference/NodeReference/GafferImage/VectorWarp.md","Reference/NodeReference/GafferImage/index.md","Reference/NodeReference/GafferOSL/OSLCode.md","Reference/NodeReference/GafferOSL/OSLImage.md","Reference/NodeReference/GafferOSL/OSLLight.md","Reference/NodeReference/GafferOSL/OSLObject.md","Reference/NodeReference/GafferOSL/OSLShader.md","Reference/NodeReference/GafferOSL/index.md","Reference/NodeReference/GafferScene/AimConstraint.md","Reference/NodeReference/GafferScene/AttributeQuery.md","Reference/NodeReference/GafferScene/AttributeTweaks.md","Reference/NodeReference/GafferScene/AttributeVisualiser.md","Reference/NodeReference/GafferScene/Attributes.md","Reference/NodeReference/GafferScene/BoundQuery.md","Reference/NodeReference/GafferScene/Camera.md","Reference/NodeReference/GafferScene/CameraTweaks.md","Reference/NodeReference/GafferScene/ClippingPlane.md","Reference/NodeReference/GafferScene/ClosestPointSampler.md","Reference/NodeReference/GafferScene/CollectPrimitiveVariables.md","Reference/NodeReference/GafferScene/CollectScenes.md","Reference/NodeReference/GafferScene/CollectTransforms.md","Reference/NodeReference/GafferScene/CoordinateSystem.md","Reference/NodeReference/GafferScene/CopyAttributes.md","Reference/NodeReference/GafferScene/CopyOptions.md","Reference/NodeReference/GafferScene/CopyPrimitiveVariables.md","Reference/NodeReference/GafferScene/Cryptomatte.md","Reference/NodeReference/GafferScene/Cube.md","Reference/NodeReference/GafferScene/CurveSampler.md","Reference/NodeReference/GafferScene/CustomAttributes.md","Reference/NodeReference/GafferScene/CustomOptions.md","Reference/NodeReference/GafferScene/DeleteAttributes.md","Reference/NodeReference/GafferScene/DeleteCurves.md","Reference/NodeReference/GafferScene/DeleteFaces.md","Reference/NodeReference/GafferScene/DeleteGlobals.md","Reference/NodeReference/GafferScene/DeleteObject.md","Reference/NodeReference/GafferScene/DeleteOptions.md","Reference/NodeReference/GafferScene/DeleteOutputs.md","Reference/NodeReference/GafferScene/DeletePoints.md","Reference/NodeReference/GafferScene/DeletePrimitiveVariables.md","Reference/NodeReference/GafferScene/DeleteRenderPasses.md","Reference/NodeReference/GafferScene/DeleteSets.md","Reference/NodeReference/GafferScene/Duplicate.md","Reference/NodeReference/GafferScene/Encapsulate.md","Reference/NodeReference/GafferScene/ExistenceQuery.md","Reference/NodeReference/GafferScene/ExternalProcedural.md","Reference/NodeReference/GafferScene/Filter.md","Reference/NodeReference/GafferScene/FilterProcessor.md","Reference/NodeReference/GafferScene/FilterQuery.md","Reference/NodeReference/GafferScene/FilterResults.md","Reference/NodeReference/GafferScene/FilteredSceneProcessor.md","Reference/NodeReference/GafferScene/FramingConstraint.md","Reference/NodeReference/GafferScene/FreezeTransform.md","Reference/NodeReference/GafferScene/Grid.md","Reference/NodeReference/GafferScene/Group.md","Reference/NodeReference/GafferScene/ImageScatter.md","Reference/NodeReference/GafferScene/ImageToPoints.md","Reference/NodeReference/GafferScene/Instancer.md","Reference/NodeReference/GafferScene/InteractiveRender.md","Reference/NodeReference/GafferScene/Isolate.md","Reference/NodeReference/GafferScene/LightToCamera.md","Reference/NodeReference/GafferScene/LocaliseAttributes.md","Reference/NodeReference/GafferScene/MapOffset.md","Reference/NodeReference/GafferScene/MapProjection.md","Reference/NodeReference/GafferScene/MergeScenes.md","Reference/NodeReference/GafferScene/MeshDistortion.md","Reference/NodeReference/GafferScene/MeshNormals.md","Reference/NodeReference/GafferScene/MeshSegments.md","Reference/NodeReference/GafferScene/MeshSplit.md","Reference/NodeReference/GafferScene/MeshTangents.md","Reference/NodeReference/GafferScene/MeshTessellate.md","Reference/NodeReference/GafferScene/MeshToPoints.md","Reference/NodeReference/GafferScene/MeshType.md","Reference/NodeReference/GafferScene/MotionPath.md","Reference/NodeReference/GafferScene/ObjectToScene.md","Reference/NodeReference/GafferScene/OpenGLAttributes.md","Reference/NodeReference/GafferScene/OpenGLRender.md","Reference/NodeReference/GafferScene/OpenGLShader.md","Reference/NodeReference/GafferScene/OptionQuery.md","Reference/NodeReference/GafferScene/OptionTweaks.md","Reference/NodeReference/GafferScene/Options.md","Reference/NodeReference/GafferScene/Orientation.md","Reference/NodeReference/GafferScene/Outputs.md","Reference/NodeReference/GafferScene/Parameters.md","Reference/NodeReference/GafferScene/Parent.md","Reference/NodeReference/GafferScene/ParentConstraint.md","Reference/NodeReference/GafferScene/PathFilter.md","Reference/NodeReference/GafferScene/Plane.md","Reference/NodeReference/GafferScene/PointConstraint.md","Reference/NodeReference/GafferScene/PointsType.md","Reference/NodeReference/GafferScene/PrimitiveVariableExists.md","Reference/NodeReference/GafferScene/PrimitiveVariableQuery.md","Reference/NodeReference/GafferScene/PrimitiveVariables.md","Reference/NodeReference/GafferScene/Prune.md","Reference/NodeReference/GafferScene/Rename.md","Reference/NodeReference/GafferScene/Render.md","Reference/NodeReference/GafferScene/RenderPassShader.md","Reference/NodeReference/GafferScene/RenderPassTypeAdaptor.md","Reference/NodeReference/GafferScene/RenderPassWedge.md","Reference/NodeReference/GafferScene/RenderPasses.md","Reference/NodeReference/GafferScene/ResamplePrimitiveVariables.md","Reference/NodeReference/GafferScene/ReverseWinding.md","Reference/NodeReference/GafferScene/Scatter.md","Reference/NodeReference/GafferScene/SceneElementProcessor.md","Reference/NodeReference/GafferScene/SceneNode.md","Reference/NodeReference/GafferScene/SceneProcessor.md","Reference/NodeReference/GafferScene/SceneReader.md","Reference/NodeReference/GafferScene/SceneWriter.md","Reference/NodeReference/GafferScene/Set.md","Reference/NodeReference/GafferScene/SetFilter.md","Reference/NodeReference/GafferScene/SetQuery.md","Reference/NodeReference/GafferScene/SetVisualiser.md","Reference/NodeReference/GafferScene/Shader.md","Reference/NodeReference/GafferScene/ShaderAssignment.md","Reference/NodeReference/GafferScene/ShaderBall.md","Reference/NodeReference/GafferScene/ShaderQuery.md","Reference/NodeReference/GafferScene/ShaderTweakProxy.md","Reference/NodeReference/GafferScene/ShaderTweaks.md","Reference/NodeReference/GafferScene/ShuffleAttributes.md","Reference/NodeReference/GafferScene/ShufflePrimitiveVariables.md","Reference/NodeReference/GafferScene/Sphere.md","Reference/NodeReference/GafferScene/StandardAttributes.md","Reference/NodeReference/GafferScene/StandardOptions.md","Reference/NodeReference/GafferScene/SubTree.md","Reference/NodeReference/GafferScene/Text.md","Reference/NodeReference/GafferScene/Transform.md","Reference/NodeReference/GafferScene/TransformQuery.md","Reference/NodeReference/GafferScene/UDIMQuery.md","Reference/NodeReference/GafferScene/UVSampler.md","Reference/NodeReference/GafferScene/Unencapsulate.md","Reference/NodeReference/GafferScene/UnionFilter.md","Reference/NodeReference/GafferScene/Wireframe.md","Reference/NodeReference/GafferScene/index.md","Reference/NodeReference/GafferTractor/TractorDispatcher.md","Reference/NodeReference/GafferTractor/index.md","Reference/NodeReference/GafferUSD/USDAttributes.md","Reference/NodeReference/GafferUSD/USDLayerWriter.md","Reference/NodeReference/GafferUSD/USDLight.md","Reference/NodeReference/GafferUSD/USDShader.md","Reference/NodeReference/GafferUSD/index.md","Reference/NodeReference/GafferVDB/LevelSetOffset.md","Reference/NodeReference/GafferVDB/LevelSetToMesh.md","Reference/NodeReference/GafferVDB/MeshToLevelSet.md","Reference/NodeReference/GafferVDB/PointsGridToPoints.md","Reference/NodeReference/GafferVDB/PointsToLevelSet.md","Reference/NodeReference/GafferVDB/SphereLevelSet.md","Reference/NodeReference/GafferVDB/VolumeScatter.md","Reference/NodeReference/GafferVDB/index.md","Reference/NodeReference/index.md","Reference/ScriptingReference/CommonOperations/index.md","Reference/ScriptingReference/Expressions/index.md","Reference/ScriptingReference/Metadata/index.md","Reference/ScriptingReference/SetExpressions/index.md","Reference/ScriptingReference/StringSubstitutionSyntax/index.md","Reference/ScriptingReference/index.md","Reference/index.md","ReleaseNotes/1.0.0.0.md","ReleaseNotes/1.0.1.0.md","ReleaseNotes/1.0.2.0.md","ReleaseNotes/1.0.2.1.md","ReleaseNotes/1.0.3.0.md","ReleaseNotes/1.0.4.0.md","ReleaseNotes/1.0.5.0.md","ReleaseNotes/1.0.5.1.md","ReleaseNotes/1.0.6.0.md","ReleaseNotes/1.0.6.1.md","ReleaseNotes/1.0.6.2.md","ReleaseNotes/1.0.6.3.md","ReleaseNotes/1.0.6.4.md","ReleaseNotes/1.0.6.5.md","ReleaseNotes/1.0.6.6.md","ReleaseNotes/1.1.0.0.md","ReleaseNotes/1.1.1.0.md","ReleaseNotes/1.1.2.0.md","ReleaseNotes/1.1.3.0.md","ReleaseNotes/1.1.4.0.md","ReleaseNotes/1.1.5.0.md","ReleaseNotes/1.1.6.0.md","ReleaseNotes/1.1.6.1.md","ReleaseNotes/1.1.7.0.md","ReleaseNotes/1.1.8.0.md","ReleaseNotes/1.1.9.0.md","ReleaseNotes/1.1.9.1.md","ReleaseNotes/1.1.9.2.md","ReleaseNotes/1.1.9.3.md","ReleaseNotes/1.1.9.4.md","ReleaseNotes/1.1.9.5.md","ReleaseNotes/1.1.9.6.md","ReleaseNotes/1.1.9.7.md","ReleaseNotes/1.2.0.0.md","ReleaseNotes/1.2.0.1.md","ReleaseNotes/1.2.0.2.md","ReleaseNotes/1.2.1.0.md","ReleaseNotes/1.2.1.1.md","ReleaseNotes/1.2.10.0.md","ReleaseNotes/1.2.10.1.md","ReleaseNotes/1.2.10.2.md","ReleaseNotes/1.2.10.3.md","ReleaseNotes/1.2.10.4.md","ReleaseNotes/1.2.10.5.md","ReleaseNotes/1.2.10.6.md","ReleaseNotes/1.2.2.0.md","ReleaseNotes/1.2.3.0.md","ReleaseNotes/1.2.4.0.md","ReleaseNotes/1.2.5.0.md","ReleaseNotes/1.2.6.0.md","ReleaseNotes/1.2.7.0.md","ReleaseNotes/1.2.8.0.md","ReleaseNotes/1.2.9.0.md","ReleaseNotes/1.3.0.0.md","ReleaseNotes/1.3.1.0.md","ReleaseNotes/1.3.10.0.md","ReleaseNotes/1.3.11.0.md","ReleaseNotes/1.3.12.0.md","ReleaseNotes/1.3.13.0.md","ReleaseNotes/1.3.13.1.md","ReleaseNotes/1.3.14.0.md","ReleaseNotes/1.3.15.0.md","ReleaseNotes/1.3.16.0.md","ReleaseNotes/1.3.16.1.md","ReleaseNotes/1.3.16.2.md","ReleaseNotes/1.3.16.3.md","ReleaseNotes/1.3.16.4.md","ReleaseNotes/1.3.2.0.md","ReleaseNotes/1.3.3.0.md","ReleaseNotes/1.3.4.0.md","ReleaseNotes/1.3.5.0.md","ReleaseNotes/1.3.6.0.md","ReleaseNotes/1.3.6.1.md","ReleaseNotes/1.3.7.0.md","ReleaseNotes/1.3.8.0.md","ReleaseNotes/1.3.9.0.md","ReleaseNotes/1.4.0.0.md","ReleaseNotes/1.4.1.0.md","ReleaseNotes/1.4.2.0.md","ReleaseNotes/1.4.3.0.md","ReleaseNotes/1.4.4.0.md","ReleaseNotes/1.4.5.0.md","ReleaseNotes/1.4.6.0.md","ReleaseNotes/index.md","WorkingWithImages/AnatomyOfAnImage/index.md","WorkingWithImages/index.md","WorkingWithScenes/AnatomyOfACamera/index.md","WorkingWithScenes/AnatomyOfAScene/index.md","WorkingWithScenes/Camera/index.md","WorkingWithScenes/LightLinking/index.md","WorkingWithScenes/index.md","WorkingWithTheNodeGraph/BoxNode/index.md","WorkingWithTheNodeGraph/Contexts/index.md","WorkingWithTheNodeGraph/PerformanceBestPractices/index.md","WorkingWithTheNodeGraph/SpreadsheetNode/index.md","WorkingWithTheNodeGraph/TutorialSettingUpASpreadsheet/index.md","WorkingWithTheNodeGraph/TutorialUsingTheOSLCodeNode/index.md","WorkingWithTheNodeGraph/UsingThePerformanceMonitor/index.md","WorkingWithTheNodeGraph/index.md","WorkingWithThePythonScriptingAPI/ThePythonEditor/index.md","WorkingWithThePythonScriptingAPI/TutorialNodeGraphEditingInPython/index.md","WorkingWithThePythonScriptingAPI/TutorialQueryingAScene/index.md","WorkingWithThePythonScriptingAPI/TutorialStartupConfig1/index.md","WorkingWithThePythonScriptingAPI/TutorialStartupConfig2/index.md","WorkingWithThePythonScriptingAPI/TutorialStartupConfig3/index.md","WorkingWithThePythonScriptingAPI/index.md","index.md"],objects:{},objnames:{},objtypes:{},terms:{"0":[0,3,4,5,6,8,47,49,54,56,58,63,66,67,68,75,78,90,91,110,117,118,126,130,132,136,137,140,146,152,153,154,155,159,160,174,179,187,210,216,219,223,253,279,281,300,303,310,381,387,398,399,401,403,411,415,416],"00":[75,78],"000":408,"0001":312,"01":[75,78,219],"01966095":416,"02":348,"02110":0,"02111":0,"025":411,"04":6,"05":[368,411],"05ch11231":0,"0722":155,"09":0,"0981121":416,"1":[0,2,3,4,5,6,8,14,49,56,58,63,67,68,75,78,90,91,104,117,118,119,132,144,146,153,154,155,160,174,187,210,216,229,231,253,279,281,300,303,310,312,398,399,401,403,407,409,410,414,415,416,418,419,420],"10":[0,14,21,104,210,310,315,319,320,321,339,348,351,361,363,364,365,366,368,369,372,383,386,387,389,391,392,397,398,408,416],"100":[117,118,140,310,408],"1000":408,"10000002":416,"1001":[12,286],"1002":286,"100x":369,"100x10":104,"1013":0,"1020":12,"1024":[286,410],"1079":399,"10x":369,"11":[0,315,368,391,398],"12":[0,315,348,391,398,408,416,419],"1201":321,"12282":336,"125cm":401,"128x128":399,"13":[0,315,332,348,368,383,391,392,398],"1301":0,"1307":0,"14":[0,368,391,398,419],"1414736":0,"15":[0,6,104,315,368,391,398],"1536":410,"1591":391,"16":[0,63,174,398,403,408],"160":0,"1600000":408,"1684":391,"16x16":63,"17":[2,315,348],"17th":0,"18":6,"180":240,"1895":0,"19":0,"1919":399,"1971":368,"1988":0,"1990":0,"1991":0,"1995":0,"1996":0,"1997":0,"1998":0,"1999":0,"1i":315,"1mm":174,"1st":253,"2":[0,2,6,8,63,91,96,315,320,321,333,368,372,383,389,391,398,401,408,409,410,414,415,416,417,419,420],"20":[0,104,408,411,416],"2000":[0,315,366],"2001":0,"2002":0,"2003":0,"2004":0,"2005":0,"2006":0,"2007":0,"2008":0,"2009":0,"2010":0,"2011":0,"2012":0,"2013":0,"2014":[0,330],"2015":0,"2016":0,"2017":0,"2018":0,"2019":0,"20191":0,"2020":[0,315],"2021":0,"2022":0,"2023":[0,391],"2048":410,"21":[104,315,416],"2126":155,"22":[0,416],"23":[340,348,368,391],"25":[6,91,366,415],"26130295":416,"27":0,"2740936":416,"2788":391,"28":391,"29":[0,315,416],"2a":410,"2b":410,"2d":[0,151,215,399,400,407],"2k":[339,399],"2x":[116,348],"2x2":63,"3":[0,6,8,63,67,68,91,174,286,315,336,348,358,391,392,398,401,409,414,415,417,418,420],"30":0,"30000019":416,"3088":368,"32":[361,399],"330":0,"33150482":416,"35":0,"35mm":174,"36":63,"360":279,"3613":368,"37":315,"38":[368,391],"39":367,"3986":391,"3d":[6,75,215,261,368,389,401,402,405,407],"3delight":[6,348,367,371,383,384,389,390,391,393,394,395,396],"3dl":141,"3fr":[136,140,149],"3rd":315,"3x":[303,348,383,386,391],"4":[0,2,3,4,5,63,68,253,315,319,321,336,339,340,348,351,361,363,364,365,366,368,370,377,387,388,389,398,401,408,409,411,415,416],"400":408,"4000":408,"400000":408,"40x":323,"4163561":416,"42":0,"4267":387,"45":403,"4540863":416,"4559":315,"4614":315,"4633":387,"4772":318,"48":0,"4805":320,"4849":332,"4865":332,"4876":332,"4893":332,"4921":332,"4926":337,"4935":[325,333,348],"4944":[325,333],"4978":386,"4d0":0,"4d1":0,"4e38":369,"4k":399,"4x":391,"4x4":[63,285,402],"5":[0,58,91,137,160,174,310,315,348,368,369,372,383,386,387,388,389,391,392,393,397,398,399,408,414,416],"50":[0,368],"5042":348,"5044":338,"5048":340,"5051":340,"5058":338,"5066":[329,338],"5084":348,"5092":362,"50mm":401,"51":0,"512":286,"5131":348,"5147":[341,350],"5158":351,"5170":360,"5222":361,"5223":361,"5234":391,"5248":362,"5250":368,"5269":393,"5293":367,"5296":386,"5309":[347,366],"5328":[355,382],"5330":[347,366],"5335":353,"5364":367,"5365":367,"5392":369,"5403":[355,382],"5406":386,"5430":[355,382],"5434":[355,382],"5435":[357,384],"5592":370,"5602":370,"5618":371,"5654":372,"5781":391,"5810":[379,393],"5830":394,"5856":395,"59":0,"5cm":401,"6":[0,3,4,5,63,315,348,351,368,372,388,391,398],"60":0,"60483646":416,"61":[136,332],"64x64":63,"6934471":416,"6a":0,"6x":[368,389],"7":[0,2,3,315,319,336,340,348,361,363,368,391,392,398,414],"70":389,"715106":416,"7152":155,"73":331,"74":384,"7405":0,"75":[91,415],"76":315,"778":[174,403],"788":391,"7x":388,"8":[0,315,348,364,368,391,397,398,415,416,419],"80":368,"80717945":416,"811451":416,"88":0,"89":0,"8gb":391,"8x8":63,"9":[0,2,8,63,140,174,315,348,365,366,368,391,395,398,403,414,416],"90":[6,416],"901":391,"91635609":416,"92141724":416,"95":[0,330],"95051":0,"96":0,"96185112":416,"97":0,"99":[117,118],"abstract":[0,72,265,266,391,406],"boolean":[5,177,187,287,315,332,373,392],"break":[319,401,407,417,418],"case":[0,21,25,39,54,63,91,101,109,136,150,153,154,168,174,179,180,187,188,189,201,207,212,216,218,234,243,244,247,261,280,294,295,330,335,348,354,357,368,369,382,383,384,385,386,389,391,393,394,403,407,408,410,418],"catch":395,"char":[321,373],"class":[0,30,35,72,86,89,128,129,134,135,262,315,348,361,368,382,384,391,415,416],"const":[383,391],"default":[5,6,8,10,11,12,13,14,15,16,17,18,19,20,21,22,31,40,46,47,54,60,62,63,64,67,68,69,71,73,74,75,76,79,100,101,117,118,125,136,140,149,153,154,156,164,169,171,173,174,177,179,182,184,190,201,207,217,218,223,229,231,235,237,243,250,254,261,274,280,281,282,285,292,294,296,305,309,310,315,319,321,322,328,332,335,337,338,342,348,351,354,365,366,368,369,370,373,375,376,383,384,385,386,388,389,391,393,395,396,399,401,403,404,406,407,409,410,414,415,416,417,419],"do":[0,2,6,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,325,333,368,383,393,395,399,402,404,407,410,411,415,416,418,419,420],"enum":[315,321,329,330,336,338,340,386,391],"export":[2,5,45,321,355,372,382,391,417],"final":[0,6,59,67,75,84,174,348,399,401,404,409,415,416,419],"float":[43,58,68,104,140,162,163,185,187,191,192,197,214,215,216,224,261,303,315,369,382,390,391,395,399,406,407,411,417],"function":[0,8,105,136,140,141,165,315,330,335,348,368,373,391,395,396,406,407,409,411,414,415,416,417],"import":[0,2,5,13,43,44,216,308,391,395,408,414,415,416,417,418,419],"int":[136,140,149,162,191,192,197,315,390,407],"long":[0,75,174,315,336,377,403,415,419],"mart\u00ed":0,"new":[0,2,4,5,8,12,52,59,91,94,101,110,154,175,177,178,180,194,213,223,227,230,231,242,252,253,265,266,267,282,287,295,315,316,317,319,320,321,335,336,338,342,348,351,361,362,367,368,369,370,371,372,375,382,385,386,389,391,393,395,396,403,407,409,410,411,415,417,418,419],"null":[0,136,140,149,181,389],"public":[0,315,348,366,368,391],"return":[5,8,47,84,136,149,216,249,269,286,315,316,319,325,330,333,348,368,369,373,382,389,391,395,396,407,408,409,414,415,416,419],"short":411,"static":[0,323,366,382,391,397],"switch":[6,40,51,90,310,338,339,340,348,391,393,403,409,410,412],"throw":[136,149,348,404],"true":[0,47,54,60,73,136,164,168,169,177,178,180,187,203,207,218,227,244,245,247,249,287,296,310,315,368,373,391,404,416,417],"try":[4,63,343,352,407,408,414,415,416,417,418,419],"var":148,"void":[0,315],"while":[0,6,8,12,14,63,75,104,105,174,178,219,243,261,281,319,330,348,353,367,368,373,391,392,404,406,407,408,409,410,417],A:[0,6,8,10,11,12,13,15,16,19,20,21,22,25,26,36,37,41,42,49,54,56,58,60,61,62,63,64,66,67,68,69,71,73,74,75,76,78,79,81,82,83,84,85,86,87,88,89,90,91,99,101,103,104,111,130,132,136,140,142,144,150,151,152,153,157,158,159,160,164,165,168,170,171,172,174,175,176,177,178,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,200,201,202,204,209,210,211,212,213,214,215,216,217,218,220,221,222,224,225,226,227,228,229,230,231,232,233,234,235,240,242,243,244,245,246,247,248,251,252,253,254,257,259,260,261,262,266,267,268,270,272,276,277,278,279,280,281,282,283,284,286,287,288,290,292,294,295,296,299,300,301,302,303,304,305,311,315,321,330,348,367,368,395,399,401,402,403,404,406,407,408,409,410,414,415,417,419,420],AND:0,AS:0,And:[0,411,416],As:[0,6,8,23,174,319,399,401,407,408,410,412,415,417,418,419],At:[6,401,407],BE:0,BEING:0,BUT:0,BY:0,Be:[232,404],But:[0,140,185,229,231,245,404,407,409,411,416],By:[0,6,63,71,100,101,117,118,178,179,180,182,184,218,223,229,231,280,399,401,406,415],FOR:0,For:[0,2,4,5,6,8,23,39,58,64,67,76,81,82,83,84,85,86,87,88,89,90,91,104,137,140,158,165,174,178,180,189,201,216,228,235,243,254,257,266,268,277,278,280,282,292,295,311,315,316,348,368,399,401,403,404,406,407,408,409,410,412,414,415,416,417,419,421],IF:0,IN:0,IS:0,ITS:0,If:[0,2,4,5,6,10,11,12,13,14,15,16,17,18,19,20,21,22,33,52,54,58,63,64,67,71,75,76,81,82,83,84,85,86,87,88,89,90,91,100,104,107,110,113,123,127,133,136,137,138,140,143,146,148,149,154,158,159,163,165,168,169,172,173,174,177,178,180,184,185,187,188,189,191,192,197,201,202,207,210,213,214,215,216,219,227,229,230,234,235,239,244,247,250,253,254,257,258,261,266,267,272,274,278,280,281,285,287,290,292,294,295,299,300,303,315,316,322,330,336,348,360,368,383,391,394,401,403,404,406,407,408,409,410,412,415,416,417,418,419,420,421],In:[0,2,3,5,6,54,63,84,109,144,153,154,174,181,187,207,208,216,219,222,223,229,231,232,244,247,260,268,281,327,336,348,382,393,399,401,402,403,404,406,407,408,409,410,411,412,414,415,416,417,418,419,420],It:[0,6,54,63,71,75,91,110,123,127,133,136,143,171,172,180,184,188,189,234,239,280,281,294,319,322,391,401,402,403,406,408,409,410,414,415,416,417,419,421],Its:[399,407,415,419],NO:0,NOT:0,No:[0,75,157,185,267,387,404,411],Not:[0,12,14,416],OF:0,ON:0,OR:0,Of:[174,403,417],On:[85,325,333,403,409,417,419],One:[63,323,348,368,407,416,417],Or:140,SUCH:0,Such:0,THAT:0,THE:0,THEIR:0,THERE:0,TO:0,That:[0,404,415,416,418,419],The:[0,2,3,5,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25,27,28,29,31,32,33,34,36,40,43,44,46,47,49,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,87,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,310,311,315,317,319,330,333,335,336,348,351,360,363,367,368,370,372,373,382,383,384,391,395,396,399,401,402,403,404,406,407,408,409,410,412,413,416,417,418,420],Then:[6,403,406,407,417,418],There:[0,6,75,140,216,399,406,407,409,415,416,419],These:[0,21,23,46,137,138,148,153,154,177,182,184,187,216,220,258,281,287,310,315,318,319,325,330,333,334,348,357,361,368,369,373,383,384,386,391,397,401,406,407,408,417],To:[0,2,3,4,5,6,8,20,23,45,46,54,71,75,78,82,97,124,140,174,181,193,202,214,215,281,294,295,315,389,401,403,404,406,407,408,409,412,414,416,417,418,419,421],WILL:0,WITH:0,With:[0,6,174,232,370,401,403,404,406,411,412,415,417,418,419,420],_:373,__camera:[365,401],__children:416,__implement:360,__light:[365,391],__macbethtextur:419,__macbethtexturepostcr:419,__scriptad:417,__uiposit:416,__uiposition1:416,_createconstantshad:391,_ear:6,_index:0,_plugconnect:348,_postcontructor:348,_resiz:368,_updatefromplug:348,_valuesdependoncontext:368,_variationsplugvaluewidget:216,a29:0,aa:[54,63,75,144],aaa:416,aastep:411,ab:144,abc:[0,6,185,265,266,409],abid:0,abil:[0,10,320,321,348,353,362,368,370,373,377,391,395,396,406,408,411],abl:[0,6,407,409,416],abort:63,about:[0,6,7,9,20,216,281,286,382,391,404,412,416,417,421],abov:[0,2,5,6,54,68,100,104,132,221,261,321,368,404,407,408,409,410,415,416,417],absenc:[0,280],absolut:[0,160,232,284],ac02:0,ac:368,academysoftwarefound:391,acceler:[75,383],accept:[0,21,54,61,63,107,121,163,165,216,280,310,317,348,382],acceptsset:332,access:[0,2,3,5,8,13,19,20,24,40,49,63,84,136,160,165,180,210,315,319,321,325,332,333,343,348,352,368,391,396,399,401,407,408,415,416,417],accessor:[0,315,391],accessori:310,accident:[267,397,415,417],accommod:[5,401],accompani:[0,408],accomplish:[6,406,409,415],accord:[0,63,174,229,281,305,348,382,384,391],account:[0,58,64,69,76,79,150,160,165,177,184,187,191,192,194,197,217,223,230,235,252,254,278,280,281,287,290,299,300,333,376,401],accur:[0,71,75,96,100,102,125,132,141,142,153,154,155,160,165,177,184,187,191,192,197,229,230,278,281,287,290,299,300],accuraci:[0,75,153,154,315,368],accustom:402,acescg:368,achiev:[0,6,43,44,63,174,348,403,404,407],acknowledg:0,acquir:[24,308,418,419],acquirecollaborativeresult:386,acquiresetedit:348,across:[29,54,56,67,214,216,245,261,360,382,385,406,407,409],act:[0,150,159,214,215,402,409],action:[0,8,311,371,391,406,410,415],actionsign:315,activ:[0,8,23,81,83,136,149,292,315,333,361,368,391,393,396,403,412,420],activatedsign:396,activatornam:393,activerowindex:315,activerownam:315,activerownamesconnect:315,activeview:368,actual:[0,5,6,20,63,89,110,210,276,281,391,394,401,403,404,406,407,410,416,417,418,419],ad:[0,2,5,12,23,29,31,32,33,54,58,60,62,63,71,73,74,75,87,91,132,133,157,162,163,164,165,170,172,174,175,177,182,184,187,188,189,216,221,234,237,238,239,242,250,251,253,265,267,274,276,280,281,287,289,294,296,310,315,316,318,319,320,321,322,323,326,330,332,333,334,335,336,338,339,340,348,351,353,360,361,362,365,366,367,368,369,370,371,372,373,375,376,377,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,401,404,406,407,409,415,417],adapt:[54,63,75,256,373,396],adaptor:[394,396],add:[0,2,5,6,8,20,23,33,50,54,63,67,82,87,97,109,117,118,133,144,163,165,174,175,178,210,221,228,251,253,267,281,308,317,348,365,368,372,388,391,392,399,401,403,404,406,407,408,409,410,411,412,415,417,418,419],addabl:406,addchild:[308,415,416],addendum:0,adder:336,addiit:104,addinput:29,addit:[0,2,4,6,20,23,33,54,63,71,75,84,104,117,118,123,127,132,133,143,148,153,154,172,188,189,214,215,216,223,234,239,243,268,277,278,280,281,282,294,303,310,330,336,361,362,371,373,384,387,389,391,399,401,402,404,409,415,417,419],addition:[0,319,369,402,403],additionallight:373,addjob:391,addlayerprefix:386,addmemb:417,addoutput:241,addqueri:315,addrenderpassbuttonmenusign:372,address:0,adjac:[137,212,225],adjoin:330,adjust:[8,68,75,113,152,165,168,174,177,184,187,191,192,197,223,228,230,244,247,261,278,287,290,299,300,315,348,368,403,407,409,410,411,415],adler:0,adopt:[0,348,417],adp:[340,388],advanc:[0,5,20,391,392,406,415],advantag:[0,288,417],advertis:[0,348],advis:[0,216],aef:253,affair:417,affect:[0,20,54,56,60,61,67,71,73,110,117,118,153,164,174,198,209,225,255,259,261,281,296,324,330,332,333,348,361,369,385,391,397,403,404,409],affectscolordata:368,affectscolorprocessor:368,affectsvisibleset:348,affero:0,affili:0,affix:[6,404],afford:408,after:[0,5,6,7,13,19,20,50,59,63,64,67,75,76,81,82,83,84,85,86,87,88,89,90,91,96,100,102,125,132,140,141,142,153,154,155,158,235,240,253,254,257,266,267,277,278,292,295,310,315,326,330,334,335,348,360,361,368,372,388,391,408,410,417,419],afterward:[116,410],again:[5,6,8,96,100,102,125,132,141,142,155,229,330,389,403,415,416,418],against:[0,40,47,185,245,268,366,391,407,409,410],agenc:0,aggreg:0,agnost:416,agre:0,agreement:0,ahead:[391,410],ai:[53,55,57,59,75,315,335,342,348,351,367,394],aid:[0,348,368],aim:[240,403],aimconstraint:291,aiquadlight:351,albedo:[67,75],alemb:[6,174,265,315,319,320,321,365,401],alex:0,alexa:174,alexand:0,algorithm:[0,63,229,231,259],alia:[153,368],alias:[54,68,104,105,139,154,160,368,374,393],align:[104,158,210,253,330,391],alik:[0,402,419],all:[0,5,6,8,11,12,13,14,18,20,21,23,25,40,43,47,53,54,59,60,61,62,63,64,66,67,69,73,74,75,76,78,79,81,82,83,84,85,86,87,88,89,90,91,97,101,104,115,119,120,122,123,127,132,136,140,143,149,150,153,154,164,165,169,173,176,179,180,182,199,205,206,207,208,210,213,216,218,223,225,226,227,230,235,240,243,245,250,252,253,254,255,257,263,264,265,266,268,271,274,277,278,280,281,282,284,285,286,289,292,295,296,310,311,315,317,319,321,332,348,362,363,367,368,369,383,386,390,391,393,394,399,401,402,403,404,406,407,408,409,410,415,416,417,418,419,420],allasset:268,alleg:0,alloc:0,allow:[0,5,6,16,25,54,60,63,73,85,88,91,96,97,100,101,102,104,124,125,132,140,141,142,148,155,162,164,165,170,179,210,216,234,243,253,257,268,270,275,276,296,310,315,320,323,324,330,332,333,336,342,348,351,362,368,370,371,372,375,380,383,385,386,389,391,393,394,395,396,401,402,403,407,409,411,412,416,420],allowcustom:310,allownon:351,almost:[368,406,415],alon:[0,101,179],along:[0,47,58,279,332,370,393,407],alongsid:[0,201,243,261,305,416],alpha:[0,8,75,94,113,117,118,119,130,140,150,153,154,159,215,317,391,415],alphabet:[315,333],alreadi:[0,59,101,104,107,133,171,231,258,267,277,278,325,333,348,386,417,418,419],also:[0,14,16,20,26,54,63,67,71,75,84,91,116,117,118,133,136,140,149,163,165,172,174,175,188,189,194,212,214,216,219,226,229,234,239,241,265,267,268,270,280,281,282,294,310,311,315,348,360,365,386,396,406,411,420,421],alsurfac:63,alt:[6,8,389,391],alter:[0,262,288,408],altern:[0,8,12,63,218,261,348,368,406,408,409,410,412],although:[0,6,139,402,416],alumni:0,alwai:[6,46,63,66,78,137,174,218,223,225,232,273,279,280,315,348,361,366,391,401,402,407,408,409,415],am:189,ambient:[75,404],ambigu:389,among:[0,45,63,348,361,391],amongst:416,amount:[58,63,75,147,160,174,214,281,299,401,403],amsterdam:0,an:[0,2,3,5,8,12,16,18,19,20,21,23,26,29,31,33,35,36,39,46,47,52,53,54,55,56,57,58,59,60,61,63,66,67,68,71,72,73,74,75,78,83,84,85,89,91,96,97,98,99,101,103,104,114,115,116,117,118,119,120,121,122,124,125,126,127,131,132,133,135,136,137,138,139,140,142,148,149,151,153,155,156,157,158,160,162,163,164,165,168,171,172,174,176,179,180,181,184,185,186,187,188,189,194,204,207,208,212,214,215,216,218,219,221,226,227,232,233,234,237,239,240,241,244,245,246,247,250,252,255,257,261,263,264,265,267,269,270,273,276,277,278,279,280,281,283,284,286,292,294,296,300,303,304,310,315,317,319,320,322,323,325,327,330,332,333,334,335,336,339,340,342,344,348,351,353,354,358,360,361,362,367,368,369,371,372,383,385,386,387,388,389,391,393,394,395,396,400,401,402,403,406,407,408,409,410,411,412,414,415,416,417,418,419],anaglyph:[161,315],analog:403,analogu:401,analys:138,analysi:20,analyz:0,anamorph:[361,399],anatomi:[400,403,405],ancestor:[185,190,203,207,218,268,269,311,333,368,386,391,404],andrea:0,andrew:0,angl:[6,71,185,219,225,240,338,354,368,369,391,401,403],angulardrag:368,angularveloc:383,ani:[0,2,3,4,5,6,16,20,54,59,63,67,71,82,84,88,94,104,116,117,118,119,120,122,140,153,160,162,171,174,175,185,199,205,211,218,226,229,234,242,245,253,254,258,262,265,268,270,286,289,294,315,319,348,353,368,369,375,391,395,399,401,402,403,404,406,407,408,409,410,411,414,415,416,417,418,419,421],anim:[0,6,51,67,75,158,210,261,265,266,280,315,317,320,323,336,348,353,368,369,409,410],animationeditor:315,anisotrop:54,annot:[0,20],annotatedscript:[408,412],annoy:416,anoth:[0,8,45,47,131,240,244,295,311,391,404,407,408,409,411,415,416,417,418],anthoni:0,antialias:63,anticip:410,antonin:0,anyon:0,anyth:[0,46,63,67,218,368,386,391],anywai:229,anywher:[5,6,8,46,243],aov:[52,59,63,185,315,338,371,388],apach:0,apertur:[60,73,164,219,281,296],apertureoffset:401,api:[0,23,32,33,54,63,71,75,97,133,170,172,175,188,189,234,238,239,241,242,251,276,280,281,294,401,407,415,416,417,418,421],app:[12,16,20,22,315,355,368,382,386,407,408,412,417,418,419],appar:408,apparatu:0,appear:[0,2,5,6,8,54,63,174,219,234,235,280,281,294,310,330,367,387,391,401,403,404,409,410,411,414,416,419],append:[6,8,185,258,278,389,419],appendix:[0,399],appendmenudefinit:391,appendnodecontextmenudefinit:391,appl:[0,407],applese:[348,360,361,368],appli:[0,5,6,12,24,32,36,39,43,53,54,58,59,60,61,62,63,68,71,73,74,75,91,95,96,99,102,104,123,125,127,132,133,139,141,142,143,151,152,153,154,157,158,160,164,168,171,172,174,175,176,177,181,184,186,187,188,189,201,204,205,212,214,215,216,219,222,229,231,233,234,239,240,244,246,247,251,261,265,270,279,280,281,282,283,284,287,294,295,296,303,304,310,315,321,330,348,351,353,363,368,369,370,391,395,403,404,407,408,409,410,416,420],applic:[0,2,3,4,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,42,60,63,73,75,164,234,296,355,382,389,391,399,401,409,414,417,418,419,420,421],applicationroot:[315,348],applypreset:315,appnam:16,appreci:[0,421],approach:[153,408,417,419],appropri:[0,5,6,23,31,153,229,281,294,315,348,389,403,404,409,410],approxim:[54,210,229,231,259,401],april:0,ar:[0,2,3,5,6,8,10,11,12,13,14,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,310,311,315,316,318,319,320,321,324,325,330,332,333,335,336,348,351,357,360,361,365,368,369,370,373,377,379,381,382,383,384,385,386,388,389,391,392,393,397,399,401,402,403,404,406,407,408,409,410,411,412,414,415,416,417,418,419,420,421],arbitari:164,arbitrari:[6,18,29,31,32,33,54,63,71,75,84,85,87,133,136,140,149,157,162,164,170,172,175,176,185,188,189,204,214,215,216,234,237,238,239,241,242,250,251,274,276,277,278,280,281,283,292,294,382,395,399,402,407,414,417],arbitrarili:[176,208],arc:54,architectur:[75,420,421],archiv:[0,3,204],area:[54,56,63,94,174,214,224,225,229,231,261,281,391,399,402,409,414],areasourc:391,aren:[0,370,416],arg:[16,85],argument:[0,16,20,315,330,348,355,368,382,385,386,391,417,418,419],argv:18,aris:[0,409],arm:[185,245,411],arnol:63,arnold:[6,52,53,54,55,56,57,58,60,62,63,64,65,66,67,68,69,280,315,318,319,320,321,329,335,336,338,339,340,342,348,349,351,354,355,357,361,362,367,368,369,370,371,372,382,384,386,387,388,389,391,393,394,395,397,404],arnold_adp_dis:[340,388],arnold_adp_optin:388,arnold_root:2,arnold_user_guide_ac_render_settings_ac_lights_settings_html:63,arnoldaovshad:70,arnoldatmospher:70,arnoldattribut:[58,70,315,361,366],arnoldbackground:70,arnoldcamerashad:70,arnoldcolormanag:[70,324,332,368,370,391],arnolddisplac:[70,324,332],arnoldimag:[70,394],arnoldlight:[70,315],arnoldlightfilt:70,arnoldmeshlight:[70,315],arnoldopt:[54,70,335,348,361],arnoldrend:[70,315,389],arnoldshad:[59,70,315,370,371,376,388,391],arnoldshaderbal:70,arnoldshaderui:[370,371,388],arnoldtexturebak:70,arnoldvdb:70,around:[6,49,63,90,234,240,279,355,382,391,403,408],arrai:[0,29,40,49,179,216,309,339,340,351,368,386,391,393,406],arrang:[8,399,402,406],arrayplug:415,arrow:[6,353,409],arseni:0,art:0,articl:[327,336,351,399,401,402,403],artifact:[68,71,75,333],artifici:54,artist:[0,418,419],arw:[136,140,149],asc:96,ascher:0,ascii:391,asid:417,ask:0,aspect:[8,69,79,99,103,104,105,126,151,154,163,174,219,281,315,333,402,403,407,416],ass:[63,64,389],assembl:[7,104,360,391,410,415,420,421],assert:[0,334],assertimageequ:391,assertimagesequ:[315,369],assertnodeisdocu:315,assertnodeuishaveexpectedlifetim:361,assertparallelgetvaluecomputesobjectonc:348,assertscenesrendersam:384,asset:[45,71,179,218,245,265,270,315,404,408,409,410,418],asseta:408,assetb:268,assetpath:417,assign:[6,8,21,23,25,52,53,55,56,58,59,62,65,72,74,77,91,110,162,164,166,171,234,236,248,255,271,272,274,275,280,281,282,294,297,315,330,338,348,351,382,391,399,401,402,403,407,408,415,416,417],assist:393,associ:[0,47,216,234,367,399,402,403,408,418],assum:[0,2,4,5,71,104,140,218,311,318,368,401,403,408,409,410,415,421],asymmetr:[174,391,403],asynchron:[348,367],atmospher:[53,63,72],atop:144,attach:[0,75],attempt:[0,63,184,320,322,336,337,348,367],attent:0,attr:[338,387],attribut:[0,6,8,23,56,58,60,65,67,73,77,122,162,165,166,170,171,174,190,202,223,236,271,275,276,277,281,282,291,292,295,296,297,315,319,332,333,334,335,338,346,348,354,357,360,361,363,367,368,369,370,383,384,387,391,394,395,397,399,404,407,408,409,416],attributeedit:353,attributeerror:[348,360],attributehistori:319,attributenam:391,attributequeri:[291,294,390,393],attributetweak:[291,348,393],attributevisualis:291,audienc:[401,404],august:0,author:[0,26,217,254,294,295,315,334,383,391,406,407],authorship:0,auto:[8,54,275,339,348,395,396],autobump_vis:315,autocomplet:8,autodesk:63,autom:[6,368,421],automat:[0,6,14,21,25,36,54,58,63,64,67,68,71,75,76,81,82,83,84,85,86,87,88,89,90,91,101,104,136,140,153,154,162,213,218,235,254,257,266,292,295,303,315,319,322,332,348,360,368,373,383,389,391,392,393,395,396,401,402,406,407,408,409,410,415,417,419],automaticinstanc:320,autotypefunct:396,auxiliari:[368,382,399,409],avail:[0,2,5,6,10,11,12,13,14,15,17,18,19,20,21,22,23,49,63,64,67,68,75,76,81,82,83,84,85,86,87,88,89,90,91,104,136,140,144,149,165,174,216,219,235,254,257,266,274,281,292,295,315,318,348,355,367,368,369,370,373,382,391,396,399,403,406,410,411,415,416,417,418],availablecolorspac:368,availablefram:367,availablerol:368,avenu:0,averag:[119,225,259],avoid:[0,23,54,63,75,174,216,219,281,369,391,408],awai:[0,4,67,137,155,176,240,391],awar:[5,404],award:0,awesom:0,awkward:47,ax:[8,212],axi:[216,240,247,279,368,415],axis0:368,axis1:368,b:[0,8,99,103,132,144,151,253,311,399,403,407,409,415],ba:144,back:[0,6,49,67,90,110,116,163,165,174,190,229,231,280,288,322,339,389,391,401,403,406,409,410],backbon:406,backdrop:[51,319,321,391],backend:[75,78,254,280],background:[6,8,14,55,64,67,72,75,76,81,82,83,84,85,86,87,88,89,90,91,124,140,235,254,257,266,292,295,331,334,348,368,391,407],background_light:6,backgroundmethod:348,backgroundtask:[367,391],backspac:8,backtrac:63,backup:[340,348],backward:[8,315,330,331,360,391],bad:[63,315],bai:[136,140,149],bake:[67,211,286,295,384,408],balanc:0,ball:[66,78,273,393,411],bar:[6,83,316],barkov:0,barrett:0,base:[0,6,17,29,30,35,43,44,60,61,68,71,72,73,75,86,89,107,110,111,119,121,128,129,134,135,136,146,153,164,172,174,198,205,206,209,216,226,227,228,229,239,258,259,262,263,264,269,270,271,296,303,315,348,351,368,373,384,386,389,391,394,399,407,409,410],base_col:6,base_col_:6,basenam:140,bash:[2,5],bash_profil:[2,5],basi:[0,6,43,45,54,168,244,247,284,292,368,372,393,399,408,418],basic:[6,7,8,20,23,280,315,372,407,408,414,416,421],batch:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295,348,355,382,391,410],bear:417,beauti:[6,63,315,409],becam:[0,391],becaus:[0,5,6,36,63,67,122,140,147,153,154,216,218,225,229,230,315,320,336,348,391,401,407,408,409,410,414,415],becom:[0,5,54,132,282,323,368,404,406,408],beder:0,bederson:0,been:[0,2,4,5,13,23,46,61,63,139,158,174,224,229,253,277,278,305,315,330,348,357,360,361,368,374,383,384,387,391,396,403,407,409,410,416],befor:[2,3,4,6,8,20,40,49,59,63,64,67,75,76,81,82,83,84,85,86,87,88,89,90,91,96,100,102,117,118,125,132,140,141,142,152,155,168,177,182,187,216,235,240,244,247,253,254,257,266,287,292,295,311,315,316,330,340,348,360,362,368,373,390,391,401,403,407,408,410,411,415,416,417,418],begin:[0,2,5,6,8,49,90,316,330,389,403,407,415,417,418],behalf:0,behav:[368,406,409,414,419],behavior:[317,391],behaviour:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,136,140,149,157,235,254,256,257,266,292,294,295,311,315,330,339,348,367,368,372,391,393,396,404,407],behind:[25,111,303,342,351,391,419],being:[0,23,29,44,54,56,58,61,65,71,75,77,91,101,117,153,164,166,172,174,177,180,182,184,187,188,201,216,229,231,234,236,240,245,258,267,269,271,275,280,281,287,294,297,315,316,317,321,325,330,333,338,344,350,351,357,360,366,367,368,369,370,371,372,383,384,385,386,391,396,399,407,408,410,417],belgium:0,believ:[0,348],belong:[23,226,269,270,286,294,310,369,392,401,404,415,418],below:[0,2,6,16,25,43,54,75,100,104,132,171,216,218,252,259,268,282,310,401,404,408,409],benchmark:[323,348,368,386,389,391],beneath:410,benefici:[0,418],benefit:[0,216,294],benjamin:0,benoit:0,beopen:0,berkelei:0,berlin:0,bespok:410,best:[0,3,6,158,407,412,413,421],beta:[0,63,391],better:[0,6,39,60,63,73,139,140,158,164,229,231,234,296,330,333,391,404,406,408,410,415,416,417],between:[0,6,19,23,40,44,46,49,54,58,63,71,75,89,90,91,97,104,105,123,127,137,139,140,143,146,153,154,157,171,174,201,210,212,216,219,224,228,231,232,234,240,253,281,292,295,319,348,368,369,391,399,401,403,406,407,409,414,417],beyond:399,bfr:229,bfr_overview:229,bia:351,big:[75,408],bigger:[0,63,218,399],bilinear:[137,160,229,368],bin:[0,2,4,5,83],binari:[0,4,13,391],binaryplugsign:315,binarysign:315,bind:[0,315,348,361,363,368,372,384,391,393],binorm:228,bit:[6,123,127,143,399,411,416,419,420],bitstream:0,black:[6,104,110,132,136,149,153,157,171,174,214,281,369,391],blackman:[153,154],blackmatov:0,blade:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295,391],bland:6,blank:[6,315,334,404,407,410,411,415],bleed:95,bleedfil:161,blend:[54,137,146,330],blender:[391,393,394],blob:0,blobbi:248,block:[63,117,118,315,348],blockedconnect:315,blosc:315,blue:[6,8,93,140,315,411],blur:[6,54,63,68,75,94,104,152,158,161,174,202,232,281,368,383,384,399,402,410],blurri:[63,75],bmp:[0,136,140,149],bmq:[136,140,149],board:0,bodi:[0,162,174],boilerpl:0,bold:[399,401,402],bolt:6,bookmark:[310,336,370,417,419],bool:[191,192,197,315,390],booldata:373,boolplug:[47,368,369,390],boolwidget:348,boost:[315,331,368,384,389],border:[104,210,212,229,231],boston:0,bot:[7,360,410,415,421],both:[0,6,33,54,63,71,75,91,124,133,148,169,172,174,188,189,229,231,234,239,280,281,294,316,321,333,348,368,391,397,402,403,404,406,407,408,409,410,415,417,418,419,421],bottom:[6,8,23,104,110,137,145,154,158,160,174,219,281,310,319,372,399,406,407,409,410,414,415,416],bounc:[54,63,75],bound:[0,6,23,54,58,63,75,105,164,165,168,177,184,187,191,192,194,197,210,218,223,227,230,232,234,244,247,252,278,287,290,299,300,351,363,368,416],boundari:[229,231,399],boundqueri:291,bowler:0,box2f:391,box2fvectordataplug:391,box2i:399,box:[6,8,27,28,45,51,54,58,105,164,165,168,173,177,184,187,191,192,194,197,204,210,218,223,227,230,234,244,247,252,278,287,290,299,300,321,338,345,348,351,362,368,371,390,393,395,402,412,413],boxin:[51,321,366],boxout:[51,321,366],boxplug:393,boxtoexport:308,brace:[396,418],bracei:0,bracket:[0,185,253],branch:[75,252,258,282,319,409],branchcreat:[354,368,369],breach:0,breakdown:409,brian:0,brief:0,bright:[75,153,154],brighter:75,bring:[0,63,155,295,404],broadli:409,broke:321,broken:[20,317,324,331,332,333,335,394,397,399,402],brought:0,brows:[4,10,97,330,388,411],browser:[16,22,316,319,330,336,357,367,370,379,384,388,393,417],bsd:0,bsdf:[6,71],bucket:63,buffer:[0,315],bufferopt:368,bug:[0,315,316,317,319,320,321,324,325,326,327,329,330,332,333,334,336,338,339,340,342,344,345,348,350,351,353,354,355,357,358,360,361,362,367,368,369,371,372,377,379,380,381,382,383,384,385,386,387,391,393,394,395,397,403,421],build:[6,21,45,101,179,311,334,399,404,415,416,419,420],builder:75,building01:402,built:[0,3,6,294,408,409,412,414,415,417,420],bulb:0,bump:[0,54,58,63],bumpi:210,bunch:406,bundl:[0,179,407],burton:0,bushel:0,busi:0,button:[0,6,8,319,324,330,332,338,356,361,372,383,386,396],buttondoubleclicksign:348,buttonev:391,buttonpresssign:[348,391],buttonreleasesign:348,buttonsign:315,bvh:75,bw:[136,140,149],bypass:409,c:[0,2,3,4,5,6,8,46,47,311,315,348,351,389,391,409,420],c_head_cpt:6,c_head_grp:6,c_torso009_ren:404,c_torso_grp:6,ca:0,cach:[10,20,63,75,136,149,179,265,266,315,335,348,365,368,385,391,408,417],cachepolici:386,cadieux:0,calcul:[6,54,63,68,104,136,138,149,155,160,174,224,228,229,231,232,259,401,407],california:0,call:[0,6,18,29,57,84,140,214,215,315,325,333,348,361,367,369,385,391,394,395,401,406,407,409,416,417,419],callback:315,caltech:0,cambridg:0,came:419,camelcas:315,camera:[8,54,56,60,62,63,71,73,74,75,164,175,176,210,218,219,242,265,280,281,291,296,308,315,332,348,355,361,362,382,388,391,392,399,402,405,410,415,416,417],camera_project:388,camerachangedsign:315,cameraflag:315,cameratweak:[174,291,386,393,401,403],can:[0,2,3,4,5,6,7,8,9,14,16,20,23,26,30,33,36,40,43,45,46,47,49,52,54,56,60,61,62,63,64,67,68,71,72,73,74,75,76,81,82,83,84,85,86,87,88,89,90,91,95,96,97,99,100,102,104,106,108,110,123,125,127,130,132,133,136,137,138,139,140,141,142,143,149,150,152,153,154,155,157,158,159,163,164,165,168,172,174,175,176,177,178,179,180,182,183,184,185,187,188,189,190,193,194,195,196,202,208,210,216,217,218,220,223,229,232,234,235,237,239,241,242,243,244,245,247,250,252,253,254,257,258,261,265,266,267,268,270,274,277,278,280,281,287,292,294,295,296,311,315,319,321,330,332,334,336,340,348,351,365,366,367,368,373,384,386,388,389,391,393,395,396,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420],cancallonuithread:391,cancel:[325,333,348,351,367,368,372,377,391],cancellabel:372,candid:47,cannot:[0,5,6,54,63,67,71,75,133,153,154,162,172,187,188,189,234,239,280,281,294,320,369,403,406,407,409,412],canonwar:0,cansetvaluefromdata:[315,335,391,393],cap:[136,140,149],capabl:[205,263,375,406,408],capac:415,capit:419,capsul:[216,288,348,384,388],captur:[20,54,58,67,68,174,219,229,281],capturedlinktyp:384,capturednam:384,capturedobject:384,capturedobjectnam:384,capturingrender:384,card:[63,270],care:[194,252,368,415],carefulli:[0,408],carri:[0,402],cass:0,cast:[54,71,75,219,370,385,395,404,410],caster:395,catalogu:[6,8,98,161,316,319,326,330,332,334,336,348,360,372,387,388,389,391,418],catalogueoutput:336,catalogueselect:[97,161,330,391],catalogueui:[348,366],catcher:[71,395],catchingcombin:315,catchingsignalcombin:315,catclark:54,categori:[368,382],categorisedtestmethod:382,catholiqu:0,catmul:[229,231],catmullclark:229,caus:[0,12,14,32,54,56,58,63,64,67,68,71,76,81,82,83,84,85,86,87,88,89,90,91,140,168,170,172,179,184,188,191,192,197,208,210,218,229,231,234,235,238,244,247,254,257,266,276,280,281,282,292,294,295,315,317,321,325,326,327,330,333,334,336,339,340,342,346,348,351,353,354,355,357,360,363,367,368,369,372,376,377,378,379,381,382,383,384,386,387,389,391,392,393,394,396,397,407,408],caustic:[71,75],cc:[0,141,142],ccc:141,cd:[3,4],cdl:[141,161,321,330],cdltransform:96,cell:[8,47,316,320,332,348,351,372,373,385,410],celldata:[371,391],center:[0,8,104,110,137,158,315],centimet:[174,401,403],centr:[0,54,137,399],central:[212,407,416,418],centric:404,centroid:228,centrum:0,certain:[0,6,21,104,219,280,347,357,366,384,394,403,407,408,409],cg:[401,403,410],ch:0,chain:[59,407],chamfer:225,champaign:0,chanc:44,chang:[0,6,36,46,50,54,63,69,79,136,139,145,149,157,165,177,178,180,184,187,191,192,197,216,217,222,229,230,231,232,234,248,265,278,287,290,299,300,310,311,319,321,324,325,326,329,332,333,334,338,340,350,353,356,360,365,366,367,370,383,385,386,387,393,394,395,396,406,407,408,409,410,415,418,420],changedsign:367,channel13:315,channel2:315,channel:[8,23,68,99,101,103,111,115,116,119,123,127,130,136,143,146,151,157,160,185,214,215,315,317,343,350,352,367,368,385,391,396,407,408,415,416],channeldata:[23,315],channeldatascop:348,channelinterpret:315,channelmaskplugvaluewidget:[348,350],channelnam:[23,315,407],channelplug:391,channelplugvaluewidget:[315,348,350],char_cow:373,char_gafferbot:373,charact:[0,36,136,140,149,185,198,245,253,259,266,302,312,330,340,351,368,372,417],characterlight:280,charg:0,chart:361,check:[6,20,63,104,110,249,267,319,348,397,404,408,409,410,412],checkbox:[310,336,373,390,397],checkerboard:161,chemeri:0,cherevko:0,chest:404,child:[6,31,33,47,85,162,163,165,211,216,227,237,243,250,274,315,319,335,368,391,402,408,415,416,417],childaddedsign:417,childnam:[23,308,416],children:[6,31,32,54,63,71,75,133,157,170,172,175,188,189,194,218,227,234,237,238,239,244,250,251,265,268,274,276,280,281,282,294,308,315,391,409,415],childtyp:393,choic:[0,39,104,174,219,257,258,281,319,403,408,417],choos:[0,6,44,49,54,75,90,153,154,174,191,192,197,205,216,217,245,254,258,315,336,384,391,396,409,411],chooser:[310,319],chosen:[40,44,47,49,90,104,150,159,171,198,214,215,227,284,362,371,391],chroma:140,chrome:63,chromium:0,chunk:0,cin:[136,140,149],cincinnati:0,cine:[136,140,149],cinematographi:401,circl:[6,401],circumst:[0,353,369],citi:[185,245,282,402],claim:0,clamp:[10,11,12,13,14,15,17,18,19,20,21,22,63,75,132,136,146,161,355,382,391],clamptofram:136,clang:383,clara:0,clarifi:[0,406,417],clark:[0,229,231],clash:23,classic:54,classifi:6,claus:0,clean:[40,49,386,394],cleanli:410,clear:[0,8,308,368],clearhashcach:368,clearli:[0,373,407],clf:141,cli11:0,cli:16,click:[0,2,4,5,6,8,47,270,316,319,321,330,332,338,348,361,367,370,372,383,389,391,395,403,406,409,410,411,414,415,418],clickabl:332,client:394,clientdisplaydriv:97,clip:[8,58,60,73,116,164,174,176,210,219,296,330,368,391,403],clipboard:420,clipboardsign:315,clippingplan:[291,416],clockwis:260,close:[0,2,4,75,356,366,383,391],closeonleav:315,closer:[155,210],closest:[177,203],closestpointsampl:[291,386],closur:[162,163,165,321],closureplug:162,cloud:394,cm:401,cmark:315,cmd:4,cn:0,cne:0,cnri:0,coars:[8,63],coat:6,code:[0,8,84,322,338,348,368,391,396,406,407,411,415,416,417,418,419,420],codewidget:[348,393,394,396],coeffici:155,colin:0,collabor:386,collaps:[6,8,26,202,310,333,368],collect:[0,5,23,40,49,51,88,97,101,104,105,179,180,286,315,362,382,391,402,404,408],collectimag:[23,39,161,362,386,407],collectnod:29,collectprimitivevari:[291,386],collectscen:[23,39,208,291,315,367,386,407,408],collecttransform:291,collet:0,collim:401,colon:[67,368,417],color1:411,color2:411,color3f:[104,310,316,319,332,395,415],color3fplug:391,color3fvectordata:335,color4:339,color4f:[104,319,340,368],color4fvectordataplug:368,color:[6,8,75,91,93,96,100,102,104,113,117,118,125,132,141,142,148,151,155,162,163,171,270,310,315,317,319,324,330,332,333,334,348,354,368,369,370,395,399,406,409,411,415],color_manag:57,color_space_linear:[324,332],color_space_narrow:[324,332],colorchoos:368,colorchooserdialogu:368,colorchooserplugvaluewidget:[380,394],colorplug:[162,165],colorplugvaluewidget:319,colorprocessor:368,colorprocessorfunct:368,colorprofil:395,colorspac:[142,161,318,368,371],colorspacepresetnam:368,colorsplin:[315,361],colorswatch:368,colortovector:391,colour:[25,43,57,58,63,91,99,100,102,103,104,125,132,136,137,138,140,151,152,158,171,212,214,215,234,270,280,310,340,368,371,395,397,411,419],colourspac:368,column:[8,47,316,319,324,326,327,330,332,334,336,348,351,360,362,373,375,383,385,386,390,392,393,395,396,399],columnnam:[47,393],columnvalu:47,com:[0,63,229,231,391,421],combin:[0,6,59,67,93,109,117,118,139,142,163,165,174,178,180,240,289,315,351,368,395,399,401,402,403,406,408,418,420],come:[0,2,32,136,140,178,216,229,233,315,401,403,407,408,411,415,416,417,419,420],comma:[67,142],command:[2,3,4,6,7,8,11,12,13,14,83,292,314,321,348,355,382,389,394,408,412,414,415,416,421],comment:[0,8,368],commerci:[0,2,64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],common:[0,5,23,188,189,202,310,313,348,351,383,399,402,403,407,409,415,418],commonli:[222,241,280,399,408],commonmark:0,commonwealth:0,commun:[0,416],comp:[12,14],compact:332,compani:0,compar:[2,5,6,40,97,147,224,295,315,316,330,333,336,403,408,410],comparecolor:[355,382],comparefloat:[355,382],comparevector:[355,382],comparison:[8,330,331,332,333,336,385],compat:[0,2,131,136,184,310,315,321,330,331,348,363,367,368,374,383,391,399,401,403,414],compel:0,compens:[54,174,406],compet:0,competitor:0,compil:[0,383,384,389,419],complet:[0,3,6,8,47,54,56,63,71,97,118,277,278,292,295,315,348,360,365,391,396,399,403,415,421],complex:[6,75,140,253,315,363,365,409],compli:0,complianc:0,compliant:[0,136,140],complic:[401,406],compon:[0,6,8,240,285,316,319,337,348,390,391,401,406,408,417,418],compos:[140,409,418],composit:[113,116,117,118,119,130,144,295,333,365,369,391,403],compound:[315,403,406,417],compounddata:[33,115,148,216],compounddataplug:[33,54,63,71,75,133,172,188,189,234,239,242,251,280,281,294,391],compounddataplugvaluewidget:361,compoundnumericplugvaluewidget:348,compoundobject:[54,63,71,75,133,172,180,188,189,234,239,280,281,286,294,372,416],compoundpathfilt:351,compoundplugvaluewidget:[341,350],compress:[0,64,224],compris:[6,406,408],compromis:[140,229,231],compulsori:23,comput:[0,6,10,11,12,13,14,15,17,18,19,20,21,22,23,30,38,40,46,49,54,63,68,123,127,138,143,160,180,194,223,225,228,252,261,268,286,303,320,325,333,344,348,351,360,363,367,368,369,372,377,386,389,391,394,399,401,402,403,407,408],computecachepolici:369,computenod:[51,367,369,385],computeviewnam:315,concaten:[180,417],conceit:404,conceiv:399,concept:[6,7,401,404,415],conceptu:399,concern:[0,408,414],conclud:417,concurr:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295,348,385],condit:[0,191,192,197,409],cone:[219,354,368,369,386],coneangleparamet:319,conf:0,config:[5,102,125,241,322,365,368,370,374,382,386,389,391,420],configenabledplug:391,configur:[0,3,4,5,7,19,102,124,142,292,318,347,348,351,366,367,368,373,395,406,415,417,420],configvalueplug:391,confirm:[6,391,410],confirmationdialogu:372,conflict:0,conform:[140,315],confus:[6,136,402,409,410,420],congratul:6,conjunct:[174,261,407],connect:[0,36,40,47,49,54,58,59,62,64,67,71,74,76,81,82,83,84,85,86,87,88,89,90,91,98,140,163,165,168,170,171,172,175,178,180,182,184,188,190,191,192,194,197,198,201,202,205,206,208,209,210,211,216,218,220,221,222,224,225,227,228,229,230,231,232,234,235,240,242,243,244,245,247,248,251,253,254,257,259,260,261,262,266,267,268,270,272,275,276,277,278,280,284,286,288,289,290,292,294,295,299,300,301,302,303,305,310,315,319,320,321,323,325,327,332,333,336,337,339,342,348,351,358,361,362,367,372,383,385,389,390,391,392,393,395,396,397,403,404,407,408,410,412,416,417,420],connectedinput:391,connectfront:315,connectioncreatorwrapp:368,connectiongadget:310,connectionplugvaluewidget:310,connector:6,consequ:[0,407,415],consequenti:0,consid:[0,40,47,56,58,64,65,67,71,76,77,81,82,83,84,85,86,87,88,89,90,91,132,140,166,169,202,214,216,223,235,236,254,257,260,266,270,271,292,295,297,315,348,385,391,402,404,407,408,414,417],consider:[0,223,408,415],consist:[0,58,210,226,315,369,370,399,404,409,415,417],consol:[63,372,414],consolid:330,consortium:0,conspicu:0,constant:[0,104,130,131,157,158,161,165,171,174,216,226,232,251,259,303,321,332,348,415],constitut:0,constrain:[8,64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,168,235,244,247,254,257,266,292,295,348],constraint:[168,210,244,247,315,323,361],constru:0,construct:[6,12,97,168,244,247,268,330,348,396,401,405,413,417],constructor:[315,330,348,368,372,391],consult:268,consum:104,consumpt:295,contact:[0,104,361,393],contactsheet:[97,105,161,391,393],contactsheetcor:[161,393],contain:[0,2,3,5,6,12,19,20,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,311,315,318,319,325,327,332,333,335,336,340,361,363,368,370,372,382,391,393,396,399,402,403,404,406,407,408,412,417,418,419],containerwidget:368,content:[0,8,19,25,104,116,119,136,149,154,174,218,219,265,281,316,327,336,368,384,402,406,409,416],contest:0,context:[12,29,31,32,34,40,43,44,46,47,49,67,81,83,84,86,91,101,104,105,140,148,178,179,180,216,243,253,257,258,267,268,277,278,292,294,308,312,314,315,321,322,325,333,334,338,347,348,353,354,359,365,366,367,368,369,370,372,376,382,386,389,391,395,406,409,412,413,416,418,419,420],contextalgo:348,contextel:[309,386],contextentri:315,contextmonitor:[383,408,412],contextqueri:[51,257,258,315,348,393],contextu:419,contextvari:[51,325,333,361,407],contextvariabletweak:[51,338],contigu:339,continu:[0,4,63,75,229,231,261,319,348,416],contract:0,contradict:0,contrast:[0,67,408],contrib:0,contribut:[0,54,63,74,75,94,225,280,303,407],contributor:0,contributori:0,control:[0,6,9,25,43,44,46,54,58,59,60,62,63,64,67,71,73,74,76,81,82,83,84,85,86,87,88,89,90,91,95,101,119,136,140,146,164,165,168,170,171,172,174,175,178,179,180,182,184,188,190,191,192,194,197,198,201,202,209,210,211,214,216,218,220,221,222,224,225,226,227,228,229,230,231,232,234,235,240,242,243,244,247,248,251,253,254,257,259,260,261,262,266,270,272,276,277,278,279,280,284,286,288,290,292,294,295,296,299,300,301,302,303,305,315,319,348,361,365,368,371,372,373,383,384,385,391,392,401,402,403,404,407,408,414,417],convei:0,conveni:[0,27,28,33,40,49,54,63,71,75,116,133,172,188,189,221,234,239,240,269,280,281,294,311,315,396,407,410,416,419,420],convent:[6,23,174,310,339,394,399,417],convers:[0,174,208,215,230,315,348,368,373,390,393,407],convert:[0,46,47,54,63,67,93,119,136,140,150,165,171,174,208,214,215,216,219,221,229,230,233,240,300,301,302,303,315,330,351,361,368,372,393,397,399,401],coon:0,cooper:0,coordin:[23,115,137,168,174,181,215,221,222,228,244,247,281,342,351,355,382,402],coordinatesystem:[291,332],copi:[0,20,47,106,107,108,157,178,179,180,182,183,184,202,216,220,259,277,278,280,330,336,386,391,407,408,409,412,414,417,418,419,420],copyattribut:291,copychannel:161,copyimagemetadata:161,copying_lbnl_hdf5:0,copyopt:291,copyprimitivevari:[291,336,386],copyright:[0,17],copyview:[161,315],core:[0,10,11,12,13,14,15,17,18,19,20,21,22,66,75,78,105,355,382,407,415,420],corner:[136,152,160,229,231,370,390,399],corpor:0,correct:[0,96,132,227,333,354,369,415,417,418],correctli:[2,174,229,338,361,369,370,391,403,410],correspond:[0,29,31,47,75,91,160,162,163,165,174,179,187,216,228,229,231,237,250,274,335,370,399,401,403,406,409,410],corrupt:63,cortex:[265,266,315,319,320,321,339,348,351,361,363,364,365,366,368,369,372,383,386,387,389,391,392,397,408,416],cosmin:0,cost:[0,63,67,75,160,216],costli:408,couch:0,could:[0,3,5,6,67,91,117,118,131,136,140,160,178,180,216,218,315,319,321,325,326,327,329,330,333,334,336,338,340,344,346,348,353,354,360,363,369,377,385,386,391,401,404,407,408,409,410,415,416,417,418,419],couldn:340,count:[0,10,11,12,13,14,15,17,18,19,20,21,22,33,54,63,64,67,71,75,76,81,82,83,84,85,86,87,88,89,90,91,114,140,172,188,189,216,232,234,235,239,254,257,266,280,281,292,294,295],counter:[0,260,315],counterclaim:0,counterintuit:399,counterpart:401,countri:[0,408],coupl:416,cours:[0,417],court:0,cover:[0,6,94,118,123,127,143,154,404,406,409,410,415,419],cox:0,cpp:348,cprofil:[10,11,12,13,14,15,17,18,19,20,21,22],cpt:6,cpu:[63,75,78,330],cpuusag:391,cr2:[136,140,149],cr3:[136,140,149],crash:[63,320,325,326,327,332,333,334,336,337,340,341,349,350,355,359,362,367,369,372,382,386,388,389,391,393,395,396,397],crawl:75,creas:[229,351,390],creat:[0,2,12,20,23,31,33,46,52,54,56,58,63,68,71,75,109,129,133,136,148,153,154,162,164,165,172,176,177,178,179,180,187,188,189,213,216,219,224,225,226,227,232,234,237,239,240,241,250,251,257,258,267,268,271,274,280,281,283,287,288,290,294,295,296,300,301,302,303,304,315,317,319,338,353,367,368,369,372,383,389,391,392,393,394,395,396,397,401,402,403,406,407,411,412,416,417,418,419],createifmiss:[32,338],creatematch:391,createplugfromdata:367,createrenderpassnamewidget:372,createswatch:397,createview:[161,315,348],creation:[0,2,6,23,267,303,315,320,342,351,368,372,389,391,411,415],creativ:[0,142],creativecommon:0,creator:404,credit:0,criteria:0,critic:408,crop:[161,174,214,215,219,281,321,387,391,399,403],cropwindowtool:[321,391],cross:[0,212,348],crucial:[401,406],crw:[136,140,149],cryptomatt:[63,71,291,396],cryptomatteaccur:391,cs1:[136,140,149],cs:[0,214,215,415],csp:141,ctf:141,ctrl:[6,8,47,320,353,360,373,393,396,409,411,414,415],ctype:0,cub:141,cube2:407,cube:[141,291,407],cubic:[234,318],cuda:[75,78,391],cull:54,curli:418,current:[2,3,5,6,8,14,20,23,31,46,47,50,63,81,83,84,97,101,105,125,136,140,150,160,178,179,180,202,210,216,217,218,229,231,232,249,251,258,280,292,309,311,315,317,319,320,321,330,334,338,340,367,368,370,383,389,390,391,393,395,401,403,404,407,409,410,417],currentfram:[81,83,292],cursor:[6,8,353,391,406,414,415],curv:[8,54,75,187,192,229,231,232,234,259,290,317,318,348,372,383,402],curvatur:54,curvesampl:[291,386],curvesprimit:[290,372],custom:[0,36,45,64,67,76,81,82,83,84,85,86,87,88,89,90,91,104,110,140,142,164,174,175,235,254,257,266,270,292,295,310,315,320,334,336,338,361,366,368,391,395,399,401,402,403,404,406,409,420],customari:0,customarili:0,customattribut:[291,361,407,416],custombookmark:417,customis:[104,148,188,189,292,310,315,368,372,391],customnod:417,customopt:[291,361,391],customrang:[81,83,292],customwidget:386,customwidgettyp:368,cut:[8,63,404,414,416],cwi:0,cyan:370,cycl:[2,6,8,71,73,74,75,76,77,78,79,319,321,332,334,337,338,339,340,341,348,350,355,360,361,368,369,382,389,391,392,393,394,410],cycleflip:348,cycleflop:348,cycleoffset:348,cyclesattribut:[80,368,391],cyclesbackground:[75,80],cycleslight:80,cyclesmeshlight:80,cyclesopt:[6,80,320,368,391,410],cyclesrend:80,cyclesshad:[80,370,371],cyclesshaderbal:80,cyclic:397,cyle:340,cylind:[319,386],cylinderlight:371,d:[0,8,47,311,320,348,409,412,416],daeschler:0,dai:0,damag:0,danger:[104,105,139,154],daniel:0,dark:348,darker:[63,132],dash:67,data:[0,4,63,67,94,95,96,100,102,110,113,115,117,119,122,123,125,127,128,132,136,138,139,140,141,142,143,149,153,154,155,157,160,174,185,215,219,228,259,277,278,281,315,317,318,332,340,345,348,350,362,367,390,391,400,402,403,405,407,415,420],databas:408,datatyp:[317,340],datawindow:[110,138],date:[0,421],date_tim:368,dave:0,david:0,dc2:[136,140,149],dcc:[6,401,402],dcr:[136,140,149],dd:[136,140,149],de:0,deadlock:[348,391],deal:[0,96,100,102,125,132,141,142,155,336,407,408],death:0,debian:0,debug:[0,63,75,281,288,334,391,414,420],debugex:391,debugg:[0,391],dec:0,decid:[0,142,225,416],decimet:174,decis:0,declar:[0,368,407,410,415,417,418,419],declaratori:0,decor:[21,348,382],decreas:[8,68,140,153,154,155],decrement:[8,353],dedic:[0,54],deem:0,deep:[96,100,102,112,113,114,115,116,117,118,119,125,126,130,132,141,142,150,153,154,155,315,368,391],deeper:408,deepholdout:[117,118,153,154,161],deepmerg:[117,118,161],deeppixelaccessor:391,deeprecolor:161,deepsampl:161,deepsamplecount:161,deepslic:[161,391],deepstat:[161,391],deeptidi:161,deeptoflat:[153,154,161],def:[308,416,417,419],default_output:391,defaultcolorspacefunct:368,defaultformat:23,defaultlight:[54,61,280,319,404],defaultrender:[64,69,76,79,217,235,254,375,376],defaultvalu:[368,386,391,416],defeat:218,defect:0,defend:0,defer:[407,408],defin:[0,6,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,310,332,348,354,365,368,369,389,395,397,399,401,402,403,407,409,410,417],definit:[0,97,142,157,354,368,369,391],deform:[211,224,229,232,280,281,389],degre:[6,99,139,151,152,158,174,240,285,338,403],del:416,delai:[338,365,372,391],deleg:391,delet:[0,6,34,40,49,120,121,122,182,190,191,192,193,194,197,198,199,240,310,315,317,321,326,334,335,348,367,372,386,391,406,408],deleteattribut:291,deletechannel:161,deletecontextvari:[51,393,408],deletecurv:[291,386],deletefac:[291,351,386],deleteglob:291,deleteimagemetadata:161,deleteobject:291,deleteopt:[193,291],deleteoutput:[193,291],deletepoint:[291,386],deleteprimitivevari:291,deleterenderpass:[291,389],deleteset:291,deletesourc:[277,278],deleteview:[161,315],deliber:[0,292,416],delight:2,delightopt:[367,391],delimit:373,deliv:[6,404,407],demand:[6,63,402],demo:0,demonstr:[3,6,91,311,372,401,407,410,411,415,417,419],deni:0,denois:[67,75,391],denser:229,densiti:[71,130,368,385],depart:0,depend:[2,4,5,17,88,89,104,174,208,210,216,248,294,315,348,368,386,391,393,396,401,403,407,408,409,414,416,417],dependencynod:51,dependsoncomput:348,deploi:418,deploy:417,deprec:[11,18,102,125,142,201,267,288,305,315,330,348,357,368,384,386,391],depth:[63,113,116,119,140,153,154,174,281,371,391,399,402,408],deregistercolumn:393,deregisterredundantvalu:386,deriv:[0,43,54,72,168,244,247,315,316,368,385,386,391,395,402,407],descamp:0,descend:[207,208,218,268,281,311,348,386,402],descendantsvis:368,describ:[0,6,25,229,286,310,399,401,402,404,406,421],descript:[0,10,11,12,13,14,15,17,18,19,20,21,22,36,64,76,81,83,132,235,254,286,292,310,336,343,348,352,387,391,401,406,407],deselect:[6,8,391],design:[0,6,47,399,401,408,409,410],desir:[0,25,117,348],desktop:[2,3,4,5],despit:[407,408],destin:[63,157,184,277,278,332,336,368,391,409,415],destinationnod:308,destinationplugnam:308,destinationwidget:391,destroi:[340,385,391],destruct:6,detail:[0,6,23,54,58,63,67,68,71,75,142,144,229,231,259,280,294,304,315,348,404,408,412,416,419],detect:[0,21,348,368],detemin:136,determin:[0,6,12,23,25,47,54,67,75,81,83,104,136,140,149,154,157,158,160,174,177,187,216,226,229,261,287,292,348,375,388,391,401,404,406,409,410,417],determinist:348,detour:416,detriment:0,dev:0,devaux:0,devel:0,develop:[0,21,401,408,419,421],developerpolici:0,deviat:[54,140],devic:[0,8,348,391],di:142,diagnos:412,diagon:361,dialog:[319,409,410],dialogu:[319,338,391,406],dib:[136,140,149],dice:[63,71],dictat:[154,403,410],dictionari:[84,216,286,372,407,414,415,416,417],did:[330,353,407,416,419],didn:[322,348,386,391,396,407,411,416],differ:[0,6,12,32,43,44,91,93,100,101,104,105,139,140,144,148,154,171,174,178,179,180,201,212,216,219,225,240,243,257,268,280,281,295,311,315,330,332,367,368,369,375,382,386,399,406,407,408,409,410,415,416,420],diffus:[54,63,67,71,75,393,399],diffuse_albedo:67,digest:407,digit:[0,253,353,391],dilat:[161,299,300,368,369],dilger:0,dim:[63,373],dimens:[174,416],dimensionless:401,dir:348,direcotri:418,direct:[0,6,58,64,69,75,76,79,95,99,123,127,143,145,153,217,221,224,235,240,246,254,257,266,295,321,330,348,361,368,391,401],directli:[0,4,6,12,24,72,75,85,97,98,136,153,162,171,179,185,208,216,229,315,321,333,348,370,408,409,411,416,419],director:142,directori:[0,2,3,4,5,6,16,23,81,83,185,236,292,310,312,348,389,391,417,418],dirtypropagationscop:368,disabl:[8,29,47,54,63,71,75,85,136,232,257,270,280,281,315,319,320,324,330,332,339,340,348,361,368,373,388,391,396,406,410],disadvantag:0,discard:[63,116,118,230,282,288],disclaim:0,disclos:0,disconnect:[8,317,348],disconnecttrackedconnect:330,discontinu:[229,231],discourag:408,discov:75,discrep:0,discret:406,discuss:[0,408],disguis:419,disk1:312,disk:[20,46,75,89,136,140,149,164,179,234,248,254,258,265,266,295,338,386,419,420],disklight:371,dismiss:5,disnei:0,dispatch:[2,14,16,20,46,92,258,348,352,355,368,382,386,389,391,407,412,417],dispatchdialogu:[356,360,383],dispatcherui:391,dispatcherwindow:391,displac:[54,58,63,71,280,391],displacement_method:332,displacementshad:383,displai:[0,6,12,17,25,36,63,94,110,136,138,139,149,154,158,160,161,171,214,215,216,231,270,280,310,315,317,324,330,332,333,338,339,345,347,348,349,351,356,357,362,366,368,369,372,373,383,384,387,390,391,407,411,412],displaycolorspac:368,displaydriverserv:97,displaygroup:373,displayhost:97,displaymod:310,displayport:97,displaytransform:[161,330,368,369],displaytransformtoframebuffershad:330,displaywindow:[110,131,138,214],distanc:[71,75,174,219,304,362,370,401,403],distant:[219,338,391],distantlight:371,distinct:[26,229],distinguish:[0,75,97,201],distort:[56,154,160,174,219,281,399,403],distribut:[0,5,63,75,91,104,261,315,368,391,419],distributor:0,diverg:[399,401],divid:[144,159,310,369,399,401,406,407],divis:[0,91,399,410,416],dl:391,dl_displays_path:348,dll:[0,4],dllayeredmateri:391,dlstandard:391,dng:[136,140,149],doc:[0,229,231],doc_resourc:0,dockabl:391,doctrin:0,document:[0,5,6,19,62,74,144,149,268,294,310,327,336,370,393,399,406,421],documentationalgo:[325,333,374,393],dodger:416,doe:[0,6,8,10,11,12,13,14,15,17,18,19,20,21,22,31,36,63,117,118,136,140,149,150,157,159,168,169,173,184,185,205,207,218,229,231,232,244,245,247,250,267,268,274,285,338,340,401,402,403,404,406,407,408,416,418,420],doesn:[0,46,54,63,68,157,168,179,191,192,197,210,244,247,294,303,315,338,343,352,373,391,404,407,408,410,411,416,419],dolli:[6,8],domain:[0,421],dome:0,domelight:371,don:[0,46,64,67,76,81,82,83,84,85,86,87,88,89,90,91,132,140,231,235,254,257,266,292,295,310,365,369,410,416,417,419],done:[153,212,234,267,411,419],donor:0,dot:[0,8,51,321,328,337,347,348,366,409],doubl:[0,4,6,47,316,319,361,368,406,409,410,411],doubt:411,down:[2,6,8,20,47,75,153,154,353,391,401,402,403,404,406,407,410,417,418],download:[0,3,4,5],downscal:[153,154],downstream:[8,32,60,62,64,67,73,74,76,81,82,83,84,85,86,87,88,89,90,91,136,139,140,164,174,202,216,235,254,257,258,266,292,295,296,365,384,396,401,403,404,407,408,410],downward:[20,399],doxygen:0,dpdu:54,dpdv:54,dpx:[136,149],dr:0,draco:0,drafter:0,drag:[8,315,317,319,321,330,332,333,334,353,358,361,368,372,373,385,386,389,391,392,395,403,406,409,411,414,415,416],dragbeginsign:315,dragdropev:391,dragdropsign:[315,391],dragentersign:389,dragleavesign:389,dragmovesign:[389,391],dramat:[216,404,408],draw:[8,25,60,73,151,164,174,212,234,296,315,332,338,384,391,397],drawingmod:384,drawmod:368,drawn:[25,234,354,368,369,391],drf:[136,140,149],drive:[0,6,40,47,49,91,113,131,138,140,163,174,178,180,214,225,286,294,330,391,406,407,409],driven:[110,179,214,216,391,407],driver:[0,348,362],driverclos:387,drivertyp:97,drolon:0,drop:[0,2,6,8,104,152,158,315,319,351,358,385,389,391,392,395,403,406,415],dropdown:[315,330,384],dropsign:389,dsc:[136,140,149],dso:63,dual:0,dubost:0,dudfield:0,due:[0,318,351,403],dull:63,duplic:[8,202,291,315,320,325,330,333,347,348,366,368,371,374,388,391,397,407],dupligener:391,dupliuv:391,durat:8,dure:[0,8,14,20,23,63,67,216,229,230,315,330,335,351,369,383,386,387,396,399,401,403,407,409,410,412,417,420],dwaa:140,dwab:140,dyld_library_path:85,dynam:[6,33,54,63,71,75,101,133,148,172,179,188,189,234,239,280,281,294,357,384,391,416,420],e:[0,8,311,338,389,399,401,402,403],each:[0,6,10,11,12,13,14,15,16,17,18,19,20,21,22,29,31,33,40,43,44,47,49,54,59,63,67,71,75,84,91,100,101,104,105,113,114,119,130,139,140,154,171,172,174,179,188,189,215,216,218,226,227,229,232,234,237,239,243,250,253,256,257,259,260,261,267,270,274,277,278,280,281,284,292,294,303,315,316,332,335,348,373,375,390,391,392,399,401,402,403,404,407,408,409,410,412,414,415,416,417,418,419,420],ear:6,earli:[0,6,319],earlier:[0,6,330,388,401,407,408,415,417,418,419],eas:[6,394,419],easi:[47,310,401,409,417],easier:[0,6,60,73,136,164,174,234,244,247,296,401,410,411,417],easiest:409,easili:[348,409,410,411,418,419],echo:[2,5],edg:[6,54,67,174,210,219,224,225,229,231,281,310,321,368,386,399,406,409,410,415],edit:[5,8,15,23,47,69,79,82,157,162,216,267,317,319,320,332,348,360,366,367,368,369,370,371,372,380,389,390,391,394,395,397,408,409,410,411,413,414,418,420,421],editablescop:348,editingfinishedsign:396,editmenu:[347,366],editor:[2,5,23,310,316,317,319,320,321,324,332,336,338,339,348,351,361,362,370,371,372,383,385,389,391,392,396,402,403,410,411,412,416,417,418,419,420],editor_:417,editori:0,editscop:[8,51,321,333,348,353,366,372,391],editscopealgo:[348,367,370,372],editscopeplugvaluewidget:397,editscopeui:[353,391],edu:0,effect:[0,6,12,35,54,56,61,89,91,100,104,117,118,139,154,160,164,174,178,180,231,260,281,284,311,315,322,325,333,353,401,403,404,407,408,409,414],effici:[6,75,407,416],effort:[0,401],eg:270,egg:315,either:[0,8,12,33,43,44,68,97,104,110,130,136,174,215,228,242,253,259,274,280,290,303,321,334,360,391,401,403,406,407,408,409,415,416,419],elabor:0,electron:0,eleg:348,element:[0,8,309,311,315,319,332,386,406,415],els:[0,309,368,404],elsewher:[4,5,218,315,331,383,409],embed:0,embre:[348,391],emiss:[71,74,164,338,396],emissionsamplingmethod:368,emit:[58,315,330,348,351,357,367,384,396],emploi:[403,407,417],employ:0,employe:0,empti:[6,60,61,66,67,68,71,73,78,104,136,140,149,158,161,164,174,176,181,186,201,204,212,214,215,226,233,246,253,263,265,272,273,279,283,296,304,315,325,332,333,348,350,360,367,368,372,382,383,390,391,407,417,418],emul:284,enabl:[0,6,8,20,85,104,257,310,319,330,332,336,348,353,354,369,373,386,388,391,397,403,406,410,414,416],enabledexpress:361,enabledrownam:315,enabledrownamesconnect:315,encapsul:[216,288,291,377,384,386,387,388,389],enclos:[0,210,409],encompass:409,encount:[63,261,335,364,408],encourag:[0,36],end:[0,5,6,23,75,81,83,91,130,151,153,171,187,216,253,258,292,308,309,316,353,386,391,404,407,410,415,418,419],endang:0,endors:0,energi:[0,63],enforc:[0,46],eng:0,engin:[0,235,407,417],enhanc:[0,410],enjoy:0,enlarg:[54,153],enough:[54,58,68,75,104,409,416],ensu:407,ensur:[0,43,44,54,64,67,76,81,82,83,84,85,86,87,88,89,90,91,118,140,174,235,254,257,266,281,292,295,315,391,408,409],enter:[6,8,171,267,316,319,321,336,372,373,391,411,414,415],enterleavesign:315,enterpris:0,entertain:0,enthusiast:421,entir:[0,20,99,105,133,151,158,208,229,231,253,407,408,409,416],entireti:[0,407],entiti:0,entri:[5,12,14,20,107,121,133,185,216,268,310,330,332,367,374,391,407,416,417,418],enu:63,env:[11,16,18,83,136,140,149],environ:[2,6,13,16,18,83,85,102,148,158,236,283,292,312,319,348,351,365,372,391,393,409,418],environment_textur:[6,371],environmentcommand:391,epfl:0,equal:[116,215,225,381,397,399],equip:0,equival:[0,5,6,22,54,147,174,182,184,216,240,348,377,393,401,402,408,410],eras:414,erf:[136,140,149],eric:0,erod:[161,299,300,368,369],error:[4,12,14,32,54,63,83,104,117,118,128,157,168,170,184,191,192,197,210,216,238,244,247,276,315,316,318,319,320,321,322,324,332,334,335,336,340,341,343,346,347,348,350,352,360,363,364,366,367,368,369,372,376,386,388,389,391,394,396,404,407,414,415],errorsign:315,esc:[357,360,384],escap:[8,312],especi:[0,179,411],essenti:[0,211,407,415],establish:407,estim:[63,71,75,408],etc:[0,175,218,234,265,280,391,399,401,403,404,407,409,415,417],etud:0,euler:240,evalu:[6,20,43,44,50,56,101,122,178,179,180,202,216,218,243,259,261,305,311,315,321,338,353,365,376,386,391,395,407,408,411,414,417],evan:0,even:[0,2,6,149,153,201,208,231,232,310,315,330,401,404,408,409,410,416,417],evenli:[54,91,104,261,415],event:[0,75,348,391,417],eventsignalcombin:369,ever:[0,110,284,330],everi:[0,5,6,63,67,75,78,104,119,136,175,216,372,401,402,403,404,407,408,417,418],everitt:0,everyon:0,everyth:[6,67,75,78,116,225,368,404,408],everywher:71,evil:[0,404],evoc:404,exact:[0,54,174,207,210,232,407,414,417],exactli:[2,5,91,116,137,140,154,227,229,231,232,270,368,407],examin:[6,10,11,12,13,14,15,17,18,19,20,21,22,407,416],exampl:[0,2,3,6,8,12,13,14,23,43,44,54,63,67,71,75,78,83,104,137,142,172,174,178,180,188,189,226,228,229,234,241,243,268,277,278,286,294,310,312,351,361,368,370,372,391,399,401,402,407,408,410,414,415,416,417,418],exce:[10,11,12,13,14,15,17,18,19,20,21,22,64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],exceed:91,excel:[408,410],except:[0,62,74,136,149,162,229,315,316,317,330,366,369,386,387,389,391,396,401],excess:[68,336,357,384],exchang:0,exclud:[0,21,61,116,215,281,330,348,368,382,383],excludedcategori:382,exclus:[0,348,368,373,383,391,392,404],excus:0,execut:[0,2,3,5,12,13,16,18,19,20,23,64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,163,165,235,254,257,266,292,295,311,368,386,391,393,407,415,417,420],executablepath:348,executefil:348,executeselect:391,exemplari:0,exercis:0,exfat:385,exhibit:0,exif:399,exist:[0,6,8,12,26,31,52,59,63,97,107,110,133,136,149,157,168,173,175,184,185,191,192,197,207,210,223,229,242,244,247,249,250,258,267,274,275,285,303,310,315,316,317,330,332,335,337,338,340,342,343,348,351,352,361,362,365,368,373,389,391,394,395,401,404,407,409,410,411,414,415,416,417,418,419],existencequeri:291,exit:[321,391],expand:[6,8,94,95,123,127,139,140,143,153,216,259,288,310,348,368,407,409,410,418,419],expanddescend:348,expandedpath:348,expandnonleaf:368,expandsplineparamet:315,expandtoselect:368,expandvar:[418,419],expans:[348,368,409],expat:348,expect:[0,6,141,216,319,383,391],expectedfailur:348,expens:[140,194,208,216,227,252,257,348,408],explain:[0,370,406],explan:[0,132,229,231,320],explicit:[0,91,216,368],explicitli:[0,10,11,12,13,14,15,17,18,19,20,21,22,311,315,357,367,384,407,409],exploit:0,explor:[4,6,404,411,416],exponenti:408,exportextens:348,exportforrefer:[308,348],exportnod:391,exportnoderefer:374,exportnodeui:391,expos:[26,149,160,338,361,388,391,420],exposur:[6,330,368],expres:253,express:[0,23,33,46,47,51,54,60,62,63,64,67,71,73,74,75,76,81,82,83,84,85,86,87,88,89,90,91,131,133,140,148,164,172,178,179,180,188,189,234,235,239,253,254,257,258,266,268,280,281,292,294,295,296,313,315,317,325,332,333,348,361,367,368,369,372,373,386,391,392,396,399,404,409,410,411,414,417,420],expressli:[0,404],exr:[6,13,67,136,140,149,312,315,391,395],extend:[0,8,47,154,214,215,348,391,409,417],extens:[0,16,64,68,76,136,140,141,149,158,185,265,266,283,295,310,336,370,391,393,420],extensionalgo:[348,391],extensionslabel:[310,370],extent:[0,219,279],exterior:[301,303],extern:[0,6,27,28,68,89,95,123,127,143,153,204,265,325,333,389,391],externalprocedur:291,extra:[67,75,104,160,174,216,219,281],extraattribut:286,extract:[3,5,98,131,185,216,282,302],extrapol:348,extrapolationchangedsign:348,extrapresetnam:368,extrapresetvalu:368,extrem:[75,153,154],extrus:0,ey:404,f11:8,f2:8,f:[6,8,46,174,281,368,373,401,403],fab:144,face:[6,15,54,63,67,165,218,225,226,227,229,231,259,260,261,286,339,369,370,402],facebook:0,facet:[54,225,369],facevari:[168,225,230,244,247,259,290,369],facevaryinglinearinterpol:392,facevertic:225,facil:[0,406],fact:[0,6,218,401,407,415],facto:0,factor:[54,68,75,401,403,408],factori:391,factual:0,fade:396,fail:[0,104,315,318,391,404,409],failedjob:391,failur:[0,21,177,187,287,315,325,333,348,368,387,391],fair:0,fairli:[67,403,410,415,417],faith:0,fall:[0,190,322,409,410],fallback:[23,142,322,351,388,389,401,407,409,410],falloff:75,fals:[47,104,136,169,171,187,203,207,227,257,280,310,391,404,417],falsecolor:171,famili:[0,368],familiar:[2,7,16,399,402,403,404,415,421],faq:0,far:[6,67,116,168,174,176,210,408,414,415],farm:[14,63,412],farther:210,fast:[0,75,160],faster:[54,71,75,116,123,127,143,234,368,369,388,406],fault:0,favor:0,favour:[305,386],featur:[0,6,63,75,164,229,408,409,412,416],februari:0,feder:0,fee:0,feedback:319,feel:6,fetch:275,few:[67,75,78,404,409,411,415,419],fewer:[0,54,216,300,408],fff:[136,140,149],field:[0,6,8,63,174,219,268,281,304,370,411,414,415],fifth:0,fifti:0,figur:[327,336,399,401,407,409],file:[0,3,4,5,6,10,11,12,13,14,15,16,17,19,20,21,23,26,45,46,63,64,67,68,76,81,83,89,97,136,140,141,149,153,154,158,179,185,235,236,241,254,265,266,283,292,295,310,315,318,320,325,330,333,335,336,340,346,348,351,360,361,363,364,365,366,367,368,370,373,379,384,386,389,391,393,395,406,407,410,417,419,420],filebrows:370,filenam:[6,20,63,67,91,348,365,383,389,391,402],filesequencepathfilt:348,filesystem:[348,406,408,418],filesystempath:[310,330,336,348,370,385],filesystempathplugvaluewidget:370,filesystempathvectordataplugvaluewidget:310,filetransform:141,filetyp:402,filevalid:[104,368,391],fill:[67,94,104,154,174,219,281,403,407,409,410],film:[142,174,401,403],filmfit:403,filter:[0,61,63,75,95,119,123,127,143,145,147,206,245,268,281,289,291,336,348,351,362,367,368,369,370,382,386,389,391,395,402,403,404,407,409,415,416],filtercategori:382,filteredsceneprocessor:[205,206,245,268,289,291,348],filterprocessor:291,filterqueri:[291,329,338],filterresult:291,filterwidth:395,find:[0,5,6,7,98,177,229,231,383,392,400,403,404,405,406,416,421],findal:383,findallwithattribut:383,finddestin:348,finder:[2,3,4,5],findsourc:382,fine:[8,68,95,280],finer:[54,234,386],finish:[410,417,419],fire:[56,417],firefli:63,first:[0,3,7,8,21,23,39,40,47,49,54,58,63,67,75,78,90,101,104,107,140,146,175,179,185,187,206,207,216,223,228,232,269,289,295,310,325,333,348,362,368,369,373,391,399,401,402,406,407,408,409,410,415,417,418,419],firstedg:[228,368],firstli:416,fis_filt:[342,351],fit:[0,6,8,100,105,136,149,154,158,174,210,219,227,232,281,316,385,401,403],five:6,fix:[0,6,63,83,104,130,160,174,210,232,310,329],flag:[54,130,368,416],flat:[54,75,103,112,113,116,117,119,128,129,130,153,154,225,315,348,403],flatimageprocessor:[161,391],flatimagesourc:161,flatten:[111,113],flattodeep:161,flaw:330,fletcher:0,flexibl:[6,36,403,408,415],flicker:350,flip:[145,260,401],float4:339,floatplug:[162,165,390],floatsplin:[315,361],floatvectordata:[115,240],floor:0,flop:145,flush:335,fly:[12,69,79,217,311,411,419],fmt:348,focal:[174,401],focaldist:401,focallength:[401,416],focallengthworldscal:401,focu:[6,47,174,270,330,332,339,357,384,401,403],focus:[6,407,409,410],focuss:[325,333,388],fog:[75,130],folder:[2,3,5,63,418],follow:[0,2,5,6,7,8,13,16,23,40,47,50,63,81,83,97,104,132,136,140,144,174,185,214,215,216,219,229,253,281,292,295,310,311,315,330,332,348,370,383,386,391,399,401,404,406,407,408,411,412,415,416,417,418],font:0,fontconfig:0,foo:83,foot:401,footnot:0,forbid:0,forc:[136,149,153,229,231,265,368],forcemonitor:315,forego:0,foreground:371,foreshorten:403,fork:409,form:[0,16,97,101,168,212,240,244,245,247,275,351,383,395,399,401,406,416],formal:408,format:[0,6,12,20,23,47,63,66,67,78,136,139,140,149,174,253,265,266,315,348,351,391,401,403,406,410,415,418,420],formatplug:131,formatplugvaluewidget:[315,348],formatqueri:161,former:0,formula:[50,96,132,401],fortner:0,forward:[8,174,360,396,407,419],found:[0,14,40,47,75,78,153,208,315,351,368,387,388,393,409,415,416,417],foundat:0,four:[137,138,401,410,419],fov:174,fp:315,fraction:[95,137,160],frag:236,fragment:407,frame:[6,8,23,43,44,50,54,63,64,67,75,76,81,82,83,84,85,86,87,88,89,90,91,139,140,149,168,174,185,210,216,219,228,235,244,247,254,257,266,281,292,295,303,309,312,321,348,362,367,368,391,403,407,409],framebuff:330,framemask:[92,391],framer:46,framerang:[12,23,308,391],framespersecond:[23,309],framework:[2,393],framingconstraint:[291,362],franc:0,francisco:0,francoi:0,franklin:0,free:[0,6,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,403,410,415,421],freedom:[0,403],freeglut:0,freeglut_copi:0,freeimag:0,freeli:0,freewar:0,freezetransform:291,frei:0,frequenc:210,frequent:[0,315,408],fresh:315,frob:0,from:[0,2,4,5,6,8,10,12,14,20,23,29,31,32,33,34,43,44,46,47,54,56,58,60,61,63,67,69,71,72,73,75,77,79,83,84,85,91,94,96,97,101,102,104,106,107,108,112,120,121,122,124,130,133,136,137,138,140,148,149,155,156,160,162,163,164,165,168,171,172,174,175,177,178,179,180,182,183,184,185,187,188,189,190,191,192,193,195,196,197,198,199,201,215,216,217,223,224,229,231,233,234,236,237,239,240,244,247,250,252,253,254,257,258,261,265,267,269,270,274,275,280,281,282,286,287,294,296,297,300,302,309,311,315,316,317,319,320,321,323,325,329,330,332,333,334,335,336,338,340,344,346,348,351,355,356,357,358,360,362,363,365,366,367,368,369,370,372,373,377,382,383,384,385,386,387,389,390,391,392,393,394,395,396,399,401,402,403,404,406,407,408,410,411,412,415,416,417,418,419,420],front:[116,117,118,260,315,391,404],frugal:415,frustum:[63,210,234,401,403],fsf:0,fstop:401,ftl:0,ftp:0,fulfil:[0,419],full:[0,6,12,15,63,81,83,85,115,154,158,174,181,214,274,282,292,330,348,391,399,404,407,409,410,417],fullattribut:308,fullest:0,fulli:[6,8,117,118,348,369,401],fullrang:[81,83,292],fullscreen:8,fulltransform:[308,416],fundament:[6,401,406,413,415],furnish:0,further:[0,6,16,142,310,407,409,410],furthest:399,futur:[0,267,315,319,321,330,348,383,410],g:[0,8,99,103,151,157,160,308,338,399,401,402,416],gadget:[315,320,361,368,391],gadgetsat:348,gadgetwidget:368,gaffer:[0,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,40,46,47,49,53,54,55,59,83,85,96,100,102,106,107,108,120,121,122,125,132,136,140,141,142,148,149,150,155,159,162,165,177,182,183,184,185,187,190,193,195,196,198,199,216,218,220,222,231,245,259,260,261,265,266,268,280,287,292,294,295,302,307,310,311,312,315,321,330,334,336,339,340,342,348,351,358,360,361,365,368,370,372,373,377,382,384,391,394,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420],gaffer_app_path:16,gaffer_debug:391,gaffer_debugg:391,gaffer_reference_path:371,gaffer_root:[6,241,417,418,419],gafferarnold:[2,307],gafferbot:[6,404,417],gaffercortex:[233,378,392],gaffercycl:307,gaffercycles_feature_preview:319,gaffercycles_hide_ui:2,gafferdelight:2,gafferdispatch:[12,307],gafferdisplaydriv:97,gafferhq:[0,310,315,348,421],gafferimag:[97,153,307,321,322,361],gafferimagetest:[21,391],gafferimageui:[330,336],gafferobject:361,gafferosl:307,gafferosl_use_batch:348,gafferscen:[21,233,307,373,415,416],gafferscene_scenereader_object_cachepolici:365,gafferscene_scenereader_set_cachepolici:365,gafferscene_scenereader_setnames_cachepolici:365,gafferscenetest:348,gaffersceneui:[373,384,395],gaffertest:[348,391],gaffertractor:[307,391],gaffertractortest:391,gafferui:[308,310,348,355,368,382,418,419],gafferuitest:361,gafferusd:307,gaffervdb:307,gaffi:[6,404,417],gailli:0,gain:0,gamma:[330,368],gang:[8,362],gap:104,gate:[174,219,281,403],gatewai:416,gather:[20,286],gaussian:95,gave:[0,416],gcc11:391,gcc:[315,391],gear:0,gener:[0,16,19,20,23,24,43,44,45,63,64,66,68,76,78,89,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,139,141,142,143,144,145,146,147,149,150,151,152,153,154,155,156,157,158,159,160,162,163,179,185,202,216,218,225,235,254,261,263,266,267,270,273,281,300,315,331,336,348,354,361,368,369,373,374,385,388,389,391,395,399,402,407,408,410,411,412,419],generatefilenam:348,generic_str:348,geograph:[0,408],geometr:[60,73,164,174,234,260,296],geometri:[8,54,60,62,71,73,74,75,164,176,204,243,294,296,323,332,370,401,402,404,407,408,411,416,417],geomparam:321,germani:0,get:[0,43,44,61,63,84,136,146,218,229,231,309,351,367,385,386,407,416],getattribut:165,getblock:315,getcurrentconfig:368,getdisplaytransform:368,geterror:[315,368],getexpandedpath:348,getfocu:308,getfram:[46,309],getframerang:308,getframespersecond:309,getinput:308,getlay:368,getnam:308,getnumericbookmark:308,getobjectvalu:391,getpostprocessshad:368,getreadonli:348,getselect:396,getsizemod:348,gettabvis:368,getter:330,gettim:309,getvalu:[308,368,391,407,415,416,417,419],getvalueasdata:[367,391],getvisibleset:348,gfr:[12,14,16,19,20,46,308,315,351,420],gi_diffuse_depth:348,gi_specular_depth:348,giampaolo:0,giant:404,gil:[315,327,329,336,338,378,392],gill:0,github:[0,391,421],give:[0,6,63,68,71,75,139,152,153,174,216,225,229,240,406,407,408,410,415,418],given:[0,27,28,32,54,63,140,149,174,201,229,249,261,270,274,305,321,403,407,408,409],gl:[0,234,261,305,368],glass:[54,93,268,315],gle:0,gle_copi:0,glenn:0,glibc:[391,395],glitch:[315,317,391],glitchi:339,global:[6,52,53,55,59,63,72,75,174,179,193,195,196,199,217,223,237,254,255,257,258,281,308,361,375,376,384,387,389,394,395,396,399,401,407,416,418,419,420],gloss:6,glossi:[71,75],glsl:[234,236],glwidget:[368,369],glyph:0,gmail:0,gmx:0,gnome:0,gnu:0,go:[2,3,4,5,6,67,132,315,391,408,409,410,415,417,419],goal:[0,6,218,404,408],gobo:[355,382],goe:[6,418],goetghebu:0,good:[0,43,44,68,225,281,411,416],goodwil:0,googl:0,googlesourc:0,got:416,govern:0,gpl:0,gplv2:0,gplv3:0,gpu:[63,75,315,330,348,391],grab:[19,415,417,419],gracefulli:408,grade:[142,161],gradient:[151,228],gradual:130,grai:348,grain:[280,386],grammar:0,grandchildren:[218,409],grant:0,granular:417,graph1:408,graph2:408,graph:[2,15,20,23,26,27,28,36,48,63,83,138,179,258,319,320,321,333,362,365,367,368,389,391,392,399,401,402,407,410,411,412,414,416,417,418,421],graphcompon:[315,368,391],grapheditor:[319,320,321,325,333,357,361,384,389,391,392],graphgadget:391,graphic:[0,15,63,229,231],grati:0,graze:71,great:[408,410],greater:[0,44,67,116,140,155,174,279,281,316,323,340,351,401,403],greatest:0,greatli:407,green:[0,8,56,140,328,337,348,391],greg:0,gregcouch:0,grei:406,greyscal:58,grf:[308,325,333,360,406,419,420],grid:[104,291,368,399],gridplug:368,grossli:0,ground:6,group1:416,group:[0,6,74,140,179,216,243,270,291,315,319,368,373,387,391,392,399,404,406,408,414,415,416],grow:399,grp:6,guarante:0,guess:[136,416],gui:[0,10,16,241,315,322,342,351,389,417,418,419,420],guid:[0,63,75,294,351,368,421],guidelin:408,guido:0,gz:[3,64],gzip:0,h:[0,8,315,348,353,368],ha:[0,2,4,5,6,8,11,12,13,23,40,46,47,63,67,71,91,104,130,136,147,149,154,158,164,165,174,177,184,185,187,191,192,194,197,202,210,216,223,224,229,230,231,234,253,260,265,274,277,278,287,290,294,299,300,305,311,315,316,322,323,330,335,348,357,360,361,368,369,383,384,391,396,399,401,402,403,404,406,407,408,409,410,411,415,416,417,418,419],hack:0,hacker:0,had:[6,231,342,348,351,361,362,368,391,403,408,416],haddon:0,hair:[54,75],hairshap:391,half:[0,99,116,131,333,354,369,409,414,415],hamelryck:0,hammerslei:0,hand:[6,174,228,407,420],handi:[415,419],handl:[0,6,54,63,71,75,133,136,149,172,188,189,216,234,239,275,280,281,294,315,317,319,321,325,332,333,337,340,348,351,357,360,366,367,368,369,370,372,376,383,384,389,391,394,395,396,397,407,408,409,414],handleexcept:[383,391],handler:[292,391],hang:[329,338,348,367,378,386,391,392],happen:[0,407],happi:0,hard:[54,225,366,407,416],hardcod:[275,391],hardwar:[10,11,12,13,14,15,17,18,19,20,21,22,75,355,382],harmless:0,harri:[153,154],hash:[20,216,315,348,354,365,368,369,386,396],hashcachetotalusag:315,hashcolordata:368,hashcolorprocessor:368,hashviewnam:315,hat:0,have:[0,2,3,4,5,6,7,13,23,35,40,43,44,49,54,61,64,67,68,75,76,78,81,82,83,84,85,86,87,88,89,90,91,104,117,118,122,130,137,139,140,150,153,159,160,168,174,181,201,216,223,224,226,230,231,232,234,235,244,247,254,257,266,268,281,286,290,292,294,295,303,315,317,333,348,353,368,374,377,383,386,387,391,401,402,403,404,406,407,408,409,410,414,415,416,417,418,419,421],haven:[0,61,229,410,417,418,419],hazard:348,hd:399,hdf5:315,hdf:0,hdfgroup:0,hdl:0,hdr:[0,136,140,149],hdri:6,he:0,head:6,header:[0,315,345,348,360,362,367,391,409,410],headerdata:391,heavi:[160,348,365,368],height:[154,174,281,319,338,351,399,401,407,409],heir:0,held:0,hello:415,help:[0,6,16,63,268,319,391,399,403,404,406,408,409,410,411,412,416,417,418,419],helpfulli:415,henc:0,henri:0,here:[0,6,7,9,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,400,404,405,407,408,409,410,411,413,415,416,417,418,419],herebi:0,herein:0,hereinaft:0,hereof:0,herv:0,heurist:136,hi:0,hid:[319,338,348,366],hidden:[6,111,180,310,324,330,332,348,360,368,379,391,393,409],hiddenfilepathfilt:[379,393],hide:[2,8,54,71,111,164,310,390,394,409],hierachi:402,hierarch:[0,185,208,245,263,351],hierarchi:[179,202,211,216,243,244,245,252,261,262,288,294,311,373,392,401,404,407,408,409,414,415,419],hierarchyview:[339,348,367,368,389,391],high:[54,63,67,75,140,153,202,210,315,333,357,384,408],higher:[44,63,75,140,229,304,391,403],highli:[6,403,404,415],highlight:[6,63,75,100,104,330,370,391,394,396,399,401,402,404,414],hint:396,hirsch:0,histor:0,histori:[0,315,319,321,372,386,389],historyidcontextnam:315,hit:[6,8,67,401,403,404,406,411,414,415],hold:[0,6,8,47,48,59,104,136,149,221,226,243,261,305,370,391,392,406],holder:0,holdout:[54,71,392],holkner:0,holmgren:0,home:[0,8,312,418],homepag:0,hook:417,hope:[0,419],hopefulli:[411,416],hopper:0,horizont:[104,153,154,174,219,281,316,355,382,401,403],horizontalpass:153,host:[6,97,295,421],hotkei:[8,324,332,339,360,391],houdini:[0,370],houdini_href_:0,houdini_html_:0,houdini_html_u:0,hous:[185,245,282,408],hover:[6,8,332,406],how:[0,3,5,6,7,54,60,63,64,67,73,75,76,81,82,83,84,85,86,87,88,89,90,91,101,104,117,118,120,122,136,140,149,154,164,174,179,199,202,210,216,219,224,225,228,234,235,240,254,255,256,257,261,266,281,292,295,296,336,369,370,399,400,401,403,404,405,406,407,408,409,410,411,415,416,417,420,421],howev:[0,3,6,36,75,117,118,401,408,414,415,417],hpp:0,hsv:43,html:[0,229,231,325,333],htoa:391,http:[0,63,229,231,310,391,421],hue:411,huge:216,hugunin:0,human:0,humphrei:0,hundr:[407,408],hydra:391,i:[0,8,340,366,370],ia:[136,140,149],ibm:0,icc:141,icm:141,ico:[136,140,149],icon:[6,8,310,320,325,330,332,333,336,357,362,372,384,391,397,419],iconpathcolumn:391,id:[54,168,185,244,247,315,383,388],idea:[0,411],ideal:401,ident:[47,213,216,280,315,357,384,386,391,401,403,415],identif:0,identifi:[0,315,339,381,386,397,399],identifii:104,idforpath:315,idlesign:315,idsforpath:315,ie:54,iecor:[20,33,54,63,71,75,133,148,172,188,189,208,234,239,280,281,294,368,373,384,389,391,407,414,415,416,417],iecore_font_path:[158,283],iecoregl_shader_path:236,iecorescen:[54,71,172,188,234,280,294,315],iecorescenepreview:315,iedisplai:97,ieee:0,iff:[136,149],ignor:[12,14,32,63,64,67,75,76,81,82,83,84,85,86,87,88,89,90,91,107,139,140,157,170,210,216,235,238,243,244,247,253,254,257,261,266,276,292,295,303,354,367,368,369,383,388,409,419],ignoredatawindow:315,ignoreincompat:336,ignoremessag:368,ignoremissingsourc:391,ii:0,iii:0,iiq:[136,140,149],ijg:0,ikit:0,illinoi:0,illumin:[54,60,62,63,73,74,164,280,296,351,404],illustr:[311,404],ilm:0,ilmbas:0,ilmimf:368,imag:[0,10,56,63,66,67,75,78,93,94,95,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,163,174,185,219,241,266,273,280,281,310,312,315,316,317,321,322,325,330,332,333,334,336,338,342,348,350,351,360,362,368,369,370,371,373,382,385,386,387,389,391,393,394,396,397,401,402,403,407,411,414,415,416,418],image_textur:[6,337,371],imagealgo:315,imageengin:[0,378,392],imagegadget:[330,391],imagehash:315,imageinspector:391,imagelist:366,imagemetadata:161,imagenam:[336,391],imagenod:[20,161,315],imagenodetest:21,imageplug:[20,315,330,348,391],imageprimit:391,imageprocess:163,imageprocessor:[161,391],imageread:[6,104,149,161,315,318,343,352,367,368,389,391,399],imagesampl:[161,369,383],imagescatt:[291,385],imagestat:[161,391],imagestatsui:391,imagetestcas:[315,391],imagetopoint:[291,351],imagetransform:[145,147,161,368,383,389],imageview:[324,330,332,336,368],imagework:0,imagewrit:[12,14,161,315,317,368,399,407],imagewriter1:12,imagewriter_dailyoverlai:407,imagin:407,imaginari:311,imath:[310,368,391,415,416,417],imcompat:336,imit:409,immedi:[6,326,334,396,408,409],impact:[160,330,391,404,408],implement:[0,174,229,265,266,315,320,348,361,368,369,391,401,404],impli:0,implic:408,implicit:[368,417,419],implicitli:419,importancesamplefilt:391,importfil:348,impos:0,imposs:[0,339,365],improv:[0,63,68,75,147,180,193,216,218,330,407,408],in0:6,in1:[6,416],in2:[6,416],inabl:0,inaccur:[0,63,396],inaccuraci:[0,421],inadvert:315,inappropri:396,inc:0,incandesc:150,inch:403,incid:401,incident:0,includ:[0,2,6,20,23,29,60,61,63,68,73,82,95,97,104,115,116,123,127,139,140,143,153,164,174,176,181,186,204,212,213,214,215,216,232,233,240,246,253,279,281,282,283,286,296,297,304,315,319,324,330,332,354,357,368,369,373,382,383,384,386,389,391,395,396,402,404,406,409,410,414,417],includedpurpos:[373,384,391],includerol:368,includesequ:310,inclus:[0,348,368,373,383,392,404],incom:[40,49,107,133],incompat:0,incomplet:391,inconsist:[324,332,354,369,386],incorpor:[0,399,417,418],incorrect:[332,393],incorrectli:[67,136,321,383],increas:[8,54,63,67,68,71,75,130,155,210,216,219,301,303,338,366,391,399,408,415],increment:[8,75,91,136,147,149,265,353],incur:0,indefinit:348,indemn:0,indemnifi:0,indent:8,independ:[0,6,8,47,95,99,123,127,140,143,315,357,384,389,399,402],index:[23,29,40,47,67,91,97,104,105,123,127,143,187,216,226,227,309,310,315,330,332,361,386,391,415],indic:[0,6,40,46,49,67,187,191,192,197,226,270,275,332,333,339,348,368,373,386,391,392,397],indirect:[0,63,75],indirectli:0,individu:[0,40,47,54,63,71,100,132,163,172,174,188,214,215,234,245,262,280,281,294,316,319,339,348,389,390,404,407,409],induc:0,industri:[0,403],inf:[317,369,383],infinit:[219,229,369,383,391],infloat:165,influenc:[294,376],info:[63,280],inform:[0,7,16,17,20,63,216,227,228,281,286,382,391,399,400,401,402,403,405,406,407,412,421],infring:0,ing:[417,419],inher:225,inherit:[0,83,85,170,190,202,213,220,243,270,276,286,319,354,369,378,384,391,392,402,403,404],initi:[0,10,63,84,315,319,334,407,409,410],initialis:348,injuri:0,inkeyrang:348,inkscap:351,inl:368,inlin:0,input1:411,input:[5,6,8,13,27,29,30,35,39,40,49,52,53,54,55,57,58,59,62,63,64,67,69,71,72,74,75,76,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,98,100,101,102,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,125,127,128,130,131,132,133,135,136,138,139,140,141,142,143,144,145,146,147,149,150,152,153,154,155,156,157,158,159,160,162,163,165,168,170,171,172,174,175,177,178,179,180,182,183,184,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,206,208,209,210,211,213,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,234,235,238,239,240,241,242,243,244,245,247,248,249,251,252,253,254,255,256,257,258,259,260,261,262,264,266,267,270,272,275,276,277,278,280,281,282,284,286,287,288,289,290,292,294,295,299,300,301,302,303,305,310,315,316,317,319,320,329,330,338,342,347,348,351,358,361,362,366,368,369,370,382,383,384,385,386,390,391,393,396,397,403,406,407,408,411,414,415],inputspac:368,insert:[8,59,229,270,275,277,278,311,315,330,383,407,409,411,415,419],insertfirst:59,insertlast:59,insid:[2,6,23,26,45,75,110,174,219,281,399,406,407,417,418,420],insist:0,inspect:[351,371,391,395,402,407,414,415,420],inspector:[316,317,319,333,382,383,402,404,407,414],inspir:0,instal:[0,2,4,5,6,16,21,351,383,391,417,418,421],instanc:[2,5,39,54,58,64,66,67,76,78,81,82,83,84,85,86,87,88,89,90,91,104,140,157,165,202,235,240,254,257,261,266,282,291,292,295,310,315,320,353,363,365,370,376,377,387,388,389,414,415,417,418,419],instanceonli:386,instanti:23,instead:[0,6,11,18,21,46,52,54,63,67,71,72,75,83,84,100,102,107,116,125,140,142,158,168,172,179,180,184,188,190,191,192,197,198,201,210,215,229,231,234,244,247,259,272,280,282,288,294,302,310,315,322,325,330,333,336,338,348,351,360,361,367,368,382,383,384,387,391,401,403,406,407,408,409,414,416,419],institut:0,instr:165,instruct:[2,4,5,7,351,408,420,421],instrument:20,insuffici:67,insul:321,int16:321,inta:[136,140,149],intact:[0,194],intdata:216,integ:[67,115,137,147,187,216,226,227,310,315,318,399,415,417],integr:[0,75,85,319,391,401,419],intel:[75,391],intellectu:0,intend:[0,142,153,315,319,382,391],intens:409,intent:[0,404],intention:0,interact:[6,37,63,69,79,97,124,174,216,217,281,319,327,332,335,336,339,348,387,388,396,403,411,415,420],interactivearnoldrend:[70,315,389],interactivecyclesrend:80,interactiverend:[6,281,291,375,376,389,391,396],interactiverendertest:391,interchang:0,interest:[0,43,44,315,416],interfac:[0,2,6,15,16,23,31,32,54,63,71,75,133,170,172,175,188,189,193,234,237,238,239,242,250,251,274,276,280,281,294,407,409,410,415,417],interfer:[0,315],interior:[301,303],interiorlight:280,interject:[6,406],interleav:[140,368],intermedi:[67,153,421],intermitt:353,intern:[0,26,27,28,75,153,180,201,288,322,323,325,333,338,383,385,391,399],internedstringdata:[320,335,340],internedstringvectordata:[407,416],internet:[0,406],interoper:401,interpol:[54,71,151,168,191,192,197,216,229,230,231,234,244,247,251,286,290,303,318,321,332,335,336,346,363,369,383],interpolateboundari:392,interpret:[0,11,85,130,229,311,315,330,368,400,405,414,417,420],interrupt:[0,344,360],intersect:[58,110,268,311,391],interv:[174,232,281],intplug:[162,165,310,390],intrins:294,introduc:[0,117,118,319,332,369,370,385,388,391,403,417],introduct:0,introspect:383,intuit:[6,399],invalid:[0,187,219,267,340,348,351,368,383,391],invalu:[6,408],invers:139,invert:348,invis:[6,280],invok:[0,85],involv:[153,154,348,415],io:[0,368],iostream:368,ipr:412,irrecover:415,irrelev:[324,332],irrevers:0,irrevoc:0,iscausticscast:368,iscausticsreceiv:368,island:226,islineardrag:368,isn:[0,216,227,403,407,408,409,418],isol:[0,8,208,232,245,291,348,399,407,408],isosurfac:300,ispromot:332,issu:[0,315,330,360,391,393,394,410,421],item:[133,193,310,320,333,336,338,348,351,368,386,389,391,394,397,409],iter:[23,39,54,201,208,407,408],its:[0,2,4,5,6,7,48,54,58,63,64,67,76,81,82,83,84,85,86,87,88,89,90,91,105,111,139,140,174,187,208,219,235,254,257,258,260,266,274,281,282,292,295,311,320,344,348,360,396,399,401,402,403,404,406,407,408,409,410,412,414,416,417,419,420,421],itself:[0,19,54,67,84,100,136,150,159,194,202,207,213,280,292,325,333,348,391,397,406,407,419],itx:141,j2c:[136,140,149],j2k:[136,140,149],jack:0,jai:0,jakob:0,jame:0,jan:0,jansen:0,janssen:0,januari:0,jason:0,jbeder:0,jean:0,jess:0,jfi:[136,140,149],jfif:[136,140,149],jif:[136,140,149],jim:0,jinja:0,jloup:0,job:[0,81,83,292,391],jobdirectori:348,jobfailedsign:391,jobpool:391,john:0,join:[6,351,416],joinedg:330,joint:0,jorg:0,jothepro:0,jp2:[136,140,149,315],jpe:[136,140,149],jpeg:[0,136,149,310,315],jpg:[63,136,140,149,310],json:[0,21,63,185],json_check:0,jsoncheck:0,judgment:0,judici:0,juli:0,jump:[8,391],june:0,jurisdict:0,just:[0,6,8,19,67,97,117,118,119,136,140,142,153,174,178,180,226,227,234,281,336,368,391,401,404,408,410,412,414,415,416,417,419],justif:158,justifi:[63,104,158],k25:[136,140,149],k:8,kapoulkin:0,karl:0,katana:402,kc2:[136,140,149],kdc:[136,140,149],kde:0,keep:[0,3,6,63,83,113,120,122,194,199,201,216,218,223,267,348,401,407,408,409,410,416,421],keeplight:348,keepreferenceposit:361,kei:[6,8,33,54,63,64,67,71,75,76,81,82,83,84,85,86,87,88,89,90,91,140,148,172,188,189,234,235,239,254,257,266,280,281,286,292,294,295,317,326,334,348,353,368,372,409,415,416,417],kept:[67,120,121,122,190,193,195,196,199,200,218,223,282,419],kernel:0,kevin:0,keyboard:[353,395,409,421],keyfram:24,keypress:389,keysign:315,keyword:[417,418,419],khrono:0,khrplatform:0,kill:391,kilomet:401,kind:[0,6,391,401,407],knob:0,know:[0,6,136,165,177,184,187,191,192,197,218,230,278,287,290,299,300,336,402,407,408,415,416],knowledg:[408,416,420,421],known:[0,68,175,179,401,403,404,406],konerd:0,kw:368,l:[0,6,8,12,393,415],l_ear001_ren:6,l_eyelens001_ren:404,label:[8,104,310,321,328,336,337,347,356,366,368,383,391,406,409,410,411,415],labelplugvaluewidget:391,labeltyp:321,laboratori:0,lack:[6,386,417],lai:[319,415],lanczos3:[153,154],lane:0,languag:[0,75,78,408,411,415],larg:[0,26,36,54,58,63,67,68,117,118,153,154,160,174,225,261,315,332,348,367,368,391,406,408,409],larger:[0,25,49,90,174,210,219,281,339,391,401],largest:91,last:[6,8,23,46,63,75,101,109,117,118,136,149,179,223,232,253,310,311,317,326,334,355,382,404,407,408,409,410,418],late:408,later:[0,3,6,10,11,12,13,14,15,17,18,19,20,21,22,64,76,254,401,403,404,420],latest:[3,368],latlong:[66,78],latter:[0,174,401],launch:[2,3,5,6,7,19,83,292,391,417,418,419],law:0,lawrenc:0,lawsuit:0,lawyer:0,lax:0,layer:[8,23,63,101,104,140,163,215,315,330,367,368,373,386,391,399],layer_select:59,layernam:[23,140,214,215,315,336,391],layerperlightgroup:315,layout:[0,6,75,104,158,245,315,332,348,351,367,368,370,386,393,394,414,415],lazi:[218,416],lazili:402,lbnl:0,lc_numer:[348,351],lead:[75,329,338,348,399],leaf:[179,268,310,368,370,402],leak:[20,348,353,386,389,395],leakag:408,learn:[6,9,75,407,411,413,415,416,421],least:[0,63,75,303,407,409,415,421],leav:[6,8,10,11,12,13,14,15,17,18,19,20,21,22,54,247,404,417],led:362,leffler:0,left:[6,8,23,47,93,104,110,122,137,145,154,158,160,171,174,187,201,219,223,228,281,310,338,348,351,360,370,391,399,406,407,409,410,415,416],leftarm:[185,245],leftmost:223,leftov:63,leg:6,legaci:[0,136,227,315,322,348,386],legal:0,lemberg:0,len:[56,174,309,316,399,401,403],length:[0,54,174,224,319,386,393,401],lens:[401,403],lentil:[355,382],less:[0,63,75,116,153,155,174,215,219,225,279,319,391,401,403,410],lesser:[0,316],lesson:6,let:[0,6,75,403,404,407,408,409,410,411,416,417,418,419],letter:[8,330,410],lev:0,level:[6,8,68,71,75,140,202,286,299,300,301,303,304,319,357,361,368,372,384,408],levelset:304,levelsetoffset:[306,325,333,348],levelsettomesh:[306,348],liabil:0,liabl:0,lib:2,libdefl:0,libexpat:0,libffi:315,libpng:315,librari:[0,2,13,21,315,368,391],libwebp:391,licens:[1,16,63,64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],license:0,licensor:0,lie:348,liebscher:0,lieu:0,life:0,lifetim:414,light:[0,2,54,60,61,62,63,66,67,71,73,74,75,78,164,218,219,234,243,280,281,295,296,315,316,319,320,321,332,334,338,348,349,351,354,355,361,368,369,370,372,373,381,382,383,386,387,391,393,394,395,397,401,402,405,419,421],lighteditor:[315,316,331,348,354,367,369,373,389,391,393,395],lighter:132,lightfilt:[61,348],lightposit:391,lightpositiontool:[370,381,391,393,395,397],lightsampl:361,lighttocamera:[291,382],lighttool:[368,369,370,372,382,386],lightweight:[261,305],like:[0,5,6,63,67,75,84,140,149,153,154,174,176,177,179,187,219,229,231,280,281,286,287,295,319,336,365,368,386,401,403,406,407,408,409,410,412,414,415,416,417,418,419],likewis:46,limb:[185,245],limit:[0,6,20,54,60,63,64,67,73,75,76,81,82,83,84,85,86,87,88,89,90,91,140,160,164,174,202,216,229,234,235,254,257,265,266,267,279,281,292,295,296,366,369,390,408,415],limitless:406,line:[0,2,5,8,11,14,152,212,234,310,314,315,348,355,370,372,382,385,391,393,394,396,401,407,408,410,412,416,418,419],linear:[45,54,136,142,229,231,318,348,408],link:[0,61,280,310,319,321,348,368,391,405,406],linkedlight:404,linux:[0,315,348,366,391,395,421],list:[0,2,5,6,8,12,15,18,19,20,21,22,23,44,54,60,61,64,67,68,73,76,81,82,83,84,85,86,87,88,89,90,91,97,101,107,120,121,122,136,140,164,174,176,179,181,185,186,199,200,204,208,213,214,215,216,233,235,245,246,254,257,258,259,266,267,269,270,279,280,283,286,292,295,296,304,310,311,316,317,319,333,348,367,373,382,389,391,392,393,396,399,401,403,404,407,409,411,415,418,420],listappend:[316,317,367,393],listprepend:[316,317,367,393],listremov:[316,317,367,393],litig:0,littl:[0,410,415,416,418],live:[6,97,417],livermor:0,ll:[0,404,410,411,416,417],llc:0,llnl:0,llvm:315,load:[6,12,14,16,19,20,56,58,60,63,65,68,73,77,83,97,102,136,140,149,164,166,185,234,236,265,271,295,296,297,315,319,321,325,329,333,335,337,338,339,340,348,351,358,361,363,365,368,369,370,372,377,383,391,393,394,397,403,406,408,409,414,417,419],loader:[0,16],loadshad:[56,58,65,77,166,236,271,297,415],lobe:[153,154],local:[0,5,12,83,97,124,168,220,228,240,244,247,274,284,303,304,340,348,351,391,402,416],localdispatch:[12,64,67,76,81,82,84,85,86,87,88,89,90,91,92,140,235,254,257,266,292,295,391],localdispatcherui:391,localhost:97,localis:220,localiseattribut:291,localjob:391,locat:[0,3,5,6,8,23,43,44,54,63,71,115,137,158,165,168,170,172,177,179,180,181,182,184,187,188,190,194,201,202,205,208,210,211,213,216,218,222,223,232,234,243,244,245,247,249,252,253,261,262,267,268,276,277,278,280,282,283,284,287,289,294,305,311,315,320,321,333,335,336,348,361,365,368,373,381,383,384,386,389,391,392,395,397,401,402,403,406,407,408,414,415,416,418],locationspermodel:408,lock:[6,63,367,380,394,406],lode:372,loden:0,log:[63,75,391,402,415],logic:[365,391,409],logo:[0,404],longer:[6,54,63,75,301,315,319,330,333,348,367,368,391,406,414],look:[0,6,60,73,84,141,164,171,210,218,221,249,261,286,295,296,321,368,382,401,404,407,408,415,416,417,419,421],lookdev:[6,295,408,419],looktransform:[161,321,330],lookup:63,loop:[23,51,97,325,333,408],loophol:386,lose:[4,6,280],loss:0,lost:[0,397],lot:[6,68,280,410,416],loup:0,louvain:0,low:[0,63,71,94,140,153,154,225,333],lower:[6,54,63,71,75,117,118,123,127,143,160,174,279,368,411],lowest:366,lpe:336,ls:12,lscc:[265,266],ltd:0,luca:0,lucasfilm:0,lumin:[8,123,127,143,155],lut:[142,161,330],lutgpu:368,lyle:0,lz:0,m33fvectordata:240,m3d:141,m44fplug:[162,165],m:[253,411],m_pi:411,ma:0,macbeth:361,macbethtextur:419,macbook:[2,3,4,5],macfarlan:0,machin:[0,67,75,78,83],maco:[8,85,315,383,393],macq:0,macro:0,made:[0,32,63,64,67,68,76,81,82,83,84,85,86,87,88,89,90,91,140,157,165,170,177,184,187,191,192,197,201,202,230,235,238,254,257,266,268,276,278,287,290,292,295,299,300,315,319,320,339,343,348,352,366,367,368,383,386,391,401,407,408,417],madler:0,magallon:0,magic:0,magnu:0,mai:[0,2,4,6,20,29,31,32,33,37,40,43,44,47,49,54,59,63,67,71,75,78,83,84,85,91,100,104,105,112,120,122,130,133,136,140,142,147,149,150,153,154,160,162,165,170,172,174,175,177,179,184,185,187,188,189,191,192,197,198,199,214,215,216,218,222,225,226,230,232,234,237,238,239,241,242,243,245,248,250,251,259,261,265,266,267,274,276,277,278,279,280,281,286,287,289,290,292,294,299,300,302,303,305,310,315,330,331,332,348,351,361,365,367,368,372,391,393,394,402,403,404,407,410,415,418,419],mail:[0,411],main:[0,6,10,16,111,140,160,168,181,182,184,210,212,214,215,229,231,243,244,247,330,368,391,396,399,402,408,409,410,414,415,417,420],mainstream:401,maintain:[0,104,168,244,247,282,315,323,360,368,402,404,406,409,415,418,421],maintainreferenceposit:323,mainten:0,major:[0,348,417],make:[0,2,12,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,310,315,319,336,348,363,365,388,391,396,399,401,403,404,406,407,408,409,410,411,412,415,417,419],makefil:0,maketx:13,malform:382,malfunct:0,malik:0,man:0,manag:[0,45,47,57,179,292,315,327,329,336,338,368,404,407,419],mandar:0,mandatori:[0,401],mani:[0,6,8,39,67,75,140,153,154,216,261,266,315,365,368,386,399,401,403,409,410],manif_fil:185,manifest:185,manipul:[6,8,60,62,73,74,164,296,368,382,386,399,400,405,415,418],manner:[0,6,142,261,305],manual:[3,6,14,21,25,174,217,315,391,407,409,410,416,421],manufactur:0,map:[0,54,56,63,66,78,160,168,171,216,244,247,292,389,391,393,401,407,409,410],mapoffset:[291,386],mapproject:[291,386],marcelo:0,march:[0,68],marcu:0,mark:0,markdown:406,markdowntest:0,markdowntohtml:[325,333,393],marque:[6,8,403],martindal:0,mascot:[6,404],mask:[56,123,127,136,144],master:0,match:[6,8,10,11,12,13,14,15,17,18,19,20,21,22,40,47,63,97,107,113,116,121,136,140,149,165,170,174,177,178,182,184,185,187,190,193,195,196,198,200,205,207,208,218,219,220,232,243,245,259,261,267,268,270,276,281,284,286,287,289,292,302,315,330,333,348,366,368,383,386,391,393,394,396,403,406,407,408,409,410,418],matchpatternpathfilterwidget:367,materi:[0,71,315,321,363,365,383,395],materiala:268,materialx:[348,368,391],mathemat:[6,8,142],mathematisch:0,mathia:0,matric:[240,284],matrix:[162,240,284,308,345,362,402,407,415,416],matt:[0,71,144,185,392,395],matter:[0,202,245,284],matvei:0,mauv:415,max:[71,91,144,310,316,318,361,391],maxdiffer:391,maximis:8,maximum:[0,10,11,12,13,14,15,17,18,19,20,21,22,43,54,63,64,67,75,76,81,82,83,84,85,86,87,88,89,90,91,100,104,119,138,140,235,240,254,257,266,292,295,300,338],maya:[2,6,321,402,404],mayb:416,mb:20,md:0,mdc:[136,140,149],mean:[0,23,54,58,63,116,136,138,165,210,229,251,259,265,294,315,361,368,391,399,401,402,403,406,407,408,409,416],meaning:[0,234],meant:[315,367,371],measur:[20,54,63,104,152,155,158,160,168,174,216,224,240,244,247,261,281,333,369,401,403,408],mechan:[0,386,391,394,408],media:0,median:[67,161,368,369],medium:0,meet:[0,229,231,315],mef:[136,140,149],megabyt:63,melissa:0,member1:416,member:[0,8,267,269,311,348,351,368,371,383,390,391,404],memberacceptancesign:315,membership:[23,269,270,282,311,315,336,348,383],memori:[0,20,63,75,136,149,280,301,303,304,315,348,365,368,383,389,404,408,415,420],memoryusag:391,menac:404,mention:[321,401,407,417,419],menu:[2,5,6,8,163,165,268,310,315,319,320,325,330,332,333,336,338,348,350,362,367,368,369,371,383,384,385,386,389,391,394,396,397,403,406,409,410,411,417,418],menubutton:[315,330],menudefinit:333,merchant:0,mere:[0,23,117,399,417,419],merg:[0,101,112,117,161,179,223,315,362,369],mergemetadata:362,mergescen:291,mesa3d:0,mesa:0,mesh1:286,mesh2:286,mesh:[54,58,62,63,67,74,165,192,222,224,225,226,227,228,229,230,231,259,260,261,279,283,286,290,300,301,305,351,368,369,391,402],mesh_light:62,meshdistort:[291,386],meshnorm:[291,368,386],meshseg:[291,339,351,386],meshsplit:[291,351],meshtang:[291,368,386],meshtessel:[291,391,392],meshtolevelset:[306,325,333,348],meshtopoint:[291,386],meshtyp:[54,229,291,386,392],messag:[0,8,58,63,332,343,352,360,361,364,368,372,391,407],messagehandl:391,messagesbind:[327,336],messageschangedsign:391,met:[0,409],metadata:[101,104,107,121,136,140,185,313,315,319,332,336,342,348,351,361,362,366,368,370,371,373,376,382,384,386,388,389,391,393,396,408,412,419],metadataalgo:[308,332,386,417],metadatablacklist:315,metadatanam:104,metal:6,meter:[174,401],method:[0,2,6,23,24,36,56,58,65,71,77,91,95,104,123,127,140,143,153,154,160,166,171,202,216,223,236,240,271,297,315,330,332,340,348,361,368,372,373,382,383,384,385,386,387,388,389,391,393,395,396,397,406,407,409,415,416,417,418,419,421],metric:[20,54,408],metropoli:408,metropolitan:404,mga:141,michael:0,michel:0,micro:0,microsoft:[3,4],middl:[6,8,54,131,414,415,416,420],might:[0,2,5,33,54,61,63,68,71,75,84,91,133,172,188,189,212,216,234,239,280,281,286,294,295,401,408,416,417],mightforcemonitor:315,milan:0,millimet:[174,401,403],milo:0,min:[91,144,316,318,391],mind:[401,407,408,410],mindset:404,minim:[0,6,160,295],minimum:[43,54,63,75,91,100,104,119,138,229,231,310,315,336,391,408],minimumwidth:[310,368],minizip:368,minor:416,minu:372,mip:63,mipmap:63,mirror:[54,161,321,332,348],miscellan:0,mislead:[372,386,391],misloc:321,mismatch:[333,368],misrepres:0,miss:[4,32,63,104,136,142,149,170,238,276,318,319,335,336,361,367,369,378,384,391,392],missingframemod:391,missingmod:317,missingsourcemod:391,mist:75,mistak:407,mit:0,mitig:[153,154],mix:[140,161,411],mixtur:315,mm:[174,401],mmagallo:0,mmikk:0,mo:[136,140,149],mock:391,modal:319,mode:[0,8,15,32,54,63,84,97,141,160,168,173,174,216,217,219,223,240,244,247,281,285,315,316,317,318,319,321,329,330,331,333,336,338,339,348,349,360,363,367,368,370,376,384,385,391,393,395,401,403,409,419],model:[6,225,240,265,295,391,399,403],moder:[348,408],modern:367,modicum:420,modif:[0,32,170,175,238,276,284,295,348,399,417],modifi:[0,5,6,8,20,46,83,86,110,117,142,168,177,187,216,234,242,244,247,262,267,275,276,280,284,287,315,317,325,330,333,348,391,392,395,401,403,406,407,408,409,414,415,417,418,419,420],modul:[0,2,10,11,12,13,14,15,17,18,19,20,21,22,214,233,315,319,348,365,368,388,391,406,408,414,415,417,419],modular:[406,417],monei:0,monitor:[20,281,315,413],mono:0,monochrom:155,monospac:0,moon:404,more:[0,23,36,39,54,63,67,71,75,104,112,132,140,144,174,175,206,216,219,223,227,240,253,256,257,268,270,280,281,292,294,301,303,304,315,319,321,332,340,343,348,351,352,367,368,373,383,387,394,395,399,401,402,403,404,406,408,409,410,412,415,416,417,419,420,421],moreov:0,most:[0,5,6,23,43,44,54,68,136,140,188,189,194,202,208,225,229,310,399,402,403,406,407,408,409,410,415,418],mostli:[67,113,150,160],motion:[54,63,68,202,232,280,281,303,384,401,402,410],motionpath:291,mottosso:0,mous:[6,391,416],mouth:6,move:[0,3,6,8,25,47,75,210,221,284,315,321,330,335,348,362,368,383,395,406,407,409,415],mozilla:0,mpl:0,mrw:[136,140,149],msinttyp:0,mtd:370,much:[63,104,224,234,330,402,408,410,415,416,420,421],multi:[93,108,109,140,156,310,315,316,348,406,410,415,418,419],multilinestringmetadatawidget:396,multilinestringplugvaluewidget:[310,360],multilinetextwidget:396,multipart:[140,395],multipl:[6,8,40,49,50,59,63,67,75,78,91,97,101,104,105,109,142,163,165,177,179,182,184,185,187,202,216,220,222,223,225,245,257,261,267,280,287,315,316,335,348,351,378,383,385,386,388,389,391,392,393,395,403,404,407,409,410,415,417],multipli:[50,54,68,71,144,146,150,153,174,175,214,215,240,261,281,284,303,305,391,403,410],multithread:[391,408,416],munich:0,must:[0,2,5,6,8,12,23,43,44,54,63,64,67,75,76,81,82,83,84,85,86,87,88,89,90,91,104,113,130,140,142,153,154,174,216,227,235,254,257,266,281,290,292,295,315,368,391,401,403,404,406,407,408,409,410,417,418,419],mute:[332,348],mxr:[136,140,149],my:[0,310],myattrnam:338,myawesomenod:310,mycamera:415,mycategori:189,mycubesset:268,myfilt:415,mygroup:415,myname1:67,myname2:67,myname3:67,mynamespac:336,mypreset:336,myshad:415,myshaderassign:415,myspher:415,myspheresset:268,mystr:416,myvari:23,n:[8,54,231,253,332,339,361,369,396,402,416],name:[0,5,6,8,10,11,12,13,14,15,17,18,19,20,21,22,23,31,36,40,43,44,47,49,54,63,64,67,71,76,81,83,84,85,91,96,98,99,100,101,102,103,104,106,108,109,120,122,125,132,136,137,138,140,141,142,149,150,151,153,155,156,159,160,168,169,171,177,178,179,180,182,183,184,185,187,189,220,221,222,223,224,225,226,227,228,231,235,237,240,244,245,247,249,250,254,265,266,268,270,274,276,277,278,286,287,292,295,299,300,301,303,310,312,315,316,319,320,321,322,324,327,330,332,335,336,348,351,354,365,366,367,368,369,371,372,373,376,381,383,385,389,391,392,395,396,397,401,402,404,406,407,408,410,411,415,416,417,418,419],namechang:368,namechangedsign:368,nameofnod:20,namespac:[315,368],nameswitch:[47,51,257,258,325,333,358,385,389,392,407],namevalueplug:[31,237,250,274,338,416],namewidget:319,nan:[63,104,369,383,391],nanovdb:315,narrow:261,nation:0,nativ:[6,265,266,294,348,369,391],nativestr:330,natur:[229,231,315,384],naughtili:180,navig:[4,5,327,336,391,406,409,412],navlink:229,ncsa:0,nearbi:94,nearest:[136,153,154,391],nearli:368,necessari:[0,3,25,37,63,147,154,201,218,266,288,315,330,348,351,391,407,408,409,415,417,419],necessarili:[0,6],need:[0,2,3,4,5,6,8,13,23,40,49,54,61,63,64,67,69,76,79,81,82,83,84,85,86,87,88,89,90,91,101,140,165,174,177,184,187,188,189,191,192,194,197,216,218,230,235,254,257,266,278,281,287,290,292,295,299,300,303,315,325,333,348,368,370,399,401,403,404,406,407,408,409,410,412,414,415,416,418,419,420],nef:[136,140,149],neg:[10,11,12,13,14,15,17,18,19,20,21,22,66,75,78,153,154,210,221,224,299,300,317,323,324,332,386,399],neglig:[0,408],neighbor:228,neighbourhood:408,neill:0,neither:[0,6,348],nest:[48,348,391,406,417],net:0,netcdf:0,netherland:0,network:[12,26,29,39,45,46,81,89,101,105,202,216,257,274,275,276,315,357,383,384,386,393,395,396,406,407,408,409,411,416],neutral:142,never:[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,348,361,391,408,414],newer:[0,315],newli:[6,178,230,353,383,389,391],newnam:308,next:[2,6,8,97,351,391,407,409,410,414,415,417,418,419],ng:[0,369],nigel:0,night:404,nl:0,node:[2,12,15,19,20,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,310,314,315,317,319,320,321,325,330,332,333,335,336,338,339,342,347,348,351,357,358,361,362,365,366,368,369,371,372,374,375,380,382,383,384,385,386,389,391,392,393,394,395,396,397,399,401,402,403,404,412,414,416,417,418,420,421],nodea:12,nodealgo:[315,378,392],nodeb:12,nodecr:419,nodeeditor:[320,321,324,328,332,335,337,338,348,361,366,389,391,392,394,396],nodegadget:[310,361],nodemenu:[391,419],nodemenucreatecommand:391,nodenam:[308,309],nodesperlook:408,nodeswithmetadata:308,nodeui:348,nodul:[310,321,391],nodulelayout:[310,320,361],nois:[58,63,75,143],noisi:[54,75,410],non:[0,6,45,54,60,61,63,67,73,107,117,118,121,128,153,154,164,165,174,190,191,192,193,195,196,197,198,200,229,231,234,253,259,296,302,315,317,319,321,328,336,337,340,342,346,348,351,363,369,370,383,389,391,395,399,403,404,409],none:[0,6,54,75,119,174,185,215,219,229,231,253,281,308,348,368,372,395,407,409],nonetheless:408,nonetyp:316,nonexclus:0,nongnu:0,noninfring:0,nor:0,normal:[0,54,58,64,67,75,76,81,82,83,84,85,86,87,88,89,90,91,140,165,229,231,235,254,257,260,266,292,295,338,361,368,369,370,371,383,389,393,401,402,409],note:[0,12,14,20,54,61,63,91,122,137,139,140,188,189,191,192,197,208,216,221,229,231,232,266,280,284,294,310,311,361,368,369,382,391,402,407,409,416,419],notedit:395,noth:[0,168,191,192,197,210,244,247,267,404],notic:[0,6,346,363,399,410,415,417,418,419],notif:368,notifi:0,notwithstand:0,now:[0,3,5,6,315,317,318,319,321,322,330,332,333,335,336,338,348,351,357,360,361,363,367,368,369,370,372,373,382,383,384,385,388,390,391,393,396,397,408,410,411,416,417,418],nrw:[136,140,149],nsf:0,nsi:[391,395],nsia:391,nth:253,nuke:[136,140,315],nukebasenam:140,nukelayernam:140,nukepartnam:140,nukeviewnam:140,nul:[136,140,149],nullptr:388,number:[0,5,8,10,11,12,13,14,15,17,18,19,20,21,22,31,32,33,43,44,46,49,54,63,64,66,67,71,75,76,78,81,82,83,84,85,86,87,88,89,90,91,101,104,133,136,140,147,148,149,157,162,170,172,174,175,179,185,188,189,201,216,229,232,234,235,237,238,239,242,246,250,251,253,254,257,261,266,274,276,277,278,280,281,289,292,294,295,299,300,305,312,330,348,353,355,360,366,369,382,390,391,395,401,402,403,404,406,407,408,409,410,411,412,417],numberofasset:408,numberofloc:408,numberofnod:408,numer:[0,6,43,91,171,175,201,253,315,318,351,368,390,391],numericplugvaluewidget:353,nvidia:[0,75],o:[0,8,308,360,366],object:[0,6,8,23,33,53,54,58,60,61,63,65,67,68,71,73,75,77,148,164,165,166,168,172,174,176,177,178,179,181,184,186,187,188,189,191,192,194,197,198,200,204,208,211,213,214,215,216,218,221,223,230,231,234,235,236,239,240,244,246,247,248,251,261,267,268,270,271,272,278,279,280,281,283,287,290,294,296,299,300,301,302,304,311,315,316,321,323,332,335,336,342,344,348,351,353,360,365,368,383,386,389,391,395,397,401,403,408,409,414,415,416,418,419,420],objectplug:[348,368],objectprocess:165,objectprocessor:386,objectread:233,objectsmod:223,objectsourc:368,objecttoscen:291,oblig:0,obscur:[342,351,383],observ:[407,408],obtain:[0,335,393],occas:0,occasion:406,occlud:[67,117,118],occlus:75,occupi:[6,401],occur:[0,12,14,58,63,399,401,402,407],occurr:253,ocio:[96,102,141,321,330,382],ociolook:142,octob:0,odd:[339,408],oddli:416,off:[8,32,33,34,40,47,49,50,52,53,54,55,56,57,58,59,60,61,62,63,65,66,68,69,71,72,73,74,75,77,78,79,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,137,139,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,204,205,206,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,236,238,239,240,241,242,243,244,245,246,247,248,251,252,253,255,256,258,259,260,261,262,263,264,265,267,268,270,271,272,273,275,276,277,278,279,280,281,282,283,284,287,288,289,290,294,296,297,299,300,301,302,303,304,305,348,353,357,361,383,384,391,410,416],offer:[0,39,330],offic:[0,409],offici:[348,391],offlin:[64,76,254],offscreen:317,offset:[71,104,152,158,160,161,168,174,216,244,333,348,391],often:[63,142,179,216,240,402,407],oiio:[153,160,391],ok:[5,356,383],old:[75,136,149,211,265,315,348,368,391,403],oldnam:368,olivi:0,olszta:0,omit:[0,60,63,73,104,117,118,140,164,215,216,281,296,315,372,386,397,410],omitduplicateid:388,onc:[0,2,3,4,5,6,8,20,29,59,75,84,88,139,163,165,174,280,348,391,403,404,406,407,408,409,415],one:[0,5,6,8,40,47,54,63,71,84,90,97,104,109,115,137,156,172,175,182,184,188,206,216,223,226,229,234,244,256,257,268,270,280,292,294,311,315,319,330,338,348,368,370,372,383,386,389,391,394,399,401,403,404,406,407,408,409,410,415,416,417,419],ones:[23,25,47,59,140,391],ongo:0,onli:[0,5,6,8,20,21,23,25,29,40,47,49,54,56,58,65,67,71,75,77,78,81,82,83,90,108,110,117,118,128,138,139,141,147,153,160,164,165,166,171,174,177,178,180,184,187,191,192,197,201,202,212,214,215,216,218,219,223,229,230,231,232,234,236,251,265,267,268,270,271,278,280,281,282,284,287,290,292,295,297,299,300,310,315,318,320,322,330,333,338,348,353,357,362,366,368,371,379,383,384,390,391,392,393,399,402,403,404,406,407,408,410,411,414,415,417,418,419],onto:[6,8,26,53,54,55,95,106,108,110,160,177,216,240,284,287,319,332,348,351,368,391,392,395,406,409,415,417,419],op:368,opac:[54,71,130,391],opaqu:[63,357,384],open:[0,2,3,4,5,6,8,15,17,75,78,116,174,281,319,320,361,366,368,386,401,406,409,410,411,415,417,418,420,421],opencl:[75,78],opencolorio:[96,102,125,136,141,142,148,315,321,348,368,371,386,391],opencolorioalgo:[330,368],opencolorioconfigplug:368,opencoloriocontext:[102,125,142,161,368,370,391],opencoloriotransform:[330,368],opencoloriotransformui:368,openexr:[315,317,348,368,391,392,399],opengl:[0,171,212,234,235,340,342,351,389],openglattribut:[235,280,291],openglrend:[212,234,236,291],openglshad:[235,291,397,415],openimagedenois:75,openimageio:[136,140,149,315,348,368,391,399],openimageioread:[161,367,368],openjpeg:315,openpathguidinglibrari:0,openpgl:[368,391],openshadinglanguag:[315,340,348,391],opensourc:0,openssl:[315,391],opensubdiv:[229,231,348,391],openvdb:[303,315,361,391],oper:[0,4,6,8,20,23,40,49,100,132,150,159,177,187,194,206,208,223,229,252,253,267,268,287,309,313,319,324,325,330,332,333,351,363,369,392,396,397,401,403,407,408,409,415],operand:352,ophold:233,opinion:0,oppos:142,opposit:[174,219,281,317],opt:[0,2,3,4,5,232,319],optic:401,optim:[6,71,75,117,118,407,408,412],optimis:[153,202,348,368,386],optimum:[63,408],option:[0,6,12,13,21,25,36,44,52,53,55,57,59,64,69,72,76,79,83,97,116,117,118,130,133,140,160,174,175,185,193,195,216,217,223,229,231,235,237,238,245,254,255,257,258,261,291,310,315,320,333,342,348,351,361,362,367,368,369,370,373,375,376,382,383,385,389,391,392,394,395,396,401,403,408,409,412,416,418],optionalvalueplug:[369,391],optionedit:353,optionhistori:389,optionqueri:[291,320,348,368,390,393,395],optiontweak:[291,320,383,393,396],optix:[75,78,391],oral:0,orang:[370,407],order:[0,5,6,25,31,63,89,104,117,160,175,178,180,216,226,229,231,237,240,250,260,269,274,310,311,315,324,332,333,348,368,391,392,399,401,404,406,407,409,410,414,415],ordinari:0,orf:[136,140,149],org:[0,142,310,421],organ:[0,406,409],organis:[26,36,368],orient:[8,54,247,291,351,360,370,383,386,391,401],origin:[0,54,63,94,110,116,168,170,174,178,201,215,227,229,231,244,247,253,275,276,277,278,281,315,323,391,393,396,399,404,407,414],orthograph:[174,219,281,368,401,403],os:[0,330,417,418,419],osl:[2,23,63,75,78,136,140,149,162,163,164,165,166,309,315,319,337,338,348,355,361,382,383,386,391,392,407,408,417,419],oslbodi:[136,140,149],oslcod:[163,165,167,348,413],oslgroup:[136,140,149],oslimag:[167,316,348,361,367],osllight:167,oslobject:[167,251,316,338,348,361],oslshad:[167,315,361,391],oso:[136,140,149],other:[0,2,5,6,10,11,12,13,14,15,17,18,19,20,21,22,23,24,25,29,40,47,54,58,63,66,75,78,89,91,99,118,120,122,138,140,164,171,174,181,199,208,214,215,216,218,219,229,230,253,265,266,274,281,282,295,311,315,317,324,332,348,357,361,362,368,369,370,384,388,389,391,399,401,402,403,404,406,409,410,416,419,420],otherwis:[0,20,75,85,136,149,154,169,203,207,216,218,227,265,403,409,410,419],ottosson:0,our:[0,229,391,404,410,411,417,418,419,421],ourselv:419,out:[0,4,6,308,315,319,321,323,366,391,396,399,404,406,407,414,415,416,417],outdat:383,outer:399,outfloat:335,outgo:8,outlier:54,outlin:[5,54,152,234,348,399],output1:411,output:[0,6,20,28,29,30,31,35,40,43,47,49,52,53,54,55,56,57,58,59,60,61,62,63,64,66,67,68,71,72,73,74,75,76,77,78,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,138,139,140,141,142,143,144,145,146,147,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,207,209,210,211,212,213,214,215,216,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,242,243,244,246,247,248,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,269,270,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,290,291,292,294,295,296,297,299,300,301,302,303,304,305,315,319,329,330,332,335,336,338,348,354,362,367,368,369,370,371,372,376,378,382,383,384,385,389,391,392,395,399,406,407,411,412,414,415,416],outputdriv:395,outputindexcolumn:348,outputlay:395,outputspac:368,outsid:[0,26,54,63,95,104,116,123,127,136,139,143,153,154,160,174,187,229,231,281,319,348,391,417],outstand:0,over:[0,6,8,40,43,49,97,130,144,158,174,216,232,240,255,257,261,281,295,315,330,333,348,361,368,371,373,384,385,391,392,394,401,403,406,408,409,417],overal:[123,127,143,214,261],overhead:[20,153,154,223,391,408],overlai:[391,403],overlaid:407,overlap:[25,117,118,319,355,357,382,384,409],overload:[348,383,386,389,391],overrid:[0,54,60,63,73,109,140,164,174,229,234,296,310,315,348,391,395,401,402,418],overridden:[6,67,229,234,270,330,368,407],overrun:315,oversampl:391,overscan:[214,215,391,399,402],oversensit:323,overt:0,overwrit:[52,391,415],overwritten:[107,133,229,394],own:[0,6,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,335,336,348,368,391,401,402,407,409,416,418,419],owner:0,ownership:[0,359,372],p:[0,6,8,177,187,261,287,339,402],packag:[0,2,3,5,181,229,315,393],pad:[110,136,140,149,154,185,253,312],page:[0,327,336,421],pai:0,paid:0,pair:[33,54,63,67,71,75,85,148,172,188,189,234,239,280,281,294,369,399,415],pallet:0,palletsproject:0,pan:[6,8],pane:22,panel:[6,8,10,22,382,389,391,406,414,415],panorama:[174,403],paper:0,paradigm:[6,401,421],paragraph:0,parallel:[6,63,174,368,385,399,401,403],parallelalgo:391,parallelgetvalu:348,paramet:[0,10,11,12,13,14,15,17,18,19,20,21,22,53,54,55,59,75,91,97,171,174,175,187,229,274,276,291,315,319,320,329,336,338,339,340,341,350,351,354,361,367,369,370,383,387,388,391,393,394,395,397,401,403,409,411,415,416],parameterinspector:395,parameternam:[274,395],parametersourc:395,parametr:187,parent:[6,29,31,97,213,237,240,245,250,268,270,274,280,284,291,309,311,315,317,330,333,348,368,393,402,408,416,417,419],parentconstraint:291,parenthesi:311,pars:[0,63,348,368],part:[0,2,6,21,54,58,62,71,74,111,116,136,140,165,168,170,171,172,175,178,180,182,184,188,190,191,192,194,197,198,201,202,209,210,211,212,216,218,220,221,222,224,225,226,227,228,229,230,231,232,234,240,242,243,244,247,248,251,253,259,260,261,262,265,270,272,276,277,278,280,284,286,288,290,294,299,300,301,302,303,305,315,348,351,391,402,404,407,409,410,414,415,416,417,418,419],parti:[0,3,4,5,7,315],partial:[0,54,96,100,102,125,132,140,141,142,155,322,325,333],particl:[216,234,248],particular:[0,5,46,61,63,164,169,173,181,207,208,253,261,267,285,315,330,383,386,399,401,402,404,407,408,410,414,415,416,417,419],particularli:[63,91,177,187,243,261,269,287,346,363,368,369,408,409],partio:368,partit:385,partnership:0,pass:[0,6,20,40,47,49,63,64,69,75,76,79,101,104,105,140,153,178,179,199,204,206,216,217,235,243,254,255,256,257,258,266,267,280,281,289,292,295,315,340,351,362,368,370,371,372,373,375,388,389,391,392,395,396,401,403,407,408,417,418,419],passthrough:406,past:[8,47,319,351,386,409,414,416,420],patch:[0,153,248,391],patent:0,path:[2,3,5,6,10,20,23,43,44,63,75,158,179,181,185,203,204,208,216,218,232,243,249,253,261,283,305,308,310,312,315,319,326,330,332,334,348,353,365,368,370,372,373,385,386,391,395,402,403,404,407,409,410,414,415,416,417,419],pathcolumn:[332,348,371,391],pathfilt:[6,208,218,291,319,332,395,403,407,409,415,416],pathfilterui:395,pathforid:315,pathgroupingfunct:373,pathlib:348,pathlistingwidget:[319,326,331,334,348,351,360,367,368,371,372,373,391],pathmatch:[208,368],pathmatcherdata:367,pathmatcherdataplug:367,pathparametervaluewidget:336,pathplugvaluewidget:370,pathscop:348,pathsforid:315,pattern:[40,47,63,75,99,178,253,261,270,391,410],paul:0,paus:[8,69,79,217],pave:330,pawel:0,pbm:[136,140,149],pbrt:0,pcg:368,pdd:[136,140,149],pef:[136,140,149],pegtl:0,pehrson:0,penalti:[165,177,184,187,191,192,197,230,278,287,290,299,300],penumbra:368,peopl:0,per:[0,20,43,44,54,63,67,75,84,104,105,115,117,126,132,136,138,140,142,149,153,154,165,214,215,216,224,225,227,257,258,261,284,303,305,317,361,365,368,384,391,395,399,402,407,408,410,412,418],percent:0,perfect:[153,154,174],perform:[0,3,4,6,8,12,14,20,21,26,29,39,40,46,47,54,58,63,64,69,76,79,84,89,91,96,100,117,132,139,140,141,145,147,153,157,158,160,163,165,169,171,173,177,180,184,187,191,192,197,207,208,216,217,218,223,230,231,234,235,250,253,254,261,267,274,278,281,285,287,288,290,299,300,315,323,327,330,331,332,333,336,348,351,363,365,367,368,369,371,382,383,385,386,388,389,391,393,399,404,406,407,409,413,415,421],performancemonitor:[408,412],performanceonli:368,perhap:[179,212,417],perman:[0,310],permiss:0,permit:[0,6],permut:404,perpendicular:401,perpetu:0,persist:0,persistentonli:386,person:[0,418],perspect:[174,219,401,419],pertain:0,pertin:0,peski:416,pf:141,pfm:[136,140,149],pgdn:8,pgm:[136,140,149],pgup:[8,373],pharr:0,photographi:401,photor:404,php:0,phrase:0,physic:[0,6,54,61],pic:[136,140,149],pick:[140,153,154,156,333,411],picker:409,pictur:[0,404,408,418],picturespath:418,pid:391,piec:[0,101,402,404,415],pierr:0,pin:[8,229,231],pipe:85,pipelin:[336,403,406,410,417,418,419,420],pitfal:408,pivot:[8,99,139,151,152,158,370,381,395,397,399],pixar:[0,2,229,231,292],pixel:[8,23,54,56,63,75,94,95,99,104,105,114,117,119,123,126,127,130,131,132,139,143,145,151,152,153,154,158,159,160,174,214,215,234,270,281,315,330,333,338,368,383,389,391,402,403],place:[0,6,54,58,104,130,140,201,212,233,243,245,257,261,305,310,370,381,391,393,397,403,408,409,410,411],placehold:[136,140,149,185,367],placement:391,plai:[8,410,420],plain:[409,414,418],plainli:0,plan:410,planchon:0,plane:[8,60,73,164,174,176,210,212,219,291,296,368,401,403,416],plate:[174,333,403],platform:[0,348,391,395],plausibl:404,playback:[8,360],pleas:[0,102,125,142,201,268],plu:[0,160,229,231,280,372,373,404],plug:[12,20,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,310,315,317,319,320,321,323,325,327,328,330,332,333,335,336,337,338,348,353,355,361,362,365,366,367,368,369,370,372,373,376,378,380,382,383,384,385,386,388,389,390,391,392,393,394,396,399,401,402,403,404,408,410,412,414,416,417,418,419,420],pluga:12,plugadd:368,plugalgo:[315,335,348,367,382,390,391,393],plugb:12,plugc:12,plugd:12,plugdirtiedsign:330,pluge:12,plugin:[63,348],pluglayout:[315,348,368,386,393],plugnam:[308,309,417],plugswithmetadata:308,plugtyp:315,plugvaluewidget:[325,333,348,368,382,391],plugvaluewidgettyp:310,png:[0,136,149,310,336],pnm:[136,140,149],pnois:411,point:[0,2,6,43,54,63,68,75,116,164,165,168,173,177,210,214,215,216,228,229,230,234,240,248,259,261,302,303,305,315,351,355,360,361,368,369,370,382,383,384,385,386,388,391,399,401,402,403,406,407,411,415,416,417,418],pointbas:383,pointconstraint:291,pointer:[0,348,372,391,392,395],pointinstanc:[365,383],pointprimit:332,pointsgridtopoint:306,pointsminpixelwidth:366,pointsprimit:[248,305],pointstolevelset:[306,361],pointstyp:[234,291,386],pointtyp:393,pole:279,poli:71,polici:[348,365,386],polycount:391,polygon:[54,63,229,231,259,261,283,300],polymesh:63,pool:[67,409],poor:[63,218,386],pop:396,popul:[52,385,406],popular:174,popup:[319,320,336,385,394,396,397],popupwindow:315,port:[0,124],portabl:417,portal:[338,349],portion:[0,139,174,202,406,410,420],portnumb:97,pose:0,posit:[10,11,12,13,14,15,17,18,19,20,21,22,25,56,61,75,151,160,168,176,187,210,221,240,244,245,247,258,261,265,281,282,284,287,299,300,315,319,323,330,348,353,381,383,391,393,397,399,401,402,403,411,415,419],possibl:[0,6,91,97,104,136,168,171,179,216,229,232,240,267,315,369,370,391,404,408,410],post:[174,240,281,284,348,368],postcal:348,postcreat:[391,419],potenti:[54,63,67,315,340,355,359,368,372,382,391,393,397,409,416],povalahev:0,pow:132,power:[0,45,179,406,407,408,410,415],ppm:[136,140,149],practic:[0,3,63,132,399,401,407,412,413,421],pre:[3,59,240,284],preambl:0,prebuilt:393,prece:136,preced:[6,253,255,321,361,392,401,403],precis:[0,8,67,140,168,244,247,403,408,414],preclosesign:391,precomputedhash:391,predefin:[142,188,189,241,315,395,411],predic:383,predispatchsign:391,preempt:403,pref:228,prefer:[0,6,24,51,63,153,154,158,165,177,184,187,188,189,191,192,193,197,216,230,278,287,290,299,300,338,342,348,351,368,391,394],preferencesloc:348,prefilt:75,prefix:[23,63,101,140,142,216,253,277,315,334,372,386,391,396,399],premultipli:[96,100,102,125,132,141,142,155,161,391],prep:410,prepar:[0,240,415],preparesplinecvsforosl:315,prepend:136,prepopul:20,preprocess:383,presenc:[368,419],present:[0,6,12,23,60,67,73,164,234,240,286,296,315,348,369,391,407,408,410],preserv:[0,67,105,117,118,123,127,143,154,160,174,194,219,230,261,281,315,348,406,414],preset:[2,6,75,78,140,174,310,315,324,332,336,368,369,371,378,382,384,389,392,395,396,409],presetsplugvaluewidget:[315,368],presid:0,prespoolsign:[292,391],press:[6,8,316,319,330,360,409],pressur:365,preston:0,pretask:391,pretend:[0,410,416],pretti:[150,229,231,416],prevent:[0,216,257,316,317,319,321,323,325,329,330,333,338,342,344,345,348,350,351,352,355,358,360,361,362,365,366,367,368,377,382,383,385,386,387,391,396,409],preview:[2,10,22,75,116,315,319,348,403,409,410],previou:[6,8,21,136,149,150,310,315,325,333,348,368,391,407],previous:[0,315,318,321,338,339,344,354,360,362,368,369,372,383,385,391,396],price:[0,408],prim:[363,369],primari:[15,54,71,106,108,142,202,240,265,281,330,368,406],primarili:[6,180,408],prime:0,primit:[54,62,67,74,75,165,168,177,178,184,187,191,192,197,198,214,215,216,221,222,224,225,226,227,228,229,230,231,234,240,244,247,249,250,251,259,261,278,286,287,290,300,301,302,303,305,318,319,320,332,335,336,348,351,361,368,369,377,383,391,393,407,415],primitivecentroid:228,primitivesampl:386,primitivevari:[291,321,368,386],primitivevariableexist:291,primitivevariablequeri:[291,335,348,390,393],primitivevariabletweak:393,primvar:[178,191,192,197,216,225,229,335,361,370,376],princip:0,principl:[5,6,401,407],principled_bsdf1:6,principled_bsdf:[6,393],print:[0,10,11,12,13,14,15,16,17,18,19,20,21,22,385,407,415,416],prior:[0,6,12,20,142,170,179,276,315,368,382,384,412,416],prioriti:315,privat:[0,391],probabilist:75,probabl:[4,44,123,127,143,281,415],problem:[0,20,63,83,160,261,348,364,369,383,416],problemat:0,proce:216,procedur:[43,63,68,181,202,204,242,243,391,404,409,419],process:[0,6,8,14,20,21,52,53,54,55,57,59,62,63,64,67,69,71,72,74,75,76,79,81,82,83,84,85,86,87,88,89,90,91,96,100,101,102,124,125,128,132,135,139,140,141,142,148,150,153,154,155,163,165,168,170,171,172,174,175,177,178,179,180,182,183,184,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,209,210,211,213,214,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,234,235,238,239,240,241,242,243,244,247,248,251,252,253,254,255,256,257,258,259,260,261,262,264,266,267,270,272,276,277,278,280,281,282,284,286,287,288,290,292,294,295,299,300,301,302,303,305,315,330,368,370,382,383,386,387,391,399,403,406,407,408,409,410,411,415,421],processcolordata:368,processexcept:416,processor:[0,209,256,330,368,391,395],processorwidget:391,procur:0,produc:[0,43,44,54,117,123,127,136,140,143,174,181,186,210,226,229,231,246,279,281,305,389,407],product:[0,2,388,409],professor:0,profil:[10,11,12,13,14,15,17,18,19,20,21,22,63,75],profit:0,program:[0,83,415,421],programm:[0,399],progress:[63,218,348],prohibit:[0,153,154],project:[0,17,23,60,73,164,181,222,234,296,308,312,348,370,388,399,403,410,416,417,418,420],projectresourc:[417,419],promin:0,promis:0,promot:[0,26,332,338,378,386,390,391,392],prompt:[2,4,5,391],prone:404,prop:373,prop_bal:373,prop_box:373,proper:[6,174,407,410,416],properli:[0,54,58,330,407],properti:[0,5,6,43,44,58,117,216,223,229,315,367,387,391,401,402,416],proport:[104,174,281,401,403,408],propos:404,proprietari:0,prospect:0,protect:[0,85,315,368,388,415,417],protoindic:383,prototyp:[240,353,387],protrud:348,prove:0,provid:[0,5,6,8,16,18,19,20,22,29,36,47,54,58,63,96,102,104,105,113,139,141,154,160,163,171,174,176,177,179,180,188,189,193,214,215,216,221,222,229,231,240,245,261,265,266,268,287,292,310,315,321,322,333,336,338,340,348,361,368,371,373,386,391,392,393,395,401,402,403,404,406,407,408,409,415,416,417,418,419,420,421],provis:0,provision:0,proxi:[0,275,294,384,406],prune:[8,117,281,291,373,408],psb:[136,140,149],psd:[136,140,149],psf:0,psutil:391,ptx:[136,140,149],publicli:0,publish:[0,408,419],pull:[0,391,407,414],pure:[117,118],purpos:[0,202,281,310,315,367,384,389,391,392,401,402,404,406,407,421],push:[58,71,155,319],put:[0,63,216,226,229,404,407,410,414],pxn:[136,140,149],py:[13,241,342,351],pybind11:368,pyglet:0,pyopencolorio:368,pyosmesa:0,pysid:[315,368,391],pystr:348,python2:2,python:[2,11,13,16,20,21,23,31,32,54,63,71,75,84,133,170,172,175,188,189,234,237,238,239,250,251,253,274,276,280,281,294,309,315,318,320,348,351,361,367,368,369,372,373,384,385,389,391,393,396,407,408,410,416,417,418,419,421],pythoncommand:[92,372,394],pythoneditor:[385,394,396],pythonlab:0,pythonpath:2,q:[0,8,330],qa1361:0,qa:0,qc:421,qt:[315,319,325,333,368,391],qtk:[136,140,149],qtnetworkauth:391,qtpurchas:391,qtuitool:319,quad:[8,229,319,338,349,351,382,386],quadrat:408,quadrupl:385,qualiti:[0,63,75,104,123,127,139,140,143,153,158,160,225,315,330,368],quantiti:6,quantiz:216,quaternion:[216,240,370],quatf:318,quatfvectordata:240,queri:[6,23,131,169,173,179,203,207,208,257,258,268,269,285,286,294,311,315,320,335,336,348,365,368,369,386,390,391,393,402,408,414,415],quick:[6,8,408,409,415,419],quickest:408,quickli:[6,348,391,407,409],quit:[0,8,403,419],quot:[0,394],qwidget:368,r29:0,r:[6,8,99,103,151,157,160,399],r_eyelens001_ren:404,r_legupper_grp:6,radial:361,radian:338,radii:386,radiu:[67,152,153,368,386,414,415],raf:[136,140,149],rai:[54,56,58,62,63,68,71,74,75,402,409],rais:[54,63,317],ram:75,ramp:161,ramp_float:315,ramp_rgb:315,ran:5,randal:0,rander:0,random:[0,44,51,63,171,216,240,315,329,335,338,409,416],randomchoic:[51,319],randomis:[216,240],randomli:[44,270],rang:[0,8,23,29,43,46,56,67,81,82,83,91,100,116,119,130,136,160,168,174,187,232,244,247,253,257,279,281,292,330,348,382,389,391,399,407,409],rank:[123,127,143],ransom:0,rapidjson:0,rare:[0,25,216,315,348,353,369,386,391],raster:[54,357,384],rasterscop:361,rate:[23,54,63,71,229,232,309],rather:[0,6,10,11,12,13,14,15,17,18,19,20,21,22,24,46,54,64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,243,254,257,266,292,295,315,368,369,373,391,399,401,402,403,406,407,408,416,417],ratio:[8,63,99,103,104,105,126,151,154,163,174,219,281,333,402,403],raw:[136,140,149,234,325,333],raymarch:54,raymond:0,raytrac:[315,340],rdc:[136,140,149],re:[0,116,181,216,229,231,333,406,410,416,418],reach:[63,407,417],reaction:407,read:[6,56,58,65,77,84,136,141,149,162,163,165,166,185,236,271,297,315,318,320,321,334,346,348,361,363,364,365,369,371,383,387,391,399,400,403,405,406,417],readabl:[0,417],reader:[6,418],readi:3,readm:0,readonli:366,readset:348,readtag:348,readthedoc:0,real:[174,401,403,408,416],realism:75,realist:[174,418],realiti:401,realli:401,reampl:259,rearrang:[6,406],reason:[0,136,153,229,231,281,408,418],reassur:402,recal:419,recalcul:231,receipt:0,receiv:[0,6,54,71,124,177,187,214,261,287,351,368,370,373,391,401,407,412,417],recent:[63,330,348,351,395,419],recip:[0,420],recipi:0,recogn:[0,399],recolor:113,recombin:0,recommend:[0,5,6,7,12,14,23,36,75,78,83,153,294,348,403,407,415,418],recompil:0,record:[177,187,287,414],recreat:420,rectangl:[161,399],rectangular:[399,401],rectlight:[351,371],recurs:[218,348,416],recursiverang:308,red:[0,8,56,93,140,174,315,368,404,411,414],redestribut:4,redistribut:[0,3,4],redo:8,reduc:[63,71,75,110,153,259,365,391,404],reduct:368,redund:[63,386],reentrant:367,ref:278,refactor:368,refer:[0,5,6,23,26,40,46,47,51,54,62,74,75,84,85,95,123,127,142,143,148,153,168,181,204,222,224,228,240,244,247,253,261,268,280,310,315,323,325,333,348,351,360,370,371,374,386,389,393,395,399,401,402,403,404,407,408,409,411,412,414,415,416,417,419,420,421],referenc:[33,45,60,62,73,74,85,87,91,164,253,296,330,399,406],referencefram:361,referencenod:308,referenceposit:368,reflect:[0,6,54,63,75,280,368,391,395],reflectionalpha:395,reflectioncast:395,reflectioncatch:395,refocu:6,reform:0,refract:[54,63,75],refrain:0,refram:6,refresh:[341,350],refreshcount:365,regal:0,regard:[0,368,407,420],regardless:[0,54,64,67,71,76,81,82,83,84,85,86,87,88,89,90,91,140,218,235,254,257,266,280,292,295,348,404,407],regener:332,regent:0,region:[8,61,94,138,174,281,342,351,368,399,401],regist:[0,136,140,256,265,266,310,332,361,366,368,373,391,395,396,419],registerautotypefunct:395,registeredrender:315,registeredvalu:386,registernodevalu:336,registeropt:393,registerparamet:[393,395],registerpathgroupingfunct:373,registerreferencescen:348,registerrender:315,registerrenderpassnamewidget:372,registerselectmod:391,registervalu:[308,373,384],registr:[372,386,395],registrationtyp:386,registri:[294,391,392],regress:[21,385,388],regul:0,regular:[54,229,232,253,288,315,410,415],reimplement:391,reinstat:0,reintroduc:351,rel:[10,11,12,13,14,15,17,18,19,20,21,22,44,63,68,104,155,160,168,173,174,232,240,243,244,245,247,260,281,285,386,402,419],relat:[0,4,6,8,23,401,418],relationship:[0,402,404],relativenam:308,releas:[0,6,8,96,267,315,319,348,378,382,391,392,415],relev:[0,164,310,368,391,407,418,419,421],reli:[0,85],relianc:0,relink:0,relinquish:0,reload:[46,136,149,265,324,325,332,333,360,386],reloc:243,remain:[0,5,6,21,63,71,97,104,150,159,170,211,276,365,391,409,410,414],remap:[132,171],remedi:0,rememb:[6,407,414,415],remind:417,remot:[124,292],remotedisplaytyp:97,remov:[0,6,8,34,54,59,67,82,116,121,143,175,190,193,194,195,196,200,216,218,227,252,253,258,267,277,278,311,315,316,317,319,324,326,329,330,332,334,338,348,351,357,362,365,368,374,381,382,383,384,386,389,391,392,396,399,401,403,404,406,409,415,418],removechild:415,removejob:391,removeoutput:315,ren:6,renam:[0,8,23,36,140,213,277,278,291,310,315,321,338,358,368,383,386,391,394,411,417,419],render:[0,12,14,20,23,52,54,56,57,58,59,63,64,65,66,67,68,69,71,75,76,77,78,79,91,97,104,124,152,158,164,166,171,174,175,181,188,189,199,202,212,216,218,229,230,231,232,234,235,241,248,257,258,261,273,280,281,291,294,305,308,315,318,319,320,321,327,329,330,331,332,333,334,335,336,338,339,340,348,367,368,369,370,371,372,373,375,376,377,382,384,387,388,389,391,392,393,394,395,396,399,401,402,404,408,410,411,412,416,417,419],renderanimationcurv:348,rendercamera:416,rendercontrol:[315,384],rendercropwindow:174,renderfarm:292,renderman:402,renderopt:388,renderpass:[257,291,372,389,395],renderpasseditor:[371,372,373,375,392,393,395,396],renderpassshad:[291,395],renderpasstypeadaptor:[291,395,396],renderpasswedg:[258,291,372,389],renderrequestsign:315,renderresolut:[174,416],rendersetadaptor:373,rendersettingoverrid:391,rendertim:58,rene:0,renner:0,reopen:366,reorder:[358,385,391,394],reorderchildren:391,repair:0,repeat:[43,104,229,348,409],repeatedli:[101,325,333,407,408],repeatgetvalu:348,repeatprevi:391,repetit:348,replac:[0,4,5,6,8,59,67,175,202,219,223,255,267,277,278,284,315,330,331,332,333,338,367,368,385,391,393,401,403,406,412,415],replacedestin:[277,278,332],replic:[401,403],report:[0,20,21,63,303,369,388,421],reposit:[6,370,406],repositori:0,repr:372,repres:[0,6,8,27,28,33,56,57,58,65,77,123,127,143,153,154,166,222,231,236,268,271,275,280,290,297,303,310,339,340,348,369,393,397,399,401,402,403,406,410,416],represent:[0,60,73,164,212,216,231,234,240,283,290,296],reproduc:0,reproduct:0,reput:0,request:[0,173,285,315,336,391,407,408],requir:[0,2,3,4,6,8,54,63,64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,174,216,217,227,229,231,235,240,254,257,266,292,295,315,332,336,348,361,368,391,407,408,409,410,411,414,415,419],resal:0,resampl:[160,161,165,259,348,368,383,389],resampleprimitivevari:[291,348],resav:330,research:0,resel:0,reselect:6,reserv:[0,10,11,12,13,14,15,17,18,19,20,21,22,66,75,78],reset:[8,211,284,353],resetxformstack:363,resid:[407,414],resiz:[0,104,105,131,153,161,321,360,368,383,386,391,410],resolut:[6,60,63,67,68,73,75,99,103,105,126,151,154,163,164,219,234,281,286,296,301,303,357,384,391,401,402,403,410,416],resolutiong:361,resolv:[47,394,403],resolvedrender:376,resourc:[6,45,417,418,419],resourcespath:[418,419],respect:[0,60,73,140,164,171,174,181,193,219,234,280,281,296,321,348,366,368,386,391,401,408,409],respond:[336,399,410],respons:[0,83,348,367,391,395,407,409,410],rest:[0,2,6,66,78,404,407,415],restart:[69,79,217],reston:0,restor:321,restrict:[0,36,292,315],restructur:408,result:[0,6,10,11,12,13,14,15,17,18,19,20,21,22,32,54,63,67,71,75,91,106,113,117,118,119,132,153,158,174,180,185,205,206,207,208,216,219,225,227,229,231,245,268,281,285,286,289,304,311,312,316,317,325,331,333,348,356,368,372,383,386,387,391,393,401,406,408,411,414,416,420],retain:[0,317,361],retriev:[46,165,237,250,274,368,386,407,416,417],retroact:0,reus:[0,105,407,414,418],reveal:[6,415],revers:[0,260],reversewind:[291,386],revert:[63,335,366,391],review:21,revis:0,rgb:[8,63,136,140,149,150,155,163,214,215,399],rgba:[8,63,67,136,140,149,373,396],rgbachannelsplugvaluewidget:[348,350,351],rgbe:[136,140,149],rhel:395,ribbon:[54,75,234,391],richard:0,rig:[218,417],right:[0,2,4,5,6,8,47,84,93,104,145,154,158,160,171,174,219,223,229,231,253,270,281,310,319,321,332,348,360,367,372,385,389,391,399,406,407,409,410,411,414,415],rightarm:[185,245],rigid:211,ring:[104,105,139,154],risk:[0,6,418],rla:[136,149],rlimit_nofil:366,robert:0,robin:0,robot:[6,185,245,404,409],robota:[185,409],robotb:[185,409],robotc:185,robotd:185,robotleftarm:185,roboto:0,rodola:0,rodriguez:0,roelof:0,role:368,roll:0,room:63,root:[0,6,19,20,23,179,180,189,216,218,265,268,308,315,321,330,407,414,415,416,417],rootandnam:330,rootdirectori:[23,308,370,417],rootnam:[23,208,367,408],rootnamevari:315,rootpath:348,rootpervertex:376,rossum:0,rotat:[6,8,99,139,151,152,158,212,240,368,399,402,408,409,416],rotateaboutcent:54,rotateaboutorigin:54,rotatetool:[368,370],rough:[6,75,395,408],roughli:[403,408],round:[8,75,152,346,363,401],row1nam:47,row2nam:47,row:[8,253,269,315,316,319,327,332,336,355,358,362,369,382,385,396,399,409],rowplug:47,royalti:0,rpm:0,rstrip:[308,416],rtld_global:368,rule:[47,214,215,229,231,404,408,409,410],rullgard:0,run:[0,2,4,6,10,11,12,13,14,15,16,17,18,19,20,21,22,59,63,75,84,85,88,96,100,102,124,125,132,141,142,155,165,315,335,340,348,377,391,408,410,419],runtim:[368,418],runtimetyp:391,rw2:[136,140,149],rwl:[136,140,149],rwz:[136,140,149],s:[0,2,5,6,8,9,10,13,14,21,22,23,40,47,49,53,54,55,56,58,59,60,62,63,64,67,73,74,75,76,78,81,82,83,84,85,86,87,88,89,90,91,96,100,102,106,107,108,110,120,121,122,125,132,136,138,140,141,142,149,150,155,159,164,165,168,170,171,174,177,182,183,184,185,187,190,193,195,196,198,199,215,216,219,220,223,226,229,235,243,244,245,247,253,254,257,259,265,266,268,269,276,277,278,281,282,287,292,294,295,296,297,302,303,310,315,325,327,333,334,336,339,348,351,355,361,362,368,369,382,383,388,391,395,396,399,401,402,403,404,406,407,408,410,411,412,414,415,416,417,418,419,420,421],sa:0,safe:[63,174,414],safest:0,safeti:[348,367],sahastrabuddh:0,sai:[0,404,408,416],said:6,sake:[150,159,408],sale:0,sam:0,same:[0,5,6,10,20,23,33,43,44,54,63,67,71,75,94,101,104,109,113,117,124,133,140,148,150,153,154,159,172,174,175,179,188,189,211,216,223,226,229,231,234,235,239,261,267,277,278,280,281,294,310,311,316,325,332,333,348,366,368,370,377,383,395,399,401,403,404,406,407,408,409,412,414,416,417,419],sampl:[0,54,56,63,71,112,113,114,115,116,117,118,119,126,130,137,140,150,153,154,177,187,261,287,346,361,363,368,385,391,402,410],sampler:[368,385],sampling_pattern:391,san:0,sanner:0,santa:0,saratoga:0,sascha:0,satisfactori:0,satisfi:0,satur:161,save:[2,5,8,10,11,12,13,14,15,17,18,19,20,21,22,46,63,75,97,280,316,330,348,358,388,391,406,409,417,418,419,420],saveprefer:348,sbin:5,scalar:393,scalarformat:395,scale:[8,54,68,71,75,104,105,139,153,154,158,234,247,303,323,333,348,351,355,381,382,383,389,397,401,402,403],scaletool:323,scan:142,scanlin:140,scatter:[54,63,71,75,214,291,305,358,368,385],scc:[6,265,266,417],scenario:348,scene:[2,21,43,44,52,53,54,55,57,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,142,164,165,166,168,170,171,172,174,175,176,177,178,179,180,181,182,183,184,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,204,205,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,238,239,240,241,242,243,244,245,246,247,248,249,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,270,271,272,273,276,277,278,279,280,281,282,283,284,286,287,288,290,294,295,296,299,300,301,302,303,304,305,311,312,315,316,320,321,329,332,335,338,348,351,353,365,370,373,375,376,383,385,386,388,389,391,392,395,396,399,403,407,409,410,414,415,417,418,419],scene_linear:368,scenealgo:[315,319,368,372,383,386,389,394,396],scenecach:[6,265,266],sceneelementprocessor:291,scenegadget:[348,368,389],scenegraph:363,sceneinspector:351,sceneinterfac:[265,266,348],scenenod:[20,291],scenepath:[373,388],scenepathplugvaluewidget:388,sceneplug:[20,348,386,391,416],sceneprocessor:[291,391],sceneread:[6,291,295,315,319,320,321,346,348,351,361,363,364,365,366,369,372,383,389,395,397,408,417,418],scenetestcas:[348,384],sceneview:[315,361,368,384],sceneviewinspector:315,scenewrit:[258,291,295,315,319,321,348,361,363,369,381,395,397],schaik:0,schalnat:0,schedul:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],schema:363,scheme:[231,415],schmidt:0,school:0,schott:0,schreiner:0,schwaller:0,scope:[0,315,348,394,397,409,417],scopedconnect:[315,330],scopedlocal:[340,348],scott:0,scratch:411,screen:[15,54,56,333,355,382,391],screengrab:16,script:[0,5,13,18,23,38,45,46,83,257,268,314,315,322,325,333,351,354,368,369,386,391,409,414,415,417,419,421],scriptcontain:315,scriptnod:[19,20,23,51,315,348,367,368],scriptwindow:391,scroll:[6,8,316,368],scrollbar:[355,382],scrolltofirst:368,scrub:[8,116],sdr:392,sdrosl:392,sdrregistri:[297,369,393],seamlessli:[229,231],sean:0,search:[6,8,63,208,218,253,336,348,371,382,408,419],searchtext:419,second:[6,20,40,46,47,49,75,78,90,107,146,160,175,201,216,286,295,303,408,410,418,419],secondari:[0,106,108,140],section:[0,5,6,26,253,268,310,320,324,332,335,336,348,362,369,372,373,394,410,418,419],sectionnam:310,see:[0,21,63,132,142,144,202,216,229,231,241,251,280,294,348,391,396],seed:[63,261,315,358,368,391,407],seedvari:315,seem:0,seen:[54,75,231,280,324,332,386,407],segment:[153,154,280,281,339],select:[0,2,5,25,26,44,47,54,64,67,75,76,81,82,83,84,85,86,87,88,89,90,91,97,113,117,118,123,127,136,140,143,150,156,159,165,174,180,185,235,254,257,266,268,269,286,292,294,295,305,311,316,319,320,321,324,326,330,332,333,334,336,342,348,351,353,360,361,368,370,372,373,390,391,393,394,395,397,401,402,404,406,409,410,411,412,414,415,419],selectedtext:396,selectiontool:391,selector:[253,257,258,269,315,332,350,389,391,409,410],selectview:[161,315],self:[3,84],sell:0,semant:85,send:[6,97],sens:[0,174,179,229,415],sensit:[54,347,366,368,408],sensor:[174,401,403],sent:[0,280,412],separ:[0,6,21,40,47,49,54,60,61,64,67,68,73,76,81,82,83,84,85,86,87,88,89,90,91,96,100,102,106,107,108,120,121,122,125,132,140,141,142,150,153,155,159,164,174,176,177,181,182,183,184,186,187,190,193,195,196,198,199,200,204,213,214,215,216,220,224,227,233,235,243,245,246,254,257,259,266,267,270,279,280,283,286,287,292,295,296,302,304,311,315,332,338,340,351,368,382,389,393,403,404,408,409,414,415,418,419],seper:261,seq_001:417,sequenc:[0,6,19,64,67,76,81,82,83,85,86,87,89,90,91,104,136,140,142,149,185,235,245,254,257,266,292,295,310,348,367,379,393,403,408,410],sequencepath:417,seri:[0,13,63,91,101,139,406,407,408,419,420],serial:420,serialis:[323,325,333,342,351,391],serialisetofil:[308,348],serif:0,serv:406,server:[0,124],servic:[0,23],session:[6,19,97,391],set1:311,set2:311,set3:311,set4:311,set:[0,2,3,4,6,7,19,23,33,36,43,44,47,52,54,58,62,63,64,67,69,71,74,75,76,79,81,82,83,84,85,86,87,88,89,90,91,100,101,110,120,122,124,130,136,138,139,140,148,153,158,160,168,169,172,173,178,179,180,188,189,199,200,207,210,216,217,218,222,223,224,228,229,234,235,239,244,247,250,253,254,255,257,261,265,266,268,274,277,278,280,281,282,285,286,291,292,294,295,299,300,301,303,309,313,315,317,319,320,330,332,336,340,342,348,351,353,354,355,359,360,361,365,367,368,369,370,372,373,376,382,383,384,386,388,390,391,392,396,397,401,403,407,408,412,413,415,416,417,419,420],setblock:315,setcachememorylimit:391,setcamera:315,setcenterofinterest:315,setcontext:[325,333],setdefault:418,setdefaultcolorspacefunct:[136,140],setdisplaytransform:368,seteditor:[351,383,390,392],setenv:5,seterror:[315,368],setexpandedpath:348,setexpress:[61,311,391],setexpressionplugvaluewidget:396,setfilt:[267,291,392,396],setfocu:308,setfram:[46,84,308],setframerang:308,setfromstr:330,setimag:348,setinput:[308,315,415,416],setlay:368,setmembershipedit:353,setnam:[23,308,365],setnumericbookmark:308,setplugfromdata:390,setpostprocessshad:[330,368],setqueri:[291,336],setreadonli:[348,417],setscop:348,setselect:[368,396],setselectedpath:368,setsizemod:348,settabl:369,settabvis:368,setter:330,setui:332,setup:[23,174,361,404,408,409,410],setvalu:[308,348,391,415,416],setvaluefromdata:[335,391,393],setviewport:315,setvisibleset:348,setvisiblesset:348,setvisualis:[291,348],setx:2,sever:[0,5,6,23,40,47,58,174,213,289,315,385,407,416,418,419],sgi:[136,149],shade:[0,6,54,63,75,78,234,315,338,348,355,361,382,389,391,402,403,411],shader:[2,54,56,58,60,61,62,63,65,68,71,73,74,75,77,91,162,163,164,165,166,171,181,234,236,270,275,280,282,291,295,296,297,315,316,319,321,324,330,332,333,334,336,337,338,339,340,341,342,348,350,351,357,361,362,367,368,369,370,371,372,382,383,384,387,388,389,391,392,393,394,395,397,402,407,408,409,416],shaderassign:[6,56,58,65,77,166,236,271,291,408,415],shaderassignment1:6,shaderbal:291,shadernam:[274,395],shadernetwork:[54,71,172,188,234,280,294,383],shadernetworkalgo:315,shadernod:388,shaderplug:395,shaderqueri:[291,315,316,336,348,367,382,390,393],shadertweak:[275,291,316,319,320,329,338,367,382,393,396,397,409],shadertweakproxi:[291,396,397],shaderui:[357,384],shaderview:348,shadingsampl:391,shadow:[8,54,63,71,75,104,354,369,370,391,395],shadowautobumpvis:361,shake:[174,281,399],shall:0,shape:[160,224,225,229,323,348,354,369,370],share:[0,45,54,216,226,229,231,295,399,406,407,419],sharp:[63,104,105,139,154,225,229],sharper:153,sharpest:160,she:0,sheet:[104,361,393],shell:[2,13],shift:[6,8,47,110,174,324,332,348,370,392,401,403,409,415],shine:404,ship:[16,419,420],shorcut:415,shortcut:[6,9,16,319,320,348,353,360,368,372,373,391,393,396,403,409,414,415,421],shortvectordata:321,shot:[142,401,408,410],shot_001:417,shotpath:417,should:[0,5,6,12,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,315,330,348,368,373,387,388,391,402,403,407,408,410,414,415,416,417,418,419,421],shouldn:338,show:[0,6,8,75,104,114,310,319,323,333,334,348,368,369,391,396,403,406,409,410,411],show_001:417,showcategori:382,shown:[8,268,315,325,332,333,348,350,368,384,391,404,415],showpath:417,showvaluechangedind:391,shrink:[127,229,231],shuffl:[161,315,332,377,391,404],shuffleattribut:[291,315,332,348,391],shuffleplug:[157,391],shuffleplugvaluewidget:391,shuffleprimitivevari:[291,332,348,386,391],shufflesplug:391,shuffleui:391,shufflewithextrasourc:391,shut:391,shutdown:[320,391],sibl:[348,368],side:[0,6,89,174,176,280,281,404,407],sidecar:185,sight:6,sign:[0,304,318],signal:[315,317,330,348,389,391,417],signatur:[0,348,368],signific:[0,6,223,315,399,408,417,420],significantli:[39,63,368,369,388,408],silent:407,silicon:0,simd:0,similar:[0,6,105,181,402,403,404,409,419],similiarli:229,simon:0,simpl:[6,63,67,132,140,164,225,229,231,292,315,391,392,406,408,409,410,415,416,417,419],simpleprocessorwidget:391,simplest:[406,419],simpli:[0,5,284,368,403,404,407,410,414,418,419],simplic:[6,406,408,410,419],simplifi:[26,348,368,391,406,409],simul:[54,56,174,216,401,403,419],simultan:0,sin:411,sinc:[0,6,36,46,131,178,179,227,231,332,348,361,366,397,401,403,406,407,408,409,410,415,417,418,419],singl:[0,6,12,20,33,54,60,63,68,71,73,75,93,112,117,133,140,148,153,156,168,172,179,188,189,201,216,222,223,234,239,244,245,247,266,280,281,294,296,303,315,321,330,333,386,390,391,402,403,406,407,408,409,415,416],singlepartviewnam:140,singlepass:153,site:[2,292],situat:[0,47,403,408,411,416],six:368,size:[0,8,20,25,54,63,68,71,75,95,104,123,127,140,143,154,160,174,186,208,212,216,219,230,232,246,261,281,301,303,304,338,348,355,357,377,382,384,385,386,391,399,401,403],sizemod:[315,348],skew:174,skill:0,skip:[54,63,315,351,382,416],sky:404,skydome_light:391,slash:[407,419],slice:[116,407],slider:[46,319],slight:409,slightli:[132,165,177,184,187,191,192,197,229,230,231,278,287,290,299,300,415,417,420],slope:[317,348],slot:[315,348,367,368,391],slotcal:315,slow:[68,75,153,154,257,348,408],slower:63,sm:[136,140,149],small:[0,54,58,67,68,75,113,232,261,300,319,368,407,408,419],smaller:[6,25,63,67,174,219,281,301,303,304,391,399,401],smallest:[68,91,407],smooth:[54,225,229,231,369],smoothli:[158,408],snake_cas:315,snap:8,snapshot:389,snapshottofil:389,so:[0,2,3,5,6,10,11,12,13,14,15,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,315,319,325,330,332,333,338,348,361,366,368,369,384,386,391,392,394,395,403,404,406,407,408,409,410,411,414,415,416,417,418],socket:337,soft:366,softer:[153,154],softest:160,softwar:[0,2,3,4,5,17,64,67,76,81,82,83,84,85,86,87,88,89,90,91,136,140,235,254,257,266,292,295,315,401,408,421],sold:0,sole:[0,311],solid:[6,181,234],solidangl:2,solo:[348,368],solochannel:368,sololight:[348,367],solut:[408,419],some:[0,2,5,10,11,12,13,14,15,17,18,19,20,21,22,23,29,54,58,63,75,83,84,136,140,160,164,178,180,187,202,219,229,231,264,330,362,369,385,388,389,399,401,404,407,408,415,417,418,419,421],somehow:0,someon:0,someth:[84,136,140,177,187,229,231,287,407,408,417],sometim:[0,216,229,401,404,407,408,411],somewher:[0,6],soni:0,soon:[6,153,154,391],soren:0,sort:[117,118,351,391],sortedchannelnam:315,sortvalu:391,sourc:[0,2,5,8,17,23,63,104,110,112,138,157,160,178,185,216,243,259,261,277,278,305,315,319,320,336,348,368,383,391,392,393,399,403,404,406,409,411,414,415,421],sourceforg:0,sourcenod:308,sourceplugnam:308,sourcewar:0,sourcewidget:391,space:[8,21,40,47,49,54,56,60,61,63,64,67,68,71,73,76,81,82,83,84,85,86,87,88,89,90,91,96,100,102,106,107,108,120,121,122,125,132,136,140,141,142,148,150,155,159,164,165,168,174,176,177,181,182,183,184,186,187,190,193,195,196,198,199,200,204,211,213,214,215,216,220,233,234,235,240,244,246,247,253,254,257,259,261,266,267,270,279,280,282,283,286,287,292,295,296,302,303,304,311,348,351,357,368,371,382,384,393,399,401,402,403,409,410],span:394,spatial:[0,75,416],spawn:386,spdx:0,speak:[0,401],spec:[0,136,140],special:[0,75,140,150,153,174,216,312,336,392,401,403,404,406,407,411,417,418],specialimag:336,specialis:[188,189],specif:[0,6,8,13,16,21,58,91,136,140,164,168,170,174,188,189,193,221,244,247,255,257,258,265,270,276,280,282,294,310,315,321,323,330,355,370,371,382,383,389,391,393,394,395,399,402,404,407,408,410,411,414],specifi:[0,5,6,10,11,12,13,14,15,16,17,18,19,20,21,22,23,29,33,43,44,54,57,60,63,67,71,73,75,78,81,83,85,91,97,99,100,101,102,115,123,124,127,130,133,136,137,139,140,142,143,148,149,150,151,152,153,158,159,160,164,168,172,173,174,175,179,185,187,188,189,203,211,216,219,226,229,231,232,234,235,236,239,240,242,244,245,247,252,253,258,261,266,267,274,277,278,280,281,283,284,287,292,294,296,303,305,310,311,315,319,332,335,336,348,368,375,383,384,391,399,402,403,404,407,409,410,415,421],specimen:0,speckli:67,specular:[54,63,391],specular_ior_level:393,specularcolor:389,speed:[67,75,386,415],speedup:[323,348,383,386,389,391,408],spend:202,sphere:[164,210,234,248,291,304,312,407,414,415,416],spherelevelset:[306,348],spherelight:371,sphereobject:416,sphereprimit:279,spheretransform:416,spheric:174,spi1d:141,spi3d:141,spimtx:141,spiral:63,spirit:0,spirv:0,spline:[171,259,360,361,383,411],splinefcolor3f:162,splineplug:[321,360],split:[67,75,116,117,227,229,231,315,351,407,410,414,417],sponsor:0,spool:292,spot:[368,382,386],spotlight:[164,219],spread:[240,385],spreadsheet:[51,140,253,257,258,269,315,317,324,327,332,336,348,351,361,362,369,385,386,389,396,397,407,413],spreadsheet_renderopt:410,spreadsheetui:362,springboard:419,spuriou:396,squar:[0,63,66,78,99,152,174,273,399,403],squeez:[174,219,281],sr2:[136,140,149],src:0,srf:[136,140,149],srw:[136,140,149],sss:54,st:383,stabil:63,stabl:[321,391],stack:63,stage:[363,383,406],stagecach:383,stai:117,stale:368,stall:[325,333],stallman:0,stand:418,standalon:[0,10,315],standard:[0,40,47,49,83,96,100,102,104,106,107,108,120,121,122,125,132,136,140,141,142,150,155,159,174,177,182,183,184,185,187,190,193,195,196,198,199,216,220,229,231,245,253,259,280,281,287,295,302,315,340,351,365,368,369,386,391,394,399,401,402,403,404,409,410,412,417,418,419],standard_volum:319,standardattribut:[54,61,71,188,232,281,291,294,320,330,396,404],standardlightvisualis:[319,332,391],standardopt:[6,63,75,174,189,217,254,291,373,375,384,396,401,403,410,412,416],standardpartnam:140,standardpath:348,standardpathcolumn:391,standardset:315,stanlei:312,start:[0,2,4,5,8,23,40,43,47,63,68,75,81,83,91,117,118,151,187,219,223,253,257,292,308,315,319,351,391,401,407,410,411,415,416,418],starttim:391,startup:[20,241,342,351,372,373,376,384,391,395,420],stat:[16,408,412,417],state:[0,8,47,52,53,54,55,57,59,60,61,62,63,66,68,71,72,73,74,75,78,117,164,165,168,170,171,172,174,175,176,177,178,179,180,181,182,183,184,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,204,205,206,209,210,211,212,213,214,215,216,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,238,239,240,241,242,243,244,245,246,247,248,251,252,253,255,256,258,259,260,261,262,263,264,265,267,268,270,272,273,276,277,278,279,280,281,282,283,284,287,288,289,290,294,296,299,300,301,302,303,304,305,332,348,353,368,373,408,409,410,416],statement:[0,407,408,409,410],staticsamplingpattern:391,statist:[20,63,281,383,391,408,412],statu:[0,47,391],statuschangedsign:391,statut:0,statutori:0,stb:0,stb_imag:0,stb_image_res:0,stb_image_writ:0,std:[315,348],stderr:20,stdio:0,stdout:[20,21,412],step:[0,2,8,54,67,68,71,75,91,229,409,415,419],step_scal:367,stereo:[140,315],steward:0,stewart:0,sti:[136,140,149],sticht:0,still:[0,2,6,63,117,118,136,139,149,218,243,265,315,330,351,391,401,404,412],stop:[8,21,75,174,217,281,322,330,360,368,391,401,403],stoppag:0,storag:[0,391],store:[14,20,23,24,45,46,52,53,55,59,63,67,72,81,83,97,131,140,174,180,185,222,224,229,240,255,258,286,292,315,368,389,391,401,402,418,420],str:[308,372,416],straight:234,straightforward:401,straightforwardli:0,strategi:[0,71],stream:[315,382,414],street:[0,185,245,282,408],strength:[6,174],stretch:[174,219,224,281,348,360],strict:[0,363],strictli:401,strikethrough:393,string:[5,33,67,107,121,148,162,178,179,180,208,216,226,227,253,270,283,313,315,330,338,340,348,351,373,382,385,386,387,388,391,393,394,399,403,409,410,415,417,418],stringdata:[320,351,393,417],stringplug:[162,165,310,348,391,416],stringplugvaluewidget:[351,357,384],stringvectordata:[351,384,391,415,416],stringvectordataplug:[310,327,336],stripe:[270,411],strive:421,strong:410,stronger:401,strongli:399,struct:[348,368],structur:[0,6,63,84,149,399,402,406,407,409,416,417,420],stuck:[368,372],stuctur:408,studio:[0,6,368,391,406,417,418,419,420,421],stuff:416,style:[0,228,310,348],stylist:0,sub:[6,140,333,399,403,406,409,411],subclass:[0,310,315,391],subcompon:391,subdirectori:383,subdiv:[229,231,392],subdiv_iter:63,subdiv_typ:54,subdivfrustumcul:54,subdivid:[54,58,75,229],subdivis:[54,58,63,71,229,231,246,390,391],subdivision_surfac:[229,231],subgraph:[8,26,51,408],subgroup:253,subject:[0,367,399,404,408],sublicens:0,submenu:[333,368],submiss:0,submit:0,submodul:315,subprocess32:[315,368],subscript:368,subsect:0,subsequ:[0,40,47,153,154,223,385],subset:[0,6,82,348,402,407],subsidiari:0,subsitut:0,substanc:0,substanti:[0,216,365],substitut:[0,6,33,104,178,179,180,313,315,332,338,370,387,393,407,409,410,417,418],substitutionnam:85,substitutionsnam:85,subsurfac:[54,63],subtract:[144,175,403],subtre:[179,291,315],success:[91,177,187,287,407,417],successfulli:6,successor:0,sudivis:351,sudo:3,suffer:[0,58],suffici:[0,97,292,348],suffix:[52,56,58,65,77,140,162,166,201,236,253,271,275,297,315],suggest:[0,3,368,372,404],suit:[0,54,60,73,158,164,234,296,382,395,419,420],suitabl:[0,39,66,78,93,273,315,330,388,407],summar:0,summari:[0,20,320,324,332,391,394],superced:401,supercomput:0,supers:404,supersed:0,supplement:0,suppli:[0,12,13,85,270,401],supplier:0,support:[0,6,8,63,64,67,68,69,75,76,79,95,104,136,140,141,149,158,162,165,166,174,175,185,188,189,216,226,240,251,261,265,266,268,270,280,283,295,311,315,319,320,330,332,333,334,335,336,338,339,340,348,351,361,367,368,369,370,371,372,375,377,382,383,386,387,388,390,391,392,393,395,396,397,399,401,403,404,406,407,408,410],suppress:315,sure:[0,2,5,130,232,403,404,415,417],surfac:[6,54,63,67,71,75,168,177,228,229,231,244,247,261,287,299,319,338,382,391,394,411],surface_mix_weight:338,surfacetextur:391,surfgrad:0,surpris:416,surprisingli:416,surrend:0,surround:19,surviv:0,sustain:0,svm:[75,78,338,391],swatch:[319,411],sxr:[136,140,149],sync:409,syntax:[0,40,47,85,104,142,253,313,315,338,396,406,407,409,410,411,414,415,416,417],system32:5,system:[0,2,3,4,5,75,78,83,85,179,181,355,368,382,403,417,418,419],systemcommand:[2,12,14,64,76,92,254],systemerror:396,szip:0,t:[0,8,34,46,54,61,63,64,67,68,76,81,82,83,84,85,86,87,88,89,90,91,132,136,140,157,168,174,179,191,192,197,210,216,227,229,231,235,244,247,254,257,266,292,294,295,303,310,315,322,330,336,338,340,343,348,352,365,369,370,373,386,391,394,396,403,404,407,408,409,410,411,416,417,418,419],tab:[6,8,23,324,332,348,351,368,392,394,402,403,406,407,409,410,414,415,417,418],tabbedcontain:368,tabl:[0,23,259,310,393,409],tableview:[355,382],tabnam:310,tabular:409,tag:[229,365,399],take:[0,6,16,54,58,63,91,104,116,146,150,160,174,194,223,252,253,255,264,295,301,303,315,325,333,348,361,376,391,401,403,406,407,410,411,415,416,417,419],taken:[0,33,54,56,63,71,75,133,148,172,179,188,189,216,234,239,280,281,294,368,384,410],tangent:[229,231,315,317,348,393],tangent_sign:393,tangl:415,tanner:0,tantrum:404,tar:[3,5],target:[8,32,63,170,178,216,238,259,276,286,323,362,370,381,391,393,395,397,403,404,407,409,418],targetvertex:315,tarn:0,task:[14,26,193,386,389,391,410,412,415,421],taskbatch:391,taskcontextprocessor:92,taskcontextvari:92,taskdata:391,taskisol:386,tasklist:[92,391],tasknod:[20,81,92,315,378,391,392],taskparallel:348,taskplug:[20,315],taskswitch:92,tast:[6,411],tata:83,tattribut:416,tbb:[315,386],tbound:416,tcsh:5,tcsh_profil:5,td:419,team:0,technic:[0,142,153,227],techniqu:415,tediou:[5,6,404],tell:[0,6,407,408,416],templ:0,templat:0,temporari:[81,83,292,407],temporarili:315,temporarydirectori:348,temptat:409,ten:0,tencent:0,tend:[54,142],term:[0,136,140,149,399,401,402,404,416],termin:[0,2,3,4,5,63,71,75,412,417,418],terminolog:[399,402,403,421],tessel:[229,279,402],tessil:0,test:[0,2,5,6,16,75,189,319,348,361,368,382,391,408,410,415,418,420],testcachethreadsafeti:21,testcas:[315,340,348,361,368],testlightfilt:348,testrunn:[21,382],text:[0,2,5,6,25,104,161,268,291,310,315,367,393,396,406,407,409,410,414,419,420],textselect:391,textur:[0,60,63,67,71,73,75,160,164,181,221,222,229,231,234,296,317,335,342,348,351,355,382,391,397,402,417,419],texture_auto_generate_tx:335,texture_auto_tx_path:335,texture_use_existing_tx:335,textureload:391,textwidget:396,tga:[0,136,140,149],thai:0,than:[0,6,10,11,12,13,14,15,17,18,19,20,21,22,24,46,49,54,63,64,67,76,81,82,83,84,85,86,87,88,89,90,91,104,116,117,118,136,140,153,155,174,175,210,215,218,219,223,225,229,231,235,243,254,257,266,270,274,279,281,292,295,315,323,333,339,348,351,368,369,373,389,391,394,399,401,402,403,404,406,407,408,410,415,416,417],thank:0,thei:[0,6,8,13,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,315,319,324,330,332,348,368,377,379,383,386,391,393,397,401,402,403,404,406,407,409,410,414,415,416,417,418],them:[0,6,21,23,25,26,54,58,59,60,67,73,97,100,105,117,118,136,140,164,171,174,182,184,201,202,213,216,223,229,231,234,243,245,252,271,280,289,292,295,296,311,342,348,351,372,391,399,401,402,404,406,407,408,409,411,414,415,417,419],themselv:[0,319,402,407,415],theoret:[63,219],theori:0,therefor:[0,47,240,261,284,401,404,407,419],therein:418,thereof:0,thethi:409,thi:[0,2,3,5,6,10,11,12,13,14,15,16,17,18,19,20,21,22,25,27,28,29,31,32,33,39,40,43,45,46,47,49,52,53,54,55,56,57,58,59,60,61,62,63,64,65,67,68,71,72,73,74,75,76,77,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,170,171,172,174,175,176,177,178,179,180,181,184,185,187,188,189,191,192,194,197,201,202,205,206,207,208,210,211,212,213,214,215,216,217,218,219,221,222,223,224,225,226,227,229,230,231,232,234,235,236,237,238,239,240,241,243,244,245,247,250,251,252,253,254,255,256,257,260,261,265,266,267,268,269,270,271,272,274,275,276,278,280,281,282,283,284,286,287,288,289,290,292,294,295,296,297,299,300,305,310,311,315,319,322,323,325,327,330,332,333,335,336,338,340,346,348,351,353,361,362,363,365,367,368,369,370,372,382,385,386,388,389,391,393,399,401,402,403,404,406,407,408,409,410,411,412,414,415,416,417,418,419,421],thibaut:0,thick:[54,270],thicken:54,thin:54,thing:[0,140,348,391,401,402,404,416],thingammajig:310,think:[0,136,311,402,415],thinner:410,third:[0,3,4,5,7,201,286,401],thl:0,thoma:0,thoroughli:[0,340],those:[0,6,56,107,133,190,231,265,281,369,389,401,408,409,420],though:[0,136,137,348,379,393,401,408,410,416],thought:[132,401],thousand:[407,408],thread:[75,83,124,348,355,367,368,382,386,391,407,408,416],threadingbuildingblock:0,threadmonitor:382,threadstat:383,threat:0,three:[0,201,286,401,409,415,417,419],threshold:[0,54,75,100,117,118,215,368],through:[0,6,8,33,40,47,49,54,60,64,69,73,75,76,79,93,101,116,140,164,165,178,179,206,208,216,217,218,235,254,257,266,289,295,296,318,324,332,348,360,362,368,372,382,401,407,408,411,415,416,417,418,420],throughout:[0,368,410],throwifnoscen:388,thrown:[315,330,387],thru:0,thu:[0,6,403,417],ti:[408,409],tidi:[117,118],tiemod:336,tif:[136,140,149],tiff:[136,149,318,391,399],tight:225,tighten:[194,252],tightli:227,tile:[23,63,75,104,140,174,315,337,339,368,369,385,391,399,403,407,416],tileorigin:[23,407],tilt:[174,403],tim:0,time:[0,2,3,5,6,7,20,21,46,50,58,63,68,71,75,84,91,140,178,180,181,201,202,216,253,257,303,319,323,334,348,369,372,382,385,392,393,403,404,406,407,408,409,410,415,416,418],timecod:399,timestamp:63,timewarp:[51,178,180,407],titl:[0,6,368,394],tk:0,tm:0,tobject:416,togeth:[0,6,8,59,64,67,75,76,81,82,83,84,85,86,87,88,89,90,91,116,140,144,146,179,213,223,225,235,254,257,266,292,295,408,409,415],toggl:[6,8,47,60,62,73,74,164,296,330,348,354,360,369,391,403,404,409,412],togl:0,token:[315,329,335,338,373,387,393],told:[0,407],toler:0,tom:0,too:[0,6,43,44,58,63,64,67,68,76,81,82,83,84,85,86,87,88,89,90,91,140,216,235,254,257,266,280,292,295,315,316,331,336,408,416],tool:[0,3,4,5,6,7,19,26,37,39,174,281,335,360,368,370,386,391,395,403,406,409,410],toolbar:391,toolbarlayout:310,toolchain:391,toolkit:0,tooltip:[320,325,333,336,348,370,386,391,393,406],toon:54,top:[0,6,8,25,54,68,75,104,145,154,158,160,174,219,247,281,286,310,321,332,351,391,399,406,409,410,414,415],topic:415,topolog:[226,228,259],tort:0,tortiou:0,total:[75,216,408],toto:83,touch:286,tour:415,toward:[71,228],tpic:[136,140,149],trace:[63,67],track:[0,6,232,326,334,382],trackabl:[315,330],tractor:391,tractorapi:391,tractordispatch:[293,352,391],trade:0,trademark:0,tradeoff:[63,104,105,139,154],tradit:409,trail:[178,180,303],train:75,transfer:[0,177,282,287],transform:[0,6,23,54,96,102,105,125,141,142,153,154,165,168,211,223,240,243,244,247,280,281,282,285,291,295,315,317,323,330,333,335,338,339,360,363,368,401,407,415,416],transform_typ:335,transformdirect:321,transformqueri:[291,315],transformsmod:223,transformtool:[390,391],translat:[0,6,8,53,55,99,139,147,151,152,153,158,247,319,336,351,354,368,369,370,386,389,391,392,393,402,407,409,415,416],translatetool:[368,370],transmiss:[63,71,75],transmit:[0,54,63],transpar:[54,63,71,75,96,100,102,117,118,125,130,132,141,142,155,215,342,351],travers:[6,420],treat:[54,63,120,122,136,185,199,245,253,269,315,368,379,383,393,415,416],treataslin:[319,395],treataspoint:[319,395],treatment:[6,383],tree:[0,402],triangl:[71,368],trianglesubdivisionrul:392,triangul:283,triangular:[229,231],trick:[406,414],tricki:[229,231],trigger:[320,334,340,341,348,350,366,367,388,396],trip:407,tripl:[385,394],triplet:162,troubleshoot:21,truli:401,truncat:336,truste:0,truta:0,ttf:[158,283],ttransform:416,tube:[0,54],tumbl:[6,8],tupl:391,turbojpeg:0,turn:[6,8,20,32,33,34,40,47,49,50,54,56,58,62,63,65,69,71,74,77,79,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,137,139,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,165,166,170,171,174,177,184,185,187,191,192,194,197,211,216,217,218,223,230,231,234,236,252,271,275,276,278,287,290,297,299,300,310,315,338,353,357,384,391,403,407,410,412],turner:0,turntabl:210,tutori:[7,360,361,402,409,413,414,420,421],tweak:[0,8,242,315,316,318,319,320,338,342,348,351,361,383,393,396],tweaknam:396,tweakplug:[315,316,317,318,320,338,367,393],tweaksplug:315,twice:201,two:[0,5,6,43,44,93,112,116,144,146,153,174,181,202,212,219,228,280,281,286,295,311,348,367,391,399,401,402,403,404,406,407,408,409,414,419],twoedg:228,tx:[6,63,67,136,140,149],txt:[0,67],ty:0,type:[0,6,8,12,20,31,36,54,60,61,63,64,71,73,75,76,104,133,136,140,149,164,165,171,172,174,188,189,205,206,209,231,234,235,239,254,255,256,259,261,263,264,276,280,281,294,296,305,310,315,316,317,319,321,330,335,340,348,352,354,368,369,371,385,386,388,390,391,393,395,396,399,401,402,403,404,406,407,409,410,414,415,416,417,418,419,421],typedobjectplug:[335,368,391],typedobjectplugimplement:368,typedplug:368,typedplugimplement:368,typeerror:[316,352],typefac:0,typemetadata:368,typenam:[315,416],typic:[0,2,8,40,46,47,64,67,68,76,81,82,83,84,85,86,87,88,89,90,91,140,164,174,202,216,233,234,235,240,254,257,266,280,292,295,399,402,403,407,408,409,414,419],u:[0,160,224,361,411],uc:0,uchar:370,ucharvectordata:321,ucl:0,udim:[6,286,315],udimqueri:291,uhd:399,ui:[2,6,8,15,25,29,33,46,66,78,83,97,160,241,310,315,318,324,325,330,332,333,336,342,348,351,362,367,368,371,373,391,394,419],uieditor:[336,338,396],uint16:321,uint32:321,uint:315,uintvectordata:321,ultim:[174,391,415],umd:0,unabl:122,unaffect:[6,12,198,259,383,408],unalt:0,unambigu:[168,244,247],unaryplugsign:315,unarysign:315,unavail:3,unblock:315,unc:330,unchang:[52,53,54,55,57,59,62,63,71,72,74,75,165,168,170,171,172,175,177,178,179,180,182,183,184,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,206,209,210,211,213,216,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,234,238,239,240,241,242,243,244,247,248,251,252,253,255,256,258,259,260,261,262,264,267,270,272,276,277,278,280,281,282,284,287,288,289,290,294,299,300,301,302,303,305,315,365],uncheck:404,uncom:8,uncombin:0,unconnect:[6,168,210,244,247,383],undefin:316,undeform:224,under:[0,3,6,8,29,71,75,78,144,179,213,216,243,261,305,311,330,368,373,391,410,415,419],undergo:409,underli:[391,421],underneath:179,underscor:319,understand:[0,6,399,408,415],understood:0,undesir:[0,408],undetect:315,undo:[8,348,391],undoabl:[371,419],undoaddedsign:315,unencapsul:[216,291,377],unencumb:0,unenforc:0,unexpand:234,unexpect:[364,372],unexpectedli:[324,332],unfortun:136,ungang:362,unibrow:6,unidata:0,uniform:[165,216,225,226,227,230,240,259,300,323,369],uniformli:[191,192],unind:8,unindex:376,unintent:396,unintuit:[399,404],union:[0,140,223,268,289,311,402],unionfilt:291,uniqu:[0,75,91,171,201,213,216,227,407,408],unit:[0,21,54,174,261,299,301,303,304,305,311,338,399,401,403],unittest:348,univers:0,universit:0,unknown:[101,376],unless:[0,12,32,54,153,168,201,244,247,315,410],unlicens:0,unlik:[0,145,266,406,409],unlock:366,unmodifi:0,unnecessari:[216,315,322,323,325,333,348,350,357,384,386,387,389],unnecessarili:[75,340,342,351,368,369,408],unnorm:370,unorgan:409,unpremultipli:[96,100,102,125,132,141,142,155,161],unpromot:[332,406],unrealist:[404,418],unrel:389,unrestrict:0,unsav:[4,391],unscop:315,unsign:[321,399],unspecifi:[21,187,348],unsupport:[315,337,340,341,350,352,393],unsur:0,until:[0,6,40,47,63,64,67,75,76,81,82,83,84,85,86,87,88,89,90,91,140,216,231,235,254,257,266,292,295,365,407,408,416],untouch:[170,247,276],unus:[315,330],unwant:[194,368,377,391,396],unwrap:67,up:[0,2,3,4,6,7,8,19,40,47,49,52,63,67,75,116,124,140,153,171,216,255,261,281,330,333,334,336,353,361,368,386,396,404,407,413,415,417,421],updat:[0,5,6,36,63,69,79,84,216,217,218,315,319,320,321,324,325,328,329,330,331,332,333,337,338,339,344,348,350,351,360,361,363,364,365,366,368,369,372,383,386,387,389,391,392,394,395,396,397,411],updatedragendpoint:368,updateinbackground:315,updateinteract:315,updatematchingpath:315,updaterequir:384,upgrad:[0,391],upon:[0,64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295,402],upper:[279,370,411],upstream:[6,8,23,29,32,33,34,36,50,64,67,76,81,82,83,84,85,86,87,88,89,90,91,101,104,105,139,140,148,178,179,180,216,235,243,254,257,266,275,292,295,338,367,368,386,389,403,404,407,408],upstreamfram:50,upward:399,urbana:0,url:[0,310,406],us:[0,2,3,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,29,31,32,33,36,39,40,43,44,45,46,47,49,50,52,54,56,57,58,59,60,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,95,96,97,100,101,102,104,105,106,108,110,116,117,118,123,124,125,127,130,132,133,136,137,138,139,140,141,142,143,144,148,149,150,151,152,153,154,155,158,159,160,162,163,164,165,166,168,170,171,172,173,174,175,177,178,179,180,181,182,183,184,185,187,188,189,190,191,192,193,194,195,196,197,198,201,202,206,208,209,210,211,212,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,247,248,250,251,253,254,255,257,258,259,260,261,262,265,266,267,268,269,270,271,272,274,275,276,277,278,280,281,283,284,286,287,288,290,292,294,295,296,297,299,300,301,302,303,305,310,311,315,317,319,320,321,325,326,330,332,333,334,336,337,338,339,340,347,348,351,353,360,361,362,363,365,366,367,368,369,370,372,373,375,376,382,383,384,386,388,389,391,392,393,394,395,396,397,399,401,402,404,406,407,408,409,410,413,414,415,416,417,418,419,420],usa:0,usabl:399,usag:[0,12,13,14,63,75,142,208,304,315,365,388,404],usd:[6,174,202,265,266,281,294,295,297,315,319,321,329,335,338,339,340,346,348,351,361,363,364,365,366,368,369,370,371,372,381,382,383,384,387,391,392,393,394,397,401],usd_shade_material_binding_api_check:363,usda:[6,265,266,295],usdattribut:[281,298],usdc:[6,265,266,295],usdgenschema:394,usdgeomnurbscurv:372,usdgeompointbas:361,usdgeompointinstanc:320,usdgeomxform:363,usdlayerwrit:298,usdlight:[298,369,370,393],usdlux:[315,319,354,369,395],usdluxlight:[319,393],usdpreviewsurfac:[297,319,369,389,392,393],usdschemaregistri:393,usdshad:[298,369,393],usdshadematerialbindingapi:363,usdtransform2d:393,usdutilsstagecach:383,usduvtextur:[297,351,369],usdview:348,usdz:[265,266],use_camera:338,use_caust:338,useattribut:338,usedeepvis:391,usedisplaytransform:368,useframeasse:391,usegpu:330,useless:117,uselighttre:368,usemi:368,user:[0,2,3,4,5,8,15,23,310,312,319,324,330,332,334,336,338,388,391,395,399,401,402,404,406,408,416,417,418,419,421],userdefault:[12,310,373,384,391],usetypeonli:368,ushortvectordata:321,usr:[2,5,83],ustr:389,usual:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,117,118,140,174,229,231,235,254,257,261,266,281,292,295,300,319,348,404,407,415],utf8:0,utf8proc:0,util:[0,2,3,4,5,6,13,25,36,38,149,153,348,362,382,391,406,409,415,416,418,419],uv:[54,56,67,160,168,221,222,224,226,228,229,231,244,247,286,290,317,323,342,351,355,368,382,383,393,402],uvcoord:383,uvinspector:[338,368],uvsampl:[291,386],v0:0,v1:[0,96],v2:0,v2f:[67,131,224,286,416],v2fplug:416,v2fvectordata:[290,386],v2fvectordataplug:335,v2i:[131,399,416,417],v2ivectordata:[335,386],v3:0,v3f:[303,391,414,416,417],v3fplug:[162,165],v3fvectordata:[240,290,335,386],v3ivectordata:386,v3ivectordataplug:335,v8:0,v:[0,8,47,84,160,224,340,361,370,411],va:0,vadim:0,vairabl:249,valid:[0,136,149,153,267,279,310,370,372,381,383,385,397],validatenam:368,validli:0,valu:[0,5,6,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,29,30,31,32,33,38,40,44,46,47,49,50,54,58,63,64,66,67,68,69,71,75,76,78,79,84,85,90,91,95,97,99,100,101,104,107,117,118,119,130,132,133,136,137,138,139,140,145,148,149,151,152,155,158,160,163,165,168,169,171,172,173,174,177,179,185,187,188,189,190,191,192,197,201,207,214,215,216,217,224,226,227,232,234,235,237,239,244,247,250,253,254,257,258,259,261,270,274,276,279,280,281,285,286,287,292,294,300,305,309,310,315,316,317,319,320,321,322,328,329,330,333,335,336,337,338,340,345,347,348,351,353,354,355,360,361,362,366,368,369,370,372,373,376,382,383,384,385,386,389,390,391,393,395,396,399,401,402,403,404,406,407,410,411,414,416,417,419,420],valueplug:[20,310,315,348,368,369,385,386,391,395],valuetyp:[368,393],van:0,varabl:216,vari:[14,20,29,43,44,60,61,67,73,95,99,101,104,123,127,143,164,178,180,216,226,229,231,243,257,258,259,261,267,286,296,332,377,389,391,407,408,409,410,414],variabl:[2,13,16,18,19,20,29,31,32,40,43,44,47,49,54,67,81,83,85,101,102,104,105,140,158,165,177,178,179,180,184,187,191,192,197,198,214,215,216,221,222,224,225,226,227,228,229,230,231,232,236,240,243,249,250,251,253,257,258,259,261,267,277,278,283,286,287,290,292,294,302,303,305,312,314,315,318,319,320,322,332,335,336,348,351,353,354,359,361,365,368,369,370,372,377,383,386,389,391,393,395,401,408,409,416,418,419,420],variablehash:383,variablenam:[40,47,309,386,410],varianc:75,variant:[0,391],variat:[43,44,91,178,258,389,391,402,408,410],varibl:165,varieti:[403,410],variou:[0,404,408,410,414,416,417,418,420],various:148,vcruntim:4,vcruntime140:4,vdb:[54,68,265,299,300,301,302,304,305,361,383],vdbobject:305,vdbvolum:383,ve:[6,319,416,419],vector:[54,58,68,149,162,165,168,173,216,228,240,281,340,348,354,369,399,401,407,415],vectordataplugvaluewidget:[335,368],vectordatawidget:[319,345,362,368],vectorwarp:[161,368],veloc:[54,68,383],ventur:0,vera:0,verbal:0,verbatim:[0,368],veri:[0,5,6,43,54,153,154,216,292,402,406,407,408,415,421],verifi:[0,6,408],vers:401,versa:[406,409],verschueren:0,version:[0,2,3,20,315,330,348,351,361,363,364,367,368,369,372,382,383,384,386,387,388,389,391,392,397,404],versionauthor:407,versiondescript:407,versionstr:315,vert:236,vertex:[54,67,168,177,187,197,216,224,225,226,229,231,232,244,247,251,259,286,287,290,303,318,377,402],vertic:[104,154,174,211,216,219,225,226,227,229,234,260,281,348,401,403,407],vf:141,vfx:[6,142,391,408,421],via:[6,12,20,31,32,38,47,54,59,61,63,71,75,83,84,85,96,104,133,136,141,149,170,172,175,188,189,216,222,232,234,237,238,239,241,250,251,254,265,274,276,277,278,280,281,294,315,319,338,348,361,368,371,386,389,391,395,402,407,415,416],vice:[0,406,409],vicent:0,victor:0,video:362,view:[0,16,20,63,75,93,104,140,142,174,210,219,315,316,319,321,325,330,333,334,336,348,350,351,368,369,372,389,401,406,407,409,410,411,414,415,417],viewer:[10,22,60,73,164,174,212,234,235,236,260,280,281,296,315,317,323,325,330,331,332,333,334,335,336,338,339,340,342,344,348,349,350,351,353,354,355,360,361,368,369,370,372,373,382,383,384,385,389,391,393,396,401,411,414],viewisvalid:315,viewnam:[140,315,322,330,391],viewnameshash:330,viewnamesplug:315,viewplugvaluewidget:[321,348],viewport:[6,60,73,75,164,171,174,231,234,261,296,305,330,334,339,340,348],viewportgadget:[315,330,348,361,368,391],viewscop:315,vignet:56,villag:408,vinob:0,virginia:0,virtual:[6,75,78,315,330,348,368,391,401],visibilityactiv:[315,368],visibilitychangedsign:315,visibl:[6,8,34,54,62,71,74,75,117,118,150,164,174,210,243,281,294,310,315,319,320,330,346,348,353,363,368,383,384,389,391,392,402,403,407,409,410,414,415],visibleexpress:361,visibleset:[348,368],visiblesetdata:348,visit:[227,308,406,408,416,421],visitpixel:368,visual:[3,4,6,27,28,333,348,391,407,409],visualis:[60,73,164,171,174,181,234,270,296,342,351,354,355,361,369,382],vital:[399,401,402],vmg:0,vollant:0,volum:[0,54,63,68,71,75,305,367,368,369,383,394],volume_interpolation_method:368,volume_sampling_method:368,volume_step:367,volumescatt:[306,368],volumeshad:383,volumetr:75,volunt:0,voxel:[54,68,71,299,301,303,304,305],vsm:[136,140,149],vulkan:0,vv:411,w:[0,8,330,403],wa:[0,5,29,46,153,284,315,317,319,321,322,324,325,326,330,332,333,334,338,344,346,348,351,358,360,362,363,366,367,368,371,372,385,391,396,397,401,404,410,415,416,419],wai:[0,5,6,110,218,221,262,264,284,292,294,311,330,404,406,407,409,415,416,417,419],wait:348,waiv:0,walk:417,walt:0,want:[0,4,61,67,123,127,140,143,163,165,177,187,210,218,229,231,232,243,261,280,287,336,391,403,404,407,408,409,410,411,415,416,417],wari:408,warn:[20,58,63,303,315,320,337,340,351,357,361,367,371,382,383,384,393],warp:[160,368],warrant:0,warranti:0,wasn:[394,416],wast:140,watermark:63,wave:368,we:[0,2,3,4,5,6,7,23,67,136,225,229,294,311,319,330,348,368,369,391,395,399,401,402,403,404,407,408,409,410,411,415,416,417,418,419,421],weaker:401,web:[0,310],webm:0,webp:[136,149],websit:421,wedg:[23,40,49,92,97,208,257,361,391,407],wegner:0,weight:[6,56,391],weird:[229,231],weisner:0,welcom:421,well:[0,6,40,160,214,215,216,218,315,372,393,401,407,408,416,417,418],went:417,wenzel:0,were:[0,6,63,244,269,315,318,321,325,326,330,333,334,348,354,368,369,383,384,385,390,391,397,406,407,408,410,416,417],werner:0,what:[0,2,5,6,136,154,226,286,315,392,404,407,409,410,411,415,416,417,418,420],whatev:[0,407],whatsoev:[0,6],wheel:8,when:[0,2,4,5,6,8,12,14,20,21,23,32,33,36,43,44,47,52,53,54,55,57,58,59,60,61,62,63,64,66,67,68,71,72,73,74,75,76,78,81,82,83,84,85,86,87,88,89,90,91,95,96,97,100,101,102,104,105,107,117,118,121,123,125,127,132,133,136,137,139,140,141,142,143,149,150,153,154,155,157,160,163,164,165,168,170,171,172,174,175,176,177,178,179,180,181,182,183,184,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,204,205,206,208,209,210,211,212,213,214,215,216,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,238,239,240,241,242,243,244,245,246,247,248,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,272,273,276,277,278,279,280,281,282,283,284,287,288,289,290,292,294,295,296,299,300,301,302,303,304,305,315,316,317,319,320,321,323,324,325,326,327,329,330,332,333,334,335,336,337,338,340,341,342,343,348,350,351,352,353,359,361,362,363,364,365,367,368,369,370,371,372,376,377,381,382,385,386,387,388,389,390,391,392,393,394,395,396,397,399,401,402,403,404,406,407,408,409,410,412,414,415,417,418,419,420],whenev:[5,69,79,217,377],where:[0,18,19,23,25,33,35,46,47,52,54,56,58,63,65,67,71,75,77,97,104,110,130,138,140,149,153,166,172,178,179,180,188,189,201,216,218,223,229,231,234,236,239,243,245,257,261,271,275,280,281,294,297,305,315,319,321,323,336,353,354,358,368,369,371,373,383,384,385,389,391,393,394,396,403,404,407,408,410,411,416,417],wherea:[0,225,348,362,390,416,418],wherebi:348,wherev:[0,54,58,216],wherewith:0,whether:[0,2,5,12,19,46,54,60,62,63,71,73,74,75,110,136,149,153,158,160,164,174,225,232,234,277,278,280,281,296,310,332,348,388,404,417],which:[0,3,5,6,11,12,13,14,18,25,26,29,30,33,36,43,44,46,47,49,50,52,54,58,59,60,61,62,63,64,66,67,68,71,73,74,75,76,78,81,82,83,84,85,86,87,88,89,90,91,95,101,104,107,111,113,117,118,121,123,127,128,129,130,132,134,135,136,139,140,142,143,146,148,149,152,153,154,158,160,162,163,164,165,168,170,171,172,174,175,177,178,180,182,183,184,187,188,190,191,192,193,194,195,196,197,198,200,201,202,205,206,209,210,211,216,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,234,235,240,242,243,244,245,247,248,251,253,254,257,258,259,260,261,262,263,264,266,268,270,271,272,273,276,277,278,280,281,283,284,286,287,288,290,292,294,295,296,299,300,301,302,303,305,310,311,315,316,318,320,321,326,329,330,334,336,338,339,340,342,344,346,348,351,354,358,360,361,362,363,365,368,369,370,371,372,373,375,376,377,383,384,385,386,387,389,391,393,394,395,396,397,399,401,402,403,404,406,407,408,410,411,412,415,416,417,418,419,420],whichev:[6,150,159,366],whilst:6,white:[0,63,132,157,171,214],whitespac:253,who:0,whole:[0,6,19,130,140,147,174,179,252,259,281,284,399,402,403,406,407,408,414],wholli:218,whom:0,whose:[0,23,31,54,63,71,75,133,172,188,189,234,237,239,250,274,280,281,294,368],why:[404,407,410],wide:[0,316,336,369,410],wider:[330,348],widest:[0,401],widget:[0,22,310,316,324,330,332,336,341,348,350,351,366,368,371,372,376,388,389,391,394,396],widgetalgo:330,widgetcontain:348,widgettyp:368,width:[54,75,104,152,154,174,212,234,253,281,301,304,310,319,338,348,351,383,385,386,399,401,403,409,411],wield:407,wild:270,wildcard:[21,40,47,49,96,100,102,106,107,108,120,121,122,125,132,140,141,142,150,155,157,159,177,182,183,184,185,187,190,193,195,196,198,199,216,218,220,245,259,261,267,286,287,302,368,382,391,409,410],wilhelm:0,willem:0,willing:0,win:[101,179],wind:260,window:[19,23,94,95,110,123,127,136,138,139,140,143,149,153,154,158,160,174,214,215,219,281,315,317,321,330,333,338,348,351,355,361,368,372,379,382,385,386,388,389,391,393,403,407,409,410,418],wipe:[8,150,330,333,385],wirefram:[234,291,332,368,391,403],wish:[0,3,6,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305,340,409],wit:403,within:[0,8,12,13,14,20,33,52,53,54,55,63,71,72,75,84,94,100,104,105,116,133,138,139,153,154,158,162,169,172,173,174,181,188,189,190,202,207,214,215,227,234,235,239,241,245,250,253,255,267,274,280,281,285,294,303,316,319,348,365,367,368,383,391,401,402,404,407,408,409,416,417,419],without:[0,6,20,69,79,153,154,208,229,231,280,315,348,354,365,367,368,369,385,389,391,401,403,406,407,408,410,411,412,416,418],wobbl:411,won:[34,63,67,174,216,229,336,407],wonder:410,word:[0,158,174,219,281,315],wordi:416,work:[0,5,6,60,67,73,104,108,136,140,142,164,171,174,202,218,234,245,288,296,315,330,335,348,355,361,368,382,389,391,399,403,406,407,410,416],workaround:[348,407],workflow:[6,45,294,295,395,403,406,418],workingspaceenabledplug:391,workingspacevalueplug:391,worklflow:419,workload:407,world:[0,63,71,165,168,174,180,211,244,247,280,282,284,312,401,402,403,408,415,416],worldwid:0,worri:416,worst:348,worth:[407,408],would:[0,6,8,47,68,91,117,118,123,127,143,174,202,218,228,233,240,257,294,319,335,348,372,373,392,399,403,404,407,408,409,410,415,416,417,418,419,421],wound:260,wrangl:410,wrangler:0,wrap:[49,90,158,185,315,336,406,417,419],wrapper:[13,348,351,394],write:[0,3,6,140,162,163,165,254,266,295,315,321,332,348,361,369,370,381,382,389,397,410,416],writeabl:406,writeset:348,writetag:348,written:[0,21,67,140,162,258,266,277,278,295,315,348,361,363,389,420],wrong:[230,321,334,346,348,363],wrote:0,www:[0,310],x11:5,x3f:[136,140,149],x:[0,8,95,99,104,123,127,143,174,212,240,246,247,391,399,403,407],xerc:368,xfree86:0,xml:76,xu:0,xuyuan:0,xyz:390,xzf:3,y:[6,8,95,99,104,123,127,143,174,212,240,246,247,399,403,407],yaml:348,yann:0,yannick:0,ycbcr:140,ye:0,year:0,yellow:[6,348],yet:[5,267,348,386,415,419],yield:[365,401,408],yip:0,you:[0,2,3,4,5,6,7,8,9,23,46,52,54,61,63,67,85,101,113,116,117,118,122,123,127,136,137,140,143,146,150,153,163,165,174,177,178,180,184,187,191,192,197,210,216,226,229,230,231,232,261,278,280,281,287,290,299,300,311,336,340,361,391,400,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421],your:[0,2,3,5,23,39,46,63,67,136,140,174,257,258,336,391,403,406,407,408,411,412,415,417,418,419,420],yourself:[6,7,403,421],yoyodyn:0,yu:0,yuan:0,yyyi:0,z:[8,111,116,119,130,136,140,149,176,240,247,253,381,391,397,399,409,415],zback:[111,116,119,130,140,391],zero:[0,10,11,12,13,14,15,17,18,19,20,21,22,54,58,63,71,75,117,118,191,192,197,224,300,317,368,391],zfile:[136,140,149],zip:3,zlib:368,zombi:391,zoom:[6,8,319,321,323,357,384],zope:0,zverovich:0},titles:["License","Appendices","Configuring Gaffer for Third-Party Tools","Installing Gaffer","Launching Gaffer for the First Time","Setting Up the \u201cgaffer\u201d Command","Tutorial: Assembling the Gaffer Bot","Getting Started","Controls and Shortcuts","Interface","browser","cli","dispatch","env","execute","gui","Command Line Reference","license","python","screengrab","stats","test","view","Context Variables","Animation","Backdrop","Box","BoxIn","BoxOut","Collect","ComputeNode","ContextQuery","ContextVariableTweaks","ContextVariables","DeleteContextVariables","DependencyNode","Dot","EditScope","Expression","Loop","NameSwitch","Node","Preferences","Random","RandomChoice","Reference","ScriptNode","Spreadsheet","SubGraph","Switch","TimeWarp","Gaffer","ArnoldAOVShader","ArnoldAtmosphere","ArnoldAttributes","ArnoldBackground","ArnoldCameraShaders","ArnoldColorManager","ArnoldDisplacement","ArnoldImager","ArnoldLight","ArnoldLightFilter","ArnoldMeshLight","ArnoldOptions","ArnoldRender","ArnoldShader","ArnoldShaderBall","ArnoldTextureBake","ArnoldVDB","InteractiveArnoldRender","GafferArnold","CyclesAttributes","CyclesBackground","CyclesLight","CyclesMeshLight","CyclesOptions","CyclesRender","CyclesShader","CyclesShaderBall","InteractiveCyclesRender","GafferCycles","Dispatcher","FrameMask","LocalDispatcher","PythonCommand","SystemCommand","TaskContextProcessor","TaskContextVariables","TaskList","TaskNode","TaskSwitch","Wedge","GafferDispatch","Anaglyph","BleedFill","Blur","CDL","Catalogue","CatalogueSelect","Checkerboard","Clamp","CollectImages","ColorSpace","Constant","ContactSheet","ContactSheetCore","CopyChannels","CopyImageMetadata","CopyViews","CreateViews","Crop","DeepHoldout","DeepMerge","DeepRecolor","DeepSampleCounts","DeepSampler","DeepSlice","DeepState","DeepTidy","DeepToFlat","DeleteChannels","DeleteImageMetadata","DeleteViews","Dilate","Display","DisplayTransform","Empty","Erode","FlatImageProcessor","FlatImageSource","FlatToDeep","FormatQuery","Grade","ImageMetadata","ImageNode","ImageProcessor","ImageReader","ImageSampler","ImageStats","ImageTransform","ImageWriter","LUT","LookTransform","Median","Merge","Mirror","Mix","Offset","OpenColorIOContext","OpenImageIOReader","Premultiply","Ramp","Rectangle","Resample","Resize","Saturation","SelectView","Shuffle","Text","Unpremultiply","VectorWarp","GafferImage","OSLCode","OSLImage","OSLLight","OSLObject","OSLShader","GafferOSL","AimConstraint","AttributeQuery","AttributeTweaks","AttributeVisualiser","Attributes","BoundQuery","Camera","CameraTweaks","ClippingPlane","ClosestPointSampler","CollectPrimitiveVariables","CollectScenes","CollectTransforms","CoordinateSystem","CopyAttributes","CopyOptions","CopyPrimitiveVariables","Cryptomatte","Cube","CurveSampler","CustomAttributes","CustomOptions","DeleteAttributes","DeleteCurves","DeleteFaces","DeleteGlobals","DeleteObject","DeleteOptions","DeleteOutputs","DeletePoints","DeletePrimitiveVariables","DeleteRenderPasses","DeleteSets","Duplicate","Encapsulate","ExistenceQuery","ExternalProcedural","Filter","FilterProcessor","FilterQuery","FilterResults","FilteredSceneProcessor","FramingConstraint","FreezeTransform","Grid","Group","ImageScatter","ImageToPoints","Instancer","InteractiveRender","Isolate","LightToCamera","LocaliseAttributes","MapOffset","MapProjection","MergeScenes","MeshDistortion","MeshNormals","MeshSegments","MeshSplit","MeshTangents","MeshTessellate","MeshToPoints","MeshType","MotionPath","ObjectToScene","OpenGLAttributes","OpenGLRender","OpenGLShader","OptionQuery","OptionTweaks","Options","Orientation","Outputs","Parameters","Parent","ParentConstraint","PathFilter","Plane","PointConstraint","PointsType","PrimitiveVariableExists","PrimitiveVariableQuery","PrimitiveVariables","Prune","Rename","Render","RenderPassShader","RenderPassTypeAdaptor","RenderPassWedge","RenderPasses","ResamplePrimitiveVariables","ReverseWinding","Scatter","SceneElementProcessor","SceneNode","SceneProcessor","SceneReader","SceneWriter","Set","SetFilter","SetQuery","SetVisualiser","Shader","ShaderAssignment","ShaderBall","ShaderQuery","ShaderTweakProxy","ShaderTweaks","ShuffleAttributes","ShufflePrimitiveVariables","Sphere","StandardAttributes","StandardOptions","SubTree","Text","Transform","TransformQuery","UDIMQuery","UVSampler","Unencapsulate","UnionFilter","Wireframe","GafferScene","TractorDispatcher","GafferTractor","USDAttributes","USDLayerWriter","USDLight","USDShader","GafferUSD","LevelSetOffset","LevelSetToMesh","MeshToLevelSet","PointsGridToPoints","PointsToLevelSet","SphereLevelSet","VolumeScatter","GafferVDB","Node Reference","Common Operations","Expressions","Metadata","Set Expressions","String Substitution Syntax","Scripting Reference","Reference","1.0.0.0","1.0.1.0","1.0.2.0","1.0.2.1","1.0.3.0","1.0.4.0","1.0.5.0","1.0.5.1","1.0.6.0","1.0.6.1","1.0.6.2","1.0.6.3","1.0.6.4","1.0.6.5","1.0.6.6","1.1.0.0","1.1.1.0","1.1.2.0","1.1.3.0","1.1.4.0","1.1.5.0","1.1.6.0","1.1.6.1","1.1.7.0","1.1.8.0","1.1.9.0","1.1.9.1","1.1.9.2","1.1.9.3","1.1.9.4","1.1.9.5","1.1.9.6","1.1.9.7","1.2.0.0","1.2.0.1","1.2.0.2","1.2.1.0","1.2.1.1","1.2.10.0","1.2.10.1","1.2.10.2","1.2.10.3","1.2.10.4","1.2.10.5","1.2.10.6","1.2.2.0","1.2.3.0","1.2.4.0","1.2.5.0","1.2.6.0","1.2.7.0","1.2.8.0","1.2.9.0","1.3.0.0","1.3.1.0","1.3.10.0","1.3.11.0","1.3.12.0","1.3.13.0","1.3.13.1","1.3.14.0","1.3.15.0","1.3.16.0","1.3.16.1","1.3.16.2","1.3.16.3","1.3.16.4","1.3.2.0","1.3.3.0","1.3.4.0","1.3.5.0","1.3.6.0","1.3.6.1","1.3.7.0","1.3.8.0","1.3.9.0","1.4.0.0","1.4.1.0","1.4.2.0","1.4.3.0","1.4.4.0","1.4.5.0","1.4.6.0","Release Notes","Anatomy of an Image","Working with Images","Anatomy of a Camera","Anatomy of a Scene","Camera","Light Linking","Working with Scenes","Box Node","Contexts","Performance Best Practices","Spreadsheet Node","Tutorial: Setting Up a Spreadsheet","Tutorial: Using The OSLCode Node","Using the Performance Monitor","Working with the Node Graph","The Python Editor","Tutorial: Node Graph Editing in Python","Tutorial: Querying a Scene","Tutorial: Startup Config 1; Custom Global Context Variables","Tutorial: Startup Config 2; Custom Bookmarks","Tutorial: Startup Config 3; Custom Node Menu Entries","Working with the Python Scripting API","Introduction"],titleterms:{"0":[315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,338,339,340,348,349,350,351,353,360,361,362,363,364,365,366,367,368,369,370,371,372,373,375,376,377,382,383,384,385,386,388,389,390,391,392,393,394,395,396,397],"1":[308,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,417],"10":[353,354,355,356,357,358,359,370],"11":371,"12":372,"13":[373,374],"14":375,"15":376,"16":[377,378,379,380,381],"2":[317,318,325,332,342,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,379,382,393,418],"2d":8,"3":[319,326,333,343,356,361,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,394,419],"3d":8,"3delight":2,"4":[320,327,334,344,357,362,381,384,391,392,393,394,395,396,397],"5":[321,322,328,335,345,358,363,385,396],"6":[323,324,325,326,327,328,329,336,337,346,359,364,386,387,397],"7":[338,347,365,388],"8":[339,366,389],"9":[340,341,342,343,344,345,346,347,367,390],"break":[308,315,330,348,368,391],"case":409,"default":[23,418],"export":[308,406],"float":91,"function":419,"import":[6,406],"int":91,"new":[6,406],"switch":49,A:411,The:[6,411,414,415,419],aaadaptivethreshold:63,aasampl:63,aasampleclamp:63,aasampleclampaffectsaov:63,aasamplesmax:63,aase:63,abortonerror:63,abortonlicensefail:63,access:[23,414],account:410,action:407,activerowindex:47,ad:[6,403,410,411,418,419],adapt:300,adaptiveminsampl:75,adaptivethreshold:75,additionallight:281,addlayerprefix:101,addprefix:253,addsuffix:253,adjust:[6,406],adjustbound:[165,177,184,187,191,192,194,197,218,223,230,232,252,278,287,290,299,300],affectdatawindow:110,affectdisplaywindow:110,aim:168,aimconstraint:168,alemb:0,all:308,alphachannel:[150,159],alphathreshold:215,also:[2,3,4,5,6,23,399,401,402,403,404,407,408,409,410,412,414,415,416,417,418,419],altern:253,alternatedispatch:12,an:[6,308,399,404],anaglyph:93,anamorph:403,anatomi:[399,401,402],ancestor:308,ancestormatch:207,anim:[8,24],annot:[408,412],annotatedscript:20,anoth:6,aobounc:75,aodist:75,aofactor:75,aov:[62,67],apertur:[174,401,403],apertureaspectratio:174,apertureoffset:174,api:[315,319,322,330,332,333,335,336,340,348,351,361,365,366,367,368,369,370,371,372,373,382,383,384,385,386,387,388,389,390,391,393,394,395,396,397,420],appear:406,appendic:1,applymedianfilt:67,applyuserdefault:12,area:[110,138,152,158],areasourc:[110,138],argument:[13,18],arnold:[2,403],arnoldaovshad:52,arnoldatmospher:53,arnoldattribut:54,arnoldbackground:55,arnoldcamerashad:56,arnoldcolormanag:57,arnolddisplac:58,arnoldimag:59,arnoldlight:60,arnoldlightfilt:61,arnoldmeshlight:62,arnoldopt:63,arnoldrend:64,arnoldshad:65,arnoldshaderbal:66,arnoldtexturebak:67,arnoldvdb:68,artist:404,aspect:399,assembl:6,assetnam:71,attack:404,attribut:[54,71,164,169,172,180,182,188,216,220,234,280,286,294,308,402,406],attributecontextvari:180,attributenam:171,attributeprefix:216,attributequeri:169,attributesmod:223,attributesuffix:[56,58,65,77,162,166,236,271,275,297],attributetweak:170,attributevisualis:171,autobump:[54,58],automaticinstanc:280,autotransparencydepth:63,availablefram:[136,149],averag:138,backdrop:25,bakedirectori:67,base:295,basecolor:43,basic:[403,404,406,409,420],batchsiz:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],best:408,bgcameravis:75,bgdiffusevis:75,bgglossyvis:75,bgscattervis:75,bgshadowvis:75,bgtransmissionvis:75,bgtranspar:75,bgtransparentglass:75,bgtransparentroughnessthreshold:75,bguseshad:75,bitang:228,bitstreamvera:0,blackclamp:132,blackpoint:132,bleedfil:94,blosc:0,blur:[95,401,403],bookmark:[8,308,418],boolplugvaluewidget:310,boost:0,bordercheckfilevalid:104,bordercheckmax:104,bordercheckmin:104,borderchecknan:104,bordercolor:[104,212],bordercolormetadata:104,bordercolormod:104,bordererrorcolor:104,bordermax:104,bordermin:104,borderpixelwidth:212,bordersen:104,borderwidth:104,bot:6,bound:[173,204,308,402],boundingmod:[95,123,127,143,153,160],boundmod:210,boundqueri:173,box:[26,308,406],boxin:[27,406],boxout:[28,406],branch:407,browser:[10,418],buckets:63,bucketscan:63,build:[315,319,320,321,331,339,348,351,361,363,364,365,366,368,369,372,383,384,386,387,389,391,392,393,394,397],built:[23,407],bvhlayout:75,cach:6,cachememorylimit:20,calculatenorm:229,calculatepolygonnorm:231,camera:[6,174,222,401,403],cameraautobumpvis:54,cameratweak:175,cameravis:[54,62,71,74],cancel:20,captur:253,cast_shadow:62,cast_volumetric_shadow:62,catalogu:97,catalogueselect:98,categori:[21,418],causticsreflect:75,causticsrefract:75,cdl:96,cell:409,center:[131,173,304],centercolor:212,centerpixelwidth:212,chang:[315,330,348,368,391],channel:[96,100,102,106,120,125,132,137,138,140,141,142,150,155,159,163,399],channelinterpret:[136,149],channelnam:140,chart:419,checkerboard:99,child:308,children:243,choic:44,chromasubsampl:140,citi:404,clamp:100,cleanupintermediatefil:67,cli:11,client:256,clippingplan:[174,176,219],closestancestor:[203,207],closestpointsampl:177,cmark:0,code:[162,414],collect:29,collectimag:101,collectprimitivevari:178,collectscen:179,collecttransform:180,color:[62,74,103,137,152,158],colora:99,colorb:99,coloroverrid:270,colorsourc:113,colorspac:[102,136,140],colorstep:91,column:[409,410],command:[5,16,19,84,85],commandfil:19,common:308,complet:7,complex:408,compound:409,compress:140,compressionlevel:140,compressionqu:140,computenod:30,concaten:139,conclus:410,condit:410,config:[148,417,418,419],configur:2,connect:[6,8,226,308,406,409,415],connectedinput:[40,49],consoleasspars:63,consolebacktrac:63,consolecolor:63,consoledebug:63,consoleerror:63,consoleinfo:63,consolememori:63,consolenan:63,consoleplugin:63,consoleprogress:63,consolestat:63,consoletimestamp:63,consolewarn:63,constant:103,construct:403,contactsheet:104,contactsheetcor:105,context:[14,20,23,102,125,142,309,407,408,410,417],contextmonitor:20,contextmonitorroot:20,contextqueri:31,contextsanitis:20,contextvalu:29,contextvari:[29,33,216],contextvariabletweak:32,control:8,coordin:399,coordinatesystem:181,copi:[8,201],copyattribut:182,copychannel:106,copyfrom:107,copyimagemetadata:107,copyopt:183,copyprimitivevari:184,copyview:108,cornerradiu:152,cortex:0,cpp:0,creat:[6,308,409,410,415],createview:109,creation:[8,419],crop:[8,110],cropwindow:174,cryptomatt:185,cryptomattedepth:75,cube:186,current:308,curv:[24,191],curveindex:187,curvesampl:187,curvesminpixelwidth:54,curvesmod:54,curvesprimitivegllinewidth:234,curvesprimitiveignorebasi:234,curvesprimitiveusegllin:234,custom:[417,418,419],customattribut:188,custombookmark:418,customnod:419,customopt:189,customvari:417,cycl:0,cyclesattribut:71,cyclesbackground:72,cycleslight:73,cyclesmeshlight:74,cyclesopt:75,cyclesrend:76,cyclesshad:77,cyclesshaderbal:78,data:[6,399,401,406,408,412,414],datatyp:140,debug:153,deepholdout:111,deepmerg:112,deeprecolor:113,deepsampl:115,deepsamplecount:114,deepslic:116,deepstat:117,deeptidi:118,deeptoflat:119,defaultfilenam:67,defaultformat:163,defaultlight:[60,62,73,74,164,296],defaultrender:281,defaultresolut:67,deformationblur:[280,281],deformationblurseg:280,delai:19,delet:[8,409,415],deleteattribut:190,deletechannel:120,deletecontextvari:[34,40,49],deletecurv:191,deleteexist:182,deletefac:192,deleteglob:193,deleteimagemetadata:121,deleteinput:240,deleteobject:194,deleteopt:195,deleteoutput:196,deletepoint:197,deleteprefix:253,deleteprimitivevari:198,deleterenderpass:199,deleteset:200,deletesuffix:253,deleteview:122,demot:406,denoiserprefilt:75,denoisertyp:75,denoisestartsampl:75,densiti:[214,261,305],densitychannel:214,densityprimitivevari:261,depend:0,dependencynod:35,depth:[25,130,401,403],depthdatatyp:140,depthmod:119,depthoffield:[174,281],descend:308,descendantmatch:207,descript:25,destin:[201,243,261,305],devic:[75,78],dicingcamera:75,dicingscal:71,diffus:62,diffusereflectionautobumpvis:54,diffusereflectionvis:54,diffusetransmissionautobumpvis:54,diffusetransmissionvis:54,diffusevis:71,dilat:123,dimens:[186,212,246],direct:[96,141,142],directori:97,disabl:409,disconnect:409,dispatch:[8,12,64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],displacementmethod:71,displai:[124,125,399,409],displaycolor:280,displaypass:75,displaytransform:125,distantapertur:219,distort:224,divis:[104,229,246,279],divisionsmod:104,document:[319,351,360,361,372,374,382,391],dot:36,doublesid:280,dpx:140,drag:6,dress:410,duplic:201,dwacompressionlevel:140,edit:[406,415],editor:[6,8,19,406,407,409,414,415],editscop:37,element:[409,414],embre:0,emissionsamplingmethod:71,empti:126,enabl:[29,32,33,34,40,47,49,50,52,53,54,55,56,57,58,59,60,61,62,63,65,66,68,71,72,73,74,75,77,78,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,139,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,204,205,206,209,210,211,212,213,214,215,216,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,236,238,239,240,241,242,243,244,245,246,247,248,251,252,253,255,256,258,259,260,261,262,263,264,265,267,268,270,271,272,273,275,276,277,278,279,280,281,282,283,284,287,288,289,290,294,296,297,299,300,301,302,303,304,305,409],enableadaptivesampl:63,enabledrownam:47,enabledvalu:29,enableprogressiverend:63,encapsul:202,encapsulateinstancegroup:216,end:[46,136,232],endposit:151,enter:406,entri:[8,419],env:13,environ:[5,66,78,417],environmentcommand:83,environmentvari:85,envkei:292,erod:127,errorcolorbadpixel:63,errorcolorbadshad:63,errorcolorbadtextur:63,exactmatch:207,exampl:[280,311,403,404,406,409,419],except:409,excludedcategori:21,exclus:281,execut:[8,14,414],executeinbackground:83,exist:[169,203],existencequeri:203,exit:406,expanddatawindow:[94,95,123,127,143,153],expat:0,exposur:[62,75],express:[38,309,311,407,408],extendfarclip:210,exteriorbandwidth:301,externalprocedur:204,extraattribut:[54,71,172,188,234,280,294],extrametadata:133,extraopt:[63,75,189,239,281],extravari:[33,148],face:192,facevaryinglinearinterpol:[229,231],farclip:116,featur:[315,319,320,321,330,333,335,336,338,339,348,351,361,362,368,369,370,371,375,382,383,385,386,389,391,392,393,394,395,396,411],field3d:140,field:[401,403],fieldofview:174,file:[18,22,308,418],filenam:[46,64,68,76,136,140,141,149,204,235,254,265,266,295,308],filesystempathplugvaluewidget:310,filevalid:[136,149],filmfit:[174,219,281],filter:[6,54,62,67,71,74,104,105,139,153,154,160,165,168,170,171,172,175,177,178,180,182,184,187,188,190,191,192,194,197,198,201,202,205,207,208,209,210,211,216,218,219,220,221,222,224,225,226,227,228,229,230,231,232,234,240,242,243,244,247,248,251,252,253,259,260,261,262,267,270,272,276,277,278,280,284,286,287,288,290,294,299,300,301,302,303,305],filterdeep:[153,154],filteredlight:[61,280],filteredsceneprocessor:209,filterglossi:75,filtermap:56,filterprocessor:206,filterqueri:207,filterresult:208,filterscal:153,filtertyp:75,filterwidth:75,find:[253,308],first:[4,6,416],firstmatch:269,fit:140,fitmod:154,fix:[315,316,317,318,319,320,321,322,323,324,325,326,327,328,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,365,366,367,368,369,370,371,372,374,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397],flatimageprocessor:128,flatimagesourc:129,flatten:116,flattodeep:130,floatmax:91,floatmin:91,floatrang:43,floatstep:91,flow:[6,401,406,407],fmt:0,focal:403,focallength:174,focallengthworldscal:174,focu:[8,308,406,407],focusdist:174,focuss:308,font:[158,283],format:[99,103,104,105,110,126,131,151,154,399],formatcent:110,formatqueri:131,frame:[14,20,46,104,136,232,308],framemask:82,framerang:[46,81,83,292],framesmod:[81,83,292],framespersecond:46,framingconstraint:210,freetyp:0,freezetransform:211,from:[218,308,409,414],frustum:[60,73,164,174,296],fstop:174,full:308,fullscreen:15,further:416,gaffer:[2,3,4,5,6,51,308,421],gafferarnold:70,gaffercycl:80,gafferdispatch:92,gafferimag:161,gafferosl:167,gafferresourc:0,gafferscen:[291,308],gaffertractor:293,gafferusd:298,gaffervdb:306,gain:132,gamma:132,gener:[8,310,409],geometri:6,geometrybound:164,geometryparamet:164,geometrytyp:164,get:[7,308],gidiffusedepth:63,gidiffusesampl:63,gispeculardepth:63,gispecularsampl:63,gissssampl:63,gitotaldepth:63,gitransmissiondepth:63,gitransmissionsampl:63,givolumedepth:63,givolumesampl:63,glew:0,global:[23,54,71,172,188,234,280,294,402,410,417],globalsmod:223,glossyvis:71,gpumaxtextureresolut:63,grade:132,graph:[6,8,308,403,404,406,408,409,413,415,419,420],grapheditor:[19,310],grid:[68,212,299,300,301,302,303,304,305],gridcolor:212,gridpixelwidth:212,group:213,gui:[12,15],guid:8,guidingtrainingsampl:75,hairshap:75,hairsubdivis:75,halfbandwidth:303,halfwidth:304,hashcachesizelimit:20,hdf5:0,height:58,help:[10,11,12,13,14,15,17,18,19,20,21,22],heterogeneousvolum:71,hierarchi:[6,8,308,402,416],histori:406,holdout:111,horizont:145,horizontalalign:[104,158],hue:43,id:216,iff:140,ignoreatmospher:63,ignorebump:63,ignoredisplac:63,ignoreimag:63,ignoreincompat:184,ignorelight:63,ignoremiss:[32,170,238,276],ignoremissingtarget:[168,210,244,247],ignoremissingvari:[191,192,197],ignorescriptloaderror:[12,14,83],ignoreshad:63,ignoreshadow:63,ignoresss:63,ignoresubdivis:63,ignoretextur:63,ignoretranspar:215,imag:[6,8,19,20,23,59,97,115,131,137,214,215,399,400],imageindex:97,imagemetadata:133,imagenam:[97,98],imagenod:134,imageprocessor:135,imageread:136,imagesampl:137,imagescatt:214,imagestat:138,imagetopoint:215,imagetransform:139,imagewrit:140,imath:0,immedi:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],improv:[315,316,317,319,320,321,323,331,332,333,334,335,336,338,339,340,348,351,353,360,361,362,363,364,365,366,367,368,369,370,371,372,373,376,377,382,383,384,385,386,388,389,390,391,392,393,394,395,396,397],inangl:240,inaxi:240,includedpurpos:281,includeinherit:270,includeroot:282,inclus:281,index:[49,90],indexcontextvari:29,indexvari:91,indirect:62,indirectsampleclamp:63,ineul:240,inherit:[169,269,274,308],inheritattribut:282,inheritsetmembership:282,inherittransform:282,initialpath:10,inmatrix:240,inmod:240,inord:240,input:308,inputcolorspac:125,inputspac:102,inquaternion:240,inspector:8,instal:[3,7],instanc:[216,408],instruct:[403,404,406,409,414],intens:62,interact:8,interactivearnoldrend:69,interactivecyclesrend:79,interactiverend:217,interfac:9,interiorbandwidth:301,intermedi:420,interpol:[137,141,165,225,259],interpolateboundari:[229,231],intmax:91,intmin:91,introduct:421,intstep:91,invert:[139,191,192,197,285],invertnam:[107,121,190,193,195,196,198,200,259,302],inxaxi:240,inyaxi:240,inzaxi:240,iscausticscast:71,iscausticsreceiv:71,isol:218,isovalu:300,isshadowcatch:71,jemalloc:0,jinja2:0,jobnam:[81,83,292],jobsdirectori:[81,83,292],jpeg2000:140,jpeg:140,keepcamera:218,keeplight:218,keepreferenceposit:[168,244,247],keyboard:[8,47],kind:294,label:[36,272],labelcolor:104,labelformat:104,labelhorizontalalign:104,labelscal:104,labelsen:104,labelshadow:104,labelshadowblur:104,labelshadowcolor:104,labelshadowoffset:104,labeltyp:36,labelverticalalign:104,launch:4,layer:[99,103,151,185,295],layervari:101,layout:[8,140,310],lefthand:228,length:403,levelsetoffset:299,levelsettomesh:300,libffi:0,libjpeg:0,libpng:0,libraw:0,libtiff:0,libwebp:0,licens:[0,17],lift:132,light:[6,8,404,409],lightdrawingmod:[60,73,164,234,296],lightfrustumscal:[60,73,164,234,296],lightgroup:[71,74],lightsampl:63,lightsamplingthreshold:75,lighttocamera:219,limit:406,line:[16,411],linewidth:152,link:404,linkedlight:280,linux:[2,3,4,5],lit:404,llvm:0,load:[2,308,415],local:308,localdispatch:83,localis:[170,276],localiseattribut:220,locat:[20,169,173,203,207,250,269,274,285,308,404,409],log:8,logasspars:63,logbacktrac:63,logcolor:63,logdebug:63,logerror:63,logfilenam:63,loginfo:63,loglevel:75,logmaxwarn:63,logmemori:63,lognan:63,logplugin:63,logprogress:63,logstat:63,logtimestamp:63,logwarn:63,look:[142,403],lookthroughapertur:[60,73,164,296],lookthroughclippingplan:[60,73,164,296],looktransform:142,loop:[39,308],lowlightthreshold:63,lut:141,lz4:0,macbeth:419,maco:[2,3,4,5],main:406,make:[6,308,416],manag:409,manifestdirectori:185,manifestsourc:185,manipul:403,map:58,mapoffset:221,mapproject:222,marginbottom:104,marginleft:104,marginright:104,margintop:104,markupsaf:0,mask:[82,146],maskchannel:146,masterchannel:[123,127,143],match:[253,269],matchdatawindow:140,materialx:0,matrix:[153,285],matt:54,mattenam:185,max:[100,138,171],max_bounc:62,maxbounc:75,maxclampto:100,maxclamptoen:100,maxdiffusebounc:75,maxen:100,maxglossybounc:75,maxlevel:71,maxlinespermetr:20,maxsubdivis:63,maxtextureresolut:[60,73,164,296],maxtransmissionbounc:75,maxvolumebounc:75,mechan:[404,409],median:143,medianradiu:67,menu:419,merg:144,mergeglob:179,mergemetadata:101,mergescen:223,meshdistort:224,meshnorm:225,meshseg:226,meshsplit:227,meshtang:228,meshtessel:229,meshtolevelset:301,meshtopoint:230,meshtyp:231,messag:[69,79,217],metadata:[133,308,310,399,406],min:[100,138,171],minbounc:75,minclampto:100,minclamptoen:100,minen:100,minizip:0,mirror:145,missingframemod:[136,149],missingsourcemod:157,mistdepth:75,mistfalloff:75,miststart:75,mix:146,mode:[59,64,76,91,104,120,122,136,140,171,199,228,232,235,254,267],model:401,monitor:[408,412],more:[6,411],motionpath:232,mous:8,multi:409,multipli:132,mute:[60,73,164,296],name:[27,28,56,58,60,61,65,68,73,77,97,107,121,162,164,166,174,176,181,186,190,193,195,196,198,199,200,201,204,212,213,214,215,216,233,236,246,253,257,258,259,261,267,271,275,279,283,296,297,302,304,305,308,399,409],namefromseg:227,nameswitch:40,navig:[6,8],nearclip:116,node:[6,8,14,23,41,307,308,406,407,408,409,410,411,413,415,419],nodeeditor:[19,310],nodesummari:20,normal:[62,225,228],normaloffset:67,note:398,numbvhtimestep:75,numer:[8,308],numthread:75,object:[233,308,402,404],objectmod:223,objecttoscen:233,occludedthreshold:[117,118],offset:[50,96,132,147,221,247,299,401,403],omitduplicateid:216,one:411,onli:409,opaqu:54,opencolorio:0,opencoloriocontext:148,openexr:[0,140],openglattribut:234,openglrend:235,openglshad:236,openimageio:0,openimageioread:149,openjpeg:0,openpgl:0,openshadinglanguag:0,opensubdiv:0,openvdb:0,oper:[144,308,311],option:[63,75,183,189,239,281,308,402,410],optionqueri:237,optionsuffix:52,optiontweak:238,orbit:403,orient:[216,240],orthogon:228,orthographicapertur:174,osl:411,oslcod:[162,411],oslimag:163,osllight:164,oslobject:165,oslshad:166,other:[407,414],our:416,out:[29,31,47,52,53,54,55,56,57,58,59,60,61,62,63,64,66,68,69,71,72,73,74,75,76,77,78,79,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,139,140,141,142,143,144,145,146,147,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,168,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,204,205,206,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,270,272,273,274,275,276,277,278,279,280,281,282,283,284,286,287,288,289,290,294,295,296,297,299,300,301,302,303,304,305],outangl:240,outaxi:240,outcolor:43,outdivis:104,outeul:240,outfloat:43,outmatrix:240,outmod:240,outord:240,output:[241,308,402],outputchannel:185,outputfil:[20,21],outputspac:102,outquaternion:240,outstr:208,outxaxi:240,outyaxi:240,outzaxi:240,over:308,overrid:403,overscan:[174,281],overscanbottom:[174,281],overscanleft:[174,281],overscanright:[174,281],overscantop:[174,281],overwriteexistingnorm:231,pad:[58,210],panel:19,parallel:407,parallelnodeinit:63,paramet:[56,57,58,60,61,62,65,73,74,77,162,164,166,204,236,242,271,275,296,297],parent:[201,216,227,243,261,288,305,308],parentconstraint:244,parentvari:243,parti:2,partio:0,partnam:140,pass:[8,406],passalphathreshold:75,path:[8,245,267,408,418],pathfilt:245,pattern:409,pcg:0,per:409,perform:[408,412],performancemonitor:[20,281],perspect:403,perspectivemod:174,pin:6,pinnabl:8,pixel:[115,137,399],pixelaspectratio:[174,281],pixeldata:115,pixels:75,plane:246,playback:308,plug:[6,8,308,309,406,407,409,415],pluginsearchpath:63,plugvaluewidget:310,png:140,point:197,pointconstraint:247,pointsgridtopoint:302,pointsminpixelwidth:54,pointsprimitiveglpointwidth:234,pointsprimitiveuseglpoint:234,pointstolevelset:303,pointstyp:248,pointtyp:[261,305],posit:[6,8,177,215,216,222,224,225,228,290,406],post:419,postloadscript:20,posttask:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],power:96,practic:408,precach:20,preced:311,precis:6,precisebound:227,prefer:42,prefix:[177,184,187,189,287],premultipli:150,presetsplugvaluewidget:310,pretask:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],previousoutputfil:21,primit:402,primitivebound:234,primitiveboundcolor:234,primitiveoutlin:234,primitiveoutlinecolor:234,primitiveoutlinewidth:234,primitivepoint:234,primitivepointcolor:234,primitivepointwidth:234,primitivesolid:234,primitivevari:[165,177,178,184,187,214,215,249,251,261,287],primitivevariableexist:249,primitivevariablequeri:250,primitivewirefram:234,primitivewireframecolor:234,primitivewireframewidth:234,proceduralsearchpath:63,processunpremultipli:[96,100,102,125,132,141,142,155],profilefilenam:[10,11,12,13,14,15,17,18,19,20,21,22,63],progressiveminaasampl:63,project:[174,401],promot:406,properti:399,prototyp:216,prototypeindex:216,prototypemod:216,prototyperoot:216,prototyperootslist:216,prune:252,pruneocclud:[117,118],prunetranspar:[117,118],psutil:0,pugixml:0,purpos:294,py:[0,417,418,419],pybind11:0,pyopengl:0,pysid:0,pystr:0,python:[0,8,18,414,415,420],pythoncommand:84,pythoneditor:19,qt:0,queri:[31,237,250,274,308,407,416],quick:[7,417,418],radiu:[95,123,127,143,164,279,304],ramp:[91,151,171],random:[43,407],randomaxi:240,randomchoic:44,randomen:240,randomspac:240,randomspread:240,randomtwist:240,rang:308,ratio:399,rawse:216,read:407,recap:[6,415,417,418,419],receiveshadow:54,rectangl:152,recurs:308,refer:[16,45,307,308,313,314,406],referenc:415,referencefram:[168,244,247],referenceposit:[224,261],refreshcount:[136,149,265],regist:308,rel:308,relabel:406,relativeloc:[173,285],relativetransform:244,releas:398,remain:415,renam:[253,308,406,409],render:[6,8,217,254,255,256,403,409],rendercamera:281,rendercropwindow:281,renderdevic:63,renderpass:258,renderpassshad:255,renderpasstypeadaptor:256,renderpasswedg:257,renderresolut:281,rendersettingoverrid:174,reorder:409,repeat:21,repetit:253,replac:253,requirevari:[178,180],resampl:153,resampleprimitivevari:259,resetorigin:110,resiz:[154,409],resolut:[66,78,174,273],resolutionmultipli:[174,281],resolvedrender:[64,69,76,79,217,235,254],resolvedrow:47,resourc:411,result:[404,407],retriev:415,reversewind:260,rla:140,root:[208,245,282],rootlay:101,rootnam:179,rootnamevari:179,rotat:[285,403],row:[47,410],s:[308,409],sampl:[62,75,232],sampleclampdirect:75,sampleclampindirect:75,samplemot:281,samplingmod:232,satur:[43,96,155],scale:[25,60,73,164,174,216,285,296],scatter:261,scattervis:71,scenario:404,scene:[6,8,19,20,23,169,173,203,207,208,237,250,269,274,285,308,401,402,404,405,408,416],sceneelementprocessor:262,scenenod:263,sceneprocessor:264,sceneread:265,scenewrit:266,scheme:229,screengrab:19,script:[12,14,15,19,20,308,313,406,408,412,420],scriptnod:[46,308],section:409,see:[2,3,4,5,6,23,399,401,402,403,404,407,408,409,410,412,414,415,416,417,418,419],seed:[43,44,75,216],seeden:216,seedpermut:216,seedvari:[43,44,216],segment:[226,227],select:[6,8,19,308,403],selector:[40,47],selectview:156,selfshadow:54,sequenc:[84,88],serial:308,serialis:20,servic:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],set:[5,8,12,20,60,61,68,73,164,174,176,181,186,204,213,214,215,233,246,267,269,270,279,283,296,304,308,311,402,404,406,409,410,418],setexpress:268,setfilt:268,setqueri:269,setup:403,setvari:267,setvisualis:270,sgi:140,shader:[6,52,53,55,66,72,78,255,271,272,273,274,276,411,415],shaderassign:272,shaderbal:273,shadernam:[164,171],shaderparamet:171,shaderqueri:274,shadertweak:276,shadertweakproxi:275,shadertyp:171,shadingsystem:[75,78],shadow:[152,158],shadow_color:62,shadow_dens:62,shadowautobumpvis:54,shadowblur:[152,158],shadowcolor:[152,158],shadowgroup:54,shadowoffset:[152,158],shadowterminatorgeometryoffset:71,shadowterminatorshadingoffset:71,shadowvis:[54,71],shape:164,shapesteps:54,shapestepscal:54,shell:85,shortcut:[8,47],shot:409,show:12,showactivepixel:75,showcategori:21,shuffl:[157,277,278],shuffleattribut:277,shuffleprimitivevari:278,shutter:[174,281],sidecarfil:185,simpl:311,size:[99,131,158,173],skiplicensecheck:63,slope:96,solut:404,some:[6,411],sourc:[177,182,183,184,187,287],sourceloc:[177,182,184,187,287],sourceroot:179,space:[6,104,173,180,212,284,285,308],specif:[308,409,418],specular:62,specularreflectionautobumpvis:54,specularreflectionvis:54,speculartransmissionautobumpvis:54,speculartransmissionvis:54,speed:50,sphere:[279,308],spherelevelset:304,spheric:403,spreadsheet:[8,47,409,410],sss:62,ssssetnam:54,standardattribut:280,standardopt:281,start:[6,7,46,136,232,421],startposit:151,startsampl:75,startup:[417,418,419],stat:20,state:[69,79,217],statisticsfilenam:63,statu:[177,187,287],step:232,stepscal:68,stepsiz:68,stoponfailur:21,strength:74,string:[91,312,407],stripewidth:270,structur:408,sub:410,subdivadaptiveerror:54,subdivadaptivemetr:54,subdivadaptivespac:54,subdivdicingcamera:63,subdivfrustumcul:63,subdivfrustumignor:54,subdivfrustumpad:63,subdividepolygon:54,subdiviter:54,subdivsmoothderiv:54,subdivuvsmooth:54,subgraph:48,substitut:[85,312],subsurfaceautobumpvis:54,subsurfacevis:54,subtre:282,suffix:178,suffixcontextvari:178,syntax:312,system:399,systemcommand:85,tag:[64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,265,266,292,295],tangent:228,targa:140,target:[168,201,210,244,247],targetfram:210,targetmod:[168,244,247],targetoffset:[168,244,247],targetscen:[168,210,244,247],targetshad:275,targetuv:[168,244,247],targetvertex:[168,244,247],task:[12,20,64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],taskcontextprocessor:86,taskcontextvari:87,tasklist:88,tasknod:89,taskswitch:90,tbb:0,tessellatepolygon:229,test:[21,417,419],testcas:21,text:[8,158,283],textur:6,textureautogeneratetx:63,textureautotxpath:63,texturelimit:75,texturemaxmemorymb:63,texturemaxsharpen:63,textureperfilestat:63,texturesearchpath:63,textureuseexistingtx:63,thetamax:279,thick:130,third:2,thread:[10,11,12,13,14,15,17,18,19,20,21,22,63,66,78],thresholdangl:225,through:[308,403,406],tiff:140,tile:105,tileindexvari:104,tilenam:104,tilenamevari:104,tiles:75,tilevari:105,time:[4,309],timelimit:75,timeoffset:216,timewarp:50,titl:25,tool:[2,8],toonid:54,tractor:[2,64,67,76,81,82,83,84,85,86,87,88,89,90,91,140,235,254,257,266,292,295],tractordispatch:292,transfer:409,transform:[8,60,61,68,73,99,139,151,152,158,164,174,176,180,181,186,201,204,212,213,214,215,233,246,265,279,283,284,296,304,308,402,409],transformblur:[280,281],transformblurseg:280,transformmod:223,transformqueri:285,transformtyp:54,translat:[285,403],transmissionvis:71,transparentmaxbounc:75,transparentminbounc:75,travers:416,trianglesubdivisionrul:[229,231],turbo:0,tutori:[6,410,411,415,416,417,418,419],tweak:[32,170,175,238,276,403,409],type:[56,58,65,77,162,166,230,236,248,271,275,279,297,308],udim:[67,221],udimqueri:286,ui:406,unencapsul:288,unionfilt:289,unpremultipli:159,unsavedchang:46,up:[5,168,406,409,410],us:[5,6,403,411,412,421],usag:[255,406],usd:0,usdattribut:294,usdlayerwrit:295,usdlight:296,usdshad:297,useadaptivesampl:75,useattribut:165,useautotil:75,usebvhspatialsplit:75,usebvhunalignednod:75,usecolorsourcealpha:113,usedeepvis:150,usedenoisepassalbedo:75,usedenoisepassnorm:75,usederiv:160,useguid:75,useholdout:71,uselighttre:75,useprofil:75,user:[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,294,295,296,297,299,300,301,302,303,304,305],useregularexpress:253,usesurfaceguid:75,usetargetfram:210,usetransform:165,usetransparentshadow:71,useveloc:303,usevolumeguid:75,utang:228,uv:[261,287],uvdistort:224,uvremap:56,uvsampl:287,uvset:[67,221,222,224,228,286],v:187,valu:[43,308,409,415],variabl:[5,23,33,34,46,84,87,91,148,308,309,402,407,410,415,417],variat:[216,409],vector:[160,409],vectormod:160,vectorunit:160,vectorwarp:160,veloc:303,velocityfp:54,velocitygrid:68,velocityoutlierthreshold:54,velocityscal:[54,68,303],verifi:2,vertic:145,verticalalign:[104,158],view:[6,8,22,108,109,122,125,131,137,138,156,214,215,403],viewer:[6,8,19,310,403],visibl:280,visualiserattribut:[60,73,164,174,296],visualiserfrustum:234,visualisermaxtextureresolut:234,visualiserscal:234,volum:62,volume_sampl:62,volumeautobumpvis:54,volumeclip:71,volumeinterpolationmethod:71,volumemaxstep:75,volumeobjectspac:71,volumepad:54,volumesamplingmethod:71,volumescatt:305,volumestepr:[71,75],volumesteps:[54,71,75],volumestepscal:54,volumevis:54,voxels:[301,303,304],vtangent:228,vtune:20,webp:140,wedg:91,weight:[44,225],whiteclamp:132,whitepoint:132,whole:409,width:[214,215,290,303],widthchannel:[214,215],widthscal:303,wildcard:[6,408],window:[2,3,4,5,8,399],wirefram:290,withdepend:17,without:415,work:[400,405,409,413,420],workingspac:148,world:308,xenabl:247,yaml:0,yenabl:247,your:6,zbackchannel:130,zbackmod:130,zchannel:130,zenabl:247,zerovalu:58,zlib:0,zmax:279,zmin:279,zmode:130}}) \ No newline at end of file diff --git a/index.html b/index.html index 4f2e4f94a..15e71339f 100644 --- a/index.html +++ b/index.html @@ -2,10 +2,10 @@ Redirecting… - - - + + +

Redirecting…

- Click here if you are not redirected. + Click here if you are not redirected.