FP ファイル形式とは?
.fp ファイルは、OpenGL のレガシーな ARB_fragment_program 拡張機能 (2002年9月批准) で使用される、プレーンテキストのアセンブリ形式のシェーダーソースファイルです。各ファイルは、高レベルのシェーディング言語ではなく、低レベルのレジスタマシン命令セットを使用して、グラフィックスパイプラインのフラグメントステージであるレンダリングされたピクセルの色を計算する方法を GPU に指示します。
適切に構成された .fp ファイルは、ヘッダーディレクティブ !!ARBfp1.0 で始まり、その後に PARAM 宣言 (シェーダー定数をプログラム環境またはローカルパラメータにバインドする)、TEMP レジスタ宣言、および MOV、MUL、ADD、TEX、DP3、DP4、MAD などのアセンブリ命令が続きます。ファイルは END ディレクティブで終了します。
この形式は、オープンソースの宇宙シミュレーションプログラムである Celestia を含む、2000年代初頭の 3D アプリケーションで採用されました。Celestia は、惑星、恒星、宇宙船のオブジェクトごとのレンダリング用に、現在もレガシーな .fp シェーダーを同梱しています。Celestia は GitHub で活発にメンテナンスされ続けています。
ARB_fragment_program は、2004年9月に OpenGL 2.0 と共に GLSL (OpenGL Shading Language) がリリースされたことで取って代わられました。OpenGL 3.1 (2009年) では、コアプロファイルからアセンブリプログラムが完全に削除されました。現代の GPU シェーダーは、代わりに GLSL (.glsl / .frag ファイル) または HLSL で記述されます。
.fp はプレーンな ASCII テキストであるため、任意のテキストエディタで開くことができますが、GLSL の構文ハイライトを備えたエディタが最も読みやすい体験を提供します。ファイルは、単純なエフェクトのための数十行から、複雑なマルチテクスチャブレンディングパスのための数百行まで多岐にわたります。
セキュリティと安全性
リスク: LOW3D ランタイム以外で実行可能なコンテンツを含まないプレーンテキストのシェーダーファイルです。悪意のある Celestia アドオンによってロードされた FP ファイルは、病的なシェーダーを介してレンダリングの不具合やリソースの乱用を引き起こす可能性がありますが、GPU シェーダーコンパイラ以外でのコード実行のリスクはありません。標準的な低リスクのテキストファイルです。
形式の詳細
概要- FileMaker Pro 4-6 データベース - FileMaker Pro バージョン 4-6 はデータベースを .fp 拡張子で保存していました (.fp3, .fp5 が一般的なバリアントでした)。FileMaker Pro 7 以降は .fp7、後に .fmp12 を使用します。
- Visual FoxPro / FoxPro 2.x 設定ファイル - Microsoft FoxPro 2.x (DOS/Windows, 1990年代) は設定ファイルに .fp を使用していました。Visual FoxPro はサポート終了 (2015年) しており、これらのファイルは稀なレガシー遺物です。
FP ファイルを開くプログラム
技術的詳細
詳細仕様| ファイルヘッダーディレクティブ | «!!ARBfp1.0» - すべての有効な ARB フラグメントプログラムファイルの必須の 1 行目 |
| 命令セット | アセンブリ形式のオペコード:MOV, MUL, ADD, MAD, TEX, DP3, DP4, LRP, POW, SWZ、および ARB_fragment_program 仕様で定義されているその他の命令 |
| レジスタタイプ | TEMP (汎用), ATTRIB (フラグメント入力), OUTPUT (result.color / result.depth), PARAM (定数および環境バインディング) |
| テクスチャアクセス | TEX / TXB / TXP / TXD 命令。プログラムごとに最大 16 のテクスチャイメージユニット (仕様上の最小値) |
| 最大 ALU 命令数 | プログラムあたり 1,024 (仕様上の最小値。ドライバの実装によってはそれ以上を許可する場合がある) |
| 最大 TEMP レジスタ数 | 16 個の一時レジスタ (仕様上の最小値) |
| 最大 PARAM バインディング数 | 24 個のローカルパラメータ + 96 個の環境パラメータバインディング (仕様上の最小値) |
| エンコーディング | プレーン ASCII テキスト。オペコードやディレクティブに非 ASCII 文字は含まれない |
| 一般的なファイルサイズ | 1 KB - 50 KB |
| 関連フォーマット | `.vp` (ARB vertex program) ファイルとペアになり、固定機能の頂点およびフラグメントパイプラインの完全な代替を構成する |
| 実行モデル | ラスタライズされたフラグメントごとに 1 回実行される。基本仕様には条件分岐やループはない (後の拡張機能で追加された) |
| 主な採用者 | 宇宙シミュレータ Celestia (オープンソース) が、惑星や宇宙船のオブジェクトごとのレンダリングにレガシーな `.fp` シェーダーを同梱している |
| 後継フォーマット | OpenGL 2.0 (2004年9月) で導入された GLSL (`.frag` / `.glsl`)。2009年のバージョン 3.1 で OpenGL コアプロファイルから削除された |
| プラットフォームサポート | Windows, Linux, macOS - OpenGL 1.4 以上と ARB_fragment_program 拡張機能を備えたすべてのプラットフォーム |
| リリース日 | 2002 (ARB_fragment_program OpenGL extension; Celestia adoption circa 2003-2004) |
| 最新バージョン | ARB_fragment_program spec v1.0; effectively superseded by GLSL (OpenGL 2.0, 2004) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.khronos.org |
FP の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。FP ファイルについて最初の質問をしてみましょう。