Skip to content

Documentation / scene / ChannelSDFMaskNode

Class: ChannelSDFMaskNode ​

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1399

Channel SDF mask evaluation node

Remarks ​

Samples a channel-packed SDF texture and reconstructs a feathered mask by decoding the stored value back into signed distance space.

Inputs:

  • texture: source SDF texture
  • coord: UV coordinates, defaults to vertex UV when disconnected
  • sizeOffset: positive expands, negative shrinks, in SDF distance units
  • feather: transition width around the boundary, in SDF distance units
  • spread: encode range used when baking the SDF texture
  • edgeCurve: edge response curve, 1 keeps linear behavior, >1 softens, <1 hardens
  • channelMask: channel selector mask, defaults to R

Output:

  • Result: scalar mask in [0, 1]

Extends ​

Constructors ​

Constructor ​

new ChannelSDFMaskNode(): ChannelSDFMaskNode

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1409

Returns ​

ChannelSDFMaskNode

Overrides ​

BaseGraphNode.constructor

Properties ​

textureId ​

textureId: string

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1402


sRGB ​

sRGB: boolean

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1403


addressU ​

addressU: TextureAddressMode

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1404


addressV ​

addressV: TextureAddressMode

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1405


filterMin ​

filterMin: TextureFilterMode

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1406


filterMag ​

filterMag: TextureFilterMode

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1407


filterMip ​

filterMip: TextureFilterMode

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1408


_inputs ​

protected _inputs: GraphNodeInput[]

Defined in: libs/scene/src/utility/blueprint/node.ts:336

Internal storage for input slot definitions

Inherited from ​

BaseGraphNode._inputs


_outputs ​

protected _outputs: GraphNodeOutput[]

Defined in: libs/scene/src/utility/blueprint/node.ts:338

Internal storage for output slot definitions

Inherited from ​

BaseGraphNode._outputs


_error ​

protected _error: string

Defined in: libs/scene/src/utility/blueprint/node.ts:340

Internal storage for error message

Inherited from ​

BaseGraphNode._error

Accessors ​

isUniform ​

Get Signature ​

get isUniform(): boolean

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1476

Whether this node contains uniform value/texture

Returns ​

boolean

Whether this node has uniform value

Overrides ​

BaseGraphNode.isUniform


paramName ​

Get Signature ​

get paramName(): string

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1479

Uniform parameter name

Returns ​

string

Set Signature ​

set paramName(val): void

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1482

Uniform parameter name

Parameters ​
val ​

string

Returns ​

void

Uniform parameter name

Overrides ​

BaseGraphNode.paramName


expose ​

Get Signature ​

get expose(): boolean

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1488

Returns ​

boolean

Set Signature ​

set expose(val): void

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1491

Parameters ​
val ​

boolean

Returns ​

void


sizeOffset ​

Get Signature ​

get sizeOffset(): number

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1497

Returns ​

number

Set Signature ​

set sizeOffset(val): void

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1500

Parameters ​
val ​

number

Returns ​

void


feather ​

Get Signature ​

get feather(): number

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1506

Returns ​

number

Set Signature ​

set feather(val): void

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1509

Parameters ​
val ​

number

Returns ​

void


spread ​

Get Signature ​

get spread(): number

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1515

Returns ​

number

Set Signature ​

set spread(val): void

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1518

Parameters ​
val ​

number

Returns ​

void


edgeCurve ​

Get Signature ​

get edgeCurve(): number

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1524

Returns ​

number

Set Signature ​

set edgeCurve(val): void

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1527

Parameters ​
val ​

number

Returns ​

void


channelMask ​

Get Signature ​

get channelMask(): number[]

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1533

Returns ​

number[]

Set Signature ​

set channelMask(val): void

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1536

Parameters ​
val ​

number[]

Returns ​

void


inputs ​

Get Signature ​

get inputs(): GraphNodeInput[]

Defined in: libs/scene/src/utility/blueprint/node.ts:380

Gets the input slot definitions array

Returns ​

GraphNodeInput[]

Array of input slot definitions

Inherited from ​

BaseGraphNode.inputs


outputs ​

Get Signature ​

get outputs(): GraphNodeOutput[]

Defined in: libs/scene/src/utility/blueprint/node.ts:384

Gets the output slot definitions array

Returns ​

GraphNodeOutput[]

Array of output slot definitions

Inherited from ​

BaseGraphNode.outputs


error ​

Get Signature ​

get error(): string

Defined in: libs/scene/src/utility/blueprint/node.ts:388

Gets the current error message

Returns ​

string

Set Signature ​

set error(str): void

Defined in: libs/scene/src/utility/blueprint/node.ts:391

Current error message, empty string if no error

Parameters ​
str ​

string

Returns ​

void

Current error message, empty string if no error

Inherited from ​

BaseGraphNode.error

Methods ​

on() ​

on<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:630

IEventTarget.on

Type Parameters ​

K ​

K extends "changed"

Parameters ​

type ​

K

listener ​

EventListener<{ changed: []; }, K>

context? ​

unknown

Returns ​

void

Inherited from ​

BaseGraphNode.on


once() ​

once<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:634

IEventTarget.once

Type Parameters ​

K ​

K extends "changed"

Parameters ​

type ​

K

listener ​

EventListener<{ changed: []; }, K>

context? ​

unknown

Returns ​

void

Inherited from ​

BaseGraphNode.once


off() ​

off<K>(type, listener?, context?): void

Defined in: libs/base/dist/index.d.ts:638

IEventTarget.off

Type Parameters ​

K ​

K extends "changed"

Parameters ​

type ​

K

listener? ​

EventListener<{ changed: []; }>

context? ​

unknown

Returns ​

void

Inherited from ​

BaseGraphNode.off


dispatchEvent() ​

dispatchEvent<K>(type, ...args): void

Defined in: libs/base/dist/index.d.ts:642

IEventTarget.dispatchEvent

Type Parameters ​

K ​

K extends "changed"

Parameters ​

type ​

K

args ​

...object[K]

Returns ​

void

Inherited from ​

BaseGraphNode.dispatchEvent


getSerializationCls() ​

static getSerializationCls(): SerializableClass

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1544

Returns ​

SerializableClass


toString() ​

toString(): string

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1676

Generates a string representation of the node

Returns ​

string

Empty string by default

Remarks ​

Subclasses should override this to return valid shader code or a meaningful description of the node's operation.

Overrides ​

BaseGraphNode.toString


validate() ​

protected validate(): string

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1679

Validates the node's current state

Returns ​

string

Error message string, or empty string if valid

Remarks ​

Default implementation checks if all required inputs are connected. Subclasses can override to add custom validation logic like:

  • Type compatibility checking
  • Value range validation
  • Configuration validation

Example ​

typescript
protected validate(): string {
  const baseError = super.validate();
  if (baseError) return baseError;

  // Custom validation
  const type1 = this._inputs[0].inputNode?.getOutputType(0);
  const type2 = this._inputs[1].inputNode?.getOutputType(0);
  if (type1 !== type2) {
    return 'Input types must match';
  }

  return '';
}

Overrides ​

BaseGraphNode.validate


getType() ​

protected getType(): string

Defined in: libs/scene/src/utility/blueprint/material/texture.ts:1724

Gets the type name for a specific output slot

Returns ​

string

The type name (e.g., 'float', 'vec3', 'mat4')

Remarks ​

Must be implemented by subclasses to define type resolution logic. The type may depend on connected input types.

Example ​

typescript
protected getType(_id?: number): string {
  // Return type based on first input
  const inputType = this._inputs[0]?.inputNode?.getOutputType(this._inputs[0].inputId ?? 0);
  return inputType ?? 'float';
}

Overrides ​

BaseGraphNode.getType


getOutputType() ​

getOutputType(id): string

Defined in: libs/scene/src/utility/blueprint/node.ts:376

Gets the output type for a specific output slot

Parameters ​

id ​

number

The output slot ID

Returns ​

string

The type name of the output

Remarks ​

Default implementation delegates to the abstract getType() method. Can be overridden for more complex type logic.

Inherited from ​

BaseGraphNode.getOutputType


check() ​

check(): void

Defined in: libs/scene/src/utility/blueprint/node.ts:413

Validates the node and updates error state

Returns ​

void

Remarks ​

Calls the validate() method and stores the result in _error. Emits a 'changed' event if the error state changes.

Inherited from ​

BaseGraphNode.check


reset() ​

reset(): void

Defined in: libs/scene/src/utility/blueprint/node.ts:422

Clears the error state

Returns ​

void

Remarks ​

Sets _error to an empty string.

Inherited from ​

BaseGraphNode.reset


setInput() ​

setInput(id, node, inputId): void

Defined in: libs/scene/src/utility/blueprint/node.ts:443

Connects an input slot to another node's output

Parameters ​

id ​

number

The input slot ID to connect

node ​

BaseGraphNode

The source node to connect from

inputId ​

number

The output slot ID of the source node

Returns ​

void

Throws ​

Error if the input slot with the given ID doesn't exist

Example ​

typescript
const addNode = new AddNode();
const constantNode = new ConstantNode(5.0);

// Connect constantNode's output 0 to addNode's input 0
addNode.setInput(0, constantNode, 0);

Inherited from ​

BaseGraphNode.setInput

Released under the MIT License.