TP Notes
全部
CSS
SVG
資源收集
HTML
其它
關於我
Translate
2020年12月22日 星期二
有趣的 SVG filter - feTurbulence
一直都在寫演算法及前後端架構程式,雖然對 2D/3D 計算還算略懂,自行開發的繪圖函式也只是基本的點、線、面、材質貼圖等,對於圖形學的東西接觸得不多,以前也只是和美術合作,由他們先做好圖我再拿來用,對於那些繪圖軟體怎麼計算出那些特效並不是很瞭解,開始玩 SVG 濾鏡後才慢慢理解,這些圖形學的演算法相當有趣,雖然可以由美術人員先做好再拿來用,如果自己做的話似忽可以做到更靈活的變化。 SVG 的濾鏡中 feTurbulence 就是一個當初想都沒想過的東西 參考資料: [這裡](https://drafts.fxtf.org/filter-effects/#feTurbulenceElement) , [這裡](https://cdc.tencent.com/2019/07/18/%E9%9A%8F%E6%9C%BA%E4%B8%8D%E5%8F%AA%E6%98%AF-math-random-%E5%89%8D%E7%AB%AF%E5%99%AA%E5%A3%B0%E5%BA%94%E7%94%A8/) , [這裡](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feTurbulence) , [這裡](https://www.zhangxinxu.com/wordpress/2020/10/svg-feturbulence/), 和 [這裡](https://zh.wikipedia.org/wiki/Perlin%E5%99%AA%E5%A3%B0), 以及一個 [綜合教學](https://www.oxxostudio.tw/articles/201410/svg-tutorial.html) 這裡還有 C++ 的函式庫 [libnoise](http://libnoise.sourceforge.net/index.html) ,[libperlin](https://github.com/copperwater/libperlin) 參數說明 ``` baseFrequency 基本頻率,預設 0 ,可以設兩個值 x y numOctaves 倍頻數量,預設 1 seed 起始值,預設 0 stitchTiles noStitch 不理會邊界(預設),stitch 邊界平滑 type turbulence 混亂(預設),fractalNoise 分形噪聲 ``` 先來一個簡單範例 ``` $mmcode(r1) ```
type
turbulence
fractalNoise
numOctaves
1
2
baseFrequency
0.02
0.03
seed
1
2
那麼這個看起來就是一張好像亂七八糟的圖,有什麼用處呢 ? 既然是用來模擬大自然可見的一些有點亂的東西,例如雲,火焰等,這張圖就是一個基底, 有了基底就要拿來做點變化,這個時候得套用另一個強大的濾鏡 feDisplacementMap ,來製造有趣的影像 先來一個模擬雲朵的範例 ``` $mmcode(r2) ```
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言