reckfellENGINE

NoiseTexture2D

Procedural 2D texture with deferred generation, a color ramp and normal-map processing.

On this page
class NoiseTexture2DReckfellSharpInherits Texture2D

Set Width/Height and Noise, subscribe to Changed before waiting, and let the update queue run. Construction/setters do not return ready pixels. The first generation runs in a deferred call without a worker; later updates use WorkerThreadPool when threads are supported. A large first image can therefore stall the main thread too.

GetImage exposes the current shared CPU image, not a copy or necessarily the latest setter result. Resource dimensions are requested settings. Rapid edits can publish an intermediate result before another generation; Changed does not confirm completion for the latest parameter set. Configure stable parameters and inspect data after notification. Noise=null also emits Changed but makes the CPU Image null; the previous GPU resource is not guaranteed to clear. A RID can be a placeholder rather than readiness proof.

Processing order: noise/invert/normalize → RGBA8 ColorRamp → AsNormalMap → mipmaps. Shared Noise/Gradient resources are observed through Changed; do not mutate them concurrently with generation. In 1.0.0 HasAlpha returns false even for alpha-bearing ramp pixels, so it does not prove opacity.

Small CPU images, deferred updates and settings were tested. Visible graphics, GPU readback, seams, HDR and thread races were not accepted.

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

Constructors1

NoiseTexture2DConstructor
# NoiseTexture2D
C#
public NoiseTexture2D();

Creates a texture resource with Width/Height=512, GenerateMipmaps=true, Normalize=true and no Noise. Generation is deferred: set a small size and Noise first and subscribe to Changed before waiting. Construction does not yield a ready CPU Image. Dispose the owned resource after use.

Properties12

AsNormalMapProperty
# AsNormalMap
C#
public bool AsNormalMap { get; set; }

Converts luminance to a normal map after ColorRamp using BumpStrength, then generates mipmaps. Creates no geometry, surface displacement or lighting automatically. Normally leave ColorRamp empty for normals from the original heightfield.

BumpStrengthProperty
# BumpStrength
C#
public float BumpStrength { get; set; }

Height-gradient strength with AsNormalMap=true, default 8. Not mesh height. With normal-map mode disabled, the value is stored without regeneration. Validate a finite meaningful range yourself.

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.

GenerateMipmapsProperty
# GenerateMipmaps
C#
public bool GenerateMipmaps { get; set; }

Generates mip levels after ColorRamp/normal-map processing, default true. Helps minification aliasing but costs extra work and memory; does not increase base-image detail. This flag is not a running-task status.

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

Requested positive height, default 512. Not a completion indicator; compare it with the actual Image after generation.

In3DSpaceProperty
# In3DSpace
C#
public bool In3DSpace { get; set; }

For the 2D texture, samples 3D noise at z=0 with generator Offset; default false uses 2D noise. Creates neither a volume texture nor Image depth.

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 for Seamless, default 0.1; setter accepts 0..1, but extreme/large values were not accepted. Even 0 retains a minimum blend region in Noise. Neither pixels nor AA quality. Start with the default for ordinary use.

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

Requested positive width, default 512. Setter changes metadata immediately and queues regeneration: the old GetImage can have another size. Bound size for memory/device limits; the Inspector range is not a GPU-allocation guarantee.

Methods22

GetBumpStrengthfloat
# GetBumpStrength
C#
public float GetBumpStrength();

Reads the BumpStrength setting, not task completion. Height-gradient strength with AsNormalMap=true, default 8. Not mesh height. With normal-map mode disabled, the value is stored without regeneration. Validate a finite meaningful range yourself.

Returns float

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

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 for Seamless, default 0.1; setter accepts 0..1, but extreme/large values were not accepted. Even 0 retains a minimum blend region in Noise. Neither pixels nor AA quality. Start with the default for ordinary use.

Returns float

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

IsGeneratingMipmapsbool
# IsGeneratingMipmaps
C#
public bool IsGeneratingMipmaps();

Reads the GenerateMipmaps setting, not task completion. Generates mip levels after ColorRamp/normal-map processing, default true. Helps minification aliasing but costs extra work and memory; does not increase base-image detail. This flag is not a running-task status.

Returns bool

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

IsIn3DSpacebool
# IsIn3DSpace
C#
public bool IsIn3DSpace();

Reads the In3DSpace setting, not task completion. For the 2D texture, samples 3D noise at z=0 with generator Offset; default false uses 2D noise. Creates neither a volume texture nor Image depth.

Returns bool

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

IsNormalMapbool
# IsNormalMap
C#
public bool IsNormalMap();

Reads the AsNormalMap setting, not task completion. Converts luminance to a normal map after ColorRamp using BumpStrength, then generates mipmaps. Creates no geometry, surface displacement or lighting automatically. Normally leave ColorRamp empty for normals from the original heightfield.

Returns bool

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.

SetAsNormalMapvoid
# SetAsNormalMap
C#
public void SetAsNormalMap(bool asNormalMap);

Sets AsNormalMap under the regeneration-queue rules. Converts luminance to a normal map after ColorRamp using BumpStrength, then generates mipmaps. Creates no geometry, surface displacement or lighting automatically. Normally leave ColorRamp empty for normals from the original heightfield.

Parameters
NameTypeDefault
asNormalMapbool—
asNormalMap

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

SetBumpStrengthvoid
# SetBumpStrength
C#
public void SetBumpStrength(float bumpStrength);

Sets BumpStrength under the regeneration-queue rules. Height-gradient strength with AsNormalMap=true, default 8. Not mesh height. With normal-map mode disabled, the value is stored without regeneration. Validate a finite meaningful range yourself.

Parameters
NameTypeDefault
bumpStrengthfloat—
bumpStrength

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

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.

SetGenerateMipmapsvoid
# SetGenerateMipmaps
C#
public void SetGenerateMipmaps(bool invert);

Sets GenerateMipmaps under the regeneration-queue rules. Generates mip levels after ColorRamp/normal-map processing, default true. Helps minification aliasing but costs extra work and memory; does not increase base-image detail. This flag is not a running-task status.

Parameters
NameTypeDefault
invertbool—
invert

Despite the name invert, true enables mipmaps and false disables them. Does not change texture Invert.

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

Sets Height under the regeneration-queue rules. Requested positive height, default 512. Not a completion indicator; compare it with the actual Image after generation.

Parameters
NameTypeDefault
heightint—
height

Positive requested dimension; bound memory and await data generation.

SetIn3DSpacevoid
# SetIn3DSpace
C#
public void SetIn3DSpace(bool enable);

Sets In3DSpace under the regeneration-queue rules. For the 2D texture, samples 3D noise at z=0 with generator Offset; default false uses 2D noise. Creates neither a volume texture nor Image depth.

Parameters
NameTypeDefault
enablebool—
enable

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

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 for Seamless, default 0.1; setter accepts 0..1, but extreme/large values were not accepted. Even 0 retains a minimum blend region in Noise. Neither pixels nor AA quality. Start with the default for ordinary use.

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 width, default 512. Setter changes metadata immediately and queues regeneration: the old GetImage can have another size. Bound size for memory/device limits; the Inspector range is not a GPU-allocation guarantee.

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.