ダイヤモンドCG

波長による屈折率の違いを考慮したレイトレーシング

ムービー[144 Frames 160x120pixels:364K bytes]

概要

ダイヤモンドやジルコンなど、高屈折率の宝石をブリリアントカッとしたものは七色に輝く。
この輝きをコンピュータ・グラフィックスで再現できないかと思ったのが製作のきっかけ。
静止画については、1995年5月に完成させた。
最近、Power Macintosh G3を購入し、高速処理が可能となったので
ムービーを作成した。

レイ・トレーシングのソフト

参考文献の山本氏のBASICで書かれたプログラムが元になっている。
これをC言語に移植して以下の機能を追加した。
1. 3角形ポリゴンモデルをサポート
2. 屈折モデルを追加
3. RGB個別に屈折率を変えてレイトレーシングを行うように変更
屈折モデルでは、本来表面反射を扱わなければならないが、光線が分岐して
処理が重くなることと、光の分光は屈折に起因していることから、
表面反射を省略して屈折光1本だけをトレースしている。
本来、レイトレーシングは、物体の表面の色を主に扱うのだが透明体にはそれがない。
透明体のモデルでは、光源から物体に最初に侵入する角度によりシェーディングと
同じ演算を行ってその輝度を求めている。今回は、背景は黒、光源色は白色とした。
可視光線は色々な波長の光で出来ている。しかし、CRTなどはRGBの
3色のみですべての色を表現していることから、分光を考慮したレイトレーシングも
3波長だけで十分ではないかと思い、やってみたらそれらしい画像が得られた。
ダイヤモンドの波長による屈折率は以下の通り。

波長 屈折率
6870Å 2.407
5890Å 2.417
5720Å 2.427
4380Å 2.451

今回は、適当に

波長 屈折率
赤(R) 6870Å 2.407
緑(G) 5890Å 2.417
青(B) 5720Å 2.427

とした。

ブリリアントカットモデル

案外探しても、なかなか正しいブリリアントカットモデルの資料がない。
数学的に作図しなければならないので、宝石研磨を扱った専門書を購入することになった。
研磨の手順に従った書き方をしいるので、それでも分かりづらかったが、
規定される角度や寸法のパーセンテージから割り出して、C言語で回転体を作る要領で
モデルを作成した。

  

参考文献

CQ出版社 「THE 3 DIMENSIONAL COMPUTER・GRAPHICS
       パソコンによる3次元グラフィックスの実際」 山本 強著

創元社 「宝石教室 宝石鑑別の理論と実際」 ヒコ・みづの
ISBN4-422-73003-7 C0072 P8000E

フューチャー・ホームページへ戻る

(C)1997 Future on netyou ALL RIGHTS RESERVED.