English

Development Notes

このページは、contributor と release maintainer 向けの実装 / 保守メモです。

Architecture

QuickSDFTool/
|-- Content/
|   |-- Materials/        # Preview and toon materials
|   |-- Textures/         # Default textures
|   |-- Widget/           # UMG widget blueprints
|-- Shaders/
|   |-- Private/
|       |-- JumpFloodingCS.usf
|       |-- QuickSDFFastPreview.usf
|-- Source/
    |-- QuickSDFTool/              # Runtime module and UQuickSDFAsset
    |-- QuickSDFToolEditor/        # Editor Mode, paint tool, timeline, processor
    |-- QuickSDFToolShaders/       # Compute shader binding
Module Type Key Dependencies
QuickSDFTool Runtime Core, CoreUObject, Engine, RenderCore, RHI
QuickSDFToolEditor Editor InteractiveToolsFramework, EditorInteractiveToolsFramework, GeometryCore, DynamicMesh, MeshDescription, ModelingComponents, MeshConversion, EditorSubsystem, UMG, Slate, LevelEditor, PropertyEditor, MaterialBaking, DesktopPlatform, ImageWrapper, AssetRegistry
QuickSDFToolShaders Runtime / PostConfigInit Core, CoreUObject, Engine, RenderCore, RHI, Projects

Editor Code Layout

How It Works

  1. Paint: light angle ごとに mesh または 2D Canvas 上で binary mask を paint します。
  2. SDF: 各 mask を signed distance field に変換します。
  3. Interpolate: 隣接 mask 間の transition を見つけ、threshold value T を導出します。
  4. Composite: Monopolar または Bipolar output を自動選択し、RGBA channels に pack します。
    • Monopolar: symmetric shadow behavior、または selected symmetry mode が second half を生成する場合の 0-90 / 90-180 separate values。
    • Bipolar: asymmetric shadow enter/exit values を legacy combined field で生成し、R/A/B/G swizzle で export します。final texture は expected shader layout を保ち、B channel は 0-90 side value のままです。
    • UV Island Channel Flip: 0-90 combined field から開始し、90-180 channels を island-local mirrored sampling で埋め、通常の 0-180 maps と同じ RGBA16F / HDR texture format で export します。
  5. Export: final threshold map を 16-bit half-float texture として保存します。

Live SDF は preview 専用 branch です。paint masks を selected transient preview resolution へ downsample し、GPU JFA が approximate threshold map を生成し、preview material がその render target を使います。final generation は CPU path のままなので、保存 texture は高品質出力を維持します。

Windows pen input flow into QuickSDF

Development Verification

現在の development target は UE 5.7.x です。local verification では、plugin を有効にした C++ host project を build し、必要に応じて QuickSDFTool automation test group を実行します。

Unreal Editor command line または Session Frontend で使う verification commands:

Automation RunTests QuickSDFTool
Automation RunTests QuickSDFTool.Core.Timeline
Automation RunTests QuickSDFTool.Core
Automation RunTests QuickSDFTool.MonotonicGuard

v1.0 release candidate は sdfbuildEditor Win64 Development、focused timeline automation coverage、QuickSDFTool.Core、Monotonic Guard tests で検証してください。

manual input verification には、mouse painting、Windows pen-display/tablet hover、pressure、stroke start/drag/release、2D Canvas window move/resize behavior、2D Canvas と 3D Paint の Quick Stroke、Ctrl + F brush resizing を含めます。

Documentation Images

生成可能な概念図は docs/images/ に置きます。UE editor session がなくても更新できます。

実機 UI screenshot は実際の UE editor session から撮影してください。生成図では widget state や pen alignment を証明できません。

Repository Setup Checklist

GitHub page を準備する maintainer 向け checklist: