Che cos'è il formato di file FP?
Un file .fp è un file sorgente shader simile all'assembly in formato testo semplice utilizzato nell'estensione legacy ARB_fragment_program di OpenGL (ratificata nel settembre 2002). Ogni file indica alla GPU come calcolare il colore di un pixel renderizzato - la fase fragment della pipeline grafica - utilizzando un set di istruzioni a basso livello per macchine a registri piuttosto che un linguaggio di shading ad alto livello.
I file .fp ben formati iniziano con la direttiva di intestazione !!ARBfp1.0, seguita dalle dichiarazioni PARAM (che collegano le costanti dello shader all'ambiente del programma o ai parametri locali), dalle dichiarazioni dei registri TEMP e dagli opcode assembly come MOV, MUL, ADD, TEX, DP3, DP4 e MAD. Il file termina con una direttiva END.
Il formato è stato adottato dalle applicazioni 3D dei primi anni 2000, tra cui Celestia, il programma di simulazione spaziale open-source, che distribuisce ancora shader .fp legacy per il rendering per-oggetto di pianeti, stelle e veicoli spaziali. Celestia rimane attivamente mantenuto su GitHub.
ARB_fragment_program è stato sostituito quando GLSL (OpenGL Shading Language) è stato rilasciato con OpenGL 2.0 nel settembre 2004. OpenGL 3.1 (2009) ha rimosso completamente i programmi assembly dal profilo core. I moderni shader GPU sono scritti in GLSL (file .glsl / .frag) o HLSL.
Poiché .fp è testo ASCII semplice, qualsiasi editor di testo può aprirlo, sebbene gli editor con evidenziazione della sintassi GLSL offrano l'esperienza di lettura più simile. I file variano da poche decine di righe per effetti semplici a diverse centinaia di righe per passaggi complessi di miscelazione multi-texture.
Sicurezza e incolumità
RISCHIO: LOWFile shader in testo semplice senza contenuto eseguibile al di fuori di un runtime 3D. Un file FP caricato da un add-on malevolo di Celestia potrebbe potenzialmente causare artefatti di rendering o abuso di risorse tramite shader patologici, ma non esiste alcun rischio di esecuzione di codice al di fuori del compilatore shader della GPU. File di testo standard a basso rischio.
Dettagli del formato
in sintesi- Database FileMaker Pro 4-6 - Le versioni 4-6 di FileMaker Pro salvavano i database con l'estensione .fp (varianti comuni erano .fp3, .fp5); FileMaker Pro 7+ utilizza .fp7 e successivamente .fmp12.
- File di configurazione Visual FoxPro / FoxPro 2.x - Microsoft FoxPro 2.x (DOS/Windows, anni '90) utilizzava .fp per i file di configurazione; Visual FoxPro è a fine vita (2015), questi file sono rari reperti legacy.
Programmi che aprono file FP
Dettagli tecnici
specifiche approfondite| Direttiva intestazione file | «!!ARBfp1.0» - prima riga obbligatoria in ogni file di programma fragment ARB valido |
| Set di istruzioni | Opcode in stile assembly: MOV, MUL, ADD, MAD, TEX, DP3, DP4, LRP, POW, SWZ e altri definiti nella specifica ARB_fragment_program |
| Tipi di registro | TEMP (uso generale), ATTRIB (input fragment), OUTPUT (result.color / result.depth), PARAM (costanti e collegamenti d'ambiente) |
| Accesso alle texture | Istruzioni TEX / TXB / TXP / TXD; fino a 16 unità immagine texture per programma (minimo da specifica) |
| Max istruzioni ALU | 1.024 per programma (minimo da specifica; le implementazioni dei driver possono consentirne di più) |
| Max registri TEMP | 16 registri temporanei (minimo da specifica) |
| Max collegamenti PARAM | 24 parametri locali + 96 collegamenti parametri d'ambiente (minimi da specifica) |
| Codifica | Testo ASCII semplice; nessun carattere non-ASCII negli opcode o nelle direttive |
| Dimensione tipica del file | 1 KB - 50 KB |
| Formato complementare | Accoppiato con file `.vp` (ARB vertex program) per formare una sostituzione completa della pipeline vertex e fragment a funzione fissa |
| Modello di esecuzione | Viene eseguito una volta per ogni fragment rasterizzato; la specifica di base non prevede salti condizionali o cicli (le estensioni li hanno aggiunti in seguito) |
| Utilizzatore noto | Il simulatore spaziale Celestia (open-source) distribuisce shader `.fp` legacy per il rendering per-oggetto di pianeti e veicoli spaziali |
| Sostituito da | GLSL (`.frag` / `.glsl`) introdotto con OpenGL 2.0 (settembre 2004); rimosso dal profilo core di OpenGL nella versione 3.1 (2009) |
| Supporto piattaforma | Windows, Linux, macOS - qualsiasi piattaforma con OpenGL 1.4+ e l'estensione ARB_fragment_program |
| Rilasciato | 2002 (ARB_fragment_program OpenGL extension; Celestia adoption circa 2003-2004) |
| Ultima versione | ARB_fragment_program spec v1.0; effectively superseded by GLSL (OpenGL 2.0, 2004) |
| Standard aperto | Sì · royalty-free |
| Specifica | www.khronos.org |
Conversioni FP
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file FP.