2011年6月10日金曜日

Reaction Diffusion 3D

反応拡散系のシュミレーションをoFで書いてみた。3次元2成分のGray Scottモデルを使用。

参考は、Nervous Systemのこのコードと、このページ

最初、FitzHugh-Nagumoモデルに書きなおしていじってたけど、よさげなパラメータが見つからずgdgdになったので放置。結局、単純に元ネタをcppに翻訳した感じになった。

RD_GrayScott3D_Mesh.zip (使用しているアドオンはofxMarchingCubes、ofxSTL、ofx3DUtils、ofxVectorMath。)

GUIはきまぐれで自作。実はMarchingCubesも自作してたけど、後から見つけたアドオンのほうが出来がよかったのでお蔵入りになった。残念。

2011年5月7日土曜日

貝のやつ

HIGASHISMのひとを見てたら自分もやってみたくなったので、やってみた。

円錐からの整形は早々に諦めてwebでカンニングしてたところいい感じにまとまったサイトを発見したので参考にしつつcinderで実装してみた。

上記のサイトにのってるアルゴリズムは基本的な殻の生成に加え、瘤を発生させることができ、画像のようなトゲの生えた貝も描画できる。
以下がソース(SimpleGUIが必要。)

TheMuseumOfAllShells.zip

法線計算が力技でかなりひどく、また瘤の挙動が仕様か実装ミスか時々変なのが気になる。時間できたら、手を加えよう。

あと、gitにある最新のcinderで該当箇所のコメントアウト(TheMuseumOfAllShellsAppApp.cppの263行目くらい)を外してビルドするとメッシュを.obj形式で保存できるようになる。なかなか便利。

2011年4月18日月曜日

openframeworks上でのアンチエイリアスのかけ方

tipsを二つメモ。openframeworksでアンチエイリアスをかける方法と、ワイヤーフレームを描画する方法について

2011年4月4日月曜日

断面図の出力

3Dモデルの断面図を計算するコードをスケッチしてみた。



前回のsplitMeshをやっつけで書きなおしただけなのでコードは汚め。

3Dモデルのアウトプットとかに使うつもり。

ここからさらにsvgで出力し、
カッティングプロッタでプラ板等に切り出し、
積層していくとか。

2011年3月22日火曜日

三次元ボロノイ分割

half-edgeデータ構造の勉強に、Frederik Vanhoutte氏のコードをFlashへ移植してみた。



マウスプレスで母点追加、キープレスで更新のオンオフ

描画はテキトー
さらっと書くつもりが、完成間近で一度ミスってファイルを消したり、バグがとれなかったりで時間かかった。

2011年3月18日金曜日

Xcodeでパッケージにファイルがコピーされない

cinder上でGLSLをいじっていて
warning: no rule to process file '$(PROJECT_DIR)/hoge/FlatShader.frag' of type sourcecode.glsl for architecture i386
warning: no rule to process file '$(PROJECT_DIR)/hoge/FlatShader.vert' of type sourcecode.glsl for architecture i386
warning: no rule to process file '$(PROJECT_DIR)/hoge/NormalMap.frag' of type sourcecode.glsl for architecture i386
warning: no rule to process file '$(PROJECT_DIR)/hoge/NormalMap.vert' of type sourcecode.glsl for architecture i386
という警告がでてパッケージに該当するファイルがコピーされなくなった。

左のカラムの”ターゲット”を開くと、”ソースをコンパイル”にGLSLのファイルが入っていたので、”バンドルリソースをコピー”にドラッグする。そうすると警告がでなくなり上手く動くようになった。



単純だけど、いきなりなって焦った。 .vertや.fragって前からこうだったかな?

2011年3月10日木曜日

XcodeでMacPortsのフォルダにインクルードパスを通す

セットアップしたMacPortsを実際に使用してみる。ついでに、Xcodeでの使用方法もメモしとく。

とりあえず、Boostライブラリを例にする。
ターミナルから
sudo port install boost
とうつとインストールが始まるので、しばらく待つ。buildに時間がかかる。
これで、ライブラリのインストールは終了。

で、Xcodeでインストールしたライブラリを使用するには、インストール先である/opt/loaclまでのパスを設定してやればいい。

boostのヘッダーは/opt/local/include/に格納されているので、Xcodeのプロジェクト>プロジェクト設定の編集>ヘッダ検索パスに/opt/loacl/include/と追加する。
これで、Xcodeのプロジェクト上でboostが使用可能になる。