ShaderTexOP¶
The TextureOP node applies either a binary operator to two input textures, or a unary operator to the left input texture

Texture Math and Compositing
ShaderTexOP performs pixel-by-pixel mathematical operations between two textures. Use it for compositing, masking, blending, color manipulation, and creating complex texture effects by combining simpler inputs.
Reference¶
The following properties can be configured for this node:
| Property | Type | Description |
|---|---|---|
mode |
- | operation mode (see details down below) |
in1scale |
- | scale scalar for texture left |
in2scale |
- | scale scalar for texture right |
in1offset |
- | offset scalar for texture left |
in2offset |
- | offset scalar for texture right |
outScale |
- | output offset |
enable |
- | use node for a texture effect render pass |
| Inlet | Type | Description |
|---|---|---|
| properties | properties | properties | use message [set <propertyPath> <value(s)>] (without node/<nodeName> at the beginning) to set internal properties |
| texture | texture | texture one (left operand) |
| texture | texture | texture two (right operand) |
| Outlet | Type | Description |
|---|---|---|
| result | texture | result of 1 op 2 (left op right) |
Operation Modes¶
Binary Operators (Two Textures)
These operations combine texture 1 (left) and texture 2 (right):
| Mode | Operation | Description |
|---|---|---|
| mult | Multiplication | tex1 × tex2 — Darkens, useful for masking |
| div | Division | tex1 ÷ tex2 — Brightens based on inverse |
| add | Addition | tex1 + tex2 — Brightens, combines light |
| sub | Subtraction | tex1 - tex2 — Difference between textures |
| mod | Modulo | tex1 % tex2 — Remainder operation |
| min | Minimum | min(tex1, tex2) — Darker of the two |
| max | Maximum | max(tex1, tex2) — Lighter of the two |
| avg | Average | (tex1 + tex2) / 2 — Blend 50/50 |
| absdiff | Absolute Difference | |tex1 - tex2| — Highlight differences |
Unary Operators (Single Texture)
These operations work on texture 1 (left) only:
| Mode | Operation | Description |
|---|---|---|
| abs | Absolute Value | |tex1| — Remove negative values |
| pass | Pass-through | Output texture 1 unchanged (with scale/offset) |
Input Scaling and Offset¶
Adjusting Input Values
Before the operation is applied, each input can be scaled and offset:
| Property | Effect |
|---|---|
| in1scale | Multiply texture 1 values (1.0 = unchanged) |
| in2scale | Multiply texture 2 values (1.0 = unchanged) |
| in1offset | Add to texture 1 values (0.0 = unchanged) |
| in2offset | Add to texture 2 values (0.0 = unchanged) |
| outScale | Scale the final output |
Use these to normalize inputs or create specific blending ratios.
Common Use Cases¶
Masking with Multiply
Apply a mask to a texture:
- Texture 1: Your content texture
- Texture 2: Mask from DrawMask (white = visible, black = hidden)
- Mode: mult
Result: Content is visible where mask is white, hidden where mask is black.
Combining Textures with Add
Layer multiple light sources or effects:
- Texture 1: First light/effect
- Texture 2: Second light/effect
- Mode: add
Result: Additive blending (good for light effects, glow).
Finding Differences
Highlight what changed between two textures:
- Texture 1: Reference texture
- Texture 2: Comparison texture
- Mode: absdiff
Result: White where textures differ, black where they match.
Render Pass Mode¶
Enable for Texture Effect Pass
Set enable to use ShaderTexOP as part of a texture effect render pass. When enabled, the node processes textures during the render pipeline rather than on-demand.
-
Quick Start
Get started with ShaderTexOP in minutes
-
Complementing ShaderTexOP
-
Tutorials
-
Community
Need help or want to suggest improvements?
Last updated: 2025-12-01 | Edit this page on GitHub