Color Processing Guide

Overview

The Color Processing tool is intended to modify and refine vertex colors on meshes within PointKit and PointKit View. It provides a non-destructive, layer-based workflow similar to common photo editing applications. Each layer represents a color processing operation (e.g., white balance, exposure, filtering) that can be stacked, toggled on/off, reordered, and blended using adjustable parameters.

This feature is ideal for cases where:

  1. A mesh’s captured colors require post-processing (e.g., correcting white balance, enhancing contrast or saturation).
  2. Users wish to transfer or manipulate color data across meshes.
  3. A consistent look is required across multiple meshes, and adjustments need to be applied in bulk.

Once satisfied, the user can apply the resulting adjustments to the selected mesh, or propagate them to all meshes in the project.

UI/UX

The Color Processing Tool is accessed via ToolsColor Processing.

The GUI is split into several sections:

  1. Mesh Selection - choose which mesh will serve as the starting point for processing.
  2. Preview Options - toggle between Flat Color and shaded rendering. Flat Color mode displays vertex colors without lighting influence.
  3. Layer Stack - add, configure, and blend processing layers. Layers are applied in order and can be individually toggled.
  4. Editing Panel - adjust the parameters of the currently selected layer.
  5. Save Panel - commit adjustments to the current mesh or to all meshes in the project.
The Color Processing UI
Color Processing UI

Layers

Each processing step is represented as a layer. The following layer categories are available:

Filters

  • Average Filter - blurs color by averaging neighboring vertices within a kernel radius.
  • Median Filter - reduces noise by assigning each vertex the median of its neighbors.
  • Max/Min Filters - replace vertex colors with maximum or minimum neighbor values.
  • Low Pass Filter (LPF) - smooths color data using Gaussian convolution.
  • High Pass Filter (HPF) - emphasizes fine details and edges.
  • Bilateral Filter - preserves edges while smoothing within both spatial and color range thresholds.

Colors

  • Invert - inverts the vertex colors.
  • Temperature - remaps colors from an original to a new white-point temperature (1000-12000K).
  • Saturation-Hue - scales saturation (0 = grayscale, >1 = more intense) and rotates hue (0-360°).
  • Brightness-Contrast - adjusts intensity (−127-127) and contrast (0-255).
  • Exposure - modifies global exposure and black level.
  • White Balance - allows manual selection of a white point, automatic calculation, or picking a color directly from the mesh.

Advanced

  • Mesh Gradient - computes the spatial gradient of the color data.
  • Mesh Divergence - computes divergence of the spatial color field.
  • Color Transfer - transfers color from a source mesh to the target mesh. Supports both world space and screen space modes.
  • Color Balance - fine adjustment of shadows, midtones, and highlights across cyan-red, magenta-green, and yellow-blue axes.
Color Balance Tool
Color Balance advanced tool, similar to GIMP.

Blend Modes and Opacity

Each layer supports standard blend modes and adjustable opacity (0 = invisible, 1 = fully visible). Blend modes control how a layer’s effect is combined with the previous result.

Blend Mode and Opacity Controls
Blend Mode and Opacity Controls

Editing Layers

The Edit section exposes parameter controls for the currently selected layer. Depending on the operation, this may include:

  • Kernel radius (filters).
  • Color temperature range (temperature adjustment).
  • Sliders for brightness, contrast, exposure, hue, and saturation.
  • White point selection (manual, auto, or pick-from-mesh).
  • Distance and angular thresholds (color transfer).

Edits are applied non-destructively. Changes update the preview mesh immediately.

Saving

When processing is complete, results can be committed:

  • Apply to Mesh - bakes adjustments into the current mesh.
  • Apply to All Meshes - applies adjustments to all meshes in the project.

Both options prompt for confirmation before overwriting mesh data.