6. Compaction Presence or Absence
● コンパクションなし ● コンパクションあり
for (value in input) { wanted = compaction(input)
if (value is wanted) { for (value is wanted) {
process(value); process(value);
} }
}
39. Marching Cubes
有効セル数を基に描画
頂点バッファ生成 or ジオメトリシェーダー
● 頂点バッファ生成
1. カーネルで GPU メモリに頂点バッファを生成
2. 3D API で頂点バッファを描画
● ジオメトリシェーダー
1. 3D API でポイントリストとしてセルを描画
2. ジオメトリシェーダーでポリゴンを生成
40. Marching Cubes
3D API
OpenGL or DirectX
● DrawIndirect 系 API
GPU メモリのデータを引数にできる
HistoPyramid のトップレベル値を
CPU のリードバック無しで利用可能
41. Marching Cubes on GPU 参考文献
HistoPyramid を用いた Marching Cubes
High-speed Marching Cubes using Histogram Pyramids
[Dyken2007]
GPU-accelerated data expansion
for the Marching Cubes Algorithm
[Dyken2010]