Nishiki-Hub

国内外のPC/PCパーツ/スマホ/Appleなどの最新情報を取り上げています

Macとリアルタイムレイトレーシングの話 ~ 対応しているのかしていないのか

f:id:doskokimeil127-dosd:20210804005856p:plain

錦です。

先日、Mac向けで初めてとなるRDNA 2のGPURadeon Pro W6000X」シリーズが登場しましたが、今回は「レイトレーシング」とMacの話をしていきたいと思います。

先にこのエントリを読んでおくとわかりやすいかもしれません。

AMD、Mac Pro向けの「Radeon Pro W6000X」シリーズの仕様を発表 ~ Infinity Cacheが有効になるも、レイトレについての記載なし - Nishiki-Hub

レイトレ

現状、世界的にメジャーなレイトレをサポートしたGPUは、NVIDIAのAmpereシリーズとTuringシリーズ、AMDのRDNA 2シリーズです。NVIDIAと比べてAMDは、Apple製品に限らず、割といろんなOEM製品に組み込まれることが多いので、どちらかというとAMDGPUに期待していた方も多いかと思います。たとえば、RDNA 2 GPUを搭載したPlayStation 5やXbox Series X/Sでは、レイトレに対応しています。

一方、今回登場したRadeon Pro W6000Xシリーズの発表では、「レイトレーシングに対応した」という記載が、Appleの発表からもMADの発表からも一切見つかっていません。今回は、Macでのレイトレのサポート状況を調べてみました。

リアルタイムレイトレーシング

先に、リアルタイムレイトレーシングとは一体何なのかを、素人ながら説明したいと思います。

そもそも、レイトレーシングというのは、3DCGにおけるレンダリング手法の一つです。光の光学的な振る舞いをシミュレーションしレンダリングする。現実世界では、鏡やレンズなどで屈折や反射をしますが、そうした光線(レイ)の動きかたを見る側から追いかけて表現するというのがレイトレーシングです。これはすなわち、実質的に光の反射や屈折をよりリアルに表現できる手法として昔から用いられていたものです。3Dモデルに光の表現が加わることで、水面や太陽などがよりに表現でき、現実世界と大差ないグラフィックを実現することが出来ます。

レイトレーシングの概念自体は1970年代後半から存在しています。ただ、レイトレーシングで必要となる光のシミュレーションは、光の乱反射などを繰り返すことによって膨大な計算が必要となり、コンピュータの性能的にその用途は限られていました。特に映画や技術的なシミュレーションに限られていたでしょう。1フレームレベルの応答性が求められるゲームではなおさらです。

しかし、プロセッサ技術が進んでいくと、次はどうやら1フレームレベルでその計算ができるようになったぞと言うことになりました。それがリアルタイムレイトレーシングです。NVIDIAAMDもともに、専用のハードウェアアクセラレータ(NVIDIAは「RTコア」、AMDは「Ray Accelerators」)を用いて、リアルタイムレイトレーシングを実現しています。

RTXをサポートするAPI

本記事では「リアルタイムレイトレーシング」を毎度書くのはくどいので、RTXと省略します。

RTXをサポートする代表的なグラフィックAPIWindowsXbox向けにリリースされているMicrosoftの「DirectX 12」。DirectXでは、「DirectX Raytracing(DXR)」と言われています。NVIDIAAMDDirectXでデモしている他、ゲームにおいてRTXが最も使われているのはDXRでしょう。

しかし、RTXをサポートしているAPIは、DirectXだけではありません。VulkanやOpenRL、NVIDIA OptiXなどがサポートしています。で、今回の主題となるMacですが、実は、MacのグラフィックAPIである「Metal」も「Metal ray Tracing」で対応しているのです。また、そもそもVulkan自体がMacをサポートしているので、Metalの対応の可否問わず実はMacでRTXを問答無用で使えたりします。

macOS 12でのレイトレ

で、WWDC 21で、レイトレについて若干改良が加えられています。というのも、WWDC 21のセッション「Explore hybrid rendering with Metal ray tracing」に関連付けられて「レイトレーシングを使って、リアルタイムに反射をレンダリングする(タイトル訳)」というサンプルコードが公開されています。これが、リアルタイムレイトレーシングに相当するものでしょう。対応するOSはmacOS 11以降ということになっています。

ただ、Metal Ray Tracingとしてリアルタイムレイトレーシングという言葉を使わずとも、RTXをサポートを拡充するという流れ自体はあるようです。これが、GPUのレイトレ用のアクセラレータを使うのか、GPU自体の性能でごり通すのかはまだ不明なわけです。

リアルタイムレイトレーシングをハードウェア的にサポートしたGPURadeon RX 6000シリーズ」をmacOSがサポートしたのはごくごく最近で、今年5月のmacOS 11.4のことです。

【余談】NVIDIAMac

そもそもの話、NVIDIAのRTXシリーズ自体は2018年にリリースされてたんだから、MacもeGPUで使えたのでは?という話になりそうですが、AppleNVIDIAは現在冷戦真っ最中です。というのも、NVIDIAMac向けにGeForceのドライバをリリースしたところ、Appleが署名しないという事態になり、NVIDIAGPUが使えない、使えたとしても全機能が使えるわけではないという状態が2017年頃から続いています。最終的に、NVIDIAMac向けCUDAの提供を終了するなどで、実質的に絶縁状態になっています。

なので、MacでのレイトレはAMDの対応を待つのみしかなかったわけです。

結論

結論として、RDNA 2の「Ray Accelerators」の有無を問わず、Macでは「ソフトウェア的には」リアルタイムレイトレーシングをサポートしています。ただし、そもそもリアルタイムレイトレーシング自体はゲーミング向けである部分が大きいので、Macでその真価を発揮するのかは謎です。ただ、CGなどの映像を作るときにレイトレを用いるのであれば、使えるのかもしれません。

しかし、AMDAppleの発表に「Ray Accelerators」とか「ハードウェアレイトレーシング」などの言葉が見つからないので、AMDのハードウェアレイトレーシングをサポートしているかどうかは不明

サポートについて、ポジティブな意見を述べるのであれば、このMac向けのRDNA 2 GPUが登場した前後で、Metal Ray Tracingについてのサンプルコードが公開されているというのは期待してしまいます。

逆に、ネガティブに考えれば、ここでAMDGPUだけハードウェアのレイトレをサポートしたとして、Apple Siliconの拡充によって、いずれこのAMDGPUも廃されていき、Apple GPUがレイトレ用のアクセラレータを用意しなければ、今回のサポートは大した意味がないということになります。また、Appleのドキュメント読む限り、Metalを使えば、アクセラレータ使わずレイトレを実現できるみたいな感じですし(RDNA 2が必要とはどこにも書いてない)。

この先の行く末は、正直Metalがどっちに転ぶかによるものだと思います。ただ、すくなくともVulkanが対応しているので、一部のソフトではRDNA 2のRay Accrleratorが使える可能性があるんですけどね(ただ、次にMac向けAMDのドライバがRay Accrleratorsのサポートを打ち切っている可能性も考えられる)。

関連リンク