reckfellENGINE

NoiseTexture3D

Procedural volume texture with queued generation and a shared Noise resource.

On this page
class NoiseTexture3DReckfellSharpInherits Texture3D

Set small Width/Height/Depth and Noise and subscribe before waiting for Changed. Generation is deferred and then usually uses a worker; setters can coalesce, and an intermediate result can be published before regeneration. Dimensions are requested metadata, not proof of an uploaded volume.

Unlike NoiseTexture2D, GetData reads through RenderingServer rather than exposing a retained CPU array. Use Noise.GetImage3D for CPU slices. Changed also occurs without Noise; format/old GPU resources can remain on an empty result. Manage your generation lifecycle; one Changed or RID does not establish freshness or success.

ColorRamp produces RGBA8; otherwise the noise-image format is used. This implementation has no mipmaps. Budget memory for the entire volume and temporary data. The Seamless/Depth=1 limitation propagates from the Noise CPU generator and was not accepted through the GPU.

Queues, notifications, shared resources, valid settings and format metadata were tested. Volume pixels, GPU readback/display, visual seams, HDR, memory limits and concurrent mutations were not accepted.

Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.

Constructors1

NoiseTexture3DConstructor
# NoiseTexture3D
C#
public NoiseTexture3D();

Creates a volume texture with Width/Height/Depth=64, Normalize=true and no Noise. Set small dimensions and a generator before waiting for Changed. It exposes no retained ready CPU array: GetData uses RenderingServer and needs separate readback validation. Dispose the owned resource after use.

Properties9

ColorRampProperty
# ColorRamp
C#
public Gradient ColorRamp { get; set; }

Shared Gradient ramp: noise Image luminance supplies its Sample position. Ramp Changed triggers regeneration. Output becomes RGBA8, losing HDR values and float precision. Applied after invert/normalize rather than changing noise itself. Resulting alpha does not make NoiseTexture2D.HasAlpha return true.

DepthProperty
# Depth
C#
public int Depth { get; set; }

Requested positive Z-layer count, default 64. In 1.0.0 Seamless with Depth=1 inherits an extra skirt layer from Noise: do not use that case without checking actual data. This edge case was not accepted through the GPU. Consider NoiseTexture2D.In3DSpace for a single slice.

HeightProperty
# Height
C#
public int Height { get; set; }

Requested positive volume height, default 64. Metadata can lead uploaded resource data; Changed is not validation of every pixel.

InvertProperty
# Invert
C#
public bool Invert { get; set; }

Inverts source-image brightness before ColorRamp and normal-map processing. Changes no seed and does not mean inversion of final RGB. Changes queue regeneration.

NoiseProperty
# Noise
C#
public Noise Noise { get; set; }

Shared Noise generator reference, such as FastNoiseLite. Setter subscribes to its Changed and queues regeneration; output is not immediately ready. Editing one shared generator regenerates all subscribed textures. null can still produce Changed without new data; the previous GPU resource is not guaranteed to clear. Do not dispose a borrowed getter wrapper or mutate the generator from another thread while sampling.

NormalizeProperty
# Normalize
C#
public bool Normalize { get; set; }

Enables min/max normalization during noise image/volume generation, default true. Changes data mapping rather than display alone. Separately normalized chunks can have different contrast; a constant field becomes zero brightness before invert. Changes require queued generation.

SeamlessProperty
# Seamless
C#
public bool Seamless { get; set; }

Selects blending of an expanded noise field for repetition. Does not guarantee continuity between arbitrary terrain chunks or enable material Repeat. Extra work/memory depends on SeamlessBlendSkirt; visual seam quality was not accepted here.

SeamlessBlendSkirtProperty
# SeamlessBlendSkirt
C#
public float SeamlessBlendSkirt { get; set; }

Extra-field fraction with Seamless, default 0.1. Unlike 2D, the 3D setter accepts only 0.05..1. Adds samples/memory rather than guaranteeing smoothness. Start with the default; extreme values were not accepted.

WidthProperty
# Width
C#
public int Width { get; set; }

Requested positive volume width, default 64. Changes immediately, independently of background completion. Account for Width×Height×Depth and temporary buffers; positive dimensions do not guarantee GPU-memory availability.

Methods15

GetColorRampGradient
# GetColorRamp
C#
public Gradient GetColorRamp();

Reads the ColorRamp setting, not task completion. Shared Gradient ramp: noise Image luminance supplies its Sample position. Ramp Changed triggers regeneration. Output becomes RGBA8, losing HDR values and float precision. Applied after invert/normalize rather than changing noise itself. Resulting alpha does not make NoiseTexture2D.HasAlpha return true.

Returns Gradient

Shared assigned resource or null; do not dispose a borrowed wrapper.

GetInvertbool
# GetInvert
C#
public bool GetInvert();

Reads the Invert setting, not task completion. Inverts source-image brightness before ColorRamp and normal-map processing. Changes no seed and does not mean inversion of final RGB. Changes queue regeneration.

Returns bool

Stored setting, not a guarantee of ready pixels/GPU data.

GetNoiseNoise
# GetNoise
C#
public Noise GetNoise();

Reads the Noise setting, not task completion. Shared Noise generator reference, such as FastNoiseLite. Setter subscribes to its Changed and queues regeneration; output is not immediately ready. Editing one shared generator regenerates all subscribed textures. null can still produce Changed without new data; the previous GPU resource is not guaranteed to clear. Do not dispose a borrowed getter wrapper or mutate the generator from another thread while sampling.

Returns Noise

Shared assigned resource or null; do not dispose a borrowed wrapper.

GetSeamlessbool
# GetSeamless
C#
public bool GetSeamless();

Reads the Seamless setting, not task completion. Selects blending of an expanded noise field for repetition. Does not guarantee continuity between arbitrary terrain chunks or enable material Repeat. Extra work/memory depends on SeamlessBlendSkirt; visual seam quality was not accepted here.

Returns bool

Stored setting, not a guarantee of ready pixels/GPU data.

GetSeamlessBlendSkirtfloat
# GetSeamlessBlendSkirt
C#
public float GetSeamlessBlendSkirt();

Reads the SeamlessBlendSkirt setting, not task completion. Extra-field fraction with Seamless, default 0.1. Unlike 2D, the 3D setter accepts only 0.05..1. Adds samples/memory rather than guaranteeing smoothness. Start with the default; extreme values were not accepted.

Returns float

Stored setting, not a guarantee of ready pixels/GPU data.

IsNormalizedbool
# IsNormalized
C#
public bool IsNormalized();

Reads the Normalize setting, not task completion. Enables min/max normalization during noise image/volume generation, default true. Changes data mapping rather than display alone. Separately normalized chunks can have different contrast; a constant field becomes zero brightness before invert. Changes require queued generation.

Returns bool

Stored setting, not a guarantee of ready pixels/GPU data.

SetColorRampvoid
# SetColorRamp
C#
public void SetColorRamp(Gradient gradient);

Sets ColorRamp under the regeneration-queue rules. Shared Gradient ramp: noise Image luminance supplies its Sample position. Ramp Changed triggers regeneration. Output becomes RGBA8, losing HDR values and float precision. Applied after invert/normalize rather than changing noise itself. Resulting alpha does not make NoiseTexture2D.HasAlpha return true.

Parameters
NameTypeDefault
gradientGradient—
gradient

Shared resource reference; Changed is observed and no copy is made.

SetDepthvoid
# SetDepth
C#
public void SetDepth(int depth);

Sets Depth under the regeneration-queue rules. Requested positive Z-layer count, default 64. In 1.0.0 Seamless with Depth=1 inherits an extra skirt layer from Noise: do not use that case without checking actual data. This edge case was not accepted through the GPU. Consider NoiseTexture2D.In3DSpace for a single slice.

Parameters
NameTypeDefault
depthint—
depth

Positive requested dimension; bound memory and await data generation.

SetHeightvoid
# SetHeight
C#
public void SetHeight(int height);

Sets Height under the regeneration-queue rules. Requested positive volume height, default 64. Metadata can lead uploaded resource data; Changed is not validation of every pixel.

Parameters
NameTypeDefault
heightint—
height

Positive requested dimension; bound memory and await data generation.

SetInvertvoid
# SetInvert
C#
public void SetInvert(bool invert);

Sets Invert under the regeneration-queue rules. Inverts source-image brightness before ColorRamp and normal-map processing. Changes no seed and does not mean inversion of final RGB. Changes queue regeneration.

Parameters
NameTypeDefault
invertbool—
invert

New Invert value; see the description for valid range and scope.

SetNoisevoid
# SetNoise
C#
public void SetNoise(Noise noise);

Sets Noise under the regeneration-queue rules. Shared Noise generator reference, such as FastNoiseLite. Setter subscribes to its Changed and queues regeneration; output is not immediately ready. Editing one shared generator regenerates all subscribed textures. null can still produce Changed without new data; the previous GPU resource is not guaranteed to clear. Do not dispose a borrowed getter wrapper or mutate the generator from another thread while sampling.

Parameters
NameTypeDefault
noiseNoise—
noise

Shared resource reference; Changed is observed and no copy is made.

SetNormalizevoid
# SetNormalize
C#
public void SetNormalize(bool normalize);

Sets Normalize under the regeneration-queue rules. Enables min/max normalization during noise image/volume generation, default true. Changes data mapping rather than display alone. Separately normalized chunks can have different contrast; a constant field becomes zero brightness before invert. Changes require queued generation.

Parameters
NameTypeDefault
normalizebool—
normalize

New Normalize value; see the description for valid range and scope.

SetSeamlessvoid
# SetSeamless
C#
public void SetSeamless(bool seamless);

Sets Seamless under the regeneration-queue rules. Selects blending of an expanded noise field for repetition. Does not guarantee continuity between arbitrary terrain chunks or enable material Repeat. Extra work/memory depends on SeamlessBlendSkirt; visual seam quality was not accepted here.

Parameters
NameTypeDefault
seamlessbool—
seamless

New Seamless value; see the description for valid range and scope.

SetSeamlessBlendSkirtvoid
# SetSeamlessBlendSkirt
C#
public void SetSeamlessBlendSkirt(float seamlessBlendSkirt);

Sets SeamlessBlendSkirt under the regeneration-queue rules. Extra-field fraction with Seamless, default 0.1. Unlike 2D, the 3D setter accepts only 0.05..1. Adds samples/memory rather than guaranteeing smoothness. Start with the default; extreme values were not accepted.

Parameters
NameTypeDefault
seamlessBlendSkirtfloat—
seamlessBlendSkirt

New SeamlessBlendSkirt value; see the description for valid range and scope.

SetWidthvoid
# SetWidth
C#
public void SetWidth(int width);

Sets Width under the regeneration-queue rules. Requested positive volume width, default 64. Changes immediately, independently of background completion. Account for Width×Height×Depth and temporary buffers; positive dimensions do not guarantee GPU-memory availability.

Parameters
NameTypeDefault
widthint—
width

Positive requested dimension; bound memory and await data generation.

Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.