Blender 3D:菜鳥到高手/Blender 記憶體管理
|
第一次閱讀本節可能會讓人有點困惑。如果你沒有立即理解,不要過於擔心;但隨著你越來越多地使用 Blender,複製物件或在物件之間共享設定,請隨時回來重新閱讀本節,希望它能讓你更清楚地瞭解 Blender 行為的一些細微之處。 |
瞭解 Blender 如何管理記憶體非常有用。Blender 文件中的幾乎所有內容——場景中的物件、場景本身、材質、紋理等等——都儲存在一個資料塊中。每個資料塊都有一個名稱,在相同型別的資料塊中必須是唯一的。每個資料塊可以被一個或多個地方引用,主要是在其他資料塊中——用 Blender 的術語來說,它有一個或多個使用者。例如,幾個不同的物件可能共享相同的材質,因此當你更改材質的特性時,它會自動更改所有這些物件的外觀。
如果資料塊的使用者數量降至零,它仍然會保留在記憶體中,但在儲存文件時不會被儲存。因此,如果你儲存並重新載入文件,所有使用者數量為零的資料塊都會消失。(在某些情況下,你可能需要儲存並重新載入幾次,才能使所有使用者數量為零的資料塊消失。)
但在那之前,資料塊將繼續出現在相關的彈出選單中,因此你可以將其重新分配給更多使用者。
你還可以為資料塊分配一個偽使用者;這就是在列出該型別資料塊的彈出選單中“F”按鈕的功能。這確保了使用者計數永遠不會降至零,因此資料塊始終在文件中儲存,即使它沒有實際使用者。這對“庫”文件很有用,這些文件可以包含有用的材質和紋理集合,例如,可以連結或匯入到其他文件中,而無需在庫中包含虛擬物件來確保這些材質和紋理被儲存。
例如,以下是用於選擇物件材質的小部件

主要部分顯示當前材質的名稱,可以編輯。X按鈕斷開與該材質的連結,並將它的使用者數量減少一個,而F按鈕則為該材質分配一個偽使用者。+按鈕讓你建立一個新材質。
左側的材質符號彈出一個列表,其中包含要選擇的現有材質,以及一個搜尋框,用於搜尋所有現有材質

注意帶有0符號的條目;它目前的使用者計數為零,如果不再使用,將在儲存並重新載入文件時消失。
如果使用者計數大於 1,小部件還會顯示當前的使用者計數

在本例中,由於選擇了F按鈕,所以計數增加了。
|
單擊數字(如果它大於 1)會複製材質,該材質僅附加到此特定使用者。副本的使用者計數為 1,而原件的使用者計數減 1。 |
這是 Blender 中物件資料塊和物件資料資料塊之間(有點令人困惑)的區別的基礎。物件資料塊包含3D場景中所有型別物件共有的資訊,無論它們是網格物件、燈物件、攝像機物件還是其他任何東西;而物件資料資料塊包含該例項的特定資訊,例如,你可能正在使用的特定網格的頂點、邊和麵的定義,或者你為專案設定的燈的顏色和能量,或者你設定的攝像頭的視野。
這讓我們瞭解了兩個物件複製命令之間的區別, SHIFT + D 和 ALT + D :前者複製物件資料塊和物件資料資料塊(儘管這可以在你的使用者偏好設定中控制),而後者只複製物件資料塊。這意味著,在第一種情況下,兩個物件是真正獨立的,但在第二種情況下,新物件繼續共享相同的物件資料資料塊,因此對一個物件的更改會導致對兩個物件的更改。因此,例如,如果你對網格物件使用 ALT + D 並編輯一個副本的頂點、邊或面,另一個副本也會受到影響。