Blender: add-on ~ KJ Eye Through Hair v0.3.6 取扱説明書 ~ アニメの表現でよくある髪の毛越しに目を浮き上がせる(投影).

Image

次段階候補:Triangle Cluster Broad-phase

次のPerformance最適化候補として、Target Unit内のTriangleをClusterへ分割する方法があります。

Target Unit
↓
Triangle Cluster
↓
Cluster Conservative Bounds
↓
Relevant Clusterだけ有効化
↓
Exact Triangle Kernel

ただし、Shader Node上でEnabled=0のBranchがGPUで実際にどの程度計算省略されるかは測定が必要です。

実装前にGPU Bottleneckであることを確認します。

Cluster選択処理のOverheadがTriangle削減効果を上回らないことを確認します。

Exact結果を変えないことを必須条件とします。

Render-pre Exact Contractも維持します。

Performance Regression Checklist

次Versionでは、Create Demo Total、Initial 42 Triangle Rebuild、20 Triangle Group追加、42 Triangle Group追加、1 Active Unit Transform、4 Active Unit Transform、1 Fully Culled Unit Transform、4 Fully Culled Unit Transform、4 Unit Geometry Refresh、View-change Re-evaluation、Occluder Transform Re-evaluation、Render-pre Exact Restoreを比較します。

単に「重い」「軽い」という体感だけで判定せず、Debug Logで数値を比較します。

Functional Regression Checklist

Target Object List Rowをクリックすると編集Ownerが切り替わること。

上部Target Object FieldがStaging Selectorとして残ること。

Target Object OFFでもChild Group登録を保持すること。

複数Target Objectが独立して動作すること。

同名Vertex Groupが別Objectで独立すること。

既存Target Groupを再追加したとき重複行を作らないこと。

Target Group OFFはそのUnitだけをGateすること。

Source Polygon全Vertex Ruleが維持されること。

Diagonal Half-Quad Artifactが再発しないこと。

Outward Facing、Normal Threshold、Depth Marginが機能すること。

Pure G/R/SでTriangle再解析しないこと。

CULLED StateがRelevantになるまで持続すること。

再Activation時に最新W2Lを先に書くこと。

View Changeで必要なCULLED Unitが復帰できること。

Occluder移動でも必要なCULLED Unitが復帰できること。

Shape Key、Armature、Modifier ChangeでSurface更新されること。

同一ObjectのEvaluated Mesh取得が1回に集約されること。

複数Occluderへ同一Reveal Maskを適用できること。

Occluder OFFまたはUnregister時にMaterial状態を可能な限り復元すること。

Shared Material Isolationが非Occluderへ影響しないこと。

Dither OFFでPre-KJ状態へ戻ること。

Render前にCULLED UnitがExact Stateへ戻ること。

Known Limitations / Risks

Runtime Verified Setは空です。

Blender 5.1 / 5.2を対象としていますが、自動Verified Stampはありません。

Shared MaterialのOriginal復元にはMaterial Nameへ依存する箇所があります。

Exact Triangle数が増えるほどShader Node Instance数とGPU Evaluation Costが増加します。

Geometry RefreshはTransform Fast Pathより重くなります。

Legacy RegionsとTarget Vertex Group ModeはReveal Modeで切り替えて使用します。

READMEの一部には旧One Target Object仕様の表現が残っています。

Blender実機用のAutomated Test Suiteは現行Package内に確認できません。

Migration History

v0.0.14ではTarget TriangleをLocal Coordinatesへ保存する方式へ変更しました。

Object G/R/SはW2L Constantsだけで追従する設計へ変更しました。

Source Polygon全Vertex Ruleもこの系統で確立しました。

v0.0.15では共有Möller–Trumbore Kernel、Static Triangle ValueのPython Precompute、Balanced MAX Treeを導入しました。

v0.0.17~0.0.18では複数Occluder RegistryとMaterial Restoreを追加しました。

v0.0.27ではTrue Multi-Target Object Runtimeへ移行し、Target UnitをObject + Vertex Groupとして定義しました。

v0.0.28ではTarget Object List RowをSelection-onlyへ変更し、Child Target Group UIをActive Target Object RowでScopeする方式へ整理しました。

v0.3.0ではShared Material IsolationとDithered設定をLive Toggle化しました。

v0.3.1ではIncremental Add Target GroupとObject-batched Evaluated Mesh Analysisを導入しました。

v0.3.2ではChanged-object-only W2L Update、Deferred Geometry、Solid Overlay Throttlingを追加しました。

v0.3.3ではAdd Target処理をHandler Suspend Transaction化しました。

v0.3.4ではConservative Target Unit Broad-phase Cullingを導入しました。

v0.3.5ではCull Restore Debounceを試しましたが、Transform Event間隔だけでは操作終了を正確に判断できないことが判明しました。

v0.3.6ではTime-based Restoreを廃止し、Persistent Condition-driven CULLED Stateへ変更しました。

コメント

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA