實例化是一種讓我們在 TouchDesigner 中製作好的一個物件,能夠無限複製到任何地方的方法。想要實例化物件,我們需要先準備好 4 種核心元素:
- 模型:最基本的物件外觀,可以是 2D 多邊形或 3D 模型。
- 材質:用來定義模型的外觀,讓貼圖能附著到模型上。
- 貼圖:定義物件的外觀,通常是一張圖片。
- 座標:定義物件要被複製到哪個位置,想要複製多少物件,就必須輸入多少個座標。
而實例化主要使用 Geometry COMP 來實作,因此最後會需要透過相機和 Render 來渲染結果,後續我們還可以用 TOP 對實例化的結果繼續進行製作。
實作目標
本文將教你把 TouchDesigner 內建的香蕉圖片大量實例化到隨機的位置,其中我們會接觸到最基礎的 SOP、MAT、亂數生成和相機渲染功能。下圖為本文要教學的實例化節點連接方法:
實作步驟
建立核心 4 元素
- 建立 SOP > Rectangle 矩形多邊形。
- 建立 MAT > Constant 基礎材質。
- 調整 Constant 的 Common > Blending (Transparency) 為 On,開啟透明功能。
- 建立 TOP > Movie File In 影像輸入。
- 連接 TOP > Fit 修正影像為方形。
- 連接 TOP > Null 分割功能,完成影像輸入模板。
- 建立 CHOP > Noise 雜訊生成器。
- 調整 Noise 的 Noise > Type 為 Random 隨機模式。
- 調整 Noise 的 Channel > Channel Names 為 tx ty,分別代表 XY 軸的隨機值。
- 連接 CHOP > Null 分割功能,完成隨機座標生成模板。
完成以上步驟,目前應已準備好下圖中的實例化核心 4 元素:
實作物件實例化
- Rectangle 連接 Geometry,將多邊形置入 3D 空間。
- 拖曳 Constant 到 Geometry 上,選擇 Param:Material。
- 調整 Geometry 的 Instance > Instancing 為 On,開啟實例化功能。
- 拖曳香蕉的 Null 到 Geometry 的 Instance 2 > Instance Textures,指定香蕉影像作為物件的貼圖。
- 拖曳隨機座標的 Null 到 Geometry 的 Instance > Translate OP。
- 點擊 Geometry 的 Instance > Translate X 和 Translate Y 右邊的箭頭按鈕,分別選擇 tx 與 ty,指定物件使用隨機座標進行定位。
點擊 Geometry 並按下 Shift + H 放大觀察,可以發現現在香蕉的太大了,需要縮小一些。
調整物件大小
- 長按 Rectangle 的 Rectangle > Size,用拖曳的方式將 XY 數值同步縮小至 0.2。
再檢查一下 Geometry,縮小 Rectangle 的 Size 後,香蕉的尺寸看起來正常多了,接下來要來進行渲染。
渲染實例化成果
- 建立 TOP > Render 來渲染 Geometry 的內容,但是因為還沒有建立相機,所以看不到任何東西。
- 建立 COMP > Camera,這時 Render 就能渲染出畫面了,只不過這坨香蕉離得有點遠。
- 調整 Camera 的 Xform > Translate 的 Z 值為 2 來拉近相機,香蕉看起來就很大了!
實作成果
最後選取 Render 並按下 Shift + H 放大觀察,大小合適的香蕉已經用實例化的方式複製到隨機位置了!大香蕉真的很奇妙!