忍者ブログ

カレンダー

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)とは三次元のボリュームデータを扱うための最小単位で,画像でいうところのピクセル(Pixel,画素)にあたるものです.

大概どんなにものでも表面の内側に中身が詰まっている.
かわいいあの娘にも,ちゃんと中身がある.
ペラペラの面で構成されているわけではない,ちゃんと脳も筋肉も臓器もあるはず.
別に女だけじゃなくて,身の周りの家の壁や,板なんでも中身がある.
CGで体積があるもの,中身が詰まっているものを扱う時に,面しか定義されていなかったら,不自由極まりない.というか,面しか定義されていないのに,中身を扱えるわけがない.
たとえば,表面だけの大根を切っても,切り口はペラペラの面だけで,中身がないわけだ.これは現実離れしている.
たぶん,そういうのを問題に思った輩が,ボリュームデータを考えたんだと思う.
そういうボリュームデータを扱う方法の一つがボクセルです.

3次元空間内に,ボクセルと呼ばれる空間の要素が敷き詰まっていて,その要素で「もの」を定義します.
ボクセルの表現として,小さな立方体を格子状に敷き詰める方法があります.
他にも8面体や12面体などを敷き詰める方法もあるようですが,考えるのが面倒なのと実装が面倒なので,ボクは立方体を格子状に並べればいいんじゃないのって思っています.

ですから,立方体を格子状に並べて,ものを定義してみます.
xyzの三次元にボクセルを敷き詰めて,内側/外側の2値で形を定義してみようと思います.
内側というは中身,外側というはその「もの」の内側ではないということです.

何の形が表現に好ましいのかわからないので,とりあえず螺旋を作ってみました.
螺旋の媒介変数tを用いた関数は以下です.
x = a cos(t)
y = a sin(t)
z = b t
aとbはそれぞれ係数です.
螺旋の関数で,螺旋上のボクセルを内側とします.
voxel_voxel.png

うん,格子状のボクセルで,螺旋が表現されている.
せっかくだから,この螺旋を太らせてみよう.
螺旋に該当したボクセルからある距離内もボクセルを内側と定義してみよう.

voxel_03voxel.png

太った.もう少し太らすと.

voxel_06voxel.png

太った太った.
しかし,古い論文に出てそうなライティングしているなぁ.
まぁこういう古典的な色が好きなんですよ.

とにかく,格子状のボクセルを内外を定義するだけで形を作れるというです.
こうやって,形状を定義すると,切っても中身があるように見えるのだ.(次回,やってみるわ)
ただ見ての通り,立方体の格子だと,見た目がひどい.
まぁこれは立方体が大きいというのが問題のひとつかもしれないが,小さくしようとすると,それに依存してデータ量が膨大になるので,私のようなヘッポコなコンピュータしか使わない人には,難しい問題ですね.

PR

Trackbacks

TRACKBACK URL :

Comments

Comment Form