C++ 言語の お勉強のページ
C++言語の勉強にレイトレーシング(光線追跡)のプログラムを作ってみました。
3次元物体のクラスと光線追跡のクラスの集合体のヘッダー : raytrace.h をメインコードが呼び出して使うようにしてあります。 現在のところ PostScript と PPM(Raw) が出力可能な画像フォーマットです。
取り敢えず、こんな絵が書けました…。
4つの球体に映り込んだ「永谷」
屈折率=1.15。10次の反射まで計算。画面サイズ(768x614)。
メインコード : SphersWithImag.cc
上の絵のアニメーション版
少し手抜きの5次の反射まで計算
- 球が回転 (480x400,16frames): アニメーションGIF(約738KB)
- 屈折率が1.0から6.0までlinerに変化 (320x256,32frames):
アニメーションGIF(約706KB)
- 屈折率が1.0から100.0までexpに変化 (320x256,32frames):
アニメーションGIF(約888KB)
…各々のPII-366MHzによる計算所要時間 約20分
メインコード : ReflactionAnime.cc
球殻状鏡の内部での運動の見え方
反射率80%の鏡で出来た球殻の中で、後退していく「永谷」の文字列を、
球殻の内部から見るアニメーション:- 10次の反射まで計算(320x256,32frames) :
- 文字列は光を透過する設定 :
アニメーションGIF(約365KB)
- 文字列は光を透過しない設定 :
アニメーションGIF(約363KB)
- 文字列は光を透過する設定 :
アニメーションGIF(約365KB)
- 8次の反射まで計算(320x256,32frames): アニメーションGIF(約316KB)
- 6次の反射まで計算(160x128,32frames):
アニメーションGIF(約130KB)
- 8次の反射まで計算(320x256,32frames) :
- 文字列は光を透過する設定 :
アニメーションGIF(約749KB)
- 文字列は光を透過しない設定 :
アニメーションGIF(約777KB)
- 文字列は光を透過する設定 :
アニメーションGIF(約749KB)
256次の反射まで計算した「球面鏡の内部のレイトレース http://www2.yukawa.kyoto-u.ac.jp/~yukinori.nagatani/SphereInside/」もごらん下さい。
基研を背景にした4つの球体

これの
アニメーションGIF版(約2.4MB)

反対方向に回転する6つの球体
7次の反射まで計算(320x256,32frames) :
- アニメーションGIF版(約980kB)
- MPEG版(約190kB)
三角形と4つの球体

メインコード ImageTest.cc

上と同じで、球体の屈折率を高めたもの

単なるテスト…

Last Update: Nov/11/1999
永谷幸則@京都大学 基礎物理学研究所
