続BASICでレイトレーシング第1回~第7回
この記事はリニューアルしました
目次B
https://ulprojectmail.blogspot.com/p/b.html
https://ulprojectmail.blogspot.com/2021/09/n88-basic256.html
N88-BASIC(256色)でレイトレーシング
続BASICでレイトレーシング第1回~第7回
この記事はリニューアルしました
目次B
https://ulprojectmail.blogspot.com/p/b.html
https://ulprojectmail.blogspot.com/2021/09/n88-basic256.html
N88-BASIC(256色)でレイトレーシング
N88-BASICでかんたんにレイトレーシング 第1回~第8回
この記事はリニューアルしました
目次B
https://ulprojectmail.blogspot.com/p/b.html
https://ulprojectmail.blogspot.com/2021/06/n88-basic-1.html
N88-BASICでレイトレーシング (1回目)~
リアルタイムレイトレーシングのサンプルです。
VL-BASICのレイトレーシングはすべての計算を
CPUのみで行っているため、外部GPU搭載の
高価なPCは必要ありません。
CPUは(コア数やクロック数などが)高性能な方が良いです。
今回は、g5.basをアップしました。
空間内を自由に移動できます。
左右の傾き、拡大縮小なども追加しました。
(キー操作はg5.basの最終行のコメントに記載。)
上記ホームページから最新バージョンをダウンロードできます。
Readme.txtを読んで遊んで見て下さい。
(動作環境Windows10メモリ4GB CeleronN3350 2コア2.4GHz外部GPUなし)
g5.basは、地球にできる月の陰を表示します。
スペースキーで後ろを向くと太陽と月が見えます。
地球を見ながら後方に移動すると月が見えます。
mキーで回転速度速めると地球と月の距離感を
感じることができます。
もっとましな地球と月のTextureがあるのですが著作権の問題で
公開できませんので、ぱっとしない画像になっています。
良いTextureをお持ちの方は24bitのbmpフォーマットにして
貼り付けて見て下さい。
リアルタイムレイトレーシングのサンプルです。
VL-BASICのレイトレーシングはすべての計算を
CPUのみで行っているため、外部GPU搭載の
高価なPCは必要ありません。
CPUは(コア数やクロック数などが)高性能な方が良いです。
今回は、g3.basとg4.basをアップしました。
どちらも空間内を自由に移動できます。
(キー操作はg3.bas、g4.basの最終行のコメントに記載。)
上記ホームページから最新バージョンをダウンロードできます。
Readme.txtを読んで遊んで見て下さい。
(動作環境Windows10メモリ4GB CeleronN3350 2コア2.4GHz外部GPUなし)
g4.basは、部屋内に電球と透明球、黄色球、円板型鏡を
配置し、キーボードの1~4キーで4種類の表示をします。
1は、Ray tracing
2は、Ray tracing 部屋が鏡面
3は、Photon mapping(拡散反射によるフォトンの拡散未対応)
4は、Photon mapping 部屋の鏡の反射によるフォトンの拡散
1の画像
Ray tracingの特徴である光の屈折と反射、影が見れます。
2の画像
部屋の壁が鏡のようです。だいぶ遅いです。
3の画像
Photon mappingの特徴である、集光模様と、
この画像では分かりにくいのですが鏡から反射した光
が壁にうっすらと見えます。
拡散反射によるフォトンの拡散未対応のため部屋の
明るさはRay tracingと変わりません。
4の画像
この画像では分かりにくいのですが、
完全鏡面反射によるフォトンの拡散のため、
Ray tracingより明るく見えます。
g3.basは前回紹介しました、木星の近くを光の速度で
飛行する、の木星付近に土星らしきものを表示するように
しました。キーボードの6キーで表示/非表示が切り替わります。
レイトレーシングならではの、環に土星の影が落ちている
のが見えます。
VL-BASIC(N88-BASICシミュレータもどき)の
拡張コンピュータグラフィックスで、
太陽と木星を置き、木星の近くに地球を配置しました。
この仮想宇宙空間を自由に移動できます。
バックスラッシュキーで前進するのですが、
通常の移動速度を光速にしてありますので、
光の速度を体験できます。
上記ホームページから最新バージョンをダウンロードできます。
ダウンロードしてReadme.txtをよみ、
g3.bas(キー操作はg3.basの最終行のコメント参照)
を走らせると以下のような空間内を光の速さで自由に
移動できます。
(shiftを押しながらだと光速を超えてしまいます。)
(テスト環境は、Windows10
Celeron N3350 2コア2.4GHz 外部GPUなしです。)
いかがでしょうか、光は木星の直径を横切るのに
約0.5秒の時間がかかります。
木星の直径の10倍離れたところから到達するのに
5秒かかります。
この仮想空間を光の速さで移動してみると
意外と遅いことが分かります。
実際に光の速さで移動したときに見える景色は
ゆがむらしいので見え方は異なりますが、
光の速さは体験してもらえると思います。
裸眼立体視ができる人は試してみて下さい。
平行法
交差法