Wat is het FP-bestandsformaat?
Een .fp-bestand is een bronbestand voor shaders in platte tekst (assembly-stijl), gebruikt in de legacy ARB_fragment_program-extensie van OpenGL (geratificeerd in september 2002). Elk bestand vertelt de GPU hoe de kleur van een gerenderde pixel moet worden berekend - de fragmentfase van de grafische pijplijn - met behulp van een low-level register-machine instructieset in plaats van een high-level shadingtaal.
Correct geformatteerde .fp-bestanden beginnen met de header-richtlijn !!ARBfp1.0, gevolgd door PARAM-declaraties (die shader-constanten koppelen aan de programma-omgeving of lokale parameters), TEMP-registerdeclaraties en assembly-opcodes zoals MOV, MUL, ADD, TEX, DP3, DP4 en MAD. Het bestand eindigt met een END-richtlijn.
Het formaat werd begin jaren 2000 overgenomen door 3D-applicaties, waaronder Celestia, het open-source ruimtesimulatieprogramma, dat nog steeds legacy .fp-shaders bevat voor de rendering per object van planeten, sterren en ruimtevaartuigen. Celestia wordt nog steeds actief onderhouden op GitHub.
ARB_fragment_program werd vervangen toen GLSL (OpenGL Shading Language) werd uitgebracht met OpenGL 2.0 in september 2004. OpenGL 3.1 (2009) verwijderde assembly-programma's volledig uit het core-profiel. Moderne GPU-shaders worden in plaats daarvan geschreven in GLSL (.glsl / .frag-bestanden) of HLSL.
Omdat .fp platte ASCII-tekst is, kan elke tekstverwerker het openen, hoewel editors met GLSL-syntaxisaccentuering de meest leesbare ervaring bieden. Bestanden variëren van enkele tientallen regels voor eenvoudige effecten tot honderden regels voor complexe multi-texture blending-bewerkingen.
Beveiliging & veiligheid
RISICO: LOWShader-bestanden in platte tekst zonder uitvoerbare inhoud buiten een 3D-runtime. Een FP-bestand dat wordt geladen door een kwaadaardige Celestia-add-on zou mogelijk rendering-artefacten of misbruik van bronnen kunnen veroorzaken via pathologische shaders, maar er bestaat geen risico op code-executie buiten de GPU-shader-compiler. Standaard tekstbestand met laag risico.
Formaatdetails
in een notendop- FileMaker Pro 4-6 Database - FileMaker Pro-versies 4-6 sloegen databases op met de .fp-extensie (.fp3, .fp5 waren veelvoorkomende varianten); FileMaker Pro 7+ gebruikt .fp7 en later .fmp12.
- Visual FoxPro / FoxPro 2.x Configuratiebestand - Microsoft FoxPro 2.x (DOS/Windows, jaren '90) gebruikte .fp voor configuratiebestanden; Visual FoxPro is EOL (2015), deze bestanden zijn zeldzame legacy-artefacten.
Programma's die FP-bestanden openen
Technische details
diepe specificaties| Bestandsheader-richtlijn | „!!ARBfp1.0” - vereiste eerste regel in elk geldig ARB fragment program-bestand |
| Instructieset | Assembly-stijl opcodes: MOV, MUL, ADD, MAD, TEX, DP3, DP4, LRP, POW, SWZ en andere gedefinieerd in de ARB_fragment_program-specificatie |
| Registertypen | TEMP (algemeen gebruik), ATTRIB (fragment-input), OUTPUT (result.color / result.depth), PARAM (constanten en omgevingskoppelingen) |
| Textuurtoegang | TEX / TXB / TXP / TXD instructies; tot 16 textuur-eenheden per programma (minimumspecificatie) |
| Max ALU-instructies | 1.024 per programma (minimumspecificatie; driver-implementaties kunnen meer toestaan) |
| Max TEMP-registers | 16 tijdelijke registers (minimumspecificatie) |
| Max PARAM-koppelingen | 24 lokale parameters + 96 omgevingsparameter-koppelingen (minimumspecificaties) |
| Codering | Platte ASCII-tekst; geen niet-ASCII-tekens in opcodes of richtlijnen |
| Typische bestandsgrootte | 1 KB - 50 KB |
| Bijbehorend formaat | Gepaard met `.vp` (ARB vertex program) bestanden om een volledige vervanging te vormen voor de fixed-function vertex- en fragment-pijplijn |
| Executiemodel | Wordt eenmaal per gerasterd fragment uitgevoerd; de basisspecificatie heeft geen voorwaardelijke vertakkingen of lussen (extensies hebben deze later toegevoegd) |
| Bekende gebruiker | De ruimtesimulator Celestia (open-source) levert legacy `.fp`-shaders voor rendering per object van planeten en ruimtevaartuigen |
| Vervangen door | GLSL (`.frag` / `.glsl`) geïntroduceerd met OpenGL 2.0 (september 2004); verwijderd uit het OpenGL core-profiel in versie 3.1 (2009) |
| Platformondersteuning | Windows, Linux, macOS - elk platform met OpenGL 1.4+ en de ARB_fragment_program-extensie |
| Uitgebracht | 2002 (ARB_fragment_program OpenGL extension; Celestia adoption circa 2003-2004) |
| Laatste versie | ARB_fragment_program spec v1.0; effectively superseded by GLSL (OpenGL 2.0, 2004) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.khronos.org |
FP conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over FP-bestanden.