ポアンカレ万華鏡の制作 (5) コンピュータ上の万華鏡制作

それでは、コンピュータ上の万華鏡の制作過程について話します。
45-60-60
最初に、このタイリングを構成するすべての三角形の頂点座標を求める必要があります。(2)でお話ししたように、ポアンカレ円板では円板上の位置によって長さの単位が変化します。そのため、頂点座標の計算は少々やっかいです。

基本的には(3)の鏡映の原理を用いて、中心に近い三角形から円周方向へ、1つずつ順番に頂点座標を求めていきます。
layer0-3
もう一つやっかいなことは、ポアンカレ円板では三角形の辺が曲線になることです。コンピュータの最も基本的な図形描画の単位は、辺が直線の三角形(ポリ ゴン)です。したがって曲線を描画するには、曲線を人間の目でわからない程度の直線の組み合わせで描画することが必要になります。それに伴って、鏡像のも とになる1つの三角形を、複数のポリゴンに分割して描画することになります。
curvepoly
このようなことを考えると、ポアンカレ円板でタイリングする三角形の、頂点座標を求める作業量は膨大なものになります。特に、円板の円周近くでは三角形の数が指数関数的に増えます。ここはタイリングの対称性を最大限に利用して、作業量をできるだけ減らします。

このタイリングでは、円周方向45度ごとに同じ図形が現れています。したがって、45度分だけの頂点座標を求めておき、後はその座標を45度ずつ回転さ せて求めるのが最も効率的です。ちょうど、1片のピザの切れ端からピザ全体を作るような感じです。これで、作業量は8分の1になります。
piece1-4
エッシャーもこの種類の作品を作るときには、円周方向の一部分の版木だけを作成して、刷るときには版木を回転させていたそうです。版画の時代もコンピュータの時代も、制作を効率化するための方法が変わらないのは面白いですね。

とはいえ、頂点座標を求めるのは、まるで砂浜の砂を一粒ずつ選り分けていくような地道な作業です。私の作ったタイリングでは、45度分だけでも、鏡像と なる三角形の数が538、ポリゴン数は1784、頂点数は2536個になりました。円板全体では、実に14272ポリゴンを描画することになります。

そして、鏡像に表示するオブジェクトが対称性を持って規則的に表示されるように、三角形の各頂点について、オブジェクトの表示位置を決める座標(これをテクスチャ座標といいます)を計算します。これも、かなり根気のいる作業です。
すべてのテクスチャ座標が決まれば、万華鏡の基本骨格は完成です。

あとはプログラムの世界です。DirectX のプログラミング手法についてはここでは割愛しますが、良い参考書がいくつも出ていますので、興味のある方はそれを参考にしてください。

下の画像は「ポアンカレ万華鏡」の試作品のスクリーンショットです。オブジェクトが動くと、それにつれて円板の周縁部分がきらきらと揺らめいて、満天の星空か夜景を眺めているようなできばえになりました。
poincare01medium

(おわり)

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク