Max/MSP/Jitter 官方教程翻譯11 - 矩陣混合

nintyuui發表於2021-09-09

本教程探討用 jit.scalebiasjit.op 實現交叉漸變的技巧。它比 jit.xfade 方法複雜一些,但更靈活。

混合和交叉淡化

講解了 jit.xfade 用縮放(乘法)和加法以不同的比例混合兩個矩陣。本教程將使用 jit.scalebiasjit.op 物件來自動執行這些數學運算。

這樣做有一些好處。首先能清楚地演示混合和交叉漸變的數學過程。其次能看到 jit.op 如何對兩個輸入矩陣做數學運算。(在中展示了 jit.op 和標量值如何作用於單個矩陣)。第三,它可以分別指定兩個矩陣的縮放因子,比 jit.xfade 更靈活。最後,jit.op 可以實現許多不同型別的數學運算,我們可以嘗試其他組合矩陣的方法來得到不同的視覺效果。

再說 Mixing

開啟教程 patch

圖片描述

用乘法和加法混合/交叉漸變矩陣

縮放因子設定為 0~1 之間的 jit.scalebias 將兩個影片 scaled down(變暗)。下面會看到用 jit.op 的不同:兩個入口的輸入都是矩陣。這時 jit.op 分別對每個值執行指定的數學運算,將左矩陣中的每個值與右矩陣中的對應值配對。這樣我們可以把兩個矩陣的所有值相加來混合影像。

這些乘法和加法的結果與 jit.xfade 物件做內部運算的結果一樣。可以試試用 patch 右上角的控制元件來交叉漸變影片(與上一章幾乎完全相同)。

啟動 metro 並使用 Mixer slider 執行從影片 A 到 B 的交叉漸變。

請注意,漸變值直接作為影片 B 的縮放因子,同時 !- 1 物件用 1 減去該值,得到影片 A 的縮放因子。這樣,兩個縮放因子的和總是等於 1,就像在 jit.xfade 中一樣。

使用其他運算子組合矩陣

加法是兩個矩陣最常見的運算。更改 jit.op 的 op 屬性,可以嘗試許多其他運算並檢視其視覺效果。

Transition Time 數字框中設定一個非常長的交叉漸變時間(例如 10000 ms)。在 Operator 彈出選單中選擇 + 以外的運算子。現在點選 Go To switch 開始漸變,可以看到兩個影片矩陣的運算如何進行。

彈出選單包含 jit.op 各種運算子中的一部分。以下是選單中選項的簡要說明。

  • + 把 B 值加到 A

  • -m 從 A 中減去 B,然後取模將結果折算回所需的數值範圍

  • max 使用 A B 中較大的值

  • absdiff從 A 中減去 B,然後取差值的絕對值

  • | “按位或”; 二進位制操作,A 或 B 為 1,結果為 1

  • ^ “按位獨佔或”; 二進位制操作,A 和 B 值不相同,結果為 1,否則為 0

  • > 如果 A 大於 B,結果為 1(或 char 255),否則為 0

  • < 如果 A 小於 B,結果為 1(或 char 255),否則為 0

  • >p 如果 A 大於 B,結果為 A,否則為 0

  • <p 如果 A 小於 B,結果為 A,否則為 0

其他運算子請檢視 jit.op 物件參考文件。

你也可以直接拖動 jit.scalebias 上方的數字框,單獨設定混合比例。還可以嘗試超過 0~1 範圍的值。

jit.scalebias vs. jit.op @op *

這個 patch 用 jit.scalebias 來做縮放乘法,而沒有用 jit.op 與 * 運算子。為什麼呢?

jit.op 操作 char 資料時,val 屬性範圍是 0.0~1.0(浮點數)或 0~255(整數)。如果想將 char 資料乘以 0~1 的某個值,用 jit.op 就可以。如果想乘以其他範圍的值,就要用 jit.scalebias,它允許 scale 的值超過 0~1 範圍。 jit.scalebias 僅用於處理 4 平面 char 矩陣,在這個例子中沒問題。所以在這個 patch 中,因為是在 4 平面 char 矩陣上做運算,並且想使用超過 0~1 範圍的縮放因子,所以使用了 jit.scalebias

小結

你可以用 jit.op 對兩個不同矩陣中的值執行各種數學運算。 jit.op 對每個值執行指定的數學運算,將左矩陣中的每個值與右矩陣中的對應值配對。當兩個矩陣的 dim,planecount 和 type 屬性不同時,jit.op 使用左入口矩陣的屬性。在混合兩個影片影像時,不同的數學運算子可以生成各種視覺效果。



作者:Kidult
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3209/viewspace-2816242/,如需轉載,請註明出處,否則將追究法律責任。

相關文章