TextureToPoints

Read with AI
All docs in one file (llms-full.txt)
TextureToPoints #3D #Node
TextureToPoints

Downscales the received RenderTexture to a low resolution, reads it back from the GPU, and outputs a point cloud with one point per pixel. Each point’s color is that pixel’s color, and Z rises in the -Z direction (toward the viewer as seen from the default camera) according to brightness. Pixels darker than Luma Threshold produce no point at all, so raising the threshold gives a sparse point cloud in which only the bright parts remain. Because reading back from the GPU is asynchronous, it lags the video by 1–2 frames.

  • Columns — the number of horizontal divisions (default 64, clamped to 8–160). The number of vertical divisions is calculated automatically from the input RT’s aspect ratio (minimum 2)
  • World Width — the world-space width of the whole point cloud (default 20, minimum 0.1). The size of one cell is this divided by Columns
  • Relief Height — the amount of rise at brightness 1 (default 4)
  • Luma Threshold — clamped to 0–1 (default 0). Brightness is 0.299R + 0.587G + 0.114B

Disconnecting the input RT makes the point count 0.

Input ports

Port IDType
Render TextureRenderTexture
Columnsint
World Widthfloat
Relief Heightfloat
Luma Thresholdfloat

Output ports

Port IDType
PointCloudPointCloudOutput

Scriptable members

PathType
columnsInputint
sizeInputfloat
heightInputfloat
thresholdInputfloat

Synapse Apps (scripting)

await synapse.modules.create({ type: "TextureToPoints" })

Also referenced from