kaleidovr.jpg


立体万華鏡

 今まで、いくつか万華鏡をモチーフにしたデータを作ってきました(以下)。

 これまでの万華鏡は、実際の万華鏡と同様に、三角柱の側面部分に鏡を使ったものでした。今回は、万華鏡を立体化するに当たり、三角柱ではなく、正多面体を使います。

鏡の配置方法

 もはや、正多面体を使った万華鏡なんて、見たことも聞いたこともないし、ましては、その中に入り込んで、ぐるっと回りを見まわそうというので、もはや、どの多面体を使うのが良いのか、予想が付きません。
 とりあえず、正多面体と呼ばれる物体は、全部で5種類しかありません。……詳細に関しては「正多面体」を参照してください。

polyhedron.jpg

 上段左から順に、正四面体、正六面体(立方体)、正八面体、下段左から、正十二面体、正二十面体の5種類です。
 ひとまず、全部やってみましょう。以下、鏡を定義する部分の抜粋です。

  attr 万華鏡=
  {
    refl 0.90,0,0.2;
  };
  not
  {
    tetrahedron 0,0,0, R;  // 正四面体
    //cuboid 0,0,0, R;     // 正六面体
    //octahedron 0,0,0, R;  // 正八面体
    //dodecahedron 0,0,0, R;  // 正十二面体
    //icosahedron 0,0,0, R;  // 正二十面体
  }


 ここで作った多面体は、通常、中身が詰まっているのですが、万華鏡では、その内側に視点が入り込むので、not命令で括って、中身の詰まった側を反転する必要があります。
 if命令等で切り替えられるようにはしていないので、使いたい多面体に合わせてコメントを調整してください。

 各々、静止画のレイトレーシングを実行してみました。各画像は、「YouTubeの360度動画を生成する」などで解説した正距円筒図法となっています(下図、再掲)。

scrimg.png

正四面体

kaleidovr4.jpg

 ちょっと、上の画像では小さすぎて解り難いのですが、個人的には、これが一番「万華鏡」的な特徴が出ていると思いました。

正六面体と正八面体

kaleidovr6.jpg

kaleidovr8.jpg

 こちらは、ちょっと「万華鏡」とは違うけど、「合わせ鏡」の無限に続く様子を観測できます。

正十二面体と正二十面体

kaleidovr12.jpg

kaleidovr20.jpg

 こちらの2種類は、さすがに鏡の数(面数)が増えてきて、複雑な映り込みを繰り返した結果、何らかの規則には乗っかっているのだろうけど、カオスな感じになって、「宇宙の星」を見ている様な感覚になります。


完成データ

 完成したデータをリンクしておきます。

1) Xi-TRACEデータ kaleidoscope_vr.xitr
2) Xi-TRACEライブラリ kaleidoscope_vr.lib

 1)でレイトレーシングを実行します。2)は1)から読み込んで使用しますので、1)と同じディレクトリに格納してください。

 一番「万華鏡」っぽい正四面体バージョンと、「合わせ鏡」の面白さが観測できる正八面体バージョンを360°+ステレオ3DのVR動画に起こしてみました。

 まず、正四面体バージョンが以下です。




 次に、正八面体バージョンが以下です。



 360°ステレオ3DのVR動画になっているので、スマホ+カードボードでの視聴を推奨します。ただし、例えばPCなど、ステレオ3D環境が無くても、ちゃんと360°VR動画としての視聴は可能ですので、マウスなどで画面(やコントロール)をつかんで、グルグルと周りを眺めてみてください。

 スマホ+カードボードについては、「YouTubeのCardboardで360度3D動画を鑑賞する」にて解説済みです。


home

download

gallery