2011/09/27

頂点の可視性判定(同時上映:Processingで行列操作)

3次元情報が与えられた頂点集合のうち、実際にレンダリングする際にカメラに写るものとそうでないものを判定する実験です。

通常、3D における可視性の判定は非常に重たい問題なのですが、今回は単に、『頂点とカメラの間に遮蔽物が存在するか否か』という簡単な問題だけを扱う事にしました。

テストデータはこんなの(↓)。四角形の板がたくさんあり、それぞれの頂点は 3 次元世界座標が既知であるとします

 

愚直な方法ではありますが、判定したい頂点とカメラ視点とを結ぶ線分が、任意のポリゴンと交差するか否かで可視性を決定できます。

通常、より手前のポリゴンに覆い隠されてしまう頂点は、カメラに写りません。

Processingでお絵描きテクスチャマッピング

ご無沙汰でした。

夏休みぼけが酷いので、ちょっとリハビリがてら、『ペイントソフトの要領で、テクスチャをお絵描きできるサンプル』を作ってみました。


2011/09/16

ウニと仲良く

ウニ本 7 章。

遂に、プレイヤーキャラクタに命が吹き込まれます。

キャラクタのモデルや歩行・ジャンプといった標準的なモーションはデフォルトで用意されているので、それらを適当に配置するだけで簡易的なウォークスルーが完成します。
手乗り状態のおじさん。シュール。

実行すると、こんな感じ。
不気味な空き地を我が物顔で闊歩するおじさん。手には凶器。
なんか雰囲気がバイオハザードですが、そこは気にしない。

2011/09/14

OpenCV で Tilt Shift もどき

ある日突然、「3年生の向けの『画像情報処理』の演習課題を作ってほしい」と言われました。なんじゃそりゃ。

軽く考えていたものの、いざ作り始めてみると意外なほど制約が多い事に気付きました。

まず、この学校ではなぜか C++ のカリキュラムが存在しないため、サンプルコードもオブジェクト指向を極力避ける形になります。加えて、3年生は JABEE の関係上、非常に過酷な実験科目が別途課されているため、あんまり追いつめるわけにもいきません。

そんなこんなで、ひとまず「Gaussian フィルタによる画像平滑化を利用した Tilt Shift 画像の生成」と題して、デジカメで撮った写真をファンタジックに加工する処理でも実装して頂こうかと考えています。なんじゃそりゃ。



Tilt Shift で画像検索すると、風景がまるでジオラマのように写っている写真が多く見られます。この効果を狙って、Tilt Shift レンズが装着されているカメラも存在します(4月25日の日記参照)。

本来は、アオリ撮影を応用して被写界深度を狭めるテクニックなのですが、通常の画像でも簡単な画像処理を施す事によってその効果を疑似的に再現する事が可能です。

今回、試作したプログラムで写真を加工した結果はこんな感じになりました。

【Before】
【After】

上下にぼかしが加わっているのがお判りいただけますでしょうか。

彩度やコントラストを強調したり、構図を工夫したりすれば、よりジオラマのような質感が得られますが、今回は簡単のため省略。

UnityでJavaScriptと仲良くなってみる

すみません、こんな事になりました。


食中毒でも起こしたのか、体内は上下線ともに特別急行。腹痛と悪心でこの世が終わりそう。2011年9月13日 6:59 via Echofon

一日中床に伏せっていて、登校したのは結局23時40分。昼夜逆転どころの話ではありません。

2011/09/12

Unity がはじまった!

先日、O'reilly の動物シリーズに、『Unity による 3D ゲーム開発入門』が仲間入りしました。


表紙のウニは、恐らく Unity を意識したのでしょう。

好評のためか、現在は O'reilly の通販や Amazon.co.jp では入荷待ち状態となっています。