Image Extrude

AIと読む
全ドキュメントを1ファイルで(llms-full.txt)
ImageExtrude #3D #ノード

Render Texture のシルエットを輪郭にして Z 方向に押し出し、Mesh として出力します。ロゴや切り抜き素材が「板」ではなく厚みのある「物」になります。Mesh は Mesh RendererCopyToPoints に繋いで描画します。押し出しは画像の中心を原点に置き、前面(既定カメラ側)が z のマイナス側、背面がプラス側です。

計算はフレームを止めずに裏で行われ、完了した時点でメッシュが差し替わります。焼き直しが走るのは、入力の接続・差し替え、パラメータの変更、Bake の操作、入力映像の解像度変更のときです。焼いた結果はプロジェクトに保存されないので、ロード時にも自動で 1 回焼きます。

ノード上の設定

  • Alpha / Luma — 何をシルエットとみなすか。Alpha(既定)は不透明度、Luma は輝度(0.299R + 0.587G + 0.114B)
  • Res256 / Res512(既定)/ Res1024 / Res2048 — 輪郭を拾うサンプル数(長辺)。元映像より細かくはなりません
  • Live — OFF(既定)は上の条件のときだけ焼く Hold 動作。ON にすると毎フレーム映像を読み戻して焼き続けます(CPU を常時使うので、動く映像を追いたいときだけ)
  • Bake — 今の映像でもう一度焼く。Bake ポート(トリガー)と Live ポートは、このボタンとトグルをグラフから操作する口です

ポートの補足

  • Threshold — 0〜1にクランプ(既定0.5)。この値以上をシルエットの内側とみなします
  • Depth — 押し出しの厚み(既定1)
  • Size — 画像の横幅をワールド単位で(既定20、下限0.1)。高さは映像の縦横比から決まります
  • Simplify — 0〜1にクランプ(既定0.3)。輪郭の点を間引く強さ。0 で間引きなし
  • Bevel — 前後の縁の面取り幅(ワールド単位、既定0 = 面取りなし)。細い部分で面取りが破綻する輪郭は幅が自動で縮められ、ステータスに「面取りを縮めた輪郭N本」と出ます
  • Bevel Segments(ノード上の表示は Segments)— 面取りの分割数。1〜8にクランプ(既定1)。1 は 45° の平らな面取り、2 以上で丸い面取り
  • Smooth — 0〜1にクランプ(既定0.25)。輪郭の階段(8bit アルファのギザギザ)を均す強さ
  • FrontFace / BackFace(表示は Front Face / Back Face)— 前面・背面の蓋を張るか(既定 両方 ON)。背面だけ OFF にすると器のような形、両方 OFF で輪郭の筒になります

輪郭の点数は合計 16384 点までで、超えた分は均等に間引かれます(大きな輪郭が丸ごと消えることはありません)。

ステータス行には「In 未接続」「Baking…」「Baked: N polys / M verts」(Live 中は「Live: …」)が出ます。映像の読み戻しが 3 回続けて失敗すると止まり、Bake で再試行します。

入力ポート

Port ID
Render TextureRenderTexture
Thresholdfloat
Depthfloat
Sizefloat
Simplifyfloat
Bevelfloat
Bevel Segmentsint
Smoothfloat
FrontFacebool
BackFacebool
Baketrigger
Livebool

出力ポート

Port ID
MeshMeshOutput

スクリプトから設定可能なメンバー

パス
thresholdInputfloat
depthInputfloat
sizeInputfloat
simplifyInputfloat
bevelInputfloat
bevelSegmentsInputint
smoothInputfloat
frontFaceInputbool
backFaceInputbool
liveInputbool
currentLivebool

Synapse Apps(スクリプティング)

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

このページへのリンク

同じページを参照しているページ