Hvad er FP-filformatet?
En .fp-fil er en shader-kildefil i almindelig tekst, der minder om assembly-kode, brugt i OpenGLs forældede ARB_fragment_program-udvidelse (ratificeret september 2002). Hver fil fortæller GPU'en, hvordan den skal beregne farven på en renderet pixel - fragment-stadiet i grafik-pipelinen - ved hjælp af et lavniveau-instruktionssæt til en registermaskine frem for et højniveau-shadingsprog.
Velformede .fp-filer begynder med header-direktivet !!ARBfp1.0, efterfulgt af PARAM-erklæringer (der binder shader-konstanter til programmiljøet eller lokale parametre), TEMP-registererklæringer og assembly-opkoder såsom MOV, MUL, ADD, TEX, DP3, DP4 og MAD. Filen slutter med et END-direktiv.
Formatet blev taget i brug af 3D-applikationer i de tidlige 2000'ere, herunder Celestia, det open source-rumsimuleringsprogram, som stadig leveres med forældede .fp-shadere til rendering af planeter, stjerner og rumfartøjer. Celestia vedligeholdes stadig aktivt på GitHub.
ARB_fragment_program blev erstattet, da GLSL (OpenGL Shading Language) blev udgivet med OpenGL 2.0 i september 2004. OpenGL 3.1 (2009) fjernede assembly-programmer helt fra core-profilen. Moderne GPU-shadere skrives i GLSL (.glsl / .frag-filer) eller HLSL i stedet.
Da .fp er almindelig ASCII-tekst, kan ethvert tekstredigeringsprogram åbne den, selvom redigeringsprogrammer med GLSL-syntaksfremhævning giver den mest læsbare oplevelse. Filerne varierer fra et par dusin linjer til simple effekter til flere hundrede linjer til komplekse multi-tekstur-blandingsprocesser.
Sikkerhed og tryghed
RISIKO: LOWShader-filer i almindelig tekst uden eksekverbart indhold uden for et 3D-runtime-miljø. En FP-fil indlæst af en ondsindet Celestia-tilføjelse kunne potentielt forårsage renderingsfejl eller ressourcemisbrug via patologiske shadere, men der er ingen risiko for kodeeksekvering uden for GPU'ens shader-compiler. Standard lavrisiko-tekstfil.
Formatdetaljer
kort fortalt- FileMaker Pro 4-6 Database - FileMaker Pro version 4-6 gemte databaser med filendelsen .fp (.fp3, .fp5 var almindelige varianter); FileMaker Pro 7+ bruger .fp7 og senere .fmp12.
- Visual FoxPro / FoxPro 2.x konfigurationsfil - Microsoft FoxPro 2.x (DOS/Windows, 1990'erne) brugte .fp til konfigurationsfiler; Visual FoxPro er udgået (2015), og disse filer er sjældne historiske levn.
Programmer der åbner FP-filer
Tekniske detaljer
dyb specifikation| Fil-header-direktiv | «!!ARBfp1.0» - påkrævet første linje i enhver gyldig ARB fragment-programfil |
| Instruktionssæt | Assembly-lignende opkoder: MOV, MUL, ADD, MAD, TEX, DP3, DP4, LRP, POW, SWZ og andre defineret i ARB_fragment_program-specifikationen |
| Registertyper | TEMP (generelle formål), ATTRIB (fragment-input), OUTPUT (result.color / result.depth), PARAM (konstanter og miljøbindinger) |
| Teksturadgang | TEX / TXB / TXP / TXD instruktioner; op til 16 teksturbilledenheder pr. program (minimumskrav i specifikationen) |
| Maks. ALU-instruktioner | 1.024 pr. program (minimumskrav i specifikationen; driver-implementeringer kan tillade flere) |
| Maks. TEMP-registre | 16 midlertidige registre (minimumskrav i specifikationen) |
| Maks. PARAM-bindinger | 24 lokale parametre + 96 miljøparameter-bindinger (minimumskrav i specifikationen) |
| Kodning | Almindelig ASCII-tekst; ingen ikke-ASCII-tegn i opkoder eller direktiver |
| Typisk filstørrelse | 1 KB - 50 KB |
| Ledsageformat | Parret med `.vp` (ARB vertex program) filer for at danne en komplet erstatning for den faste vertex- og fragment-pipeline |
| Eksekveringsmodel | Kører én gang pr. rasteriseret fragment; grundspecifikationen har ingen betinget forgrening eller løkker (udvidelser tilføjede disse senere) |
| Kendt bruger | Celestia-rumsimulatoren (open source) leveres med forældede `.fp`-shadere til rendering af planeter og rumfartøjer |
| Erstattet af | GLSL (`.frag` / `.glsl`) introduceret med OpenGL 2.0 (september 2004); fjernet fra OpenGL core-profilen i version 3.1 (2009) |
| Platformunderstøttelse | Windows, Linux, macOS - enhver platform med OpenGL 1.4+ og ARB_fragment_program-udvidelsen |
| Udgivet | 2002 (ARB_fragment_program OpenGL extension; Celestia adoption circa 2003-2004) |
| Seneste version | ARB_fragment_program spec v1.0; effectively superseded by GLSL (OpenGL 2.0, 2004) |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.khronos.org |
FP-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om FP-filer.
Ofte stillede spørgsmål
Hvad er en FP-fil?
Hvordan åbner jeg en FP-fil?
Bruges ARB fragment-program stadig?
Hvordan konverterer jeg en ARB .fp-shader til GLSL?
vec4-variabler erstatter registre, indbyggede funktioner (dot, texture) erstatter opkoder, og gl_FragColor/out vec4 erstatter result.color.