如何用processing或其他編程工具來實現類似C4D中的漸變湍流效果?

C4D中的漸變著色可以附加湍流屬性,效果如圖。

左上是漸變圖案添加湍流效果的示意,右邊是更高強度的湍流效果,其餘圖是湍流效果的其他可控屬性示意。

如何在processing或其他編程工具中實現這種效果?

這是應用了湍流效果的圖形

這應該是種隨機性的效果,通過計算生成的,可以改變變化的強度。和簡單的圖形疊加不同之處在於,這種湍流的變化是基於漸變的過渡線產生改變的。

左圖是沒有湍流效果的普通線性漸變,最右是高強度的湍流漸變效果

在網上查了蠻久的,沒得到太多資料。

應該用什麼樣的演算法去移動邊緣的像素來實現這個效果?這種圖像模式有特定的名稱嗎?

如果沒有,需要自己去設計的話,應該從哪裡開始上手,要學習哪些具體課程?

麻煩大神們提供一個調查的方向或者思路,謝謝。


首先,你要實現幾種Noise函數以及它的變種FBM,Turbulence等等。這需要先了解Noise,具體資料請自行搜索。

然後調用如下公式:

f = 20
w = smoothstep(0.1, 0.9, x)
k = your_noise_func_2d(x*f, y*f)
h = x + w*k

其中x,y表示圖像的像素位置,f表示頻率,w表示振幅.得到的h為雜訊結果.

把h以灰度圖像的方式顯示:

不同的your_noise_func_2d函數會有不同的效果.

然後就是對h值上彩色了.這就是傳說中的偽彩,所謂偽彩就是給一個數值做一個RGB的顏色映射.具體就是寫三個函數r = f1(h); g = f2(h); b = f3(h);

如:

r = h
g = 0.32 + h/4
b = 1 - h

如:

r = h
g = pow(h, 6)
b = pow(h, 3)*0.5

如:

h = h*1.5
b = pow(max(h,0), 1.5)
g = pow(max(h,0),2)*0.4
r = pow(max(h,0),3)*0.15

如:

r = 1.5*h
g = 1.5*h*h*h
b = pow(h, 6)

還有很多很炫的偽彩效果:


推薦閱讀:

如何看待c4d419破解版出來的同時,oc渲染器也有了最新版本的破解版?
學習C4D(cinema 4D),求優秀的網站推薦?
已有ae基礎,請推薦c4d教程,零基礎,用途是mg動畫,偏飛碟說那樣的,扁平化風格?

TAG:圖像處理 | 計算機視覺 | Processing編程語言 | MaxonCinema4D |