Blenderが「GPUメモリ不足」エラーを出すのは困りものです。特に、テクスチャや高密度ジオメトリ、複雑なシェーダー設定が満載の複雑なシーンを扱う場合はなおさらです。つまり、グラフィックカードが負荷に耐えられなくなっているということです。このエラーは、最終レンダリング時や、CyclesはEeveeよりも処理能力が高いため、リアルタイムプレビュー時にも頻繁に発生します。そのため、高解像度レンダリング、アニメーション、あるいは大量のボリューメトリックスを含むシーンを扱う場合は、VRAMの過熱が深刻な懸念事項となります。
すべてのGPUが同じ性能というわけではないことも覚えておく必要があります。VRAMが4~6GBしかないGPUは、ハイエンドのワークステーション向けカードよりもはるかに性能が落ちやすいです。Blenderは「アウトオブコア」レンダリングをうまく処理できません。つまり、テクスチャやジオメトリの一部をシステムRAMにスムーズにスワップすることができません。VRAMが不足すると、クラッシュやエラーが発生します。幸いなことに、いくつかの簡単な修正を加えることで、大規模な改修が必要なくても、スムーズな動作を維持できます。
BlenderのGPUメモリエラーを修正する方法
編集中にワイヤーフレームまたはソリッドビューポートを使用する
これは、シーンのセットアップ中にGPUを休ませるようなものです。複雑なシーンで作業する場合、特に高解像度テクスチャや重いモディファイアを使用している場合、リアルタイムビューポートレンダリングは大量のメモリを消費する可能性があります。ワイヤーフレームまたはソリッドビューに切り替えると、応答性が向上し、VRAMの使用量も軽減されます。
- 3D ビューポートの右上隅に移動し、シェーディング アイコンをクリックします。
- ワイヤーフレームまたはソリッド モードを選択します。
最終的なレンダリング結果は変わりませんが、GPU負荷をかけずに編集作業を行うのに最適です。一部の設定では、高負荷のモデリングやシーン調整中のクラッシュを回避できることに気付きました。少し奇妙に感じるかもしれませんが、試してみる価値はあります。
GPU レンダリング バックエンドを CUDA に切り替える
これは少し技術的な話になりますが、安定性の向上に役立つ場合があります。Blenderは新しいNVIDIAカードではデフォルトでOptiXを使用しています。OptiXはレイトレーシングには高速ですが、特に古いドライバーや複雑なシーンでは不安定になることがあります。CUDAに切り替えても速度は上がらないかもしれませんが、メモリクラッシュを減らすことはできます。
- 編集 > 環境設定を開きます。
- 「システム」タブに移動し、「Cycles レンダリング デバイス」を見つけます。
- ドロップダウン オプションから OptiX ではなくCUDAを選択します。
- 必要に応じて、 「設定を保存」をクリックして Blender を再起動します。
その後、もう一度レンダリングを試してみましょう。機種によっては、これが大きな違いを生みます。Blenderの動作が少し安定するように感じます。
未使用のパーティクルシステムを無効にする
パーティクルは楽しいですが、特に煙、炎、髪の毛などをシミュレートする場合はメモリを大量に消費することで有名です。最終画像でパーティクルを使用しない場合は、VRAMを節約するためにパーティクルをオフにしましょう。
- 「パーティクル」タブに移動します(プロパティ パネルでは火花のように見えます)。
- 放出セクションで、数と寿命を 0 に設定します。
- オプション: パーティクル システム モディファイアを無効にするか、アウトライナーでパーティクル レイヤーを非表示にします(カメラ アイコンをクリックします)。
このトリックは、レンダリング中に必要のないパーティクル エフェクトがシーンに多数ある場合に特に役立ちます。これは RAM を大幅に節約できる簡単な操作です。
テクスチャ解像度を下げる
4Kや8Kのような高解像度テクスチャは、特にシーン内に多くのテクスチャが存在する場合、GPUの負荷を高める可能性があります。このエラーが発生した場合は、テクスチャをカメラにどれだけ近づける必要があるかに応じて、2K、1K、あるいは512ピクセルに縮小してみてください。
- 「編集」>「環境設定」に進みます。
- ビューポートタブに切り替えます。
- テクスチャ > サイズ制限を1024 や 512 などの低い解像度に調整します。
真の最適化を行うには、テクスチャを外部で開き、サイズを変更してBlenderに再インポートします。少し手間はかかりますが、Cyclesレンダリング時のメモリ使用量を削減する最も簡単な方法となることがよくあります。
変位ダイシングスケールを調整する
アダプティブサブディビジョンでディスプレイスメントマップを使用する場合、Blenderはリアルな効果を得るために高精細メッシュを即座に作成しますが、VRAMの消費量が多くなります。ダイシングスケールを上げると、ディテールが削減され、メモリを節約できますが、忠実度は多少低下します。
- レンダリング プロパティで、実験モードに切り替えます。
- シーン オブジェクトにサブディビジョン サーフェス モディファイアを追加します。
- モディファイア設定内でアダプティブサブディビジョンを有効にします。
次に、モディファイアの「Dicing Scale」を上げます。シーンに応じて、8、16、あるいはそれ以上の値を試してください。この設定は多少の誤差が生じる可能性がありますが、バランスを保つことでGPUメモリの管理が改善されます。
もしこれらがどれもうまくいかなかったら、Blenderのサポートコミュニティに問い合わせてみるのが次のステップかもしれません。シーンの設定自体に、一見分かりにくい調整が必要な場合もあります。