【2021】3DCGにおける「レンダリング」とは?レンダリングの種類と方法


by test

6月 12, 2021

「レンダリング」ということばは、3Dに触れたことのある方なら知らない人はいないでしょう。

しかしながら、3DCGにおけるレンダリングをしっかり説明できる人は多くありません。

今回は、3DCGの基本に立ち返り、レンダリングについて解説します。

3DCGにおけるレンダリングとは?

まず、3DCGにおけるレンダリングとはそもそもどういうことなのかについて解説します。

レンダリングの例

「レンダリング」というと、どうしても3DCGをイメージしてしまいますが、「レンダリング」ということば自体は、実はコンピュータ処理においてもっと広範な意味を持ちます。

まず、レンダリング(Rendering)の元々の意味は「表現、翻訳、(脚本などの)上演」です。この3つの意味のうち、コンピュータ上の処理では「表現する」「翻訳する」といった意味合いが近いかもしれません。

コンピュータにおけるレンダリングとは、データで記述された抽象的な高次情報から、プログラムを用いて画像、映像、音声などを生成することを指します。

つまり、コンピュータが数値や配列として演算するデータを、人間がわかりやすい形に「翻訳・表現」することがレンダリングなのです。

3DCG以外にも、レンダリングは「エフェクターによる編集を行った後、ビデオを出力する」といった動画編集での利用や、「DTMソフトウェアでMIDIデータからオーディオ信号を生成する」などのサウンド分野での利用もあります。

さらに、「WebブラウザーにおけるHTMLおよびその他の情報からWebページを表示」や「OS、テキストエディタにおける文字コードからのテキスト表示」などの、コンピュータを使う上で当然ともいえるような機能も、広い意味では「レンダリング」に含まれます。

つまり、レンダリングとはコンピュータが「人間にわかりやすい出力データを生み出す過程」を指すことばなのです。

3Dレンダリング

3Dにおいてレンダリングということばを使う場合は、3DCGに関する数値データ(オブジェクトの座標や形状・テクスチャなど)に関する情報を、コンピュータ上の計算によって画像に変換するプロセスを主に指します。

3DCGをレンダリングする過程において、視点の位置や光源の種類と位置、オブジェクトの形状、頂点の座標、レンダリングの色、表面のテクスチャ、 シェーディング処理などを表すさまざまなデータが組み合わさります。

これらのデータは、人間には理解しがたい数値データの羅列でコンピュータは処理していますので、これらの数値を人間の目で見てわかるような画像に変換します。

3DCGでレンダリングが必要な理由

3DCGにおいて、レンダリングが必要な理由は数種類の視点から分けて考えることができます。

人間が理解できる形式にするため

これは、先ほどお伝えしたことと関連しますが、元々3DCGは数値データの集合でしかありません。

レンダリングをすることにより、人の目で見てわかるような画像にする必要があります。

データを2次元画像に変換し軽量化するため

3DCGのレンダリング前のデータはサイズが大きく、そのまま扱うと計算量が膨大になります。

単なる静止画ならそれほど負担ではありませんが、複雑な3Dアニメーションともなると、ハイスペックPCでも滑らかに再生することはできません。

レンダリングは複雑な計算を一度実行し、2次元画像やアニメーションに変換することでデータを軽量化します。

しかしながら、レンダリング結果のアニメーションから元の3Dデータに戻すことは、通常の行程では不可能です。

データの可逆性はありませんが、さまざまなメディアで再生できるような動画データに変換するために、レンダリングによるデータの軽量化が不可欠です。

レンダーエンジンの特性を活かすため

3DCGをレンダリングするためのソフトウェアは「レンダーエンジン」と呼ばれます。

レンダリングは、このレンダーエンジンの特性を発揮させるためにも、必要な過程です。

3Dオブジェクトの制作はリアルタイムで変更を加えるため、複雑なテクスチャやライティングは行わず、軽い環境で行います。

レンダーエンジンは、この軽い環境で作られたオブジェクトに追加でさまざまな効果を付与します。

優れた性能を持つレンダーエンジンを適切に設定することで、写真のようにリアルな映像を出力したり、現実では表現できないようなライティングをしたり、3DCGならではの表現が可能になります。

代表的な3Dレンダリングソフトウェア/レンダーエンジン

続いては、代表的な3Dレンダリングソフトやレンダーエンジンについて紹介します。

Blender

Blender

Blender(ブレンダー)は、フリー(無料)かつオープンソースの3Dコンピュータグラフィックスソフトウェアです。

アニメーション映画、視覚効果、アート、3Dプリントモデル、モーショングラフィックスバーチャルリアリティ、コンピュータゲームなどの制作に使用されています。

Blenderの機能は無料では考えられないほど充実しており、レンダリングにおいても非常に高い性能を誇ります。

EeveeCyclesといったレンダリングエンジンを備えており、3Dの入門ソフトとして非常に有名なソフトです。

Maya

Maya

Autodesk Maya(通称Maya)は、Windows、macOS、Linuxで動作する3Dコンピュータグラフィックスアプリケーションです

元々はAlias Systems Corporationが開発し、現在はAutodeskが所有・開発しています。

Autodeskは、建築用図面作成ソフト「CAD」や、3Dモデリングソフト「3ds Max」で有名な会社で、「Maya」は3Dアニメーション制作に適しており、映画やテレビ、ゲームなど3DCGの最前線でも使用されています。

基本的な3Dソフトに搭載されているレンダリング機能の他、アニメーションのレンダリングを得意としています。

複雑な3DCGのレンダリングに適しており、優れたライティングアルゴリズムでフォトリアリスティックな画像を作成することができます。

また、Maya エフェクトでは、液体や風、花火、海流、衣服や布地、液体、雲、煙、スプレー、塵など、複雑で流動的な物質をレンダリングすることができ、物理シミュレーションのレンダリングも得意としています。

Arnold

Arnold

Arnold(アーノルド)はMayaの標準レンダラーであり、「SolidAngle」と「SonyPicturesImageworks」によって共同開発されました。

非常に精巧なレンダリングを高速で生成できるため、世界で最も広く使用されているフォトリアリスティックレンダラーの一つです。

世界中の数多くの人が、Arnoldによってレンダリングされた3DCGを見たことがあるはずです。

なぜなら、映画やテレビのアニメーションで特に人気があり、『アベンジャーズ』、『スターウォーズフォースの覚醒』、『ゲームオブスローンズ』などの人気シリーズで使用されているからです。

計算能力とレンダリング品質の点で、Mayaでのレンダリングで最も人気のあるレンダラーです。

V-Ray

V-ray

V-Rayは、ブルガリアのChaos Groupによって開発されたレンダリングソフトウェアです。

V-Rayは、メディアやエンターテインメント、映画やゲームの制作、工業デザイン、製品デザイン、建築など、多種多様な業界におけるコンピュータグラフィックスのレンダラーとして活躍してきました。

非常に高速でフォトリアリスティックなレンダリングが可能なエンジンです。

V-Rayは長い歴史の中で、3DCG業界における多くの成果を上げています。

公式ホームページによると、300以上のテレビシリーズや長編映画で3DCGのレンダラーとして使用されており、業界でも屈指のシェアを誇ります。

V-Rayは、複雑なオブジェクトに複数のライトが使用されるレンダリングを得意としており、例えばMayaにおける動作は、Arnoldよりも高速でレンダリングが完了することもあります。

RenderMan

RenderMan

RenderManは、ピクサー・アニメーション・スタジオが開発したフォトリアリスティックな3Dレンダリングソフトウェアです。

ピクサーはRenderManを使用して3Dアニメーション映画のレンダリングを行っており、『ターミネーターII』『ジュラシックパーク』『トイ・ストーリー』などの著名な作品でも採用されてきました。

ピクサーの映画を30年以上にわたって支えてきた、まさに屋台骨ともいえるレンダリングエンジンです。

その過程で、3Dアニメーションでの映画製作の課題を解決してきた過去があり、特に視覚効果においては他の追随を許さないほどの性能を誇ります。

物理ベースレンダリング用に最先端のレイトレーシングレンダリングを最適化し、映画以外のさまざまな3DCG活用シーンにおいても柔軟に対応できます。

また、RenderManはサードパーティがライセンスした商用製品としても提供されており、2015年には、無料の非商用版RenderManが利用できるようになりました。

RenderManは、Maya、Houdnini、KATANAなどの主要な3DCG編集ソフトで使用できます

レンダリング手法の種類

レンダリング手法は、主に「ラスタライズ」「レイトレーシング」「ラジオシティ」の3パターンが存在します。

この項目では、それぞれの手法について簡単に解説します。

ラスタライズ

ラスタライズ法は、3DCGのレンダリングの中で比較的単純なアルゴリズムです。

3DCG以外のコンピュータグラフィクス業界で広く用いられている概念で、形状データをピクセル(ラスタ形式)データに変換する手法を指します。

ポリゴンなどの形状データをフラグメントと呼ばれるピクセルデータに変換する処理をラスタライズと呼びます。

ラスタライズは非常に高速であるため、ほとんどのリアルタイム3Dエンジンで使用されます。

一方で、後述の他のレンダリング手法と比べるとリアルな映像表現に不向きです。

イラストレーションでも利用されている手法で、ベクター形式で描かれた画像をピクセル画像に変換する方法も「ラスタライズ」と呼びます。

したがって、「レンダリング」における手法としてラスタライズは広範な意味合いがあります。

レイトレーシング

レイトレーシングは、光の経路を画像平面内のピクセルとしてトレースし、仮想オブジェクトへの影響をシミュレートすることによって画像を生成するために使用されるレンダリング手法です。

反射や屈折、散乱、分散現象など、さまざまな光学効果をシミュレートするため、非常にリアルな映像をレンダリングできます。

また、光波と同様の方法で音波の経路を追跡するために使用することもでき、リアルな残響とエコーをレンダリングし没入型のサウンドデザインの設計などに利用されています。

ラジオシティ

光源の側面から光として放出されるエネルギーの所在を熱力学的に処理することにより(エネルギー保存の法則)、光を拡散反射して相互に照らす複数の物体の効果を計算することができます。

例えば、壁紙が赤であるために部屋が赤く見える効果をよりリアルに再現できます。

ラジオシティ法は、現実世界の現象に近い光の振る舞いを模倣するため、最終的なレンダリング結果は現実のような画像になります。

レイトレーシングに並ぶレンダリング手法として注目されています。

3Dレンダリングをするための方法

最後に、3Dレンダリグをするための方法を紹介します。

高性能PCを用意する

3Dモデルを組み合わせた画像や、3Dで作られたアニメーションをレンダリングするには、非常に高度で複雑な計算が必要です。

レンダリング中にPCがクラッシュしてしまう場合は、マシンパワーの低さに原因があります。

より快適で高速なレンダリングを行うためにはハイスペックなPCが必要です。

クラウドレンダリングを利用する

あまりにも複雑なレンダリングには、1台のマシンでは膨大な時間と大きな負荷がかかります。

その解決策として「クラウドレンダリング」という手法があります。

クラウドレンダリングは、インターネットで接続された高性能CPU/GPUの計算能力を使用して、レンダリング計算を実行するシステムです。

当社モルゲンロットが運営する「Render Pool(レンダープール)」は、低コストで高品質・ハイスピードなレンダリングが可能なクラウドレンダーファームです。

RenderPool

詳しくはこちらのページを参照してみてください。

まとめ

3DCGにおけるレンダリングについて解説しました。

一口に「レンダリング」といっても、奥の深い概念であることが理解できたかと思います。

レンダリングを極める一歩になれば幸いです。