CurveXyzTexture
A one-pixel-high data strip generated from Curve.
CurveXyzTexture generates a float texture: CurveX → R, CurveY → G, CurveZ → B in RGBF. Assign Curve sources and Width (32…4096). Sources are shared references whose Changed notification regenerates pixels; an absent curve supplies a zero channel. Values above 1 survive without a separate HDR flag.
Sampling uses Curve.SampleBaked(i/Width), not i/(Width−1). The final pixel does not sample exactly 1. Prepare a 0…1 Curve domain for a full-range lookup: other domains are not automatically remapped. No mipmaps are generated.
In the current implementation inherited GetImage() returns null even when GPU pixels exist. For occasional diagnostics obtain an Image through RenderingServer.Texture2DGet(texture.GetRid()); dispose the returned Image after use. Avoid per-frame GPU readbacks. Editing source BakeResolution requires EmitChanged() to refresh the texture.
GPU data, shared-source updates and resource persistence were checked in Windows Forward+/Vulkan. This run does not establish shader sampling, performance or graphics quality.
Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.
Constructors1
CurveXyzTextureConstructor
public CurveXyzTexture();Creates a width-256 strip with no Curve sources. Construction does not guarantee initialized pixels before the first update.
Properties4
CurveXProperty
public Curve CurveX { get; set; }A shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs. This controls channel R. One Curve can supply multiple channels.
CurveYProperty
public Curve CurveY { get; set; }A shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs. This controls channel G. One Curve can supply multiple channels.
CurveZProperty
public Curve CurveZ { get; set; }A shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs. This controls channel B. One Curve can supply multiple channels.
WidthProperty
public int Width { get; set; }Strip width 32…4096, initially 256; height is always 1. Samples use i/Width, so the final pixel does not reach coordinate 1. No mipmaps are generated.
Methods7
GetCurveXCurve
public Curve GetCurveX();A shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs. This controls channel R. One Curve can supply multiple channels.
CurveThe current shared Curve or null, not a copy.
GetCurveYCurve
public Curve GetCurveY();A shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs. This controls channel G. One Curve can supply multiple channels.
CurveThe current shared Curve or null, not a copy.
GetCurveZCurve
public Curve GetCurveZ();A shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs. This controls channel B. One Curve can supply multiple channels.
CurveThe current shared Curve or null, not a copy.
SetCurveXvoid
public void SetCurveX(Curve curve);A shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs. This controls channel R. One Curve can supply multiple channels.
| Name | Type | Default |
|---|---|---|
curve | Curve | — |
curveA shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs.
SetCurveYvoid
public void SetCurveY(Curve curve);A shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs. This controls channel G. One Curve can supply multiple channels.
| Name | Type | Default |
|---|---|---|
curve | Curve | — |
curveA shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs.
SetCurveZvoid
public void SetCurveZ(Curve curve);A shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs. This controls channel B. One Curve can supply multiple channels.
| Name | Type | Default |
|---|---|---|
curve | Curve | — |
curveA shared Curve reference, initially null. Its Changed notification regenerates pixels. Null fills the channel with zero. Sampling always uses 0…1 even when the Curve domain differs.
SetWidthvoid
public void SetWidth(int width);Strip width 32…4096, initially 256; height is always 1. Samples use i/Width, so the final pixel does not reach coordinate 1. No mipmaps are generated.
| Name | Type | Default |
|---|---|---|
width | int | — |
widthStrip width 32…4096, initially 256; height is always 1. Samples use i/Width, so the final pixel does not reach coordinate 1. No mipmaps are generated.