Pages

Monday, December 21, 2020

スーファミにリアルタイムレイトレ実装してみた - GIZMODO JAPAN

いずれは『スターフォックス』にレイトレを実装してみたり…!

カートリッジの中に別のグラフィックス処理チップを内蔵することで、初代『スターフォックス』は16ビットのスーパーファミコンで3Dグラフィックスを可能にしました。スーファミ自体にこういったアップグレードの可能性を残しておいた任天堂もクレバーですが、スターフォックスの登場から29年、エンジニアのBen Carter氏はこれを利用し、最早アンティークとも言えるスーパーファミコンに、リアルタイムレイトレーシングを実装してしまいました。

スーパーFXチップ」と呼ばれるチップは、なにも任天堂の広報部が、宣伝のためだけに大げさな名前をつけたわけではありません。『スターフォックス』だけでなく、欧米では『Dirt Racer』というレースゲームなどにも使用されているこのチップは、スーパーファミコンのレンダリング能力を向上させるためのコプロセッサです。本体からフレーム毎に何が起きているかの情報を受け取ったスーパーFXチップは、映像をレンダリングして返し、本体がそれをテレビに出力します。あまりにもザックリした説明ですが、『スーパードンキーコング』のようにあらかじめレンダリングされたスプライトを使って疑似的に3Dに見せていたのと違い、『スターフォックス』は本物の3Dでした。

16ビットの時代に3Dポリゴンのグラフィックスを実現したことは驚きですが、今となっては決して優れた見た目とは言えません。モデルに使われていたテクスチャはほぼ単色で、影は最低限だし、光のエフェクトなどは皆無でした。当然、オブジェクト同士の姿が鏡のように映り込むこともありませんでした。現在の3Dゲームが現実のようにリアルに見えるのはそういった部分の進化が理由ですが、スーパーFXチップにはまだ荷が重すぎたのです。

なので、「日本在住でフリーランスのゲーム開発者/ソフトウェアエンジニア」だというBen Carter氏は、スーパーFXを参考に、スーパーファミコンと連動し、レイトレーシングと呼ばれる最新のエフェクトを実現する独自のグラフィックス・コプロセッサを開発できないかと考えたのです。現実世界では、光の粒子が部屋の壁や物体に当たって跳ね返ることで、影や反射、その他の視覚的な現象が発生するのです。明るい部屋で真っ赤なボールを手に取ると、手も少し赤く見えるはずです。レイトレーシングは、シーンに入ってくる光の軌跡を辿り、仮想のオブジェクトに跳ね返る毎に他のオブジェクトにどういう影響を与えるかを計算することで、その現象を再現しています。

これはプロセッサに非常に負荷のかかる処理なので、その後のPlayStationやNintendo 64でも実装できず、それらの機種のグラフィックも古く感じてしまうのです。そんなものをスーファミに実装するなど不可能に感じますが、Carter氏は本当にやってしまいました。

彼がYouTubeに投稿したデモは、Nvidia RTX 3080を搭載したPCで動作している『サイバーパンク2077』などとは比べるべくもありません。グラフィックの解像度は200×160 (スーパーファミコンのネイティブ解像度、256×224をやや下回っています) でレイトレーシングの光の反射は1度のみ、影も指向性ライトからの影のみですが、『スターフォックス』に比べるとスーパーファミコンで動作しているとは到底思えません。

これを可能にするため、Carter氏はスーパーファミコンの本体を開け、つまらないパチスロのゲームのカートリッジを1つ犠牲にしなければなりませんでした。彼はゲームのROMを取り除き、Cyclone V FPGAを搭載したDE10-Nano FPGA開発キットにカートリッジを接続しました。Cyclone Vという名前に聞き覚えがあったとしたら、それはこれから発売される携帯機、Analogue Pocketにも使われているからでしょう。

Carter氏は自身のウェブサイトで、実際にボードに接続されたコンソールの写真を公開していますが、ご想像の通りの見事なスパゲッティ状態で、ハードウェアハッカーでなければとてもじゃないけど理解できる状態ではありません。現在のデモは20fpsでしか動作しませんが、同氏はもっと向上できると考えています…ただ、それが一体何のためかというのは不明ですが。例え初代『スターフォックス』のグラフィックスをアップグレードできたとしても、オリジナルのカートリッジに付けられる改造チップを彼が開発しない限り(それもまたとんでもない作業です)、遊べるのは彼だけでしょう。しかし、コンソールのアップグレードという意味で、非常に素晴らしい功績だといえるのではないでしょうか。

Let's block ads! (Why?)


からの記事と詳細 ( スーファミにリアルタイムレイトレ実装してみた - GIZMODO JAPAN )
https://ift.tt/38oNjbm
科学&テクノロジー

No comments:

Post a Comment