アンモナイトを描こう(第2回)

殻口の形状を1本のドーナツ状の輪で表現する

 前回は、単純に球を螺旋に沿って並べただけでしたが、これだけでは様々な形をしたアンモナイト をそれらしく表現することができません。そこで今回は、実際のアンモナイトが成長するように、 殻口に見立てた1本の輪を対数螺旋に沿って回転させることによって、さらにリアルな描画を試みたい と思います。本当のアンモナイトの殻はかなり薄いものですが、残念ながらパソコンの能力の限界もあるので ここではかなり厚めの殻で我慢してください。


殻口の作り方

 単純なドーナツ型のパーツは、実はPOV-Rayが最初から用意しています。しかし、それを使っても この後おこなうような様々な工夫を取り入れることができないので使用しません。
 殻口の作り方ですが、簡単に言うと小さな球をドーナツ状に並べることで実現します。 但し、ここでひと工夫です。単純に球を並べただけでは、どうしても凸凹があるため、アンモナイトを 描いた時にちょっとザラついた感じになってしまいます。そこで、POV-Rayが持つ「blob(ブロブ)」 という機能を使います。この機能は、複数の物体をお互いに引き合うように滑らかに結合することが できるものです。完全に凸凹が無くなるわけではありませんが、滑らかになるため、かなり良い感じになります。

しかし、実際のアンモナイトの殻口はというと・・

 さて、ここで問題になるのは、実際のアンモナイトの殻口の形です。異常巻きなどでは比較的単純な 円形をしているものもありますが、たいていのアンモナイトは厚みがなかったり、極端に幅が広かったり、 四角っぽかったりします。さらには、横からみるとS字状に屈曲していたり、前方に突き出ていたりと、 その変化は多彩です。さて、これをどのように作成したらよいのでしょうか?
 ここから、少々話が複雑になります。興味の無い方は、すっ飛ばしてサンプルに進んでください。(笑)
この複雑な形状を1本のドーナツで表現するのに「ベジェ曲線(bezier curve)」というものを使います。 これは、WordやExcelなどで「自由曲線」として提供されているもののひとつです。つまり、 滑らかな曲線を描くことができるということです。この曲線の上に球を並べることで、自由度の高い殻口を 表現できるわけです。しかし、ここでも重大な問題があります。本来「ベジェ曲線」は平面上での曲線を 描くものです。それに対して殻口は3次元的に屈曲しています。「ベジェ曲線」を3次元に拡張するなんて技 は数学者でもない私にできるはずがありません。そこで、簡易的に(あくまでも簡易的に)正面から見た形状 と、側面から見た形状を2つの「ベジェ曲線」として定義して、それらしくしてしまおうと言う訳です。
「ベジェ曲線」を描くプログラム自体は難しいものではありませんが、色々と小細工をするのでプログラムが長く なってしまいます。ここでは省略します。
 以下は、実際に描いた殻口のサンプルです。3方向からの眺めを描いています。黒い丸は座標の中心を表しています。 また、ちょっと歪んだように見えますが、カメラ位置によるもので、実際には左右対称です。
   

実際のアンモナイトの描画

 それでは、これまでの手法で描いたアンモナイトのサンプルをご覧ください。
 (注意)
  プログラムを表示した時に、コメントが文字化けする場合は、ブラウザのメニューからエンコードを「UTF-8」に 変更してください。
  また、POV-Rayで利用する場合には、ファイルの拡張子を「.pov」に変更してください。


テトラゴニテス風 大きな画像  プログラムソース

四角い感じの螺巻が判るでしょうか?
ハウエリセラス風 大きな画像  プログラムソース

薄っぺらいアンモの代表です。
ネオフィロセラス風 大きな画像  プログラムソース

密巻きアンモの代表です。

上のネオフィロセラス風のサンプルでは、殻口を描く時に、2回に1回は若干殻口のサイズを大きくして描くことによって 細かな肋を表現しています。次回は、肋や疣やキールのあるアンモナイトに挑戦します。

第1回へ戻る  第3回へ進む