基本結構
布料編織的基本結構如上圖:紗線彎成波浪形交疊而成,相鄰的平行線在同位置分別爲波峯、波谷。將平行 X 軸的紗線稱爲「緯線」、平行 Y 軸的紗線稱爲「經線」;緯線的波峯跟經線的波谷交疊,反之亦然。
Sine 函數
- 用 Math 節點的 Sine 函數來彎曲;
- 因爲 Sine 函數的重複週期是 2pi,所以先用 Vector Math 的 Scale 運算將座標系放大 2 倍,再將分離出來的 X 軸乘上 pi (直接在 Multiply 運算的第 2 個 Value 欄位輸入 pi、按 ENTER,Blender 自動轉換爲圓周率),使 X 軸的範圍達到 2pi,如此就可觀察到 Sine 函數的一個完整週期。
緯線
將座標系放大 4 倍,呈現 2 個完整週期。
相鄰兩條線必須錯開半個週期,錯開方法詳:http://digitized-life.blogspot.com/2020/12/blender-28x-procedural-tiling-materials.html
經線
用製作緯線同樣的方法製作經線。上圖顯示經線的波峯和緯線的波谷在同樣位置,因此必須將經線於 Y 軸平移半個週期,如下圖。
經緯交織
用 Math 節點的 Maximum 運算將經緯線交織在一起:Maximum 在兩個數值間取最大值,也就是取疊在上方的紗線。
紗線
上圖的紗線是平面彎曲,實際的紗線是圓柱體。我們在經線的 Sine 函數後連結 Math 節點的 Absolute 絕對值運算,把負值的波谷也變成正值的波峯,產生直的緯線,如下圖。
將直的緯線乘上讓其彎曲的 Sine 函數,得到彎曲的緯線,如下圖。
用同樣的方法製作經線,但我們發現上圖並沒有產生交織的結果。原因在於波谷部分全部是負值,Maximum 最大值運算取到的都是正值的波峯部分。解決之道是在 Sine 函數之後加 1,使波谷部分都能 >= 0,如下圖。
線寬
在 Absolute 運算節點後連結 1 Color Mix 節點,混色模式選 Color Burn。我對Color Burn 的理解是:如果 Color2 比 Color1 暗,就把 Color 1 變成黑色,Color2 是白色(R=G=B=1)則不起任何作用。因此我們可以改變 Color2 的顏色來改變紗線的寬度。但因改變顏色太麻煩,所以將 Color2 設爲全黑(R=G=B=0),用 Fac 值來控制 Color2 的影響程度,數值愈大、紗線愈細。
References:
- https://www.youtube.com/watch?v=XtDQ5lUl_DM
- https://www.youtube.com/watch?v=91UDQnrZMqA
- https://docs.gimp.org/en/gimp-concepts-layer-modes.html
- https://photoblogstop.com/photoshop/photoshop-blend-modes-explained
- https://docs.unrealengine.com/en-US/RenderingAndGraphics/Materials/Functions/Reference/Blends/index.html
留言
張貼留言