Blenderでレンダリングを高速化するTips10

に公開

Blenderでレンダリングを高速化する10の簡単な方法 文字起こし

ここにあるBlenderGuruさんことAndrew Priceさんの紹介してくださっている内容をざっと見れるようにまとめます。

https://www.youtube.com/watch?v=kIW648Cfo18

インスタンス化(95%高速化)

普通のコピーはShift+D(dupulicating)ですが、Alt+DでInstant化(instancing)が使える。
メモリ上でオブジェクトを一つとして扱うということかな。
なので、一つを編集すると全部変形します。

良しあしあるよね。

メッシュが多いかつ、コピーが多い状況において95%高速化という説明あり。

フラスタムカリング(30%高速化)

視界に入っていないオブジェクトを計算するかどうか。
Cyclesは反射光も演算しないといけないので、本来はそれらも考慮しないといけない。
若干品質は下がるものの、高速化できるとのこと。
Render→SimplifyからCamera Cullingを設定

オブジェクトごとに
Object→Visivility→Cullingを設定

うーん知らんかった。

ライトクランプ(86%高速化)

画像中明るいざらっとしたノイズを減らすためには、かなりサンプリングをする必要がある。

Render→LightPaths→Clampin→Indirect
この値をちいさくする=まだ反射していない光線のサンプルがピクセルに与える最大強度を制限することにより、精度を犠牲にしてノイズを低減。とのこと。

マニュアル:
https://docs.blender.org/manual/en/latest/render/cycles/render_settings/light_paths.html

窓ガラスの簡素化(66%高速化)

結構 制限されたケースだけど、窓ガラスを実際のオブジェクトとして設定すると、コースティクスなども計算するのでRenderingが非常に遅くなる。実際に映像を作るためのRayの量が減るので、映像は暗くなり、Firefly(前段の明るいざらっとしたノイズ)も増える。

なので、不要な処理を省くために窓ガラスオブジェクトの以下設定を変更する。
Visibility → Ray Visivility → ShadowをOff

パーシスタントデータ(100Frame以上の動画で1時間50分削減)

Rendering時にBVH buildingが走る。ここでいうBVHはBounding Volume Hierarchyで、レンダリングを高速化するための階層的なデータ構造とのこと。
で、アニメーションをする際に全フレームでこれを繰り返すとのこと。

これをさけるためには以下。
Render→Performance→FinalRender→PersistantDataをOn

マニュアル BVHの説明:
https://developer.blender.org/docs/features/cycles/bvh/

ノイズしきい値(64%高速化)

Sample回数を増やすとノイズを減らせるのは当然。
明るい部分は少ない回数でよいが、暗い部分はより多くのサンプリングが必要となる。

ピクセルのサンプリングを継続するかどうかを決定する閾値が
Render → Sampling → Render → Noise Threshold
「非常に素晴らしい設定項目だ。あほみたいにデフォルトの値が低いことを除けば。この値が低すぎるせいでMaxSampleまでサンプリングしてしまうぞ」とのこと。

Blender 4.4のマニュアルによれば

ピクセルのサンプリングを継続するかどうかを決定する閾値です。通常、値は0.1から0.001の範囲で、値が小さいほど品質は向上しますが、レンダリング時間は長くなります。この値を0に設定すると、Cyclesは総サンプル数に基づいて自動的に値を推測します。

https://docs.blender.org/manual/en/latest/render/cycles/render_settings/sampling.html#adaptive-sampling

テクスチャサイズを小さくする

ちっちゃいTexture使え。
「解像度が高い方がいいじゃないか。なんで一番デカいのをつかなわいのか?Belnderへ読み込むために4Kにくらべて8Kは2倍の時間がかかるからだ。大量のテクスチャがシーンにあったらより時間がかかる。あと、8Kテスクチャは不要だ。非常にカメラを寄せても大きな差は出ない」
無駄にでかいTextureファイルを使っても品質はそうかわらない。王道中の王道。

いや、シーンに大量にTexutureあるし今更…という方々は
Render → Simplify → Render → Texture Limit → 2048

Blender 4.4のマニュアルによれば
テクスチャのサイズが選択した値を超えないように、テクスチャを自動的に縮小します。これにより、巨大なテクスチャを含む大規模なシーンをレンダリングする際に、コンピュータのメモリリソースを削減できます。

https://docs.blender.org/manual/en/latest/render/cycles/render_settings/simplify.html

高速GI近似(2Bounce 23%高速化、1 Bounce 77%高速化)

CyclesはGlobal Illuminationを実現するためにデフォルトでLight Bounceを使用する。
これを一定回数反射後は近似に置き換えるというもの。
Render Bouncesが少ないほど早く置き換えるので計算量が減り高速化できるが画質が落ちる。2くらいであればシーンによっては差が分かりくい。

Render → Light Paths → Fast GI Approximation → チェック
Render Bounces 2

Blender 4.4のマニュアルによれば
背景を着色したアンビエントオクルージョンで、拡散間接光を近似的に表現します。これにより、インタラクティブなビューポートレンダリングや、品質を下げた最終レンダリングにおいて、完全なグローバルイルミネーション(GI)の高速な代替手段となります。
https://docs.blender.org/manual/en/latest/render/cycles/render_settings/light_paths.html#fast-gi-approximation

GPUへの切り替え

これはシンプル。環境にもよるが、PreferencesからCPUとGPUを同時に有効にしても早くならなかった。

Render → Device GPU Compute

DenoiseやCompositerでも使えるぞとのこと。(我が家のはグレーアウトされてるが)

ジオメトリの簡素化(60%高速化)

Meshが多いものはModifierで簡素化する。


Modifier → Decimate → Collapse
Ratio 0.01

ただし、反射するようなオブジェクトでは表面がぼっこぼこになる場合がある。
そんな場合はAutoSmooth Modifier(え?なにそれ…検索で出てくるやつ)を使えばいいとのこと

Discussion