Skip to content

Module3DBase

ClassTextStudio.ThreeDTextStudio.3D
public abstract class Module3DBase : ScriptableObject

Base class for Text Studio — 3D modules that plug into the TextStudio.ThreeD.TextStudio3DText geometry pipeline. Modules are for genuinely 3D-specific concerns that cannot be expressed as an ITextStudioEffect (which drives per-glyph TRS/alpha/color via the base animation pipeline) — e.g. contour slicing, depth-layer material overrides, or post-mesh topology tweaks. Per-frame animation and placement should be authored as base effects and placement strategies instead.

RegisterMaterialRegions(TextStudio3DMaterialRegionRegistry)

Section titled “RegisterMaterialRegions(TextStudio3DMaterialRegionRegistry)”
public virtual void RegisterMaterialRegions(TextStudio3DMaterialRegionRegistry regions)

Declares provider-owned semantic material regions before geometry callbacks run. Use the same stable ID with TextStudio.ThreeD.ModuleContext.MaterialRegions during PostGeometry to assign appended index ranges without changing the nine built-in region values.

Parameters

Name Type
regions TextStudio.ThreeD.TextStudio3DMaterialRegionRegistry
public virtual void OnAttach(TextStudio3DText host)

Called once when the module is first attached to a 3D text component.

Parameters

Name Type
host TextStudio.ThreeD.TextStudio3DText
public virtual void OnDetach(TextStudio3DText host)

Called when the module is removed from a 3D text component.

Parameters

Name Type
host TextStudio.ThreeD.TextStudio3DText
public virtual void PreGeometry(ModuleContext context)

Called before geometry generation begins. Use to modify contour data.

Parameters

Name Type
context TextStudio.ThreeD.ModuleContext
public virtual void PostGeometry(ModuleContext context)

Called after geometry generation, before mesh assembly. Use to modify raw mesh data.

Parameters

Name Type
context TextStudio.ThreeD.ModuleContext
public virtual void PostMeshAssembly(ModuleContext context)

Called after mesh assembly. Use to apply final mesh modifications.

Parameters

Name Type
context TextStudio.ThreeD.ModuleContext
public virtual void OnInactive(TextStudio3DText host)

Called after assembly when an attached post-assembly module is disabled. Lifecycle modules can use this to hide or return previously created output without destroying pools.

Parameters

Name Type
host TextStudio.ThreeD.TextStudio3DText

protected Module3DBase()

public string DisplayName { get; }

Returns

System.String

public bool Enabled { get; set; }

Returns

System.Boolean

public int Priority { get; }

Returns

System.Int32

public virtual ModuleExecutionStage ExecutionStages { get; }

Pipeline callbacks used by this module. The default is conservative so existing custom modules keep receiving every callback until they declare narrower requirements.

Returns

TextStudio.ThreeD.ModuleExecutionStage

public virtual TextStudio3DModuleRole Roles { get; }

Returns

TextStudio.ThreeD.TextStudio3DModuleRole

public virtual int StableVersion { get; }

Returns

System.Int32

public virtual int StableHash { get; }

Returns

System.Int32

public virtual TextStudio3DMeshChannels RequiredMeshChannels { get; }

Returns

TextStudio.ThreeD.TextStudio3DMeshChannels

public virtual TextStudio3DModuleThreading Threading { get; }

Returns

TextStudio.ThreeD.TextStudio3DModuleThreading

public virtual TextStudio3DBoundsBehavior BoundsBehavior { get; }

Returns

TextStudio.ThreeD.TextStudio3DBoundsBehavior

public virtual TextStudio3DGeometryImpact GeometryImpact { get; }

Returns

TextStudio.ThreeD.TextStudio3DGeometryImpact

public TextStudio3DModuleDescriptor Descriptor { get; }

Returns

TextStudio.ThreeD.TextStudio3DModuleDescriptor

public virtual bool RequiresUncachedGeometry { get; }

Whether this module needs isolated glyph geometry instead of shared cached buffers. Contour and post-geometry modules normally do; lifecycle-only modules normally do not.

Returns

System.Boolean