第三章 東方風格雲紋分析
3.3 立體雲紋結構分析
國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
18
3.3 立體雲紋結構分析
立體雲紋圖樣的部分大多都出現在古文物等雕刻物上,雕刻品上的雲紋要呈 現出立體感,最重要的就是在雲紋的捲曲部分加上深度的變化,利用高低的落差 將雲紋的紋路立體感呈現出來,也因為雕刻的技巧比較精細與費工,在現實生活 當中要設計出這樣的裝飾紋路往往也較費時也不易取得,另一方面 L-system 的 特點就是其自我相似及重複性,而如果我們可以利用將這些重複性質很高的紋路 轉換為 L-system 的語法當中,或許生成立體的雲紋會簡單許多。
圖 3.10 立體雲紋於雕刻品上的應用
根據上一小節的雲紋分析,本研究的重點將著重於在「朵雲紋」與「如意雲 紋」及「雲尾」的部分進行分析,並可隨使用者的喜好可選擇性地搭配雲尾,而 團雲紋的部分則會利用 L-system 的語法來控制,將所生成的朵雲紋與如意雲紋 加以組合,則可以更加多元化地生長出不同風格的立體雲紋,我們先定義如圖的 模擬符號,在平面雲紋下,可以將其雲朵頂端與雲朵尾端想像為一個一個的“圓”
所組合而成,而其所相對應於立體雲紋的配對就定義為“球體”,直覺地,目的 就是將原本利用圓所組合而成的平面雲紋,將其利用球體推疊組合起來,而至於 球體與球體之間的推疊規則,我們將留到 4.2 小節研究方法中做更詳細的介紹,
雲頭的部分是使用圓來模擬,至於雲尾的部分,由於雲尾本身就帶有使雲看起來 具有飄逸的感覺,所以常常會有自然彎曲的平滑曲線,考量到平滑曲線必須要對 應為立體的彎曲弧度,我們將其平面曲線從雲朵與雲尾的交界處開始只要有遇到
‧
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
20
表 2 朵雲紋、雲尾的平面轉換立體之模擬 平面雲紋圖樣 平面雲紋與立體雲紋的結構分析
朵雲紋
雲尾
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
21
第四章 研究方法與步驟
4.1 研究步驟
在實作立體雲紋 L-system 語法前,先將系統大略的步驟以流程圖來做說明,
從平面雲紋所觀察到的資訊,例如雲紋中圓與圓之間的比例、位移及角度這些資 訊我們必須先將之定義清楚,以便於之後語法規則上對於參數的使用,並且再根 據初始值 Axiom 所定義的規則語法及括弧內的參數作判斷,系統會依據參數的 判斷跑相對應的生長規則,使用者只須在 Axiom 的地方下指定的參數即可。根 據圖 4.1 系統流程圖,系統最為核心的部分即為 L-system 語法根據不同條件的 判斷遞迴呼叫的過程,這個步驟包含了雲朵的生長、雲尾的延伸、以及不同雲朵 之間的結構呈現,而由 Axiom 中之參數統一指定立體雲紋的生成規則總類,系 統在逐步生成雲紋之時,整體結果之呈現即為一個動態的立體雲紋生長過程,細 節部分的語法流程說明則如圖 4.2。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
22
圖 4.1 系統流程圖
圖 4.2 L-system 立體雲紋生成規則流程圖
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
23
請參考圖 4.2,圖中有箭頭再次地指向規則本身則代表此規則會進行自我呼 叫的迭代,對於 L-system 語法的流程我們可以大略的將規則以巢狀的圖示表達 出層層遞迴的概念,其中雲朵的生長即可分為五種主要規則:C1-A( )、C1-B( )、
C2( )、C3( ) 、C4( ),皆會自我呼叫遞迴生成不同的雲朵結果,雲尾的規則分為 tail( )、multi-tail( ),分別負責產生雲尾一段一段的彎曲變化以及多條雲尾的生成,
雲朵及雲尾之組成則藉由 SYM( )這項規則來定義,根據結構的不同產生相對應 的雲朵及雲尾組合,至於 Cloud1( )則是負責在指定相同結構下進行結構式雲紋 的重複生成,Cloud2( )則是在不同結構與結構之間的重複生成,如此一來,東方 風格雲紋可以利用此 L-system 規則轉化成為較有系統的生成方式,產生出許多 不同樣式的立體雲紋結果。
在此章接下來的小節當中會依序介紹針對雲朵的生成方法、根據不同動態模 擬所生成的雲尾結果、最後則是將雲朵與雲尾組合起來以及搭配結構化的語法將 雲朵與雲朵之間產生更多不同的組合方式。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
24
4.2 Parametric L-System
從相關研究 Parametric L-system 來看,Prusinkiewicz 不僅僅只是提出一個具 有語言式可結構化地描述出植物逐步生長的過程,另外在不久後又提出一個概念 稱為”turtle interpretation of L-system”[5][6],想像為一個 turtle 在三維空間當中 的行徑過程,可以將原先文字串列並搭配指定的參數轉換為相對應的幾何模型並 呈現在三維空間當中,如圖 4.3。
圖 4.3 Turtle interpretation of L-system 之方向軸
從上一小節所述,我們的立體動態雲紋之生成方式必須利用 L-system 之生長規 則成長,想像雲紋的生長是一個 turtle 根據我們所下的規則在行徑,而在行徑的 過程逐步畫出相對應的物件,構成在三維空間分佈的一連串物件,而所呈現出來 的結果就是立體的雲紋圖樣,而對於立體雲紋的許多規則,如表 3 所列,各種 的符號有其相對應的動作,且座標環境是三維的空間,在接下來要介紹的規則語 法皆是由此表所對應的動作組合而成。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
25
表 3 L-system 符號與生長動作對應
符號 相對應之動作
#define Define parameter
Axiom Axiom 初始值
& Pitch down
^ Pitch up + Turn left
- Turn right / Roll left
\ Roll right ] Pop matrix [ Push matrix
| Rotate 180°
g translate O Draw sphere
ran(x) Generate 0~x random parameter
@Gs Start draw cylinder
@Gt Tangent
@Gc End draw cylinder
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
26
在建置與定義立體雲紋圖樣時目前的方法策略是將雲頭、雲尾及雲紋結構三 大類分開處理,有負責生成雲頭的函式,例如 C1-A、C1-B、C2 等;也有負責生 成多重雲尾的函式,tail 與 milt-tail;以及將雲紋組合起來的結構語法規則,SYM、
Cloud1、Cloud2,在接下的小節當中會依序針對雲頭、雲尾、以及立體雲紋結構 的語法做更詳細的方法說明。
首先以下則是系統的基本參數設定,目前 STEP 設定為 25,這個參數會搭配 Animation 參數之設定以調整出動態的雲紋生長過程,動態參數的設定上 Step = 2;
Swap interval = 5,即表示每兩個 Steps 用一個 frame 呈現出來,更可以設定 frame 交換的速度,目前設定為每 5*0.01 秒做置換,這些參數皆可以使用者的需求做 進一步設定以符合裡的動態結果。
Rule parameter define:
/* --- System define --- */
#define STEPS 25 Lsystem: 1
derivation length: STEPS
/* --- Animation define --- */
Step: 2
Swap interval: 5 *0.01 s
‧
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
28
C1-A:
圖 4.4 朵雲紋 C1-A 生長規則流程圖
如圖 4.4 所示,為 C1-A 方法之流程圖,依序為傳統平面雲紋圖樣之參考、
依照其圓與圓之間位移量與旋轉角度模擬示意圖、模擬雲朵末端之結合與相對應 的立體雲紋生成結果。下一頁為生成朵雲紋 C1-A 的 L-system 語法規則,C1-A 這個函式會根據 Axiom 所給定的參數進行遞迴呼叫在相對位置上生成球體模擬 出立體感的朵雲紋,而在 C1-A 規則當中有四個參數,d0 用於控制球體之間的位 移量、db 用於控制球體的大小、n 用於控制 C1-A 朵雲紋之球體生成數量、T 則 是將雲尾的參數傳遞下去用於產生相對應的雲尾結果,至於要生成雲朵末端勾捲 的部分我們在這使用寬度由寬至細的平滑圓柱體搭配角度與旋轉變化以模擬出 平面雲紋當中勾捲的特色,搭配的規則語法為 C1-Aend,其中的參數 c 為控制漸 變的圓柱體其疊代呼叫次數,而在疊代過程當中,參數 w 用於調控圓柱體的寬 度調整。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
29
圖 4.5 朵雲紋 C1-A 幾何結構生成模擬步驟
圖 4.5 為系統隨著遞迴的過程配合指定旋轉角度與位移量逐步地將球體畫出,且 球體亦會隨時間而成長、圖 4.6 則是系統逐步所生成出來的朵雲紋 C1-A 結果。
圖 4.6 朵雲紋 C1-A 系統生成之逐步結果
‧
L-system 語法規則(C1-A):
/* --- C1A define --- */
#define C1Aang1 80
#define C1Aang2 11
#define C1Aang3 30
#define C1Aang4 5
#define CR 0.87
C1Aend(c) : c > 0 C1Aend_s(c)C1Aend_e(c,1.6) C1Aend_s(c) #(0.2)@Gt(1)@Gs
C1Aend_e(c,w) : c > 0
-( C1Aang3)/( C1Aang4)f(0.9)#(w*CR)@Gc(10)C1Aend_e(c-1,w*CR)
/* End Cloud Tail */
C1Aend_e(c,w) --> -(20)/(15)@Ge(80)@O(w)
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
31
C1-B:
圖 4.7 朵雲紋 C1-B 生長規則流程圖
基於同樣的雲紋圖樣,C1-B 採用另一種管狀立體形式來模擬生成,如圖 4.7 之流程圖所示,而中間詳細的逐步生成過程可以再參考圖 4.8,從初始值設定以 及隨著疊代的次數增加、位移量與角度的累加,管狀物件則可慢慢地勾勒出平面 雲紋圖樣的外圍輪廓,模擬出具流線美感的立體雲紋圖樣,圖 4.9 則是系統所逐 步生成之動態結果。
圖 4.8 朵雲紋 C1-B 幾何結構生成模擬步驟
圖 4.9 朵雲紋 C1-B 系統生成之逐步結果
‧
L-system 語法規則(C1-B):
/* --- C1B define --- */
C1B(T) [+(55)g(4)[-(75)C1Bcurve1(1)]]
[-(40)g(4)[-(65)C1Bcurve1(1)]]
[+(145)g(4.5)[-(70)C1Bcurve1(1)]]
[-(130)g(4)[-(60)C1Bcurve1(1)]]
[-(115)g(5)[-(120)C1Bcurve3(1)]]
C1Bcurve1(s) @#(4)#(C1BWid1)@Gr(1)@Gt(1.0)@GsC1Bcurve2(s) C1Bcurve2(s) -(C1Bang1)/(C1Bang2)C1BLine1(s)C1Bcurve2(s*C1BR1) C1Bcurve3(s) @#(3)#(C1BWid2)@Gr(1)@Gt(1.0)@GsC1Bcurve4(s) C1Bcurve4(s) -(C1Bang3)\(C1Bang2)C1BLine2(s)C1Bcurve4(s*C1BR2)
/* Draw Cylinder */
C1BLine1(s) g(s)#(s*C1BWid1)@Gc(5) C1BLine2(s) g(s)#(s*C1BWid2)@Gc(5)
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
33
C2:
圖 4.10 朵雲紋 C2 生長規則流程圖
圖 4.10 所示為朵雲紋 C2 之生成流程圖,中間則是系統在生成 C2 之許多參數的 設定,詳細的逐步模擬過程如圖 4.11 所示,而最後的逐步生成結果可以參考圖 4.12,利用倍數的設定可以將管狀物件隨著疊代的增加,使結果由寬變細,模擬 出平面雲紋圖樣的圓弧勾勒狀觀感。
圖 4.11 朵雲紋 C2 幾何結構生成模擬步驟
圖 4.12 朵雲紋 C2 系統生成之逐步結果
‧
L-system 語法規則(C2):
/* --- C2 define --- */
#define C2R1 0.9
#define C2R2 0.92
#define C2Wid1 1
#define C2Wid2 1
#define C2ang1 14
#define C2ang2 0.5
#define C2ang3 18
#define C2ang4 0.5
Axiom : +(10)[C2(0)]
[+(135)g(1.5)milt-tail(T,T)]
C2curve1(s) --> @#(1)#(C2Wid1)@GsC2curve2(s)
C2curve2(s) --> -(C2ang1)/(C2ang2)C2Line1(s)C2curve2(s*C2R1) C2curve3(s) --> @#(1)#(C2Wid2)@GsC2curve4(s)
C2curve4(s) --> +( C2ang3)/(C2ang4)C2Line2(s)C2curve4(s*C2R2)
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
35
C3 :
朵雲紋編號“C3”方法說明,根據所參考到的平面雲紋圖樣來看是稍微較 大朵的朵雲紋,可參考如圖 4.13 之流程圖最左方一張,我們將其生長結構定義 為從側面依螺旋狀路線來生長,與 C1-A 的主要差別之處在於其生長的方向及旋 轉角度不同,利用側面生長的方式模擬出較大朵的朵雲紋。
圖 4.13 朵雲紋 C3 生長規則流程圖
圖 4.14 朵雲紋 C3 幾何結構生成模擬步驟
在 C3 之 L-system 語法規則上與 C1-A 相似,比較特別一提的是由於 C3 其生長 的方向是從側面螺旋狀旋轉,C3 函式當中之參數 d0、db 之用途與 C1-A 相同,
‧
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
37
C4 :
編號“C4”則是我們系統所要生成最大朵的朵雲紋, 在建構大朵的立體雲 紋時必須考慮整朵雲紋的大輪廓必須接近一個橢圓的外觀,而要將這個大範圍利
編號“C4”則是我們系統所要生成最大朵的朵雲紋, 在建構大朵的立體雲 紋時必須考慮整朵雲紋的大輪廓必須接近一個橢圓的外觀,而要將這個大範圍利