なぜ PSSL を CG に変換するのですか?
Cgは構文的にHLSLに近いため、PS4シェーダーの自然なターゲットのように見えることから、このページに辿り着く人が多いようです。実際には、PSSLコンパイラはSonyのライセンス済みデベロッパーキット内でのみ提供され、ポータブルなCgテキストではなくGPUバイナリを出力します。また、Cg自体が開発の行き止まりにあります。ほとんどのチームは、PSSLを.HLSLなどのメンテナンスされている言語に移行します。
PSSL から CG への変換方法
HLSLに手動移植し、本当に必要であればCgへ変換 OPEN-SOURCE
エディタでPSSLのエントリポイントをHLSLとして書き換え、Cgプロファイルがどうしても必要な場合は、そのHLSLをNVIDIAのレガシーな「cgc」コンパイラに「cgc -profile vp40 shader.hlsl」として読み込ませます。
ShaderConductor経由で変換 OPEN-SOURCE
手動でPSSLをHLSLに変換した後、Microsoftの「ShaderConductor」を使用してそのHLSLをGLSL/MSLにクロスコンパイルします。Cgバックエンドは存在しないため、Cgへの変換は手動ステップのままとなります。
これらの形式について
.pssl ファイルには、Sony の PlayStation Shader Language で記述されたシェーダーコードが格納されています。これは PlayStation 4 および PlayStation 5 のゲーム開発で使用される GPU プログラミング言語です。テキストベースの .pssl ファイルはプレーンなソースコードであり、Visual Studio…
.PSSL の詳細を開く →.CG ファイルは、3d image ファイルである nVidia CgFX に関連付けられています。
.CG の詳細を開く →品質と注意点
- SonyのNDA制限があるPS4/PS5 SDK以外で「.pssl」を読み取れる自動ツールはありません。
- Cgは2012年にNVIDIAによって公式に非推奨とされ、アップデートも行われていないため、これに移植することは通常、後退を意味します。
- PSSLソース内のPS4固有のハードウェア・イントリンシック(組み込み関数)にはCgに相当するものがなく、削除するか再実装する必要があります。