ボリュームレンダリングとは

「ボリュームレンダリング(Volume Rendering)」とは、主に3DCG(3次元コンピュータグラフィックス)において不透明度を変えることで空気感などの演出を行うことで自然で滑らかな濃淡を生み、リアルな表現を計算するレンダリング法のことです。ボリュームデータという「voxel(ボクセル)」と呼ばれる六面体(立方体)の集まりで形成された3次元的なデータを、voxel単位の輝度を算出し全体を見渡せる2次元画像としてピクセルに変換を行い画面に表示します。

不透明度を変更して半透明にすることで立体物の中身を見ることが出来るため、CT撮影した画像も高画質を保ちながら立体的に見やすくすることができます。そのため医療の現場でも使われています。

ボリュームレイキャスティング

ボリュームレンダリングのレンダリング方式です。レイキャスティングとは、「光(ray)投じる(cast)」という意味で、対象となる物の距離に合わせて光を投じて描画をします。

膨大な計算を行うため時間もかかりメモリも必要としますが、非常に高品質な描画で画像を生成できる方式です。尚、ボリュームレイキャスティングはレンダリング方程式から直接派生しており、直接レンダリング法とも言われます。

ボリュームレンダリングが使われるシーン

3DCG制作現場では、主にゲームの制作やアニメーション制作の際に使われます。
実写撮影では、空気が存在するためカメラからの奥行き方向で彩度が下がります(空気遠近法)。しかし、3DCGの世界では空気などが存在しないため、どんなに遠くにある物体も綺麗に表現されてしまいます。

そこで、物体内部や空気中を通る光も計算し、半透明度な投影像を生成することで霞や霧、雲のような表現をしてリアルな空気感を演出します。また、遠近法だけではなく煙や雲、炎などの表現時にもボリュームレンダリングをすることでリアリティーを表現する事ができます。ゲームエンジンの「Unity(ユニティ)」や3DCG制作ソフトの「Blender(ブレンダー)」などを使い表現することができます。

Webでの表現

近年では「WebGL(ウェブジーエル)」というWeb上で3DCG表現を行う表示仕様も注目されており、ブラウザ上でもボリュームレンダリングの表現ができるようになってきています。「Three.js」というWebGLのライブラリなども使われます。

WebGLとはブラウザ上で動作する「OpenGL(オープンジーエル)」という2D/3DCGグラフィックスのライブラリであり、これを使うとインターネット上でまるでゲーム機でプレイしているような感覚になり、また非常にインパクトのある表現ができるためゲーム系以外のウェブサイトでも使用されています。