TouchDesigner Instance 實例化教學:從魔術方塊到音樂頻譜長條圖|IVD487 W08

想用一份資料一次複製出幾百個 3D 圖形?這篇整理 TouchDesigner Instance 實例化的完整觀念:在 Geometry (COMP) 打開 Instancing、把 SOP/CHOP/TOP 資料塞進 default instance OP,p0/p1/p2 對應 translate,再用 Info (CHOP) 的 num points 讓兩邊點數自動同步。含資料來源對照表、五個範例(魔術方塊、音樂頻譜長條圖、圓形頻譜、圖片粒子化、彩色星星)與章節時間戳。

May 4, 2026
🧰 TouchDesigner 工具庫 | Luxmin Institute on Patreon
我們把接案與展場現場累積下來的 TouchDesigner 元件、專案檔與製作系統,整理發佈在 Patreon,部分工具與 Demo 免費開放下載。
https://www.patreon.com/cw/LuxminInstitute
⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑

TouchDesigner Instance 實例化教學:從魔術方塊到音樂頻譜長條圖

上一週用 SOP 做完 3D 程序建模,這一週把基礎收尾,正式進入「應用」——第一個主角是 Instance 實例化:用一份資料的每一個點,一次複製出成百上千個基礎 3D 圖形。
關鍵觀念先講:Instance 不是某個節點的按鈕,而是一種「拿資料點當位置,把基礎圖形複製上去」的做法。資料可以來自 SOP 的點、CHOP 的 channel,甚至 TOP 圖片。搞懂這一層,魔術方塊、音樂頻譜長條圖、粒子星星就都是同一招換皮。這篇是重點整理,上完課回來掃一遍就能把流程接回來。
讀完這篇你會知道:
  • Instance 在哪裡打開、default instance OP 是什麼
  • p0/p1/p2 怎麼對應 translate x/y/z,rotate/scale/color 又怎麼覆蓋
  • SOP/CHOP/TOP 三種資料來源怎麼互換
  • 為什麼會跳 OP must generate the same number of instances,怎麼用 Info (CHOP) num points 一勞永逸
  • 魔術方塊、音樂頻譜長條圖、圓形頻譜、圖片粒子化、彩色星星怎麼接
Video preview

一、先回顧:render 基本組

Instance 蓋在上週的渲染流程之上,所以每個範例都從同一組積木開始:基礎圖形(SOP)接 Geometry (COMP),再建 Camera (COMP)Light (COMP),最後用 Render (TOP) 渲成 2D 畫面。
  • 每次建好 Render (TOP) 都要指定 camera/geometry/light。 預設是米字號(),代表「同類全抓」;把你要的那顆分別拉(或手動輸入名稱)進去才乾淨。
  • 要納入第二個 Geometry (COMP)Light (COMP):直接拉會取代掉,必須手動輸入名稱(例如 geo3)。看虛線沒有從奇怪的地方連進來,就是對的。
📺 影片段落:2:314:04

二、Instance 核心:資料點複製圖形

觀念:拿一份資料,把它每一個點的位置,複製成一個基礎圖形。
接法只有三步:
  1. Geometry (COMP)第三個 tab(Instance)把 Instancing 打開,下面欄位就會全部解鎖。
  2. 把要當資料的節點拉進 default instance OP。點欄位旁的黑色三角形,有資料跑出來就代表綁成功。
  3. 在下面把資料的 channel 對應到你要的欄位——最基本的是 p0 → translate x、p1 → translate y、p2 → translate z,圖形就會被複製到每個點上。
Rectangle (SOP) 試(4 個點)就複製出 4 個圖形;換成 Box (SOP)(8 個點)就變 8 個。想讓它動,資料端加一個 Noise (SOP)Noise (CHOP),點位移,複製體就跟著飄。
default instance OP 是「全域來源」。 它一綁,下面所有欄位預設都吃 p0/p1/p2。但只要在某個欄位(rotate/scale/color)另外塞一份資料,就會覆蓋掉,那個欄位改吃新資料自己的 channel(例如 x y z 或 r g b)。
三種資料來源都能用——SOP 的點、CHOP 的 wave/pattern、TOP 的圖片(需轉成 CHOP):
資料來源家族
拿什麼當資料點
典型用途
SOP
幾何的點:index+p0/p1/p2(還有 normal n0/n1/n2)
Box 8 點、魔術方塊、Circle 一圈點
CHOP
channel 的每個 sample(wave/pattern/noise)
音樂頻譜長條、旋轉資料
TOP
每個 pixel 的 rgba(需 TOP to CHOP 轉成 channel)
圖片粒子化
欄位對應則是這樣分工:
default instance OP 欄位
吃到的資料
效果
Translate
p0/p1/p2 → tx/ty/tz
把圖形複製到每個點的位置
Rotate OP
另塞一份資料的 x/y/z
每個複製體帶旋轉
Scale OP
另塞一份資料
每個複製體縮放(長條高低)
Color OP
另塞一份 r g b(名稱可自訂)
每個複製體上色
💡 資料綁定是 instance 的日常。CHOP 綁參數用 Export 還是 Expression 會影響效能,延伸閱讀:CHOP Export vs Expression 效能比較
📺 影片段落:4:505:266:267:33

三、資料點數必須一致(最常見的坑)

兩份資料要當來源時,點數一定要一樣,否則直接報錯。 當 translate 吃 SOP 的 4 個點、color 又想吃 CHOP 的資料,CHOP 的 sample 數就得也是 4,不然一接上去就跳:
OP must generate the same number of instances
CHOP 端調數量的手動做法:在 Noise (CHOP) 之類把 sample rate 設成點數(例如 64)、end 設成 1(等於「1 秒切成 64 格、只留 1 秒」)。但前面點數一改,這裡兩個值都得跟著改,很容易忘。
更好的做法:用 Info (CHOP) 讀 num points 自動同步。 把基礎圖形接一個 Info (CHOP),它會吐出 num points,再把這個值綁到 CHOP 的 sample rate、end 設 1。之後不管前面圖形點數怎麼變,兩邊永遠對齊,不用手動追。
⚠️ 兩邊點數必一致。 只要來源不只一份,translate、rotate、scale、color 各自的資料點數就必須相同,否則報 OP must generate the same number of instances
💡 Info (CHOP) 的 num points 綁 sample rate。 這是全片最實用的一招:一次設定,之後改幾何點數都自動同步,省下反覆手改 sample rate 的麻煩。
📺 影片段落:10:5117:0717:49

四、範例一:彩色魔術方塊

用一顆大 Box (SOP) 的點陣,複製出一堆小方塊。
  1. 資料端 Box (SOP) 打開 use divisions(預設 3×3×3),接 Info (CHOP) 記下 num points(64 點);拉進 default instance OP,p0/p1/p2 → translate。
  2. 看不到分割? 基礎圖形的小 Box (SOP) 太大會全部黏在一起——把它調小(約 0.02~0.04)就看得到縫。
  3. 會動: 資料端插 Noise (CHOP) 讓每個點微微位移,幅度別太大,否則看不出原本是方形。
  4. 上色: 另建一個 Noise (CHOP),在 channel name 直接打 r g b(空格分隔)產生 3 個 channel,塞進 Color OP,覆蓋 p0/p1/p2。點數一樣用 Info (CHOP) num points 同步。
  5. 半透明:Constant (MAT),指定給 Geometry (COMP) 的 material,打開 transparency、降 alpha,方塊就半透。
📺 影片段落:11:5114:5522:41

五、範例二:音樂頻譜長條圖

同一份資料,分別餵給 translate 與 scale,就長出兩種畫面:
  • 餵 translate y:波形讓每個方塊上下平移 →「跳動的點」。
  • 餵 scale y:波形讓每個方塊拉高拉低 →「長條圖」。
實作重點:
  1. 用一條斜線資料(往右遞增)餵 tx,讓每個方塊往右排開,不然全疊在同一點;再用頻譜能量資料scale y。音訊訊號那組 CHOP 直接沿用先前做好的,本週重點在 instance。
  2. 變化太小看不出來? 資料端加 Math (CHOP) 直接把數值乘大(×10 起跳)。
  3. 基礎 Box (SOP) 記得調小,否則長條全糊在一起。
  4. 長條往中間對稱、不往上長? 這是 pivot 在正中央的關係。到 Box (SOP) 的 **anchor(基準點)**把 y 基準改到方塊下緣,放大就會乖乖往上長。
  5. 疊色:Ramp (TOP) 做能量高→紅、低→藍的漸層,再用 Composite (TOP) 疊上去;兩張圖解析度要對齊(例如都設 1280×720),必要時用 Transform (TOP) 把漸層壓到波形實際會到的高度。
📺 影片段落:28:0632:4735:42

六、範例三:圓形頻譜

把長條圖「捲成一圈」,只換基礎資料點:
  1. 基礎資料改用 Circle (SOP),拉進 default instance OP,p0/p1/p2 → translate,長條就排成一圈。scale y 一樣接頻譜。
  2. 但預設所有長條都朝上長,要讓它們沿圓的法向量往外:建 Pattern (CHOP) 用 ramp、把 range 設 360,產生一圈旋轉資料,餵給 rz
  3. 旋轉起點不對就用資料整體偏移,剛好 -90 度時長條會垂直立在圓面上。點數一樣用 Info (CHOP) num points 同步。
📺 影片段落:37:24

七、範例四:圖片粒子化與彩色星星

圖片轉 instance 資料:Movie File In (TOP)Ramp (TOP)Noise (TOP) 當來源,經 TOP to CHOP 把每個 pixel 的 rgba 轉成 channel,再餵給 instance。把解析度設很低(例如 20×20)好對齊點數,用 Math (CHOP) 放大讓高低差更明顯——整張圖就由一堆長方體組成。
彩色星星(粒子發散):
  1. 基礎圖形用單片 Grid (SOP)(要貼圖片材質,不用 Box),配 Camera (COMP)Light (COMP)(可用 Ambient Light)、Render (TOP)
  2. 資料端:Sphere (SOP)Particle (SOP)(粒子發射器,需要基礎點才發散),再接 Sort (SOP)random 打亂,拉進 default instance OP → translate。Grid (SOP) 記得縮小。
  3. 材質:Text (TOP) 打一個星星符號放大,接 Constant (MAT),指定給 Geometry (COMP) 的 material,全部變星星。
  4. 上色:Noise (CHOP) 產生 r g b 餵 Color OP。
⚠️ 透明星星要關 depth test。 星星開了 transparency 後仍會互相遮擋——在 Constant (MAT) 打開 transparency、再把 depth test 關掉,透明部分才會維持透明、不擋到後面的星星。
📺 影片段落:42:1143:4649:10

常見問題 FAQ

Q1:複製出來全部黏在一起、看不到分割怎麼辦?
基礎圖形太大了。把當作基礎的 Box (SOP)Grid (SOP) 調小(約 0.02~0.04),縫隙就出來了。
Q2:兩邊資料點數不一樣會怎樣?
一接上去就報 OP must generate the same number of instances。translate、rotate、scale、color 各自的來源點數必須相同。
Q3:點數怎麼同步最省事?
Info (CHOP) 讀基礎圖形的 num points,綁到 CHOP 的 sample rate、end 設 1。之後前面點數怎麼變都自動對齊。
Q4:上色的 channel 一定要叫 rgb 嗎?
不用。rgb 只是 channel 名稱,改成 a b c 也行——改名當下會先報錯,那只是名稱對不上,重新指定對應就好。
Q5:長條為什麼往中間對稱、不往上長?
因為 pivot 在圖形正中央。到 Box (SOP) 的 anchor(基準點)把 y 基準移到下緣,放大就往上長。
Q6:星星(或透明圖形)互相遮擋怎麼辦?
Constant (MAT) 打開 transparency,再把 depth test 關掉,透明部分才不會擋住後面的圖形。

課後練習

  1. 彩色魔術方塊。 Box (SOP) 開 use divisions → instance;Noise (CHOP) 微位移、另一顆 Noise (CHOP)r g b 上色,點數用 Info (CHOP) num points 同步;Constant (MAT) 開 transparency 做半透。
  2. 音樂頻譜長條圖。 斜線資料餵 tx 排開、頻譜能量餵 scale y;Math (CHOP) 放大變化量;Box (SOP) 的 anchor 改到下緣讓長條往上長。
  3. 圓形頻譜。 基礎資料換 Circle (SOP)Pattern (CHOP) ramp range 設 360 餵 rz,整體偏移 -90 度讓長條立在圓面上。
  4. 彩色星星(挑戰)。 Sphere (SOP)Particle (SOP)Sort (SOP) random 當資料點,Grid (SOP) 當基礎、Text (TOP) 星星接 Constant (MAT) 當材質;開 transparency、關 depth test。

影片章節

時間
內容
回顧 SOP 渲染流程:Geometry/Camera/Light → Render
多個 geometry/light 要手動輸入名稱(直接拉會取代)
進入 Instance:用資料點複製基礎圖形
Geometry 第三個 tab 打開 Instancing
用 Rectangle 4 個點做第一個 instance,p0/p1/p2 → translate
加 Noise 讓點位移;default instance OP 與欄位覆蓋
資料點數必一致,否則報 OP must generate the same number of instances
彩色魔術方塊範例開始
Box 打開 use divisions(3×3×3)
sample rate 設 64、end 設 1 對齊數量
用 Info CHOP num points 自動同步點數
Constant MAT + transparency 做半透明
音樂頻譜長條圖範例:波形餵 scale y
改 Box anchor(基準點)讓長條往上長
圓形頻譜:Pattern ramp 360 餵 rz、偏移 -90 度
圖片轉 instance 資料(TOP to CHOP)
彩色星星:Grid+Particle+Sort random+Text 星星
透明星星關 depth test,避免互相遮擋
 
⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑
Luxmin Institute (互動研究院) on Patreon
教學講的是觀念,工具則是我們在真實展場裡跑過、改過、確定能用的東西。TD 元件、專案檔、校正與製作流程都陸續發佈在 Patreon 上,免費層可以先看 Demo 與公開工具,付費層取得完整檔案與更新:
https://www.patreon.com/cw/LuxminInstitute
最新的活動動態與報名資訊:
https://www.threads.com/@luxmin.institute
 
如有相關專案或其他需求,請洽 luxmin.art