当ブログは移転しました。

Pocessing 3Dを使ってみる

はじめに

Processingには、3Dを扱う命令が標準で多く存在する。これらを使うことで3Dを使用したプログラミングが手軽に行える。今回は、具体的な例を用いて解説してみたい。

 

3Dでスケッチを開始する

3Dを利用するのは簡単である。基本的には次のように記述すればよい。

サイズの3つ目のパラメーターでは、レンダラを指定することができる。

以前は4つほど種類があってOpenGLとP3Dが使い分けられていたりしたが、バージョン2.0からはP2DとP3Dに統合された。

 

3D上でスケッチしてみる

では、さっそく3D上で描画をしてみよう。シンプルに、直方体を描いてみよう。

ようこそ3Dの世界へ。

シンプルにという割には一見難しそうにみえるが、実際にやっていることは簡単である。

まず、translate()について

・命令

translate(x座標, y座標, z座標);

指定した座標の位置が(0,0,0)となるように座標を動かす。3D描画では、物体ではなく紙のほうを動かして描画位置をずらすことで物体がうごいているように見える。

ちなみに、z座標のパラメーターはなくてもよい。

続いてrotateについて

・命令

rotateX(回転角度);

rottateY(回転角度);

rotateZ(回転角度);

それぞれ、x、y、z座標に対して回転角度分座標を回転させる。

最後にbox()について

・命令

box(縦, 横, 高さ);

記述されたとおりの直方体が今の(0,0,0)を中心に描画される。

 

立体を複数個描く pushMatrixとpopMatrix

複数立体を描く場合、それぞれの物体を描く前に座標を元に戻す必要がある。

他にもやり方があるかもしれないが、僕は以下のようにして複数個立体を描いている。

 ここで使われているpushMatrix();は今の座標を保存してくれる命令である。popMatrix();でそれを呼び出すことができる。

つまり、pushMatrix();からpopMatrix();までをひと塊と考えれば理解しやすいと思う。

 

終わりに

processingで3Dを使う際には座標に気をつけなければならない。

とはいえ、この間隔をマスターしてしまえば基本的には2Dと同じである。

ちなみに、点や線などもz座標のパラメーターを追加することで3D上で利用できる。

スケッチの世界を広げてみよう。