コンピュータグラフィックスにおいて、ボリュームレンダリングとは、3次元的な広がりのあるデータを直接2次元画面に表示することである。半透明な物体や発光体などを光学的に正しくレンダリングしたり(レイキャスティング)、CTなどで3次元的に撮影された画像を目的に沿って見やすく提示したりする(最大値投影処理など。)
ボリュームレンダリングに必要なデータは、CT、MRIなどによって得られた2Dスライス画像から構成される。これらは規則的なパターン(1ミリメートル毎に1スライスの画像)で撮影され、規則的な画像ピクセルデータをもっている。この各ボリューム要素をサンプリングすることによって、中身を透視できる単一の画像を構成する事ができる。
ボリュームレンダリングを行うには、まずボリュームに対して空間内でのカメラの配置を設定する必要がある。また、各ボクセルの不透明度と色を設定する必要もある。一般的には、すべてのボクセル値に対してRGBA値(赤、緑、青、アルファ)は伝達関数を用いて設定を行う。
例えば、ボリュームからアイソサーフェスを検出し、ポリゴンメッシュ方式でレンダリングを行う。またはボリュームを直接データブロックとしてレンダリングを行い、ボリュームを表示することもできる。
とても高品質なデータが得られる方式である。ボリュームレイキャスティングは、入力ボリュームデータではなく、出力画像から計算を行うため、画像ベースのボリュームレンダリング技法のひとつである。
品質を犠牲にして処理速度を優先したレンダリング方式である[1][2]。
ボリュームレンダリングは並列的な性質を持つため、レンダリングに用いるハードウェアは高速なものが要求される。
レイキャスティングのような進歩したボリュームレンダリングアルゴリズムは、従来のコンピュータでは処理が追いつかないため、NVIDIAやAMDなどの最新のハイエンドグラフィックカードが用いられる。プログラム可能なピクセルシェーダをはじめ、複数のピクセル上での並列処理などを、グラフィックス処理ユニット(GPGPU)上で演算するコンピュータが利用されるようになった。ピクセルシェーダはビデオメモリからランダムに読み書きでき、数学的かつ論理的な計算をスピーディーに計算可能である。これらのSIMDプロセッサは、ポリゴンのレンダリングや信号処理などの一般的な計算を実行するために使用されていた。近年(内容からしてGPGPUの出始めの頃、だいぶ昔の話)のグラフィックカードでは、ピクセルシェーダはMIMDプロセッサとして働き、最大1GBのテクスチャメモリを浮動小数点数形式で使用することもできる。このようなハイエンドマシンの登場によって、ボリュームレイキャスティングや断層撮影再レンダリングなど、並行して実行できるすべてのアルゴリズムを、高速で処理できるようになった。プログラマブルピクセルシェーダを用いて、照明、影、反射、放射色などの特性の変化をシミュレートすることもできる。