非力なPCでもBlenderで高速にレンダリングする方法
注意事項
本記事の内容を実施する場合は、すべて自己責任でお願いいたします。
また、ご紹介しているソースコードは私の管理するものではありません。
ご質問やお願い等にはお答えできない可能性があることをご承知おきください。
Blenderでモデリングを始めてから、多くのYouTubeやWebサイトを通じて、様々なノウハウを学ばせてもらっています。
ただ、いつも有用な情報を頂いてばかりなのも気が引けるので、たまには自分の知っている、需要がありそうな情報を書いてみます。
今回は、非力なPCを使っている人の大きな悩みである「レンダリングの遅さ」を解消する方法と手順を書きました。
インターネットにさえ繋がっていれば、無料かつ数分でできるので、「レンダリングが遅いなー」とか「PCへの負荷が気になるなー」なんて感じる人は、参考にしてみてもいいかもしれません。
大きく分けて、以下のたった2つの手順でできちゃいます。
① Googleドライブ上にblendファイルを配置
② Google Colaboratory上でレンダリング(Cycles)
それぞれ簡単に説明します。
①Googleドライブ上にblendファイルを配置
まず、無料のストレージサービス「Googleドライブ」を、レンダリングしたいblendファイルや、レンダリング結果の格納先として利用します。
1-1. Googleアカウントを作成(持っていない人だけ)
1-2. Googleドライブにアクセス
1-3. マイドライブ内に「blender」フォルダを作成
1-4. 「blender」フォルダ内にblendファイルをアップロード
これで準備完了です。次はレンダリングです。
②Google Colaboratory上でレンダリング
レンダリングには、機械学習などの重い処理をクラウド上で実行できる無料のサービス「Google Coraboratory」を使います。
2-1. GitHubにアクセス
2-2. 「Open in Colab」をクリック
2-3. 「ドライブにコピー」をクリック
2-4. パラメータを以下の通りに設定
2-5. 「ランタイム」から「全てのセルを実行」をクリック
2-6. 出てきたリンクをクリックし、画面に沿って認証コードをコピペ
あとは待つだけです。レンダリングが完了すると、Googleドライブに結果が保存されています。
ちなみに、本記事のTOP画像は、この方法でレンダリングされた画像です。今回はサンプルとして下記blendファイルをそのままレンダリングしてみました。ちゃんと計ってはいませんが、準備含めて2~3分で完了したと思います。
補足・注意点
●当然ですが、ポリゴン数やサンプリング数やフレーム数などの条件に応じてレンダリング時間は変わります。ものによっては数時間かかることもあると思います。
●2-1~2-3の手順は、初回のみ必要です。2回目以降は、Googleドライブ上にコピーされているColabファイルを編集して使えます。
●blendファイルが大きかったり、テクスチャファイルなどを外部から読み込んでいる場合はzip圧縮してアップロードすることをお勧めします。その場合は、手順2-4の「drive_path」でzipファイル名を指定してください。
●アニメーションをレンダリングしたい場合は、手順2-4で「animation」をチェックして、フレーム数を指定すればOKです。出力ファイル形式(mpegなど)はBlenderファイル側で設定した状態にする必要があります。
●選択肢に無いバージョンのBlenderを使いたいときは、各バージョンのURLを参考に、自分で少しコードを記載してあげればOKです。2.90も使えました。
●レンダリング時のコマンドのオプションなどはこの辺りを参照ください。ちなみに今はEEVEEではレンダリングできないみたいです。("CYCLES" を "BLENDER_EEVEE" に変えれば実行はできますが、「Unable to open a display」となってしまいます)
●Blenderファイル上で設定したレンダリングのサンプリング数なども、反映された結果になっているようです。自分のPCでは耐えられない数でも実行できるのが嬉しいですね。
●テクスチャなどの外部データをまとめるのが面倒な場合、blendファイルに全てパックするのも1つの手です。blendファイルのサイズは大きくなりますが。
●GoogleColabの最後のセルに以下のようなコードを追記すれば、レンダリング完了時にLINE通知なども可能です。tokenはこの辺りの記事を参考にして取得できます。
import requests
line_url = 'https://notify-api.line.me/api/notify'
token = 'XXXXXXX'
headers = {'Authorization' : 'Bearer ' + token}
def notify_line(message):
payload = { 'message' : message}
requests.post(line_url ,headers = headers ,params=payload)
notify_line('レンダリング完了')
●Blenderのインストールファイルのダウンロードにもやや時間がかかるため、頻繁に使用する場合はインストールファイルもGoogleドライブに置いておき、コピーするのをおすすめします。
●GoogleColabは、連続使用時間に制約があります。また、長時間使いすぎるとGPU使用が制限されます。サービス自体、3DCGレンダリング向けではありませんので、自己責任で使ってください。
この記事が気に入ったらサポートをしてみませんか?