diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index e44550d3e97..eea7cdd9e00 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -14,12 +14,12 @@ about: Create a report to help us improve Provide a description of the problem/bug -### Steps to Reproduce ### +### Steps to reproduce ### 1. List the steps required for others to reproduce the issue -### Debug Log ### +### Debug log ###
Click to Expand

diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index cde9f52fb41..dd9121841ca 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,6 +1,6 @@ # Code of Conduct # -## Our Pledge ## +## Our pledge ## In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and @@ -10,7 +10,7 @@ education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. -## Our Standards ## +## Our standards ## Examples of behavior that contributes to creating a positive environment include: @@ -33,7 +33,7 @@ Examples of unacceptable behavior by participants include: professional setting -## Our Responsibilities ## +## Our responsibilities ## Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f9853c2e288..b096ab35f65 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ The Gaffer team always welcomes quality contributions and issue reports. The fol Feel free to join the discussion on the [Gaffer community group](https://groups.google.com/forum/#!forum/gaffer-dev). It is the main public space for Gaffer-related questions, issues, and requests. If you are new to Gaffer development, we recommend browsing the latest discussions to develop a sense for the current priorities and familiarize yourself with the development flow. -## Reporting Bugs ## +## Reporting bugs ## If you discover behaviour in Gaffer that you suspect is a bug, first: @@ -21,9 +21,9 @@ If your Issue requires a debug log, you must run Gaffer in a debugger (GDB) and 3. When an error or a crash occurs, copy the output of the log. -## Contributing Code ## +## Contributing code ## -### Pull Requests ### +### Pull requests ### If you have a fork of Gaffer and have made improvements, and you would like to see them merged with the main project, you can create a new [Pull Request](https://github.com/GafferHQ/gaffer/pulls) (PR). Make sure to fill out the PR template on GitHub. @@ -45,7 +45,7 @@ Each commit in your PR must perform one logically distinct set of changes. It mu We have several message best practices, which, if followed, result in a succinct, informative commit history that can be natively displayed in a variety of disparate protocols and applications, such as email and IDEs. The goal is for anyone to be able to look through the commit log on its own and have a reasonably detailed idea of what was changed and why. -#### Commit Message Best Practices #### +#### Commit message best practices #### - Each line of the message should be 72 characters or less. - The first line's message should start with the name of the module or area of the project being affected, followed by a space, a colon, another space, and finally by a _general_ description. Example: `Interface : Add MyButton`. @@ -53,7 +53,7 @@ We have several message best practices, which, if followed, result in a succinct - If the commit makes several small but important changes, list them line-by-line, with each line starting with a hyphen followed by a space, followed by a description of the change. -### Example Commits for a New Feature ### +### Example commits for a new Feature ### #### Commit 1 #### diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md index 1d66929ae0b..9a53d418997 100644 --- a/PULL_REQUEST_TEMPLATE.md +++ b/PULL_REQUEST_TEMPLATE.md @@ -2,7 +2,7 @@ Generally describe what this PR will do, and why it is needed - List specific new features and changes to project components -### Related Issues ### +### Related issues ### - List any Issues this PR addresses or solves @@ -10,7 +10,7 @@ Generally describe what this PR will do, and why it is needed - List any other unmerged PRs that this PR depends on -### Breaking Changes ### +### Breaking changes ### - List any breaking API/ABI changes (and apply the pr-majorVersion label) diff --git a/README.md b/README.md index 677f9587d4b..442b2e334fe 100644 --- a/README.md +++ b/README.md @@ -27,14 +27,14 @@ Compiled binary releases are available for download from the [releases page](htt Gaffer is a fairly large project, and as such has a fairly complex build process. Before you start, make sure you have the following prerequisites installed on your system, which will be used to perform the build itself. -### Build Requirements ### +### Build requirements ### From time to time, this list may change. For a complete, accurate, and up-to-date method of installing the prerequisites on CentOS, refer to the [Docker setup](https://github.com/GafferHQ/build/blob/master/Dockerfile) we use for building automatic releases. > **Note:** Specific package names may differ depending on your Linux distribution and repository. -#### Main Build Requirements #### +#### Main build requirements #### > **Note:** Large Linux distros focused on usability, such as CentOS and Ubuntu, ship with many of these packages by default. @@ -51,7 +51,7 @@ Package Name | Minimum Version [mesa-libGLU-devel](https://www.mesa3d.org) | -#### Documentation Build Requirements #### +#### Documentation build requirements #### > **Note:** Building the documentation is optional. @@ -68,7 +68,7 @@ sphinx_rtd_theme | recommonmark | -### Build Process ### +### Build process ### Gaffer also depends on a number of 3rd-party libraries and python modules, many of which are not entirely straightforward to build. We therefore recommend using the latest pre-built dependencies from the [Gaffer dependencies project](https://github.com/GafferHQ/dependencies/releases). These are used in our automated test builds and so are guaranteed to be up-to-date with Gaffer's requirements. @@ -88,22 +88,22 @@ scons BUILD_DIR= build ``` -## Questions and Troubleshooting ## +## Questions and troubleshooting ## If you have any questions about using Gaffer, or encounter problems setting it up, feel free to ask on the [Gaffer community group](https://groups.google.com/forum/#!forum/gaffer-dev). Our users and contributors are happy to help. -## Requesting Features ## +## Requesting features ## If there is a feature you would like to see in Gaffer, request it on the [Gaffer community group](https://groups.google.com/forum/#!forum/gaffer-dev). Do not create an Issue for it on GitHub. -## Contributions and Bugs Reports ## +## Contributions and bugs reports ## Please see the project's [contribution guidelines](CONTRIBUTING.md). -## Copyright and License ## +## Copyright and license ## © 2011–2019 John Haddon. All rights reserved. diff --git a/doc/source/GettingStarted/ConfiguringGafferForThirdPartyTools/index.md b/doc/source/GettingStarted/ConfiguringGafferForThirdPartyTools/index.md index fbd60bd3cf0..6dc15778272 100644 --- a/doc/source/GettingStarted/ConfiguringGafferForThirdPartyTools/index.md +++ b/doc/source/GettingStarted/ConfiguringGafferForThirdPartyTools/index.md @@ -185,7 +185,7 @@ Once the tractor folder has been added to your `PYTHONPATH`, you can then verify -## See Also ## +## See also ## - [Setting Up the "gaffer" Command](../SettingUpGafferCommand/index.md) - [Installing Gaffer](../InstallingGaffer/index.md) diff --git a/doc/source/GettingStarted/InstallingGaffer/index.md b/doc/source/GettingStarted/InstallingGaffer/index.md index 41f55167e29..4a4741407b2 100644 --- a/doc/source/GettingStarted/InstallingGaffer/index.md +++ b/doc/source/GettingStarted/InstallingGaffer/index.md @@ -42,7 +42,7 @@ To install Gaffer in OSX: Gaffer is now installed to `/opt/gaffer-!GAFFER_VERSION!-osx`. -## See Also ## +## See also ## - [Launching Gaffer for the First Time](../LaunchingGafferFirstTime/index.md) - [Setting Up the "gaffer" Command](../SettingUpGafferCommand/index.md) diff --git a/doc/source/GettingStarted/LaunchingGafferFirstTime/index.md b/doc/source/GettingStarted/LaunchingGafferFirstTime/index.md index f15eab1c761..d1e6723c902 100644 --- a/doc/source/GettingStarted/LaunchingGafferFirstTime/index.md +++ b/doc/source/GettingStarted/LaunchingGafferFirstTime/index.md @@ -39,7 +39,7 @@ To launch Gaffer for the first time in OSX: Gaffer will launch in a new window. -## See Also ## +## See also ## - [Installing Gaffer](../InstallingGaffer/index.md) - [Setting Up the "gaffer" Command](../SettingUpGafferCommand/index.md) diff --git a/doc/source/GettingStarted/SettingUpGafferCommand/index.md b/doc/source/GettingStarted/SettingUpGafferCommand/index.md index 2854612f6b2..ed399173fea 100644 --- a/doc/source/GettingStarted/SettingUpGafferCommand/index.md +++ b/doc/source/GettingStarted/SettingUpGafferCommand/index.md @@ -6,14 +6,14 @@ After you have installed Gaffer, it will remain a collection of files and direct > 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 ### +### 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 ## +## 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_. @@ -49,7 +49,7 @@ To set up the `gaffer` command in Linux: You can now execute `gaffer` as a command from any directory in the terminal. -## Setting Up the "gaffer" Command in OSX ## +## Setting up the "gaffer" command in OSX ## The default terminal in OSX is _bash_, so you will need to add to the `PATH` variable in the _bash_ user config. @@ -74,7 +74,7 @@ To set up the `gaffer` command in OSX: You can now execute `gaffer` as a command from any directory in the terminal. -## Using the "gaffer" Command ## +## Using the "gaffer" command ## Once you have added the Gaffer directory to the `PATH` variable, you can launch Gaffer anywhere in the terminal: @@ -85,7 +85,7 @@ gaffer You can also use the command to open Gaffer scripts, as outlined in the [Command Line Reference](../../Reference/CommandLineReference/index.md). -## See Also ## +## See also ## - [Installing Gaffer](../InstallingGaffer/index.md) - [Configuring Gaffer for Third-Party Tools](../ConfiguringGafferForThirdPartyTools/index.md) diff --git a/doc/source/GettingStarted/index.md b/doc/source/GettingStarted/index.md index a1b0dbcaf44..29adc14c969 100644 --- a/doc/source/GettingStarted/index.md +++ b/doc/source/GettingStarted/index.md @@ -3,13 +3,13 @@ Here you can find information and instructions about how to install and configure Gaffer. -### Quick Installation ### +### Quick installation ### - [Installing Gaffer](InstallingGaffer/index.md) - [Launching Gaffer for the First Time](LaunchingGafferFirstTime/index.md) -### Complete Installation ### +### Complete installation ### - [Setting Up the "gaffer" Command](SettingUpGafferCommand/index.md) - [Configuring Gaffer for Third-Party Tools](ConfiguringGafferForThirdPartyTools/index.md) diff --git a/doc/source/Interface/ControlsAndShortcuts/index.md b/doc/source/Interface/ControlsAndShortcuts/index.md index d953004b14a..c716a63b83a 100644 --- a/doc/source/Interface/ControlsAndShortcuts/index.md +++ b/doc/source/Interface/ControlsAndShortcuts/index.md @@ -15,7 +15,7 @@ The following is a list of input device controls and shortcuts for manipulating ```eval_rst ===================================== ============================================= -Action Control or Shortcut +Action Control or shortcut ===================================== ============================================= New node graph :kbd:`Ctrl` + :kbd:`N` Open node graph :kbd:`Ctrl` + :kbd:`O` @@ -40,7 +40,7 @@ Hide tabs of current panel :kbd:`Ctrl` + :kbd:`T` ```eval_rst ===================================== ============================================= -Action Control or Shortcut +Action Control or shortcut ===================================== ============================================= Pan :kbd:`Alt` + click and drag Zoom :kbd:`Alt` + right-click and drag @@ -61,7 +61,7 @@ Frame to numeric bookmark :kbd:`1` … :kbd:`9` ```eval_rst ===================================== ============================================= -Action Control or Shortcut +Action Control or shortcut ===================================== ============================================= Show node menu Right-click @@ -81,7 +81,7 @@ Insert `Dot` at connection :kbd:`Ctrl` + click connection ```eval_rst ===================================== ============================================= -Action Control or Shortcut +Action Control or shortcut ===================================== ============================================= Select all :kbd:`Ctrl` + :kbd:`A` Clear selection :kbd:`Ctrl` + :kbd:`Shift` + :kbd:`A` @@ -102,7 +102,7 @@ Select downstream nodes :kbd:`Shift` + :kbd:`Ctrl` + click node ```eval_rst ===================================== ============================================= -Action Control or Shortcut +Action Control or shortcut ===================================== ============================================= Dispatch selected node(s) :kbd:`Ctrl` + :kbd:`E` Redo last dispatch :kbd:`Ctrl` + :kbd:`R` @@ -117,7 +117,7 @@ Redo last dispatch :kbd:`Ctrl` + :kbd:`R` ```eval_rst ===================================== ============================================= -Action Control or Shortcut +Action Control or shortcut ===================================== ============================================= Cut node(s) :kbd:`Ctrl` + :kbd:`X` Copy node(s) :kbd:`Ctrl` + :kbd:`C` @@ -136,7 +136,7 @@ Enable/disable node(s) :kbd:`D` ```eval_rst ===================================== ============================================= -Action Control or Shortcut +Action Control or shortcut ===================================== ============================================= Connect plug Click and drag plug to another plug Disconnect plug Click and drag connection to background @@ -152,7 +152,7 @@ Duplicate outgoing connection :kbd:`Shift`-click and drag connection jus ```eval_rst ===================================== ============================================= -Action Control or Shortcut +Action Control or shortcut ===================================== ============================================= Bookmark node Right-click node > *Bookmark* Connect to bookmarked node Right-click plug > *Connect Bookmark* > select @@ -178,7 +178,7 @@ Remove numeric bookmark :kbd:`Ctrl` + :kbd:`0` ```eval_rst ============================================== =============================================== -Action Control or Shorcut +Action Control or shorcut ============================================== =============================================== Increment/decrement value, specific precision Position cursor next to a number position in plug field, then hit :kbd:`↑` / :kbd:`↓` @@ -195,7 +195,7 @@ Gang plugs together :kbd:`Ctrl` + :kbd:`G` ```eval_rst ==================================== ================================================ -Action Control or Shorcut +Action Control or shorcut ==================================== ================================================ Autocomplete path component :kbd:`Tab` Path-level contents menu Select path component @@ -219,7 +219,7 @@ Path hierarchy menu Select all ```eval_rst ===================================== ============================================= -Action Control or Shortcut +Action Control or shortcut ===================================== ============================================= Pan :kbd:`Alt` + click and drag Zoom/dolly :kbd:`Alt` + right-click and drag @@ -243,7 +243,7 @@ Pin to numeric bookmark :kbd:`1` … :kbd:`9` ```eval_rst ====================================================== ===================================== -Action Control or Shortcut +Action Control or shortcut ====================================================== ===================================== Tumble :kbd:`Alt` + click and drag Expand selection :kbd:`↓` @@ -272,7 +272,7 @@ Reset clipping planes Right-click > *Clipping  ```eval_rst ==================================================== ============================================= -Action Control or Shortcut +Action Control or shortcut ==================================================== ============================================= Increase manipulator size :kbd:`+` Decrease manipulator size :kbd:`-` @@ -285,7 +285,7 @@ Add animation key to transform of selected object(s) :kbd:`S` ```eval_rst ===================================== ============================================= -Action Control or Shortcut +Action Control or shortcut ===================================== ============================================= Isolate red channel :kbd:`R` Isolate green channel :kbd:`G` @@ -306,7 +306,7 @@ Center image at 1:1 scale :kbd:`Home` ```eval_rst ================================================== ================================================ -Action Control or Shortcut +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* @@ -330,7 +330,7 @@ Drop scene location path(s) into *Python Editor* Click and drag selection from ```eval_rst ===================================== =================================================== -Action Control or Shortcut +Action Control or shortcut ===================================== =================================================== Execute and clear :kbd:`Ctrl` + :kbd:`Enter` Execute selection Select code, then hit :kbd:`Ctrl` + :kbd:`Enter` @@ -345,7 +345,7 @@ Execute selection Select code, then hit :kbd:`Ctrl` + :kbd:` ```eval_rst =============================================== ============================================= -Action Control or Shortcut +Action Control or shortcut =============================================== ============================================= Pan :kbd:`Alt` + click and drag Zoom :kbd:`Alt` + right-click and drag diff --git a/doc/source/Reference/ScriptingReference/Metadata/index.md b/doc/source/Reference/ScriptingReference/Metadata/index.md index c349397084a..ada2c74089e 100644 --- a/doc/source/Reference/ScriptingReference/Metadata/index.md +++ b/doc/source/Reference/ScriptingReference/Metadata/index.md @@ -11,7 +11,7 @@ General ```eval_rst =================== =============================== ============================ -Name Purpose Example Values +Name Purpose Example values =================== =============================== ============================ label Label used instead of plug name "My Label" description Describes the purpose of a "Turns on the thingammajig" @@ -30,7 +30,7 @@ NodeEditor Layout ```eval_rst =============================== =============================== ================================== -Name Purpose Example Values +Name Purpose Example values =============================== =============================== ================================== layout:divider Places a divider after the plug True layout:index Integer index in the layout 0 (first), -1 (last) @@ -49,7 +49,7 @@ GraphEditor Layout ```eval_rst ====================== ================================ ================================ -Name Purpose Example Values +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 ) @@ -64,7 +64,7 @@ Viewer Layout ```eval_rst ====================== ================================ ================================ -Name Purpose Example Values +Name Purpose Example values ====================== ================================ ================================ layout:divider Places a divider after the plug True layout:index Integer index in the layout 0 (first), -1 (last) diff --git a/doc/source/ScriptPerformance/PerformanceBestPractices/index.md b/doc/source/ScriptPerformance/PerformanceBestPractices/index.md index 541ce191cab..5c4c14546fa 100644 --- a/doc/source/ScriptPerformance/PerformanceBestPractices/index.md +++ b/doc/source/ScriptPerformance/PerformanceBestPractices/index.md @@ -5,7 +5,7 @@ Gaffer is designed to gracefully handle very large scenes by deferring the gener Here we will discuss the performance implications of various choices you might make in your Gaffer scripts, and provide some guidelines for keeping them running smoothly. -## Complexity and Node Graph Structure ## +## Complexity and node graph structure ## 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. @@ -44,7 +44,7 @@ Formally, we can state that grouping second has linear complexity with respect t 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 ## +## Path wildcards ## The `'...'` wildcard in a path expression means "match any number of names." So, in a large geographical scene, `'/world/.../house'` would return: @@ -87,7 +87,7 @@ Keep in mind the rough complexity metric of `complexity = numberOfLocations * nu - 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 ## +## Performance monitor ## Gaffer has a [performance monitor](../UsingThePerformanceMonitor/index.md) and a [stats app](../../References/CommandLineReference/stats.md) that can be used to measure and compare the real performance of your graph. @@ -95,7 +95,7 @@ Gaffer has a [performance monitor](../UsingThePerformanceMonitor/index.md) and a > When performance is critical, use the performance monitor or the stats app. -## See Also ## +## See also ## diff --git a/doc/source/ScriptPerformance/UsingThePerformanceMonitor/index.md b/doc/source/ScriptPerformance/UsingThePerformanceMonitor/index.md index 59a0c333bec..a54b6a89ee4 100644 --- a/doc/source/ScriptPerformance/UsingThePerformanceMonitor/index.md +++ b/doc/source/ScriptPerformance/UsingThePerformanceMonitor/index.md @@ -22,7 +22,7 @@ When you dispatch your script to the renderer, performance data will output to t As an alternative, the [stats app](../../Reference/CommandLineReference/stats.md) allows the same monitoring to be performed from the command line, without the need to dispatch the script. -## See Also ## +## See also ## - [Script Performance](../index.md) - [Stats App](../../Reference/CommandLineReference/stats.md) diff --git a/doc/source/Tutorials/BeginnerTutorial/index.md b/doc/source/Tutorials/BeginnerTutorial/index.md index a3a27c5455a..325b5e697e9 100644 --- a/doc/source/Tutorials/BeginnerTutorial/index.md +++ b/doc/source/Tutorials/BeginnerTutorial/index.md @@ -18,7 +18,7 @@ By the end of this tutorial you will have built a basic scene with Gaffer's robo > This tutorial uses Appleseed, a free renderer included with Gaffer. While the Appleseed-specific nodes described here can be substituted with equivalents from Arnold or 3Delight, we recommend that you complete this tutorial using Appleseed before moving on to your preferred renderer. -## Starting a New Script ## +## Starting a new script ## 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 script in the default UI layout. @@ -28,7 +28,7 @@ After [installing Gaffer](../../GettingStarted/InstallingGaffer/index.md), launc > To avoid confusion between Gaffer files, its UI, and node graphs in general, we refer to the files you work on as **scripts**. -## Importing a Geometry Scene Cache ## +## 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/GafferScene/ImageReader.md). @@ -52,7 +52,7 @@ The SceneReader node has loaded, and the _Viewer_ is showing a bounding box, but > By default, the _Viewer_, _Node Editor_, and _Hierarchy View_ update to reflect the last selected node, and go blank when no node is selected. -## The Scene Hierarchy ## +## 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. @@ -119,7 +119,7 @@ You may have noticed that when you expanded and collapsed parts of the scene usi > Selecting, expanding, and collapsing scene locations through the _Hierarchy View_ and the _Viewer_ are one and the same. -## Adjusting the View in the _Viewer_ ## +## 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_. @@ -131,7 +131,7 @@ Like in other 3D tools, you can adjust the angle, field of view, and the positio > 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 ## +## 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. @@ -151,7 +151,7 @@ Earlier, you learned how to create a node by navigating the node creation menu i 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 ## +## Node data flow ## So far, your script 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. @@ -186,7 +186,7 @@ The inputs and outputs of a node are called **plugs**, and are represented in th 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 output plugs to a Group node, and you can also rearrange the nodes to better visually represent the data flow in the graph. -## Connecting Plugs ## +## Connecting plugs ## It's time to connect the SceneReader and Camera nodes to combine their scenes: @@ -214,7 +214,7 @@ You may have noticed that you can intuitively click and drag the nodes around in - To focus on the currently selected node, hover the cursor over the _Graph Editor_ and hit F. -## Positioning the Camera ## +## 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_. @@ -241,7 +241,7 @@ Next, rotate the camera using the _RotateTool:_ ![The camera, rotated, in the Viewer](images/viewerCameraRotated.png "The camera, rotated, in the Viewer") -### More Precise Camera Adjustment ### +### 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:_ @@ -251,7 +251,7 @@ For more precise positioning and rotation, you can set the Translate and Rotate > 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 ## +## 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 script's render settings. @@ -304,7 +304,7 @@ With all the settings complete, start the interactive renderer: 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 ## +## Pinning an editor to a node ## As mentioned earlier, the _Viewer_, _Hierarchy View_, and _Node Editor_ (each an **editor**) show their respective outputs of the currently selected node. This is not always convenient, because often you will need to edit one node while viewing the output of another. You can solve this by **pinning** an editor while a node is selected, which keeps that editor focused on the node. @@ -345,7 +345,7 @@ Now you can switch between the scene's geometry (first _Viewer_) and the rendere Now it is time to shade Gaffy. -## Adding Shaders and Lighting ## +## 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. @@ -520,7 +520,7 @@ You should now have a basic understanding of Gaffer's interface, the flow of dat You should now have a solid basis for further learning and exploration. -## See Also ## +## See also ## - [Installing Gaffer](../../Installation/index.md) - [Controls and Shorcuts](../../Interface/ControlsAndShortcuts/index.md) diff --git a/doc/source/Tutorials/Scripting/CreatingConfigurationFiles1/index.md b/doc/source/Tutorials/Scripting/CreatingConfigurationFiles1/index.md index a7f51a25243..d77bfc697b4 100644 --- a/doc/source/Tutorials/Scripting/CreatingConfigurationFiles1/index.md +++ b/doc/source/Tutorials/Scripting/CreatingConfigurationFiles1/index.md @@ -13,7 +13,7 @@ In this first config, we will add a global context variable called `${project:re ![A global context variable in a string plug](images/tutorialVariableSubstitutionInStringPlug.png "A global context variable in a string plug") -## Global Context Variables ## +## 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_). @@ -131,7 +131,7 @@ We wrap up the config by adding our function to an event signal that fires when 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 ## +## 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. @@ -149,7 +149,7 @@ 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 ## +## 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. @@ -169,14 +169,14 @@ 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 ## +## 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 ## +## See also ## - [Tutorial: Startup Config 2, Custom Bookmarks](../CreatingConfigurationFiles2/index.md) - [Tutorial: Startup Config 3, Custom Node Menu Entries](../CreatingConfigurationFiles3/index.md) diff --git a/doc/source/Tutorials/Scripting/CreatingConfigurationFiles2/index.md b/doc/source/Tutorials/Scripting/CreatingConfigurationFiles2/index.md index 134cb140265..11058b6768f 100644 --- a/doc/source/Tutorials/Scripting/CreatingConfigurationFiles2/index.md +++ b/doc/source/Tutorials/Scripting/CreatingConfigurationFiles2/index.md @@ -131,12 +131,12 @@ If all goes well, the file path should default to `~/Pictures`. > 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 ## +## 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 ## +## See also ## - [Tutorial: Startup Config 3, Custom Node Menu Entries](../CreatingConfigurationFiles3/index.md) - [Tutorial: Startup Config 1, Custom Global Context Variables](../CreatingConfigurationFiles1/index.md) diff --git a/doc/source/Tutorials/Scripting/CreatingConfigurationFiles3/index.md b/doc/source/Tutorials/Scripting/CreatingConfigurationFiles3/index.md index 39588c9f14b..53aa7405c08 100644 --- a/doc/source/Tutorials/Scripting/CreatingConfigurationFiles3/index.md +++ b/doc/source/Tutorials/Scripting/CreatingConfigurationFiles3/index.md @@ -122,7 +122,7 @@ The `append()` convenience method is quite useful, as it wraps several other beh 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 ## +## 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. @@ -134,7 +134,7 @@ Let's try testing the custom node. If you haven't already, save the startup conf 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 ## +## See also ## - [Tutorial: Startup Config 1, Custom Global Context Variables](../CreatingConfigurationFiles1/index.md) - [Tutorial: Startup Config 2, Custom Bookmarks](../CreatingConfigurationFiles2/index.md) diff --git a/doc/source/Tutorials/Scripting/GettingStarted/index.md b/doc/source/Tutorials/Scripting/GettingStarted/index.md index a86d7022109..cc836f21685 100644 --- a/doc/source/Tutorials/Scripting/GettingStarted/index.md +++ b/doc/source/Tutorials/Scripting/GettingStarted/index.md @@ -20,7 +20,7 @@ By the end of this tutorial, you should have an understanding of the following t Before you begin, we highly recommend you complete the [Assembling the Gaffer Bot tutorial](../../../Tutorials/BeginnerTutorial/index.md). -## The Python Editor ## +## 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_. @@ -32,7 +32,7 @@ The bottom-half of the _Python Editor_ is the code input field. The top-half is ![The Python Editor with “Hello, World!”](images/pythonEditorHelloWorld.png "The Python Editor with “Hello, World!”") -## Creating Nodes ## +## 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. @@ -69,7 +69,7 @@ root.addChild( myGroup ) ![All nodes in the Graph Editor, unconnected](images/graphEditorAllNodes.png "All nodes in the Graph Editor, unconnected") -## Referencing Nodes without Variables ## +## Referencing nodes without variables ## Nodes that do not have variables can be referenced by dragging and dropping them in the interface: @@ -77,7 +77,7 @@ Nodes that do not have variables can be referenced by dragging and dropping them 2. Release the selection onto the input field of the _Python Editor_. -## Loading Shaders ## +## 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: @@ -86,7 +86,7 @@ myShader.loadShader( 'Constant' ) ``` -## Referencing Plugs ## +## 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. @@ -113,7 +113,7 @@ A reference to `root['Sphere']['radius']` will be inserted. This is identical to > 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 ## +## Retrieving a plug value ## The `getValue()` method retrieves a plug's value. Try it on the `Cs` (colour) plug of the OpenGLShader node: @@ -129,7 +129,7 @@ There is also a shortcut for grabbing a plug value, which involves Shift 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 ## +## Editing a plug value ## The `setValue()` method edits plug values. It functions on plugs with both single and multi-element data types. @@ -146,7 +146,7 @@ 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 ## +## 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. @@ -177,7 +177,7 @@ 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 ## +## Connecting nodes ## Nodes do not connect together: their plugs do. The `setInput()` method connects a destination plug to a source plug. @@ -228,7 +228,7 @@ Here is the final graph: ![The final scene](images/mainWindowFinalScene.png "The final scene") -## Deleting Nodes ## +## 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: @@ -242,7 +242,7 @@ root.removeChild( mySphere ) 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 ## +## See also ## - [Node Reference](../../../Reference/NodeReference/index.md) - [_Python Editor_ Shorcuts](../../../Interface/ControlsAndShortcuts/index.html#script-editor) diff --git a/doc/source/WorkingWithImages/AnatomyOfAnImage/index.md b/doc/source/WorkingWithImages/AnatomyOfAnImage/index.md index baf90cc6ca5..7a90fdc2e39 100644 --- a/doc/source/WorkingWithImages/AnatomyOfAnImage/index.md +++ b/doc/source/WorkingWithImages/AnatomyOfAnImage/index.md @@ -15,7 +15,7 @@ This is merely a conceptual division to help understand how Gaffer processes ima > 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 ## +## Image properties ## ### Format ### @@ -24,17 +24,17 @@ This is merely a conceptual division to help understand how Gaffer processes ima The format property can be conceived of as the combination of OpenEXR's **display window** and **pixel aspect ratio** attributes. -#### Display Window #### +#### 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 #### 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 ### **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. @@ -59,7 +59,7 @@ Gaffer can read, add, and remove metadata from an image, but it assigns no speci > 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 ### 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. @@ -69,14 +69,14 @@ Additional channels are grouped into layers using a prefix-based naming conventi > Gaffer follows the [OpenEXR convention for channel names](http://www.openexr.com/documentation/InterpretingDeepPixels.pdf). -### Channel Data ### +### 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 Image Reader or Image Writer 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 64x64 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 ### +### Image coordinate system ### ```eval_rst .. figure:: images/gafferImageCoordinates.png @@ -100,6 +100,6 @@ When sub-pixel values are needed for a process, such as rotating an image on a p > In order to make manipulating images more intuitive for users, the Gaffer coordinate system differs from these aspects by design. -## See Also ## +## See also ## - [Anatomy of a Scene](../../WorkingWithScenes/AnatomyOfAScene/index.md) diff --git a/doc/source/WorkingWithScenes/AnatomyOfACamera/index.md b/doc/source/WorkingWithScenes/AnatomyOfACamera/index.md index 41f85a962d9..fe712528078 100644 --- a/doc/source/WorkingWithScenes/AnatomyOfACamera/index.md +++ b/doc/source/WorkingWithScenes/AnatomyOfACamera/index.md @@ -12,7 +12,7 @@ Fundamentally, current mainstream renderers use the CG camera model. However, ma 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 ## +## Camera model ## ### Projection ### @@ -93,7 +93,7 @@ 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 ## +## Cameras in the scene ## ### Camera data ### @@ -131,7 +131,7 @@ At a later point in the graph, a StandardOptions node selects the camera to use, 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 ## +## See also ## - [Camera](../Camera/index.md) - [Camera node reference]() diff --git a/doc/source/WorkingWithScenes/AnatomyOfAScene/index.md b/doc/source/WorkingWithScenes/AnatomyOfAScene/index.md index 195193aff04..19cc7af6c1c 100644 --- a/doc/source/WorkingWithScenes/AnatomyOfAScene/index.md +++ b/doc/source/WorkingWithScenes/AnatomyOfAScene/index.md @@ -10,7 +10,7 @@ The structure of a scene can be broken down into two main areas: - Globals -## Scene Hierarchy ## +## 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. @@ -45,7 +45,7 @@ When a location contains a 3D object, such as a primitive or a camera, it is sto ![A location's Object section in the Scene Inspector](images/sceneInspectorObjectSection.png) -#### Primitive Variables #### +#### 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. @@ -89,6 +89,6 @@ The **outputs** define the images to be generated by the renderer. They specify **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 ## +## See also ## - [Tutorial: Querying a Scene](../../Tutorials/Scripting/QueryingAScene/index.md) diff --git a/doc/source/WorkingWithScenes/Camera/index.md b/doc/source/WorkingWithScenes/Camera/index.md index 6b48bd41d4b..7c9edc59323 100644 --- a/doc/source/WorkingWithScenes/Camera/index.md +++ b/doc/source/WorkingWithScenes/Camera/index.md @@ -9,7 +9,7 @@ In this article, we will assume you are fairly familiar with camera terminology Before you begin, we highly recommend you read [Anatomy of a Camera](../AnatomyOfACamera/index.md). -## Camera Basics ## +## 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. @@ -148,7 +148,7 @@ To add depth of field blur: > 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 ## +## 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: @@ -199,7 +199,7 @@ To add a camera tweak: - Value: The new value to use in the operation. -## Example Graphs ## +## Example graphs ## ### Anamorphic camera setup ### @@ -228,7 +228,7 @@ A camera with spherical projection that is compatible with the Arnold renderer. > Due to a bug, when rendering a spherical camera for Arnold, the `filmFit` tweak must be set to _Horizontal_, not _Distort_. -## See Also ## +## See also ## - [Anatomy of a Camera](../AnatomyOfACamera/index.md) - [Camera Node Reference](../../Reference/NodeReference/GafferScene/Camera.md) diff --git a/doc/source/WorkingWithScenes/LightLinking/index.md b/doc/source/WorkingWithScenes/LightLinking/index.md index 1d53e3c4aa8..d3bc4e75693 100644 --- a/doc/source/WorkingWithScenes/LightLinking/index.md +++ b/doc/source/WorkingWithScenes/LightLinking/index.md @@ -11,7 +11,7 @@ When lighting a scene, you will sometimes need to selectively control whether a > 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 ## +## 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. @@ -72,7 +72,7 @@ Be aware that if an object belongs to multiple sets with light linking, the obje ![A graph where an object belongs to multiple sets, each with different linked lights](images/illustrationLightLinkingMultipleSets.png "A graph where an object belongs to multiple sets, each with different linked lights") -## Example Scenario ## +## Example scenario ## Here we'll explore an example scenario where link lighting would be appropriate, and then propose a way to set it up. @@ -147,7 +147,7 @@ Object Linked lights ``` -## Example Graphs ## +## Example graphs ## ### Light linking basics ### @@ -174,6 +174,6 @@ This example contains the various permutations of light linking on objects: 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 ## +## See also ## - [Set Expressions Reference](../../Reference/ScriptingReference/SetExpressions/index.md) diff --git a/doc/source/WorkingWithTheNodeGraph/Box/index.md b/doc/source/WorkingWithTheNodeGraph/Box/index.md index ea8c93bcd5c..2a71195524f 100644 --- a/doc/source/WorkingWithTheNodeGraph/Box/index.md +++ b/doc/source/WorkingWithTheNodeGraph/Box/index.md @@ -21,7 +21,7 @@ In more advanced uses, Boxes serve to export (and occasionally import) saved sub ![Importing reference scripts into your node graph](images/illustrationBoxReferences.png "Importing reference scripts into your node graph") -## Box Data Flow ## +## 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. @@ -33,7 +33,7 @@ While you can connect the nodes inside a Box to the main graph, you cannot view ![Left: the in and out plugs in the main graph. Right: the corresponding BoxIn and BoxOut nodes in the sub-graph.](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 ### +### 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. @@ -244,9 +244,9 @@ To export a Box as a reference script, or import a reference script into a Box: ## Demos ## -### Box Basics ### +### Box basics ### -![Box Basics demo](images/demoBoxBasics.png "Box Basics demo") +![Box basics demo](images/demoBoxBasics.png "Box basics demo") This can be loaded in Gaffer from _Help_ > _Examples_ > _Box Basics_. diff --git a/doc/source/index.md b/doc/source/index.md index d8f6f2e43e1..dff20c0e33f 100644 --- a/doc/source/index.md +++ b/doc/source/index.md @@ -13,7 +13,7 @@ For the purposes of this document, we will assume you have intermediate knowledg Gaffer is open source software hosted and maintained on GitHub: [https://github.com/gafferhq](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](https://github.com/gafferhq/gaffer/issues). -## Start Using Gaffer ## +## Start using gaffer ## To start, you should: