| マーチングキューブ法 (Marching cubes) | 
    
            
        
            | 
                2018-03-04 - 2018-07-20 (update)             | 
              | 
            
                                             | 
        
    
 
                 
    
        
    
        
            
            
            
         
        
*マーチングキューブ法 とは
 格子状に並ぶボクセルデータを三角形のメッシュ構造に変換する方法です.図1は,その変換の例を表します.マーチングキューブ法は,例えば医療分野において,CTやMRIを使って計測したボクセルデータを変換するときに良く利用されているようです.
[img:lczp]
{{small:図1 マーチングキューブ法による変換の例, 左:入力のボクセル表現,右:出力のメッシュ表現}}
*サンプルコード (C++)
ライブラリ:[link:simplesp]
サンプルコード:simplesp/sample/gl/voxel
マーチングキューブ法に基づいて,ボクセルデータをメッシュ構造に変換します.
*アルゴリズム
 マーチングキューブ法では格子状に並ぶボクセルの0/1の値を,図2に示す様に15通りの組み合わせの中から判定することで,メッシュの張り方を決定します.
[img:xvqp]
{{small:図2 15通りのメッシュの張り方 出典 [link:https://ja.wikipedia.org/wiki/マーチングキューブ法]}}
 ただし,図3に示す様な特定の条件において,ボクセルの等値面に四角形の穴が発生します.そのため,上記15通りの判定によるメッシュとは別に,この穴を塞ぐメッシュも張る必要があります.
[img:3trb]
{{small:図3 等値面で発生する四角形の穴}}
        
 
        
>> ご意見・ご質問など お気軽にご連絡ください.info