忍者ブログ

カレンダー

03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

最新コメント

[11/20 かいせい]
[11/18 NONAME]
[10/01 かいせい]
[10/01 masafumi]
[09/28 なんとなく]

最新トラックバック

プロフィール

HN:
Kaisei+
性別:
男性

バーコード

ブログ内検索

カウンター

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ボクセル(Voxel) 内外判定でできる演算

ボクセルは内外を定義するだけで,任意の形状を定義することができます.
この性質を利用して,ボリュームデータの形状の操作を行ってみようと思います.

まずは前回の肉のついた螺旋を真ん中でばっすり切ってみます.
ボリュームデータなので中身が詰まっています.

voxel_voxel_cut.pngvoxel_03voxel_cut.pngvoxel_06voxel_cut.png

これは,任意のボクセルを内側と定義した後に,手前半分を外とすることでものを切っています.
内外だけで,もの形状を定義しているので,内外だけで操作できることがわかります.
この形状操作を利用して,任意の形状から,別の任意の形状を削りとるような操作もできます.

voxel_voxel_cut_r.png voxel_03voxel_cut_r.png voxel_06voxel_cut_r.png voxel_15voxel_cut_r.png

上の図は,でっかい立方体から,螺旋状に削り取るような操作を行った結果です.
削り取る操作は,一般的にCSG(Constructive Solid Geometry)やブール演算(boolean)と呼ばれる操作のひとつです.
CSGやブール演算と呼ばれる操作は3つあり,それぞれ「和(union)」「差(difference)」「積(intersection)」と呼ばれています.それぞれ二つの形状を足し合わせた形状,一方からもう一方を差し引いた形状,二つの重なった部分の形状を意味します.
今回の図は差を表現しています.
内側のボクセルの集合Aから内側のボクセルの集合Bを引くという処理を行います.
差を式で表せば,A - B です.
同様に,和と積は,内側の集合Aと内側の集合Bを足す処理,集合Aと集合Bがどちらもが内側の部分を取り出す処理を行います.
和を式で表せば,A ∪ B,積はA ∩ Bとなります.
まぁ,簡単にこのような操作が行えるのがボリュームデータの魅力のひとつですかね.
PR

Trackbacks

TRACKBACK URL :

Comments

Comment Form