Improvements for "Texture Nodes" section #104466

Merged
Aaron Carlisle merged 1 commits from Matthew-Hinson/blender-manual:texture-node-editor into main 2023-12-08 05:57:49 +01:00
20 changed files with 277 additions and 306 deletions

View File

@ -1,7 +1,8 @@
.. index:: Compositor Nodes; Hue/Saturation/Value .. index:: Compositor Nodes; Hue/Saturation/Value
.. _bpy.types.CompositorNodeHueSat: .. _bpy.types.CompositorNodeHueSat:
.. Editor's Note: This page gets copied into: .. Editor's Note: This page gets copied into:
.. - :doc:`</render/cycles/nodes/types/color/hue_saturation>` .. - :doc:`</render/shader_nodes/color/hue_saturation>`
.. - :doc:`</editors/texture_node/types/color/hue_saturation>`
.. --- copy below this line --- .. --- copy below this line ---
@ -20,32 +21,23 @@ Inputs
====== ======
Factor Factor
Controls the amount of influence the node exerts on the output image. The amount of influence the node exerts on the image.
Image Image/Color
Standard color input. Standard color input.
Properties
==========
The transformations are relative shifts.
In the shader and texture context the following properties are available as input sockets.
Hue Hue
Specifies the hue rotation of the image. 360° are mapped to (0 to 1). The hue rotation offset, from 0 (-180°) to 1 (+180°). Note that
The hue shifts of 0 (-180°) and 1 (+180°) have the same result. 0 and 1 have the same result.
Saturation Saturation
A saturation of 0 removes hues from the image, resulting in a grayscale image. A value of 0 removes color from the image, making it black-and-white.
A shift greater than 1.0 increases saturation. A value greater than 1.0 increases saturation.
Value Value
Value is the overall brightness of the image. The value shift. 0 makes the color black, 1 keeps it the same, and higher
De/Increasing values shift an image darker/lighter. values make it brighter.
Outputs Outputs
======= =======
Image Image/Color
Standard color output. Standard color output.
@ -54,25 +46,14 @@ Hue/Saturation Tips
Some things to keep in mind that might help you use this node better: Some things to keep in mind that might help you use this node better:
Hues are vice versa Hues are laid out on a circle
A blue image, with a Hue setting at either end of the spectrum (0 or 1), If you apply a Hue offset of 1 (+180°) to a blue image, you get the diametrically opposite
is output as yellow (recall that white, minus blue, equals yellow). color, which is yellow. If you apply a Hue offset of 1 to that yellow image, you get blue again.
A yellow image, with a Hue setting at 0 or 1, is blue. Grayscale images have no hue
Hue and Saturation work together. Trying to change the Hue or Saturation of a grayscale image has no effect. You can only brighten
So, a Hue of 0.5 keeps the blues the same shade of blue, or darken it by adjusting the Value. To add color, use the Mix node instead.
but *Saturation* can deepen or lighten the intensity of that color.
Gray & White are neutral hues
A gray image, where the RGB values are equal, has no hue. Therefore,
this node can only affect it with *Value*. This applies to all shades of gray,
from black to white; wherever the values are equal.
Changing the effect over time Changing the effect over time
The Hue and Saturation values can be animated with a *Time Node* or by animating the property. The different values can be animated using a *Time Curve* node or by setting keyframes.
.. note:: Tinge
This HSV node simply shifts hues that are already there.
To colorize a gray image, or to add a tint to an image,
use a Mix node to add in a static color from an RGB input node with your image.
HSV Example HSV Example

View File

@ -1,7 +1,10 @@
.. index:: Compositor Nodes; RGB Curves .. index:: Compositor Nodes; RGB Curves
.. _bpy.types.CompositorNodeCurveRGB: .. _bpy.types.CompositorNodeCurveRGB:
.. Editor's Note: This page gets copied into :doc:`</render/cycles/nodes/types/color/rgb_curves>` .. Editor's Note: This page gets copied into:
.. - :doc:`</render/shader_nodes/color/rgb_curves>`
.. - :doc:`</editors/texture_node/types/color/rgb_curves>`
.. - :doc:`</modeling/geometry_nodes/utilities/color/rgb_curves>`
.. --- copy below this line --- .. --- copy below this line ---
@ -13,21 +16,20 @@ RGB Curves Node
:align: right :align: right
:alt: RGB Curves Node. :alt: RGB Curves Node.
The *RGB Curves Node* allows color corrections for each color channel The *RGB Curves Node* performs level adjustments on each color channel.
and levels adjustments in the compositing context.
Inputs Inputs
====== ======
Factor Factor
Controls the amount of influence the node exerts on the output image. Controls the amount of influence the node exerts on the image.
Image Image/Color
Standard color input. Standard color input.
Black Level :guilabel:`Compositor Only` Black Level :guilabel:`Compositor Only`
Defines the input color that is (linear) mapped to black. Defines the input color that should be mapped to black.
White Level :guilabel:`Compositor Only` White Level :guilabel:`Compositor Only`
Defines the input color that is (linear) mapped to white. Defines the input color that should be mapped to white.
.. container:: lead .. container:: lead
@ -35,29 +37,33 @@ White Level :guilabel:`Compositor Only`
.. tip:: .. tip::
To define the levels, use the :ref:`eyedropper <ui-eyedropper>` to select a color sample of a displayed image. To define the black and white levels, use the :ref:`eyedropper <ui-eyedropper>` to select a color sample of a displayed image.
Properties Properties
========== ==========
Tone :guilabel:`Compositor Only` Tone :guilabel:`Compositor Only`
:Standard: TODO 2.8 :Standard: The Combined curve is applied to each channel individually, which may result in a change of hue.
:Film Like: TODO 2.8 :Filmlike: Keeps the hue constant.
Channel Channel
Clicking on one of the channels displays the curve for each. The curve to show.
:C: Combined
:R: Red
:G: Green
:B: Blue
C (Combined RGB), R (Red), G (Green), B (Blue)
Curve Curve
A Bézier curve that varies the input levels (X axis) to produce an output level (Y axis). A Bézier curve that maps each input level (X axis) to an output level (Y axis).
For the curve controls see: :ref:`Curve widget <ui-curve-widget>`. For the curve controls, see :ref:`Curve widget <ui-curve-widget>`.
Outputs Outputs
======= =======
Image Image/Color
Standard color output. Standard color output.
@ -83,8 +89,8 @@ Color Correction using Curves
In this example, the image has too much red in it, In this example, the image has too much red in it,
so we run it through an *RGB Curves* node and reduce the Red channel. so we run it through an *RGB Curves* node and reduce the Red channel.
Also, read on for examples of the Darken and Contrast Enhancement curves, The documentation for the :doc:`/compositing/types/color/mix/mix_color` has an additional
:doc:`here </compositing/types/color/mix/mix_color>`. example about fixing overexposure.
Color Correction using Black/White Levels Color Correction using Black/White Levels

View File

@ -1,9 +1,9 @@
.. index:: Compositor Nodes; Color Ramp .. index:: Compositor Nodes; Color Ramp
.. _bpy.types.CompositorNodeValToRGB: .. _bpy.types.CompositorNodeValToRGB:
.. Editors Note: This page gets copied into: .. Editors Note: This page gets copied into:
.. - :doc:`/render/cycles/nodes/types/converter/color_ramp` .. - :doc:`/render/shader_nodes/converter/color_ramp`
.. - :doc:`/modeling/modifiers/nodes/color/color_ramp` .. - :doc:`/modeling/geometry_nodes/utilities/color/color_ramp`
.. - :doc`/compositing/types/converter/color_ramp` .. - :doc:`/editors/texture_node/types/converter`
.. --- copy below this line --- .. --- copy below this line ---
*************** ***************
@ -21,20 +21,20 @@ Inputs
====== ======
Factor Factor
The Factor input is used as an index for the color ramp. The value to map. 0.0 results in the leftmost color, while 1.0 results in the rightmost.
Properties Properties
========== ==========
Color Ramp Color Ramp
For controls see :ref:`ui-color-ramp-widget`. See :ref:`ui-color-ramp-widget`.
Outputs Outputs
======= =======
Image Image/Color
Standard color output. Standard color output.
Alpha Alpha
Standard alpha output. Standard alpha output.
@ -46,40 +46,32 @@ Examples
Creating an Alpha Mask Creating an Alpha Mask
---------------------- ----------------------
An often overlooked use case of the Color Ramp is to create an alpha mask, An often overlooked use case of the Color Ramp is to turn a black-and-white image
or a mask that is overlaid on top of another image. into a colored image with transparency.
Such a mask allows you to select parts of the background to be shown through.
.. figure:: /images/compositing_types_converter_color-ramp_create-alpha-mask.png .. figure:: /images/compositing_types_converter_color-ramp_create-alpha-mask.png
:width: 600px :width: 600px
Using the Color Ramp node to create an alpha mask. In the example above, a black-and-white swirl image, which is lacking an alpha channel,
In the map above, a black-and-white swirl image, which is lacking an alpha channel,
is fed into the Color Ramp node as a *Factor*. is fed into the Color Ramp node as a *Factor*.
The Color Ramp node is set to a purely transparent color on the left end of the gradient, The Color Ramp node is set to a purely transparent color on the left end of the gradient,
and a fully red color on the right. As you can see in the Viewer node, and a fully red color on the right. As you can see in the Viewer node,
the Color Ramp node puts out a mask that is fully transparent where the image is black. the Color Ramp node outputs an image that is transparent where the input is black,
Black is zero, so Color Ramp outputs the color at the left end of the gradient, and opaque where the input is white.
which is set to transparent.
The Color Ramp image is fully red and opaque where the image is white (which is 1).
You can verify that the output image mask is indeed transparent
by overlaying it on top of another image.
Colorizing an Image Colorizing an Image
------------------- -------------------
In this example multiple colors are added to the color gradient In this example, multiple colors are added to the color gradient,
converting a black-and-white image into a flaming swirl. converting a black-and-white image into a flaming swirl.
.. figure:: /images/compositing_types_converter_color-ramp_colorizing-image.png .. figure:: /images/compositing_types_converter_color-ramp_colorizing-image.png
:width: 600px :width: 600px
The shades of gray in the input image are mapped to three colors: The shades of gray in the input image are mapped to three colors:
blue, yellow, and red, all fully opaque (alpha of 1). Where the image is black, blue, yellow, and red, all fully opaque. Where the image is black,
Color Ramp substitutes blue (the first color stop). Where it is some shade of gray, the Color Ramp substitutes blue (the first color stop). Where it is some shade of gray,
Color Ramp outputs a corresponding color from the gradient (bluish, yellow, to reddish). the Color Ramp outputs a corresponding color from the gradient (bluish, yellow, to reddish).
Where the image is fully white, the Color Ramp outputs red. Where the image is fully white, the Color Ramp outputs red.

View File

@ -1,7 +1,8 @@
.. index:: Compositor Nodes; Invert Color .. index:: Compositor Nodes; Invert Color
.. _bpy.types.CompositorNodeInvert: .. _bpy.types.CompositorNodeInvert:
.. Editor's Note: This page gets copied into: .. Editor's Note: This page gets copied into:
.. - :doc:`</render/cycles/nodes/types/color/invert>` .. - :doc:`</render/shader_nodes/color/invert_color>`
.. - :doc:`</editors/texture_node/types/color/invert_color>`
.. --- copy below this line --- .. --- copy below this line ---
@ -13,14 +14,14 @@ Invert Color Node
:align: right :align: right
:alt: Invert Color Node. :alt: Invert Color Node.
The *Invert Color Node* inverts the colors in the input image, producing a negative. Inverts the colors in the input image, producing a negative.
Inputs Inputs
====== ======
Factor Factor
Controls the amount of influence the node exerts on the output image. The amount of influence the node exerts on the image.
Color Color
Standard color input. Standard color input.
@ -28,12 +29,12 @@ Color
Properties Properties
========== ==========
In the compositing context this node has the following properties. In the compositing context, this node has the following properties:
RGB RGB
De/activation of the color channel inversion. Invert the color channels.
Alpha Alpha
De/activation of the alpha channel inversion. Invert the alpha channel.
Outputs Outputs

View File

@ -3,8 +3,7 @@
.. Editor's Note: This page gets copied into: .. Editor's Note: This page gets copied into:
.. - :doc:`</render/shader_nodes/color/mix>` .. - :doc:`</render/shader_nodes/color/mix>`
.. - :doc:`</modeling/geometry_nodes/utilities/color/mix_rgb>` .. - :doc:`</modeling/geometry_nodes/utilities/color/mix_rgb>`
.. - :doc:`</render/shader_nodes/converter/mix>` .. - :doc:`</editors/texture_node/types/color/mix_rgb>`
.. - :doc:`</modeling/geometry_nodes/utilities/mix>`
.. --- copy below this line --- .. --- copy below this line ---
@ -16,117 +15,123 @@ Mix Node
:align: right :align: right
:alt: Mix Node. :alt: Mix Node.
The *Mix Node* mixes images by working on the individual and corresponding pixels Blends two images together, much like how an image editing program blends two layers.
of the two input images. Called "Mix Color" in the shader, geometry, and texture context.
.. important:: .. important::
As of Blender 3.4 this node has been updated in Shader and Geometry node editors. As of Blender 3.4, this node has been updated in the Shader and Geometry node editors.
Files saved with the new node are not forward compatible. Files saved with the new node are not backward compatible.
Inputs Inputs
====== ======
Factor Factor
Controls the amount of influence the node exerts on the output image. The opacity of the foreground image.
Image Image/A/Color1
The background image. The image size and resolution sets the dimensions of the output image. The background image. Determines the dimensions of the output.
Image Image/B/Color2
The foreground image. The foreground image.
Keep in mind that, unlike image editing programs where the foreground layer is on top,
the foreground slot in Blender is on the bottom.
Properties Properties
========== ==========
Data Type :guilabel:`Shader Editor` :guilabel:`Geometry Node Editor`
The type of data to mix: Float, Vector, or Color.
Factor Mode :guilabel:`Shader Editor` :guilabel:`Geometry Node Editor`
Uniform
The same single Factor is applied to all three Vector coordinates.
Non-Uniform
You can specify a different Factor for each Vector coordinate.
Blending Mode
The :term:`blending mode <Color Blend Modes>` to use.
Mix Mix
The Blend modes can be selected in the select menu. Regular alpha blending. Typically called *Normal* in image editing programs.
See :term:`Color Blend Modes` for details on each blending mode. `Darken <https://docs.krita.org/en/reference_manual/blending_modes/darken.html#bm-darken>`__
For each color component, takes the smallest of the two values being blended.
Add, Subtract, Multiply, Screen, Divide, Difference, Exclusion, `Multiply <https://docs.krita.org/en/reference_manual/blending_modes/arithmetic.html#bm-multiply>`__
Darken, Lighten, Overlay, Color Dodge, Color Burn, Multiplies the colors component by component. Blending with a white pixel
Hue, Saturation, Value, Color, Soft Light, Linear Light (value 1.0) has no effect, while blending with a black one (0.0) always
results in black.
`Color Burn <https://docs.krita.org/en/reference_manual/blending_modes/darken.html#bm-color-burn>`__
Inverts the background color, divides it by the foreground color, and inverts the result.
`Lighten <https://docs.krita.org/en/reference_manual/blending_modes/lighten.html#bm-lighten>`__
For each color component, takes the largest of the two values being blended.
`Screen <https://docs.krita.org/en/reference_manual/blending_modes/lighten.html#bm-screen>`__
Inverts both colors, multiplies them, and inverts the result.
`Color Dodge <https://docs.krita.org/en/reference_manual/blending_modes/lighten.html#bm-color-dodge>`__
Divides the background color by the inverted foreground color.
`Add <https://docs.krita.org/en/reference_manual/blending_modes/arithmetic.html#addition>`__
Adds the two colors together.
`Overlay <https://docs.krita.org/en/reference_manual/blending_modes/mix.html#overlay>`__
Applies Multiply blending if the foreground color's lightness is below 0.5,
or Screen blending if it's above.
`Soft Light <https://docs.krita.org/en/reference_manual/blending_modes/lighten.html#bm-soft-light>`__
Like Overlay, but more subtle.
`Linear Light <https://docs.krita.org/en/reference_manual/blending_modes/lighten.html#bm-linear-light>`__
Applies Linear Burn blending (background + foregound - 1) if the foreground color's lightness
is below 0.5, or Linear Dodge (background + foreground) if it's above.
`Difference <https://docs.krita.org/en/reference_manual/blending_modes/negative.html#bm-difference>`__
For each component, subtracts the lower value from the higher value.
`Exclusion <https://docs.krita.org/en/reference_manual/blending_modes/negative.html#bm-exclusion>`__
Adds the two colors, then subtracts their multiple twice.
`Subtract <https://docs.krita.org/en/reference_manual/blending_modes/arithmetic.html#subtract>`__
Subtracts the foreground color from the background color.
`Divide <https://docs.krita.org/en/reference_manual/blending_modes/arithmetic.html#divide>`__
Divides the background color by the foreground color.
`Hue <https://docs.krita.org/en/reference_manual/blending_modes/hsx.html#bm-hue>`__
Combines the saturation and value of the background color with the hue of the foreground color.
`Saturation <https://docs.krita.org/en/reference_manual/blending_modes/hsx.html#bm-saturation>`__
Combines the hue and value of the background color with the saturation of the foreground color.
`Color <https://docs.krita.org/en/reference_manual/blending_modes/hsx.html#bm-color>`__
Combines the value of the background color with the hue and saturation of the foreground color.
`Value <https://docs.krita.org/en/reference_manual/blending_modes/hsx.html#bm-luminosity>`__
Combines the hue and saturation of the background color with the value of the foreground color.
Use Alpha Use Alpha
If activated, by clicking on the *Color and Alpha* icon, Whether to use the alpha channel of the foreground image during mixing.
the Alpha channel of the second image is used for mixing. The alpha channel of the background image is always used.
When deactivated, the default, the icon background is a light gray. Clamp/Clamp Result
The alpha channel of the base image is always used. Clamp the output value to the [0.0, 1.0] range.
Clamp Clamp Factor :guilabel:`Shader Editor` :guilabel:`Geometry Node Editor`
Limit the output value between 0.0 and 1.0. Clamp the Factor to the [0.0, 1.0] range.
Outputs Outputs
======= =======
Image Image/Result/Color
Standard color output. The result of the mixing operation.
Examples Examples
======== ========
Below are samples of common mix modes and uses, mixing a color or checker with a mask. Below are examples of blending modes, as well as some practical use cases.
.. figure:: /images/compositing_types_color_mix_blend-modes.png .. figure:: /images/compositing_types_color_mix_blend-modes.png
:width: 700px :width: 700px
Some explanation of the mixing methods above might help you use the Mix node effectively: Blending a colored pattern with a flat color (top row) and a circular mask (bottom row).
Add Fixing overexposure
Adding blue to blue keeps it blue, but adding blue to red makes purple. -------------------
White already has a full amount of blue, so it stays white.
Use this to shift a color of an image. Adding a blue tinge makes the image feel colder.
Subtract
Taking Blue away from white leaves Red and Green, which combined make Yellow.
Taking Blue away from Purple leaves Red. Use this to desaturate an image.
Taking away yellow makes an image bluer and more depressing.
Multiply
Black (0.0) times anything leaves black. Anything times White (1.0) is itself.
Use this to mask out garbage, or to colorize a black-and-white image.
Hue
Shows you how much of a color is in an image,
ignoring all colors except what is selected: makes a monochrome picture (style 'Black & Hue').
Mix
Combines the two images, averaging the two.
Lighten
Like bleach makes your whites whiter. Used with a mask to lighten up a little.
Difference
It takes out a color. The color needed to turn Yellow into White is Blue.
Use this to compare two very similar images to see what had been done to one to make it the other;
sort of like a change log for images. You can use this to see a watermark (see `Watermark images`_)
you have placed in an image for theft detection.
Darken
With the colors set here, it's like looking at the world through rose-colored glasses.
.. note:: The Compositing setup below shows how to fix an overexposed render by
darkening it and increasing contrast.
Only add, subtract, multiply and divide are suitable for :term:`Scene Referenced` images.
Contrast Enhancement
--------------------
Here is a small node tree showing the effects of two other common uses for the RGB Curve:
*Darken* and *Contrast Enhancement*.
You can see the effect each curve has independently,
and the combined effect when they are *mixed* equally.
.. figure:: /images/compositing_types_color_mix_contrast-enhancement.png .. figure:: /images/compositing_types_color_mix_contrast-enhancement.png
:width: 700px :width: 700px
Example node setup showing "Darken", "Enhance Contrast" and "Mix" nodes for composition. Example node setup showing two RGB Curves nodes and a Mix node for composition.
As you can hopefully see, our original magic monkey was overexposed by too much light. The top :doc:`/compositing/types/color/adjust/rgb_curves` darkens the image by linearly scaling each
To cure an overexposure, you must both darken the image and enhance the contrast. color value to a smaller one.
In the top RGB curve, *Darken*, only the right side of the curve was lowered; thus, The bottom curve node increases constract by making small values smaller and large values larger.
any X input along the bottom results in a geometrically less Y output.
The *Enhance Contrast* RGB (S-shaped) curve scales the output such that middle values of X change dramatically; Finally, the Mix node blends the two together.
namely, the middle brightness scale is expanded,
and thus, whiter whites and blacker blacks are output. To make this curve,
simply click on the curve and a new control point is added.
Drag the point around to bend the curve as you wish.
The Mix node combines these two effects equally, and Suzanne feels much better.
Watermark Images Watermark Images
@ -135,11 +140,14 @@ Watermark Images
In the old days, a pattern was pressed into the paper mush as it dried, In the old days, a pattern was pressed into the paper mush as it dried,
creating a mark that identified who made the paper and where it came from. creating a mark that identified who made the paper and where it came from.
The mark was barely perceptible except in just the right light. The mark was barely perceptible except in just the right light.
Probably the first form of subliminal advertising. Nowadays, Probably the first form of subliminal advertising.
people watermark their images to identify them as personal intellectual property,
Nowadays, people watermark their images to identify them as personal intellectual property,
for subliminal advertising of the author or hosting service, for subliminal advertising of the author or hosting service,
or simply to track their image's proliferation throughout the web. Blender provides a complete or simply to track their image's proliferation throughout the web.
set of tools for you to both encode your watermark and to tell if an image has your watermark.
Blender provides a complete set of tools for you to both encode your watermark
and to tell if an image has your watermark.
Encoding your Watermark in an Image Encoding your Watermark in an Image
@ -149,48 +157,38 @@ First, construct your own personal watermark.
You can use your name, a word, or a shape or image not easily replicated. You can use your name, a word, or a shape or image not easily replicated.
While neutral gray works best using the encoding method suggested, While neutral gray works best using the encoding method suggested,
you are free to use other colors or patterns. you are free to use other colors or patterns.
It can be a single pixel or a whole gradient; it is up to you. In the example below, It can be a single pixel or a whole gradient; it is up to you.
we are encoding the watermark in a specific location in the image using the *Translate* node;
In the example below, we are encoding the watermark in a specific location
in the image using the *Translate* node;
this helps later because we only have to look at a specific location for the mark. this helps later because we only have to look at a specific location for the mark.
We then use the RGB to BW node to convert the image to numbers We then use the *RGB to BW node* to convert the color image to grayscale numbers,
that the Map Value node can use to make the image subliminal. which we then feed into the *Map Range* node to reduce the mark to one-tenth of
In this case, it reduces the mark to one-tenth of its original intensity. its original intensity.
The Add node adds the corresponding pixels,
The *Add* node (*Mix* node with blending mode *Add*) adds the corresponding pixels,
making the ones containing the mark ever-so-slightly brighter. making the ones containing the mark ever-so-slightly brighter.
.. figure:: /images/compositing_types_color_mix_watermark-encode.png .. figure:: /images/compositing_types_color_mix_watermark-encode.png
:width: 700px :width: 700px
Embedding your mark in an image using a mark and specific position. Embedding a watermark in an image.
Of course, if you *want* people to notice your mark, do not scale it so much, Of course, if you *want* people to notice your mark, do not scale it so much,
or make it a contrasting color. There are also many other ways, or make it a contrasting color. There are also many other ways,
using other mix settings and fancier rigs. Feel free to experiment! using other mix settings and fancier rigs. Feel free to experiment!
.. hint:: Additional uses
You can also use this technique, using settings that result in visible effects,
in title sequences to make the words appear to be cast on the water's surface,
or as a special effect to make words appear on the possessed girl's forearm.
Decoding an Image for your Watermark Decoding an Image for your Watermark
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
When you see an image that you think might be yours, When you see an image that you think might be yours,
use the node tree below to compare it to your stock image (pre-watermarked original). use the node tree below to compare it to your stock image (pre-watermarked original).
In this tree, the Mix node is set to Difference, In this tree, the *Mix* node is set to Difference,
and the Map Value node amplifies any difference. The result is routed to a viewer, and the *Map Value* node amplifies any difference.
and you can see how the original mark clearly stands out. You can see how the original mark clearly stands out.
.. figure:: /images/compositing_types_color_mix_watermark-decode.png .. figure:: /images/compositing_types_color_mix_watermark-decode.png
:width: 700px :width: 700px
Checking an image for your watermark. Checking an image for your watermark.
Various image compression algorithms lose some of the original; the difference shows as noise.
Experiment with different compression settings and marks to see which works best for you by
having the encoding node group in one scene, and the decoding group in another.
Use them while changing Blender's image format settings,
reloading the watermarked image after saving, to get an acceptable result.
In the example above, the mark was clearly visible all the way up to ``JPEG`` compression of 50%.

View File

@ -1,6 +1,8 @@
.. index:: Compositor Nodes; RGB TO BW .. index:: Compositor Nodes; RGB TO BW
.. _bpy.types.CompositorNodeRGBToBW: .. _bpy.types.CompositorNodeRGBToBW:
.. Editor's Note: This page gets copied into :doc:`</render/cycles/nodes/types/converter/rgb_to_bw>` .. Editor's Note: This page gets copied into:
.. - :doc:`</render/shader_nodes/converter/rgb_to_bw>`
.. - :doc:`</editors/texture_node/types/converter/rgb_to_bw>`
.. --- copy below this line --- .. --- copy below this line ---
@ -12,8 +14,12 @@ RGB to BW Node
:align: right :align: right
:alt: RGB to BW Node. :alt: RGB to BW Node.
The *RGB to BW Node* maps an RGB color image to a gray-scale by the luminance. The *RGB to BW Node* makes a color image black-and-white by outputting its luminance.
.. note::
You can directly connect Color sockets to Value sockets in node graphs,
which also converts the image to black-and-white. As such, this node is
not always necessary.
Inputs Inputs
====== ======
@ -32,6 +38,6 @@ Outputs
======= =======
Value Value
Gray-scale value output. Grayscale value output.
.. (TODO add) examples of why this might be useful .. (TODO add) examples of why this might be useful

View File

@ -9,28 +9,30 @@
Group Group
***** *****
:doc:`Group Nodes </interface/controls/nodes/groups>` are a collection of nodes A :doc:`Group Node </interface/controls/nodes/groups>` combines a set of nodes into a single one,
that can be combined into a single node while selectively exposing inputs of the embedded nodes. and selectively exposes inputs and outputs of those nodes.
Group nodes can simplify a node tree by allowing instancing and hiding parts of the tree.
Group nodes can simplify a node tree by hiding away complexity and reusing functionality.
Group Input Group Input
=========== ===========
Adds a group input node, this serves as a convenient way to re-add the input node in case it is accidentally deleted. Exposes the inputs of the node group. You can have multiple of these nodes in your tree to keep it clean,
Note, groups can only have one input, if more than one is added they are duplicates of each other. bringing in each input right where you need it (rather than dragging long links all across your graph).
The input slots can be edited in the *Group* tab of the *Sidebar*.
Group Output Group Output
============ ============
Adds a group output node, this serves as a convenient way to re-add the output node Receives the outputs of the node group. You can have multiple of these nodes in your tree to keep it clean,
in case it is accidentally deleted. Note, groups can only have one output, outputting each result right where it's produced (rather than dragging long links all across your graph).
if more than one is added they are duplicates of each other.
The output slots can be edited in the *Group* tab of the *Sidebar*.
Node Groups Node Groups
=========== ===========
This section lists all the node groups either from the current blend-file or This section lists all the node groups, both those in the current blend-file and those
:doc:`Linked or Appended </files/linked_libraries/link_append>` from another blend-file. :doc:`Linked or Appended </files/linked_libraries/link_append>` from another blend-file.

View File

@ -26,7 +26,7 @@ Properties
Curve Curve
The Y value defined by the curve is the factor output. The Y value defined by the curve is the factor output.
For the curve controls see: :ref:`Curve widget <ui-curve-widget>`. For the curve controls, see :ref:`Curve widget <ui-curve-widget>`.
.. tip:: .. tip::
@ -43,14 +43,13 @@ Outputs
======= =======
Factor Factor
A speed of time factor (from 0.0 to 1.0) relative to the scene's :ref:`Frame Rate <bpy.types.RenderSettings.fps>`. The Y value of the curve at the current frame.
The factor changes according to the defined curve.
.. hint:: Output values .. hint::
The :doc:`Map Value </compositing/types/utilities/map_value>` The :doc:`Map Value </compositing/types/utilities/map_value>`
node can be used to map the output to a more appropriate value. node can be used to map the output to a more appropriate value.
With sometimes curves, it is possible that the Time Curve node With some curves, it is possible that the Time Curve node
may output a number larger than one or less than zero. may output a number larger than one or less than zero.
To be safe, use the Min/Max clamping function of the Map Value node to limit output. To be safe, use the Min/Max clamping function of the Map Value node to limit output.

View File

@ -21,8 +21,8 @@ The *Math Node* performs math operations.
Inputs Inputs
====== ======
The inputs of the node are dynamic. Some inputs are only available in certain operations. The inputs of the node are dynamic. Some inputs are only available for certain operations.
For instance, the *Addend* input is only available in the *Multiply Add* operator. For instance, the *Addend* input is only available for the *Multiply Add* operator.
Value Value
Input Value. Trigonometric functions read this value as radians. Input Value. Trigonometric functions read this value as radians.
@ -110,7 +110,7 @@ Operation
Outputs a value between *Min* and *Max* based on the absolute difference between Outputs a value between *Min* and *Max* based on the absolute difference between
the input value and the nearest integer multiple of *Max* less than the value. the input value and the nearest integer multiple of *Max* less than the value.
:Snap: Rounds the input value down to the nearest integer multiple of *Increment*. :Snap: Rounds the input value down to the nearest integer multiple of *Increment*.
:Ping-pong: The output value is moved between 0.0 and the *Scale* based on the input value. :Ping-pong: Bounces back and forth between 0.0 and the *Scale* as the input value increases.
Trigonometric Trigonometric
:Sine: :Sine:
@ -160,21 +160,19 @@ Manual Z-Mask
Minimum and maximum function example. Minimum and maximum function example.
This example has one scene input by the top *Render Layers* node, The top *Render Layers* node has a cube that is about 10 units from the camera.
which has a cube that is about 10 units from the camera. The bottom *Render Layers* node has a plane that covers the left half of the view
The bottom *Render Layers* node inputs a scene and is 7 units from the camera.
with a plane that covers the left half of the view and is 7 units from the camera. Both are fed through their respective *Map Value* nodes to multiply the depth value by
Both are fed through their respective *Map Value* nodes to divide the Z-buffer by 20 0.05 and clamp it to [0.0, 1.0], bringing it into a suitable range for displaying it as a color.
(multiply by 0.05, as shown in the Size field)
and clamped to be a min/max of 0.0/1.0 respectively.
For the minimum function, The Minimum node selects the smallest of the two depth values at each pixel. In the left half,
the node selects those Z values where the corresponding pixel is closer to the camera; it chooses the plane (because it's closer than the cube), and in the right half,
so it chooses the Z values for the plane and part of the cube. it chooses the cube (because it's closer than the background, which is infinitely far away).
The background has an infinite Z value, so it is clamped to 1.0 (shown as white).
In the maximum example, the Z values of the cube are greater than the plane, The Maximum node selects the largest of the two depth values at each pixel. In the left half,
so they are chosen for the left side, but the plane *Render Layers* Z are infinite it chooses the cube (because it's farther away than the plane), and in the right half,
(mapped to 1.0) for the right side, so they are chosen. it chooses the background (because it's farther away than the cube).
Using Sine Function to Pulsate Using Sine Function to Pulsate
@ -189,9 +187,9 @@ At frame 25, the output value is 0.25.
That value is multiplied by 2 × pi (6.28) and converted to 1.0 by the Sine function, That value is multiplied by 2 × pi (6.28) and converted to 1.0 by the Sine function,
since :math:`sin(2 × pi/ 4) = sin(pi/ 2) = +1.0`. since :math:`sin(2 × pi/ 4) = sin(pi/ 2) = +1.0`.
Since the sine function can put out values between (-1.0 to 1.0), Since the sine function can output values between (-1.0 to 1.0),
the *Map Value* node scales that to 0.0 to 1.0 by taking the input (-1 to 1), adding 1 the *Map Value* node scales that to 0.0 to 1.0 by taking the input (-1 to 1), adding 1
(making 0 to 2), and multiplying the result by one-half (thus scaling the output between 0 to 1). (making 0 to 2), and multiplying the result by 0.5 (thus scaling the output between 0 to 1).
The default *Color Ramp* converts those values to a gray-scale. The default *Color Ramp* converts those values to a gray-scale.
Thus, medium gray corresponds to a 0.0 output by the sine, black to -1.0, Thus, medium gray corresponds to a 0.0 output by the sine, black to -1.0,
and white to 1.0. As you can see, :math:`sin(pi/ 2) = 1.0`. Like having your own visual color calculator! and white to 1.0. As you can see, :math:`sin(pi/ 2) = 1.0`. Like having your own visual color calculator!
@ -241,5 +239,5 @@ rounds the value to the nearest whole number (produces 0, 1, 2, 3, 4, 5),
and then divides the image pixel color by five (0.0, 0.2, 0.4, 0.6, 0.8, 1.0). and then divides the image pixel color by five (0.0, 0.2, 0.4, 0.6, 0.8, 1.0).
In the case of a color image, In the case of a color image,
you need to split it into separate RGB channels using *Separate/Combine RGBA* nodes you need to split it into separate RGB channels using *Separate/Combine Color* nodes
and perform this operation on each channel independently. and perform this operation on each channel independently.

View File

@ -5,68 +5,61 @@
Introduction Introduction
************ ************
The Texture Node Editor allows creating custom textures by combining colors,
procedural patterns, and images in various ways. This is a step up from the
:doc:`built-in textures </render/materials/legacy_textures/introduction>`,
where you can select a type from a list and not much more.
.. note:: .. note::
The texture node system is legacy and expected to be replaced by a new system. Textures -- both built-in ones and node-based ones -- are a legacy feature.
Due to this, the manual is not up to date with the latest version of Blender. For their original main purpose, which was of course texturing objects,
they have been replaced by :doc:`Materials </render/materials/introduction>`
which are set up in the :doc:`/editors/shader_editor`.
Blender includes a node-based texture generation system, which enables textures Today, the use of Textures is limited to:
creation by combining colors, patterns and other textures in the same way as
shader writing with :doc:`material nodes </render/shader_nodes/index>`. * :doc:`Brushes </sculpt_paint/brush/texture>`.
* The :doc:`/modeling/modifiers/deform/displace`.
* Influencing size, density etc. of :doc:`particle systems </physics/particles/texture_influence>`.
* Influencing emission locations of :ref:`fire/smoke simulations <bpy.types.FluidFlowSettings.use_texture>`.
* :doc:`Compositing </compositing/types/input/texture>`.
In addition, the Displace modifier and fire/smoke simulations don't support
node-based textures, instead only working with the built-in ones.
.. figure:: /images/editors_texture-node_introduction_types-combined.png .. figure:: /images/editors_texture-node_introduction_types-combined.png
:width: 600px :width: 600px
Combined textures based on nodes. Combined textures based on nodes.
These textures can be used for brushes, compositing and inside particle systems.
Using Texture Nodes Using Texture Nodes
=================== ===================
To use texture nodes with the current texture, open the Texture Node editor. The default Blender layout has no workspace containing the Texture Node Editor.
You need to manually open it in an :doc:`area </interface/window_system/areas>` of choice.
A new texture can be created by either clicking the *New* button in the Texture Node editor, Once the editor is open, you first need to set the empty *Texture Type* selector to *Brush*,
or the *New* button in the Texture panel. Once a texture is selected, after which you can use the :doc:`/interface/controls/templates/data_block`
it can be toggled to a function as a regular texture or a node texture by to start creating textures. Note that you need to enable *Use Nodes* in the header
clicking the *Use Nodes* option in the Texture Node editor. before you can add nodes.
The default node setup will appear: a red-and-white checkerboard node
connected to an *Output* named "Default". For texture nodes,
multiple Outputs can exist in the node setup.
Compare to other types of node contexts, which are limited to one active Output node.
See the next section for details.
For instructions on how to add, remove and manipulate the nodes in the tree,
see the :doc:`nodes </interface/controls/nodes/index>` reference.
Using Multiple Outputs
======================
Each texture defined with texture nodes can have several outputs,
which can then be used for different things. For example,
a texture that defines both a diffuse (color) map and a normal map.
This can be done by:
#. Create two texture slots in the texture list, and set them to the same texture data-block.
#. Add two *Output* nodes to the node tree,
and type new names into their *Name* text fields: e.g. "Diffuse" for one and "Normal" for the other.
#. Underneath the texture list view in the Texture panel, a selector with the names of the outputs is shown.
For each entry in the Texture list, select the desired output by changing the menu entry
(e.g. set one to *Diffuse* and the other to *Normal*).
These named outputs could be used, when the material is defined with material nodes.
In this case, Texture Channels are probably not used. Instead, insert
the texture nodes into the material node tree by using :menuselection:`Add --> Input --> Texture`.
Inside the just added texture node the output to use can then be selected (e.g. *Diffuse* or *Normal*).
Header Header
====== ======
Pin (pin icon) See :doc:`Nodes </interface/controls/nodes/introduction>` for the header items common to
The pin button will keep the current texture selection fixed. all node editors.
When a texture is pinned, it will remain visible in the Texture Editor
even when another object or simulation is selected elsewhere. Texture Type
World
Deprecated -- the scene's :doc:`/render/lights/world` is now defined using
a Material rather than a Texture.
Brush
Show brush Textures in the data-block menu. Because the other two types are deprecated,
this effectively shows all Textures.
Line Style
Deprecated -- :doc:`Line Styles </render/freestyle/view_layer/line_style/introduction>`
for the Freestyle renderer are now defined using Materials rather than Textures.

View File

@ -25,9 +25,5 @@ Outputs
======= =======
Coordinates Coordinates
The Coordinates node outputs the geometry local coordinates, The Coordinates node outputs the local geometry coordinates,
relative to its bounding box as RGB colors: relative to the bounding box.
- Red channel corresponds to X value.
- Green channel corresponds to Y value.
- Blue channel corresponds to Z value.

View File

@ -8,7 +8,7 @@ Texture Node
:align: right :align: right
:alt: Texture node. :alt: Texture node.
The Texture node can be used to load another node-based or non-node-based texture. The Texture node loads another node-based or non-node-based texture.
Inputs Inputs
@ -26,8 +26,7 @@ Properties
========== ==========
Texture Texture
The texture could be selected from a list of textures available in the current blend-file or link in textures. The texture to load -- either from the current blend-file, or from a linked one.
The textures themselves could not be edited in this node, but in the Texture panel.
Outputs Outputs

View File

@ -3,7 +3,7 @@
Output Nodes Output Nodes
################ ################
These nodes serve as outputs for node textures. These nodes serve as outputs for node-based textures.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1

View File

@ -8,10 +8,7 @@ Output Node
:align: right :align: right
:alt: Output node. :alt: Output node.
This node contains the result of the node texture. This node receives the result of the node-based texture.
Multiple output nodes can exist in a node texture, however, only one of them is active.
The active one is set in the Texture Panel in the *Output* selector.
Inputs Inputs
@ -24,8 +21,9 @@ Color
Properties Properties
========== ==========
File Path Output Name
Output ID. The name of the output. (Originally, it was possible for textures to
have multiple outputs with different names.)
Outputs Outputs

View File

@ -8,7 +8,7 @@ Bricks Node
:align: right :align: right
:alt: Bricks node. :alt: Bricks node.
The Bricks node creates a brick like pattern. The Bricks node creates a brick-like pattern.
Inputs Inputs

View File

@ -15,7 +15,7 @@ Inputs
====== ======
Color 1, Color 2 Color 1, Color 2
Image inputs setting the color of the squares. The colors of the squares.
Size Size
The scale of the checker pattern. The scale of the checker pattern.

View File

@ -11,10 +11,11 @@ Snapping
The snapping options can be found on the rightmost side The snapping options can be found on the rightmost side
of the node editor's header. of the node editor's header.
Snap Snap :kbd:`Shift-Tab`
Toggle snapping on or off. Toggle snapping on or off. You can also do this temporarily by holding :kbd:`Ctrl` after starting to drag
one or more nodes around.
Snap Node Element Snap Node Element :kbd:`Shift-Ctrl-Tab`
What to snap the selected nodes to: What to snap the selected nodes to:
:Grid: Snap to the grid in the background. :Grid: Snap to the grid in the background.

View File

@ -58,13 +58,14 @@ Use Nodes
Tells the render engine to use the node tree when computing the material color or rendering the final image, Tells the render engine to use the node tree when computing the material color or rendering the final image,
or not. If not, the tree is ignored. For materials, this is mostly a legacy option, because in the past or not. If not, the tree is ignored. For materials, this is mostly a legacy option, because in the past
materials could not be created with node trees. materials could not be created with node trees.
Use Pinned Pin
When enabled, the editor will retain the material or texture, even when the user selects a different object. When enabled, the editor will retain the material or texture, even when the user selects a different object.
A node tree can then be edited independent of the object selection in the 3D Viewport. A node tree can then be edited independent of the object selection in the 3D Viewport.
Parent Node Tree Parent Node Tree
Leaves the current :doc:`node group </interface/controls/nodes/groups>` and returns to the parent node group/tree. Leaves the current :doc:`node group </interface/controls/nodes/groups>` and returns to the parent node group/tree.
Snapping Snapping
Change options for snapping node positions to achieve a cleaner node tree layout. Change options for snapping node positions to achieve a cleaner node tree layout.
See :doc:`/interface/controls/nodes/arranging`.
.. _bpy.types.SpaceNodeOverlay.show_overlays: .. _bpy.types.SpaceNodeOverlay.show_overlays:

View File

@ -10,28 +10,28 @@ Combine Color Node
:align: right :align: right
:alt: Combine Color Node. :alt: Combine Color Node.
The *Combine Color Node* combines an image from its composite color channels. Combines four grayscale channels into one color image,
The node can combine multiple :term:`Color Models <Color Model>` depending on the Mode property. based on a particular :term:`Color Model`.
Inputs Inputs
====== ======
The outputs of this node depends on the Mode property (see below). The inputs of this node depend on the Mode property (see below).
Alpha Alpha
The color channel that is responsible for the image's transparency. The opacity of the output color.
Properties Properties
========== ==========
Mode Mode
The color model to output. The color model to use.
:RGB: Combine the three inputs: Red, Green, and Blue color channels into a single color. :RGB: Red, Green, Blue.
:HSV: Combine the three inputs: Hue, Saturation, and Value color channels into a single color. :HSV: Hue, Saturation, Value.
:HSL: Combine the three inputs: Hue, Saturation, and Lightness color channels into a single color. :HSL: Hue, Saturation, Lightness.
Output Output

View File

@ -10,8 +10,8 @@ Separate Color Node
:align: right :align: right
:alt: Separate Color Node. :alt: Separate Color Node.
The *Separate Color Node* splits an image into its composite color channels. Splits an image into its channels,
The node can output multiple :term:`Color Models <Color Model>` depending on the Mode property. based on a particular :term:`Color Model`.
Inputs Inputs
@ -27,15 +27,15 @@ Properties
Mode Mode
The color model to output. The color model to output.
:RGB: Split the input colors into it's three outputs: Red, Green, and Blue color channels. :RGB: Red, Green, Blue.
:HSV: Split the input colors into it's three outputs: Hue, Saturation, and Value color channels. :HSV: Hue, Saturation, Value.
:HSL: Split the input colors into it's three outputs: Hue, Saturation, and Lightness color channels. :HSL: Hue, Saturation, Lightness.
Outputs Outputs
======= =======
The outputs of this node depends on the Mode property (see above). The outputs of this node depend on the Mode property (see above).
Alpha Alpha
The color channel that is responsible for the image's transparency. The opacity value.