分形(Fractal)在計算機圖形學中的意義和應用?
計算機圖形學的教材中會提到分形這個概念,在隨機地形生成上也有應用,一些藝術家也利用分形創作出了讓人驚嘆的圖像。能否具體解釋一下分形在計算機圖形學中有何實際應用?最前沿的技術已經達到什麼程度了?
除了遊戲,實際應用最多的是圖像壓縮,因為 IFS 有個定理:壓縮映射構成的 IFS 非空緊解惟一,而壓縮映射的表示比圖片簡單多了。
1省存儲空間,圖形可以用幾個簡單的參數存儲
2省運算時間,渲染一個圖形時,只需要渲染局部然後複製到整體,這裡優化空間很大3節約美工開支,舉個例子,用分形可以畫閃電,樹杈,雪花,地毯,火焰,星空,草地等成噸的花紋,並且只要稍微調幾個參數就能讓整張圖看起來完全不一樣,如果用人力一張一張畫無疑不現實,如果用隨機生成的方式,則會面臨種種看起來不自然,雜亂或者缺乏美感的渲染結果,並且渲染速度也會比較慢4還是節約美工開支,舉個例子,我的遊戲裡面要出現一個類似於帝國死星的東西,我又請不起美術設計,我就按照分形的方式在一個灰白色球面上挖幾個洞5更加靈活,調高或者調低畫質的時候,增減層數即可,傳統的貼圖方式要麼提供高中低效三套貼圖要麼提供在低效下看著很詭異的一套貼圖ps:前沿技術不清楚首先,我推薦兩個視頻:
分形的維度與天神的異能--超右腦覺醒9_土豆視頻
分形與粗糙的藝術_網易公開課
概述
使用CAD軟體繪製的計算機圖形很擅長用基本圖形來表現人造物,如二維平面中線條、矩形、多邊形以及曲線,又或三維空間中的體和曲面。而這些幾何圖形和用於繪製圖形的常用工具常在表示**大自然中的大多數物體**(如雲、樹木、靜脈、波浪和泥漿……)時被證明是不足夠的。最近混沌理論和分形幾何大興,因為我們發現世界上許多過程可以用這個理論來更準確地描述。計算機圖形產業正在快速結合這些技術,併產生了令人驚嘆的美麗圖像以及逼真的自然景觀結構。
在下文中,將給出一些更常用的技術的描述以及每個技術的示例。我們應該認識到,示例通常由一個具有大而不是無窮大變化的圖像產生,而這些變化取決於參數、比例和觀察方位的設定。
混沌系統
圖1:
圖1中,經典Mandelbrot圖像大大推廣了混沌和分形體系。Mandelbrot集被一種通用技術創造出來,其函數形式:
用於創建一系列複雜的變數。 至於Mandelbrot集,函數是:
該系列是針對複平面某些分區上的每個初始點zo生成的。 要在計算機屏幕上繪製圖像,所考慮的點根據其系列的行為進行著色,該行為將採用以下方式之一:
1. 衰減到0;
2. 趨於無窮;
3. 在若干狀態的振蕩;
4. 沒有明顯的圖案。
在圖1中,情況1發生在內部,2在外部,3和4在邊界附近。 該集合的邊界表現出無限的細節和變化(邊界不會出現平滑,無論縮放因子如何),以及自相似性。
使用相同技術但不同函數的例子被CA Pickover稱為生物態。其使用函數:
並根據常數c的值產生許多生物學生物,參見圖2。
圖2:
另一個產生銀河系漩渦效果的例子是使用以下函數得到的。
圖3顯示函數的部分以
圖3:
奇異吸引子
被稱為「hopalong」的第二項技術常用來代表混沌系統的奇異吸引子,例如知名的Julia集。在這種情況下,由系列產生的每個坐標被繪製為一個小點,即:我們從一個點跳到另一個點。對於平面上的圖像,該系列是一個復變數的方程,否則有兩個相互關聯的方程,
一個關於x坐標的和一個關於y坐標的。如下面這個例子:
該系列的x,y坐標由初始點x0,y0和三個常數a,b和c指定。As an example see figure 4 where a=0.4, b=1, and c=0.
圖4:
有趣的是,對於奇異吸引子來講,初始點並不重要(除了一些特殊情況),即:所有初始坐標x0,y0都產生相同的圖像。 換句話說,這些圖像就是在顯示由系列產生的x,y對,任何初始點都將生成相同的點集合,儘管它們將以不同的順序生成。
另一個例子是Peter de Jong使用兩個方程:
這裡產生出現三維的旋轉卷鬚,如圖5所示,其中a = -2.23,b = -0.65,c = 0.43,d = -2.43。
圖5:
牛頓迭代法
這項技術是基於牛頓-拉夫遜方法求解多項式方程
該方法生成一個系列,其給出第n + 1個近似解通過
其中f"(zn)等於zn處計算的f(z)的斜率(一階導數)。
要使用這種技術創建一個2D圖像,平面的分區中的每個點都被用作解的初始猜測z0。這些點根據求的解或與解相距多長來著色。一個簡單的例子就是上面的一個應用,找到多項式z3 - 1 = 0的三個根。
圖6:
圖6顯示了複平面的實象和虛象的一小部分圖像。混沌系統的標誌是非常相似的初始條件可能會產生非常不同的行為。在圖示中有一些非常接近的點,有的非常快地收斂到解,而另一些非常緩慢地收斂。
擴散限制凝聚
許多迷人的圖像通過應用化學和物理學領域的理論而產生。舉個例子,擴散限制聚集或DLA,其特別描述了電解溶液中鋅離子在電極上的擴散和聚集。另一種更加有意思的描述則涉及一個被小酒館包圍的城市廣場。醉酒者離開酒館,在廣場周圍遊盪,直到他們終於找到了一個沒有意義的同伴,在那時候,他們躺下睡著了,傳來平靜的打鼾聲。卷狀結構是早晨睡覺人群的鳥瞰圖,見圖7。
圖7:
L-系統
最近對Lindemayer(簡稱L-Systems)重新有了興趣。其是一組字元串重寫規則, 它採用稱為「axiom」的初始字元串,並且在每次迭代中,用被稱為演變規則的其他字元串替換字元串中的每個字元。例如,考慮公理字元串:F + F + F + F和單個演變規則F - &> F + F-F-FF + F + F-F
現在,如果給予一些字元幾何意義,那麼我們可以繪製字元串了。 將這些幾何含義應用於例子的公理、演變規則,經過幾次迭代產生的字元串,就是公知的Koch曲線,其分形維數在1和2之間。演變規則可以指定經典分形曲線的全部範圍(例如van Koch雪花,空間填充曲線,如希爾伯特和Peano曲線,龍曲線以及kolam圖案)。
最近,L-Systems的用途是為了繪製在自然界中實際存在的對象,特別是植物的分支結構。圖8中顯示了從L-Systems生成的植物結構的三個實例。
圖8:
L-Systems的重要特徵之一是只需要少量的信息來表示非常複雜的對象。因此,圖8中的灌木叢 雖然包含數千條線,但可能它們在資料庫中僅通過幾個位元組的數據進行描述,實際的灌木僅在需要視覺呈現時生長。合理使用設計好的L-System演算法,則可能設計出一個專門繪製植物類的L-System演變規則。
迭代函數系統
IFS不像在L-系統中使用線條,而是用發生器描述的其他多邊形來代替多邊形。在每次迭代中,每個多邊形被發生器中的多邊形適當縮放,旋轉和翻譯版本替代。
根據這個幾何描述,我們也可能導出一個跳躍性的描述,其給出了將幾何模型迭代為無窮大後繪製出的圖像。事實上,這是平面上的一組收縮變換集合,每個具有分配概率則以下面的形式給出
為了運行系統,選擇一個初始點,並且在每次迭代中,一個變換隨機地依賴於所分配的概率,生成的點(xn,yn)被繪製在頁面上。
在L-系統的情況下,如果可以確定所需圖像的IFS代碼(通過稱為Collage定理),則可以實現大的數據壓縮比。 代替存儲非常複雜的幾何對象,只需要存儲IFS生成器,並在需要時生成圖。
小結
上述大部分的真正應用是從我們所生活的世界模擬自然現象的嘗試中發現的。許多數學技術作為創造驚人的圖形圖像以及非常自然的結構已經在計算機圖形產業中找到了一個堅實的地位。 隨著技術變得越來越標準化,並且發現了更多的應用領域,它們可能被納入CAD、繪畫和圖像處理軟體包中的標準工具之一。
Appeared in Interface Magazine, December 1990
Written by Paul Bourke
歡迎訪問我的博客:Hewes的博客 - CSDN博客
比如用編程模擬自然系統。
推薦閱讀: