使用 Blender 渲染視頻時(shí),Blender 引擎(例如 Cycles 和 Eevee)會(huì)處理光照、陰影和紋理的計(jì)算,通過(guò)模擬光與表面的相互作用,考慮反射、折射和陰影等因素,從而創(chuàng)建逼真的視覺(jué)效果。例如,Cycles 使用光線追蹤,通過(guò)精確模擬光的行為來(lái)實(shí)現(xiàn)高水平的真實(shí)感。
在渲染過(guò)程中,渲染引擎將 3D 模型轉(zhuǎn)換為 2D 圖像或動(dòng)畫(huà),這在處理復(fù)雜場(chǎng)景時(shí)可能非常耗時(shí)。所需時(shí)間取決于各種因素,例如模型的復(fù)雜性、光源數(shù)量、紋理的分辨率以及渲染設(shè)置(例如光線追蹤質(zhì)量)。
當(dāng)追求具有高級(jí)效果的逼真結(jié)果時(shí),對(duì)計(jì)算能力的需求會(huì)顯著增加,特別是對(duì)于全局照明和次表面散射等高級(jí)效果。
Blender 中的 GPU 渲染可以顯著減少渲染時(shí)間與 CPU 渲染相比,尤其是對(duì)于復(fù)雜場(chǎng)景和高分辨率輸出。如前所述,在捷智算平臺(tái)上使用 NVIDIA A5000 等高性能 GPU 可以顯著加快渲染時(shí)間,因?yàn)?GPU 旨在高效處理并行處理任務(wù),使其成為渲染的理想選擇。
本指南將指導(dǎo)您使用捷智算平臺(tái)上的 NVIDIA A5000 GPU 優(yōu)化 Blender 渲染,確保高效且經(jīng)濟(jì)高效的渲染工作流程。首先,讓我們討論一下虛擬機(jī)要求。
VM 渲染規(guī)范
在考慮在云端渲染視頻的確切規(guī)格時(shí),您必須記住項(xiàng)目的大小。以下是一些一般規(guī)則:
1、中央處理器:
最低要求:支持 SSE2 的四核 CPU 通常為最低要求。
建議:建議使用 8 核或以上的高主頻 CPU,以實(shí)現(xiàn)更流暢、更快的渲染,尤其是對(duì)于復(fù)雜的場(chǎng)景。
考慮因素:云提供商通常提供不同的 CPU 選項(xiàng),因此請(qǐng)選擇一個(gè)能夠平衡性能和成本的選項(xiàng)。
2、內(nèi)存:
最低要求:需要 8 GB RAM,但對(duì)于復(fù)雜的項(xiàng)目來(lái)說(shuō),需要更多的 RAM。
建議:建議使用 16 GB 或更大容量,以實(shí)現(xiàn)更流暢的渲染并避免與內(nèi)存相關(guān)的問(wèn)題。
注意事項(xiàng):渲染大型場(chǎng)景或高分辨率視頻會(huì)消耗大量?jī)?nèi)存,因此請(qǐng)選擇具有足夠 RAM 的虛擬機(jī)來(lái)滿足您的需求。
3、圖形處理器:
最低要求:專用 GPU 具有至少 2 GB 的 VRAM 和 OpenGL 3.3 支持,這對(duì)于 GPU 渲染至關(guān)重要。
建議:建議使用具有 8 GB 或更多 VRAM 的強(qiáng)大 GPU,以便更快地渲染和處理復(fù)雜的場(chǎng)景。
注意事項(xiàng):云提供商提供各種 GPU 選項(xiàng),包括 NVIDIA RTX 系列或同等產(chǎn)品。選擇符合您的性能要求和預(yù)算的 GPU。
4、內(nèi)存:
最低限度:確保您有足夠的存儲(chǔ)空間來(lái)容納您的 Blender 項(xiàng)目文件、紋理和渲染輸出。
建議:考慮使用 NVMe SSD 等高性能存儲(chǔ)選項(xiàng),以加快文件傳輸和渲染速度。
考慮:云提供商提供具有不同性能和成本的不同存儲(chǔ)選項(xiàng)。
5、其他因素:
網(wǎng)絡(luò)帶寬:高速互聯(lián)網(wǎng)連接對(duì)于快速傳輸文件到云虛擬機(jī)和從云虛擬機(jī)傳輸文件至關(guān)重要。
軟件配置:確保 Blender 和任何所需的附加組件在 VM 上正確安裝和配置。
請(qǐng)記住,這些只是一般建議。最佳 VM 配置將根據(jù)您特定的項(xiàng)目要求而有所不同。
在本指南中,我們將對(duì)小型項(xiàng)目使用以下配置:
GPU(1x RTX A5000): NVIDIA RTX A5000 專為專業(yè)工作負(fù)載而設(shè)計(jì),包括 3D 渲染。它具有充足的 VRAM(24GB)來(lái)處理復(fù)雜的場(chǎng)景和紋理。
CPU(2 個(gè)帶主機(jī)直通的 vCPU):主機(jī)直通允許 Blender 直接訪問(wèn)底層硬件,從而最大限度地提高性能。
內(nèi)存(8 GB):這對(duì)于許多 Blender 項(xiàng)目來(lái)說(shuō)已經(jīng)足夠了,但對(duì)于更大、更復(fù)雜的場(chǎng)景,可能需要更多的內(nèi)存。
存儲(chǔ)(50 GB 啟動(dòng)盤(pán)):足以存儲(chǔ) Blender 項(xiàng)目文件、紋理和渲染輸出。
我們的配置是 Blender 渲染的良好起點(diǎn)。但是,請(qǐng)?jiān)阡秩緯r(shí)監(jiān)控 CPU 和內(nèi)存使用情況,因?yàn)樗鼈兛赡軙?huì)成為大型項(xiàng)目的瓶頸。如果遇到性能問(wèn)題,請(qǐng)考慮升級(jí)到具有更多 CPU 核心或 RAM 的 VM。
本指南將討論在捷智算平臺(tái)上渲染項(xiàng)目的兩種方法。
在虛擬機(jī)中下載 Blender
登錄虛擬機(jī)后,開(kāi)始的第一步是更新和升級(jí)它。
sudo apt update && sudo apt upgrade -y
這需要一點(diǎn)時(shí)間來(lái)運(yùn)行。
接下來(lái),我們將安裝最新的 Blender 版本。
sudo snap install blender --classic
您可以通過(guò)運(yùn)行以下命令檢查 Blender 版本:
blender --version
接下來(lái),創(chuàng)建一個(gè)名為 gpus.py 的文件并運(yùn)行它。該文件將檢測(cè)可用的 GPU,并可用于調(diào)試任何 GPU 問(wèn)題。
import bpy
def enable_gpus(device_type, use_cpus=False):
preferences = bpy.context.preferences
cycles_preferences = preferences.addons["cycles"].preferences
cycles_preferences.refresh_devices()
devices = cycles_preferences.devices
if not devices:
raise RuntimeError("Unsupported device type")
activated_gpus = []
for device in devices:
if device.type == "CPU":
device.use = use_cpus
print('activated cpu', device.name)
else:
device.use = True
activated_gpus.append(device.name)
print('activated gpu', device.name)
cycles_preferences.compute_device_type = device_type
bpy.context.scene.cycles.device = "GPU"
return activated_gpus
enable_gpus("CUDA", True)
該腳本主要配置 Blender 使用可用的 GPU 執(zhí)行渲染任務(wù),同時(shí)可選擇允許使用 CPU。它專門(mén)針對(duì)支持 CUDA 的 GPU,這些 GPU 通常位于 NVIDIA 顯卡(如 A5000)中。
我們將使用 Blender 運(yùn)行該腳本。
blender -b --python gpus.py --debug-cycles --debug-gpu
blender啟動(dòng) Blender,-b標(biāo)志告訴 Blender 以后臺(tái)模式運(yùn)行,允許 Blender 在沒(méi)有圖形用戶界面 (GUI) 的情況下運(yùn)行,但仍會(huì)執(zhí)行命令。-- python gpus.py指示 Blender 執(zhí)行 Python 腳本“gpus.py”。
--debug-cycles標(biāo)志可啟用 Blender 的 Cycles 渲染引擎的調(diào)試模式。它將在控制臺(tái)中提供額外的輸出,以幫助診斷問(wèn)題或更好地了解渲染過(guò)程。最后,--debug-gpu標(biāo)志可啟用與 GPU 特別相關(guān)的調(diào)試。它可能會(huì)輸出有關(guān) GPU 設(shè)備、使用情況或潛在問(wèn)題的信息。
接下來(lái),我們將下載一個(gè)項(xiàng)目文件來(lái)看一下它是如何工作的。
下載并渲染項(xiàng)目
Blender 提供了一些可以下載的演示項(xiàng)目并渲染。我們將使用這個(gè)測(cè)試我們的渲染。
首先,我們將使用 wget(一個(gè)用于從互聯(lián)網(wǎng)下載文件的免費(fèi)開(kāi)源命令行實(shí)用程序)來(lái)下載演示。
wget https://download.blender.org/demo/test/BMW27_2.blend.zip
接下來(lái),我們需要安裝unzip工具來(lái)解壓文件。
apt install unzip
接下來(lái)我們解壓文件
unzip BMW27_2.blend.zip
接下來(lái),我們可以進(jìn)行渲染。為此,我們將使用此命令。
blender --python gpus.py -b -noaudio -y ~/bmw27/bmw27_gpu.blend -o ~/bmw27-GPU-####.png -f 1 -- --cycles-device CUDA+CPU
該命令將僅渲染第一幀。幀是單獨(dú)的圖像,按順序播放時(shí)會(huì)創(chuàng)建動(dòng)畫(huà)。每個(gè)幀代表一個(gè)時(shí)刻。項(xiàng)目中的幀數(shù)決定了動(dòng)畫(huà)的長(zhǎng)度和流暢度。例如,每秒 24 幀 (fps) 的 10 秒動(dòng)畫(huà)將有 240 幀。
我們只渲染第一幀以查看渲染引擎是否工作以及渲染一幀需要多長(zhǎng)時(shí)間。
使用當(dāng)前的 VM 配置,該過(guò)程大約需要 28 秒。當(dāng)幀渲染完成后,您將看到所花費(fèi)的時(shí)間和節(jié)省的時(shí)間,以及輸出文件的位置。
您可以使用安全復(fù)制(SCP)復(fù)制輸出文件并在本地計(jì)算機(jī)上查看它。
接下來(lái),您可以使用此命令渲染整個(gè)項(xiàng)目。根據(jù)許多因素(包括樣本大?。?,這可能需要一些時(shí)間才能運(yùn)行。
blender --python gpus.py -b -noaudio -y ~/bmw27/bmw27_gpu.blend -o ~/bmw27-GPU-####.png -a -- --cycles-device CUDA+CPU
樣本大小,即渲染過(guò)程中每個(gè)像素使用的樣本數(shù)量,決定了渲染每幀所需的時(shí)間。樣本還決定了渲染圖像的質(zhì)量,特別是噪聲和光線的計(jì)算方式。
樣本量越大,通??僧a(chǎn)生質(zhì)量更好、噪點(diǎn)更少的圖像,但也會(huì)增加渲染時(shí)間。
運(yùn)行完成后,您可以復(fù)制圖像并完成動(dòng)畫(huà)過(guò)程。
如果您沒(méi)有像我們一樣下載演示,則需要通過(guò) SCP 將項(xiàng)目放入 VM。操作方法如下。
將項(xiàng)目復(fù)制到虛擬機(jī)
以 .blend 格式創(chuàng)建 blender 項(xiàng)目后,您必須使用 SCP 命令將其復(fù)制到 VM。如有必要,您可能還需要復(fù)制其他內(nèi)容,例如您使用的字體文件。
為此,請(qǐng)導(dǎo)航到包含您的項(xiàng)目的文件夾并打開(kāi)終端。要復(fù)制文件,請(qǐng)使用以下命令:
scp [source_file_path] username@hostname:[destination_path]
看起來(lái)可能是這樣的:
scp User/Blender/projects/model.blend root@100.1.1.1:home/project
這會(huì)將您的項(xiàng)目復(fù)制到虛擬機(jī)。您可以按照概述的步驟來(lái)渲染您的項(xiàng)目。
在捷智算平臺(tái)上使用 NVIDIA RTX A5000 將加快您的 Blender 渲染工作流程。通過(guò)優(yōu)化您的 VM 配置并按照本指南中概述的步驟操作,您可以實(shí)現(xiàn)更快、更高效的渲染,而無(wú)需昂貴的硬件投資。
捷智算是靈活、可擴(kuò)展且經(jīng)濟(jì)高效的平臺(tái),讓您專注于您的創(chuàng)意愿景,同時(shí)將繁重的計(jì)算工作轉(zhuǎn)移給強(qiáng)大的遠(yuǎn)程資源。