グラフィクス

メタボール(3種類目)を実装

今まで、1回目2回目、と、ことなる実装方法でメタボールを実装しましたが、また違った手法がありました。

そこで実装してみたいと思います。

1回目は、かなり有名なMC法を元にした方法で、ラスタライザで表示をしました。

2回目は、レイトレーシングのために、MC法とは異なる手法で実装するために、BezierClipping法を使って計算しました。

そして今回はSphere Tracing法を使って実装してみました。次の画像です。

METASPHERE

Sphere Tracing法は、レイトレーシングを実装する方法の一つですが、SphereTracing法で使われる距離関数を上手く設計することで、メタボールなどの物体同士のなめらかな結合を表現することができます。

以下、動画版(Youtube)です。

レイトレーシングを実装v3

レイトレーシング全部自前実装v1 ,v2 の続き。

ベジエクリッピングによるメタボールの実装をしました。

メタボールの混合密度関数の等値面上の解をベジエクリッピング法で求めています。
この方法では以前の方法のようなメタボールをマーチングキューブ法でポリゴン近似する必要がないというメリットがあります。

以下画像。

ここでは3つのメタボールがいい感じに融合してますね。

meta_ray_good

 

 

レイトレーシングを実装(v2)

これの続き。

材質を追加しました(ランバート拡散反射)

・結果

image

画像の床部分と大きな球が拡散反射の材質を持っている。

色付き球と床の接触部分付近や大きな球に、色が写り込んでいるのがわかりますね。

 

おまけ 模様つき

rtlbt2

おまけ2 twitter動画埋め込みテスト

レイトレーシングを実装(v1)

慶応大学は、春季休校に入りました。期末試験が終わり開放感を感じる中、自分のまだ知らないことを色々勉強していかなければならないと思いました。

とはいえ、テスト終わりすぐに難しい本やらを読むのは気が引けるので、きばらしとして簡単なレイトレーシングを実装してみることにした。ただしライブラリに頼るのは本末転倒であるので、今回は何もライブラリを使わずに1からやってみようと思った。(しばりプレイ)

・やること
簡単なレイトレーシングをする。
外部ライブラリは一切使わない。(画像表示、画像保存、線形代数、などの基礎ライブラリも使いません)
使えるものはVisualStudio(C++)で標準的に使えるもののみ。

・結果

sphere_rt

表示は自力BMP。

床だけは赤い床で、上からの平行光源と、光を鏡反射する球3つと床のみで構成。

よく見ると、何度も光が反射することによってできる跡が伺える。(床からの反射がわかりやすい)

図形はこのような配置にしている。

図_srr

注:実際はもっと床が下にある。

おまけ 2方向からの光

test02

3方向
test03

かがやくねんど(謎)

This is the shining clay ball!

shining ball

▼動画

冬休み突入記念として,かがやくねんどっぽいものを実装した.

実態はmeta-ボールである.

短く説明すると移動する2つの点電荷による等電位面を書いているのと同じです.

以上.

余談

等値面の生成に使ってるMC法,ウィキペに15通りって書いてあるけど

実際にプログラム組んだら22通りもあった.

ウィキイペにのってる15種類でやると穴が開きます(ひどい).

自然な画像合成を実装してみた(けど…)

冬休み突入記念第二弾

自然な画像合成を実装してみた.

YUKICHI SKY

空の画像に,諭吉を合成

がしかし,うまくいっているのかこれ...?

一応空の色とうまくブレンドされているのがわかる.

これくらいなら乗算合成でもできそう(絵描きのことはよく知らないが)

P.S.

さかなゆきちそら

ふやした

なんだこれ...

なんだこれ

もっとふやした

(参考文献: Patrick Pérez andMichel Gangnet  andAndrew Blake
,Poisson Image Editing,SIGGRAPH ’03 ACM SIGGRAPH 2003 Papers,(2003).)

超軽い草wwwwwwwww

この動画をみてほしいw

これ、草いっぱいあるよねww

でも、衝撃の事実をお伝えします。

実は、これ、動画全体で1枚のポリゴンしかないんです。

ポリゴンの一点の色を決めるときに、擬似的にレイトレーシングを行い、立体的に見せているというわけです(下図参考)。

だから軽い”K A R U I”!

完。

bandicam 2015-11-19 10-39-57-720

△図

参考『Instant Animated Grass』Ralf Habel Michael Wimmer Stefan JeschkeInstitute of Computer Graphics and Algorithms
Vienna University of Technology, Austria,2007