Blender 3D:從新手到專業/Cycles中的程式化眼球
|
|
適用於 Blender 版本:2.70。 |
你之前學習過如何使用 Blender 內部渲染器僅透過程式紋理來建模眼球。本頁將使用 Cycles 渲染器重新進行練習。
注意:本教程的 BI 版本依賴於 Musgrave 紋理的一個特性,即某些設定組合產生了用於對眼睛虹膜建模的徑向脊的良好圖案。雖然 Cycles 也包含一個 Musgrave 紋理,但我無法重現相同的效果。但是,Cycles 擁有一個功能更強大的材質節點系統,尤其是透過轉換為極座標並應用徑向縮放,我能夠僅使用簡單的 Noise 紋理獲得合適的徑向脊圖案。
之前的教程建立畫素風格的眼睛使用影像作為虹膜紋理,而不是透過複雜的操作來生成程式紋理。這簡化了一些步驟,但也存在缺點。
- 如何建立這種影像紋理?你是手繪的嗎?如果解析度不夠高,或者圖案或顏色不對,你需要重新制作它。
- 它是一個單獨的檔案,你需要記住將其包含在你的專案中。Cycles 渲染器不(目前)支援將影像打包到.blend檔案中。
正如你將在下面看到的,程式節點設定提供了許多調整引數的機會,可以產生微妙(或不那麼微妙)不同的效果。這在無需付出太多努力的情況下就能實現極大的多樣性——當然,這在完成了節點設定之後。
本練習的建模部分與 BI 版本完全相同。如果你已經擁有用於 BI 教程的網格,請隨意重複使用它並跳過下一部分。否則,請繼續閱讀。
網格將由兩個經過修改的 UV 球組成,一個略微位於另一個球的內部。外部網格將使用一種既透明又反光的材質;在眼睛的前部,它將代表角膜(光線進入眼睛的地方),而在眼睛的其餘部分,它將為眼球新增光澤度。內部網格將構成眼睛的其他三個主要部分,這些部分從外部可見
- 鞏膜,眼球的白色部分
- 虹膜,環繞著實際讓光線進入的孔的各種顏色的肌肉環,以及
- 瞳孔,光線進入眼球內部的孔。
在物件模式下開始。刪除預設的立方體。 SHIFT + A 新增一個新的 UV 球形網格;24 個環和片段就足夠了。切換到正面檢視 NUM1 ,並選中工具架底部面板中出現的“與檢視對齊”框。這將是內部網格。
TAB 進入編輯模式;確保整個網格被選中; SHIFT + D 複製它,然後 S 稍微放大它以建立外部網格。(你可能會發現使用線框 Z 模式更容易操作。) H 暫時隱藏你剛剛建立的外部網格,以便更容易操作內部網格。

選擇 RMB 內部網格正面的單個頂點。現在按 NUM+ 四次以擴充套件選擇範圍,包括從這個正面頂點開始的第一個四個環的頂點。選擇範圍應該與右側所示類似。

現在使用序列 S Y 0KEY ENTER 將選定的頂點展平。接下來,使用 G Y 減少 resulting flattened disc 的凸出部分,並將其稍微移近眼球的其餘部分。結果應該與右側所示類似。

這足以塑造內部網格。現在開始塑造外部網格。取消隱藏它 ALT + H 。選擇 RMB 僅選擇最前面的頂點。在“網格”選單中,將“比例編輯”設定為“連線”,將“比例編輯衰減”設定為“根”。現在使用 G Y 將選定的頂點向前移動,同時使用滑鼠滾輪調整比例編輯影響範圍,直到你製作出一個與人類角膜比例合適的凸出部分。
好的,建模工作完成了,現在開始有趣的部分——在 Cycles 中建立材質。

虹膜圖案需要正確放置,以便徑向條紋以中心對稱的方式排列。為了控制虹膜紋理的放置,我們需要設定 UV 貼圖。
將你的佈局設定為包含 3D 檢視和 UV/影像編輯器檢視,如右側所示。在影像編輯器中建立一個新影像;這只是一個用於 UV 展開的虛擬影像,因此它的尺寸和內容無關緊要。
確保你在 3D 檢視中處於編輯模式。 H 隱藏外部網格,以減少混亂。切換到正面檢視 NUM1 。確保( A 一次或兩次)最初沒有選擇任何東西。選擇構成虹膜的頂點環,如右側所示。開啟 U nwrap 選單,並選擇“從檢視投影(邊界)”。這應該會展開選定的頂點,就像它們在正面檢視中顯示的一樣,並將它們整齊地放置在虛擬影像的邊界內,如右側截圖中的下視窗所示。
對於外層網格,您可以設定一個與之前在 Cycles 中的玻璃材質 中討論的類似材質。唯一的區別是,不要使用 1.45 (玻璃) 的 IOR,而是使用 1.33 (水) 之類的值,因為水是透明組織 (以及所有人類組織) 的主要成分。

眼白的材質需要一點紅色的血管紋理,但不要太多。這裡血管網路由一個具有非常高扭曲設定的波紋紋理節點提供。然後將其透過一個亮度/對比度節點:增強對比度以銳化邊緣,並降低亮度以使血管非常蒼白。然後將此值饋送到混合 RGB 節點,以在眼球主要部分的白色和血管的紅色之間混合。
原始教程在此材質中添加了一些光澤度。但是,由於角膜材質已經很光亮,並且已經覆蓋了整個眼球,因此在此新增光澤度似乎是多餘的。
這個很有趣,因為它需要最複雜的 Cycles 節點程式設計。

如前所述,我們必須將一些紋理座標從 直角座標 轉換為極座標。右側的節點組將實現這一點。看起來很複雜!但是,如果你一步一步地進行,就會更容易理解。
- 左上角的兩排各 3 個節點 (每個節點包含一個減法,然後是兩個乘法節點) 接收傳入的 X (上排) 和 Y (下排) 值,減去 0.5 以將範圍從 0..1 轉換為 -0.5..+0.5,乘以 2 使範圍現在變為 -1..+1,並取每個值的平方。然後將這些值相加並取結果的平方根 (0.5 次方),以給出點到原點的距離,範圍為 0..1。換句話說,它正在計算方程 。這是節點組的 Mag 輸出。
- 最下面一排節點將 X 除以 Y (實際上應該是 Y 除以 X,但這對於我們的目的並不重要) 來計算斜率,然後使用反正切函式來獲得此斜率的角度。此值以弧度表示,因此除以 1.571 ( 或足夠接近) 以將其轉換為 0..1 範圍。這將成為節點組的 Angle 輸出。

現在,我們在這個節點設定中使用上面的節點組。請注意“分離 RGB”和“組合 RGB”節點:它們不是分離/組合 RGB 顏色元件,而是XYZ 座標元件。在這兩種情況下,元件都是標量實數,因此從數學上講,這種對分離/組合 RGB 函式的 (濫) 用是完全正確的。還要注意我們如何忽略 B 元件 (即 Z 座標),因為我們只處理二維紋理。
分離出 X 和 Y 值後,這些值將透過我們上面建立的直角座標→極座標轉換節點組。但是請注意,Mag 值如何透過除以 4 來徑向拉伸紋理:這是獲得虹膜紋理中徑向脊線的秘訣。重新組合座標元件後,它們用於控制噪聲紋理,然後為虹膜材質提供凹凸貼圖。

但我們還沒完。 仍然有一些節點魔法需要施展,才能從虹膜的中心到邊緣獲得徑向顏色漸變。為此,我們將需要另一個節點組,如右側所示。它被稱為“重新縮放”:它接收一個在輸入範圍內的值 (由“In Low”和“In High”輸入定義) 並將其線性轉換為輸出範圍 (由“Out Low”和“Out High”輸入定義)。或者,使用數學符號 表示輸入值, 表示輸出值,以及 、、 和 分別表示 In Low、In High、Out Low 和 Out High,此節點組實現了變換 。

現在,以下是如何將 Rescale 節點組新增到我們的虹膜材質節點設定中。我們使用它來轉換 Mag 極座標 (到中心的距離),然後使用它來驅動一個顏色漸變,該顏色漸變實際上控制著虹膜的漫射顏色。在這裡,我從淺綠色到深綠色進行了漸變;您可以隨意替換您選擇的任何眼睛顏色和漸變。
在這裡,我只使用了一個簡單的黑色漫射材質。原始教程添加了一些紅色血管的微妙暗示,類似於鞏膜;如果你想,你可以在此處進行操作,但我認為效果太微妙,看不出來,所以我不費心了。

最終渲染結果可能如下所示。
上面的節點設定相當複雜,但它們提供了許多實驗的機會。
例如,在鞏膜材質中,嘗試調整亮度/對比度設定,看看它如何影響結果。讓紅色血管更明顯,眼睛就會看起來充血!
在虹膜材質中,你可以改變眼睛的顏色(當然)。但也可以嘗試改變徑向條紋:看看它們更大時是什麼樣子。我為什麼把“重新縮放”節點放在那裡?這是為了讓你增加或減少顏色漸變的效果,而無需編輯漸變本身。