|
|
| (2人の利用者による、間の5版が非表示) |
| 6行目: |
6行目: |
| [[コンピューター]]および[[グラフィックボード]]の高性能化により、[[ゲーム]]などの[[ポリゴン]]主体の[[3D]]においても、雲の表現などの古くから[[ビルボード]]という手抜き手法が使われていた部分を高画質化する手法として採用され始めている。 | | [[コンピューター]]および[[グラフィックボード]]の高性能化により、[[ゲーム]]などの[[ポリゴン]]主体の[[3D]]においても、雲の表現などの古くから[[ビルボード]]という手抜き手法が使われていた部分を高画質化する手法として採用され始めている。 |
|
| |
|
| ボリュームレンダリングにおいて最終的に出力する1つの[[ピクセル]]の値を求めるため、[[ボクセル]]と呼ばれる[[3次元]]の[[ビットマップ]]のようなものから必要な[[データ]]([[配列]])を抽出することを[[レイキャスティング]]という。ボリュームレンダリングでは[[レイキャスティング]]で得られた[[データ]]([[配列]])を[[最大値]]や[[最小値]]、[[平均値]]、[[中央値]]、単純に[[加算]]などの様々な方法により加工することで最終的な映像(1つの[[ピクセル]])を取得する。ただし、レイキャスティングで得た値を即座に[[ピクセル]]に変換する手法が一般的であるため、ボリュームレンダリングとレイキャスティングを同一として語られることも多い。
| | ==アルゴリズム== |
| | ボリュームレンダリングといっても様々な手法があるが、現在ではほぼ[[レイキャスティング]]を用いたもの一色となっており、「ボリュームレンダリング≒ボリュームレイキャスティング」という状況である。 |
|
| |
|
| ボリュームレンダリングでは[[ピクセル]]単位で[[レイキャスティング]]を行い、その他の要素から影響を受けにくいため、[[GPU]]に搭載される[[ピクセルシェーダー]]([[宗教上の理由]]により[[OpenGL]]の世界では[[フラグメントシェーダー]]と呼ばれる)と非常に相性がよく、近年の壮大な[[GPU]]ではそこそこ高速に処理できるようになりつつある。
| | * [[バイナリ空間分割]] |
| | | * [[マーチングキューブ法]] |
| ただしボリュームレンダリングでは3次元の点の集まりである[[ボクセル]]を扱う関係上、非常に多くの[[メモリ]]を必要とする。
| | * [[ボリュームレイキャスティング]] |
| | |
| :メモリ消費量
| |
| :*512 * 512 * 512 * 2バイト = 256MB
| |
| :*1024 * 1024 * 1024 * 2バイト = 2GB
| |
| | |
| 上記は単純に[[ボクセル]]を保持するために必要な最低限のメモリ容量であり、実際にはここから計算した値を確保しておくための[[メモリ]]なども必要になる。このような巨大な[[データ]]は[[メインメモリ]]から[[VRAM]]への転送なども大きな負担となる。[[ゲーム]]などに最適化された[[グラフィックボード]]は[[VRAM]]上に一度[[データ]]を転送したらシーンが変わるまで使い回す前提となっていることが多いため、[[メインメモリ]]と[[VRAM]]の間で大量の転送を行うような用途では[[シェーダー]]が遊んでしまうのである。このためボリュームレンダリングでは[[シェーダー]]の性能よりも[[メモリ]]の容量や速度が[[ボトルネック]]となることが多く、安物の[[オンボードGPU]]では厳しかったりする。なお、[[オンボードGPU]]でも[[PlayStation 4]]のように[[GDDR5]]と[[hUMA]]のような技術を組み合わせればボリュームレンダリングも大きく前進する可能性がある。
| |
|
| |
|
| ==関連項目== | | ==関連項目== |
| | * [[ポリゴン]] |
| | * [[医用画像]] |
| | * [[非破壊検査]] |
|
| |
|
| *[[ポリゴン]]
| |
| *[[医用画像]]
| |
| *[[非破壊検査]]
| |
|
| |
| ==参考文献==
| |
| {{reflist}}
| |
|
| |
| {{stub}}
| |
| [[カテゴリ:画像処理]] | | [[カテゴリ:画像処理]] |
| | [[category: 3DCG]] |