最近はDLSS使って描画補完してレイトレーシングをリアルタイムに行う事が可能になり、ゲームでリアルタイムレイトレーシングが使えることが現実的なってきたよなぁ、と感じてきたので、そういえば20年以上マニリアルタイムレイトレーシングやってた人が居たよなーっとの記憶から当時メガデモでリアルタイムレイトレーシングしていた物を紹介してみようかなと思いました。
#1996年
もう25年以上前のフィンランドのイーサルミで開催されたパーティJuhalaで64kカテゴリの3位を獲得した物。実際のイベントは当時も知らなかったのだけど、scene.orgでアップロードされたのでフィンランドのデモパーティを知らなくても当時拾うことが出来て動かすことが出来た。最初に見た印象は何だろう?コレ?だった記憶
ちゃんとアーカイブされていて
scene.orgは現在も健在なので2021年でも拾うことが出来る。
#実行
当時のMS-DOS環境が無いとしても実は動作させるのが可能で
DOS BOX使うとWIndows環境で当時のデモを見ることが出来る。
コレを書いている時点ではver 0.74-3 2019年なので若干更新が止まっている気真するけど動作に関しては特に問題ない。
インストールするとディスクトップにDOSBOXアイコンが出現
インストールオプションはデフォルトのまま進めて問題無し
ディスクトップのアイコンをダブルクリックで実行すると
この画面がウインドウ表示される。
件のデモmfx_tgr2.zipをdownloadサイトから拾って解凍する。
手元の実行環境だとDドライブにmegademoディレクトリ作成してそこをdemo置き場にしているので、解凍したファイルをそこに置いている。
Mount x d:\megademo
の様にマウントするとxドライブがdosbox内部でマウントされる。
X:
Cd MFX_TGR
TGR2.exe
で実行される。
DosBoxはキーボードの設定が日本語キーボードではなくデフォルトで101英語キーボードなので注意。
\を入力したいときは¥を入力_(アンダーバー)は-のキーのシフト:は;のシフトで入力できる。
デフォルトの状態だととっても遅いのでCTRL+F12連打で大体20万サイクルにCPUスピードを上げると滑らかに表示される。
音が出ない….昔はDOSBOXはGUS対応していたのですが、最近はSB16になってしまい、メガデモ定番の「GUSしか音出ません」状態で音が出ません。
実は、youtobeにDosBoxのGUS環境で動作させた動画が上がっている。
#解説
本当はソースコードでもあると良いのだけど当時はGitHubなど無くsvnさえ存在しない時代(かろうじてCVSがあったかも)なので探してみたがソースコードは見つからなかった。残念、なので憶測による解説になるが、当時の一般的なDOS/Vの解像度640x480から、更に解像度を下げて320x240に(ブラウン管の解像度が変更されて反応していたブーンって奴ね)した上にインターレースでの描画そのまま表示せずにfogを焚いてボカして見た目を少しごまかし。サウンドはGUS(ハードウエアでXMやMOD,S3Mなどのサウンドが再生できる)のみで完全にCPUぶん回してレイトレーシングとレンダリングしてのではないかと推測していた。
1996年当時はwindows95の翌年でDirectXがライブラリとして登場したのは良いが安定していなく環境によって動作したりしなかったり、対応したドライバが安定していなかったりと、ゲームやるのならDOSで遊ぶのが当然、洋ゲーではDukeNukemやQUAKEが発売された頃、コンシューマーゲームではプレイステーションとセガサターンが日本では発売され覇権を争い、未だにファイナルファンタジー7は発売されずにいた時代。その様な時代にリアルタイムにレイトレーシングをPCで行うプログラムを作成している事に当時ビビった記憶。まぁ、実際当時動かしてみた感想はリアルタイムでレイトレーシングって相当無茶苦茶だけど、この描画されている物は何だ?って感じだった。ちなみにメガデモはファイルサイズを正気じゃないほど縮小するのが正義だったのでこのデモもzipに圧縮されると64kbyteを切るファイルサイズになっている64k以下のサイズのプログラムでリアルタイムレイトレーシングをやってのけたメガデモは自分の知る限りコレが最初、この後は21世紀に突入してCPUが高速になってきた頃に再燃して、GPUが使えるようになる事で計算速度が飛躍的に強化され、ゲームではCyberpunkやBattlefieldでリアルタイムレイトレーシングが部分的に採用されるようになって来ている。もうちょっとで現実的な世界に手が届きそう。