Che cos'è il formato di file FX?
I file .fx sono associati alla libreria Direct3D inclusa nel pacchetto Microsoft DirectX. Sono scritti in HLSL (High-Level Shading Language), un linguaggio di programmazione GPU simile al C sviluppato da Microsoft per descrivere come gli effetti 3D debbano essere renderizzati.
Un file .fx è tipicamente diviso in tre sezioni:
- sezione variabili - dichiarazioni globali: buffer costanti (
cbuffer), texture, stati del campionatore (sampler states) e struct di input/output dello shader - sezione funzioni - funzioni HLSL che implementano la logica di shading come trasformazioni di vertici, calcoli di illuminazione e campionamento delle texture
- sezione tecniche - definisce come vengono utilizzate le funzioni, raggruppandole in blocchi denominati
techniqueepassche collegano gli shader di vertici e pixel a uno stato della pipeline di rendering
I file .fx contengono informazioni che descrivono l'aspetto di un determinato effetto 3D - texture, ombreggiatura, impostazioni di illuminazione e configurazioni dello stato di rendering. Non memorizzano modelli 3D; la geometria è conservata in file separati come .x (formato mesh DirectX).
Introdotto con DirectX 9.0 nel 2002 come parte della libreria di utilità D3DX, il framework degli effetti è stato da allora deprecato. I moderni flussi di lavoro DirectX 11/12 compilano l'HLSL individualmente in bytecode binario (.cso) utilizzando fxc.exe o dxc. Tuttavia, i file .fx rimangono ampiamente utilizzati negli asset di giochi legacy, nelle comunità di modding dei giochi e nel flusso di lavoro DirectX Shader Material di Autodesk 3ds Max. L'SDK di DirectX includeva uno strumento di visualizzazione per ispezionare gli effetti; oggi sono preferiti gli strumenti HLSL di Visual Studio.
Sicurezza e incolumità
RISCHIO: LOWUn file .fx è testo semplice e non è eseguibile dal sistema operativo - non può essere eseguito da solo né trasportare malware. Tuttavia, il caricamento di un file .fx non attendibile in un motore di gioco o in uno strumento 3D costringe il driver della GPU a compilarlo; uno shader costruito in modo patologico potrebbe (in teoria) causare un arresto anomalo del driver o un blocco su driver più vecchi e vulnerabili. In pratica, il rischio è trascurabile per l'uso tipico.
Dettagli del formato
in sintesi- FastLynx Online Guide File - File di guida/aiuto obsoleto di FastLynx (un'applicazione per il trasferimento di file degli anni '90); non correlato agli shader.
- ReactOS Shell Extension Resource - File di risorse interno utilizzato dal sistema operativo ReactOS; non destinato agli utenti finali.
- Cal3D Morph Animation File - Dati di animazione morph-target utilizzati dalla libreria di animazione di personaggi 3D Cal3D per motori di gioco open source.
Programmi che aprono file FX
Dettagli tecnici
specifiche approfondite| Codifica | Testo, ASCII o UTF-8 |
| Contenitore | Testo semplice |
| Dimensione tipica | 1 KB - 500 KB (le librerie di effetti multi-tecnica complesse possono essere più grandi) |
| Struttura | Dichiarazioni globali (cbuffer, texture, campionatori), quindi definizioni di funzioni HLSL, infine blocchi di tecniche/passaggi che collegano gli shader di vertici e pixel |
| Supporto Shader Model | SM1.1-SM5.1 (da DirectX 9 a DirectX 12); dichiarato tramite pass VertexShaderVersion/PixelShaderVersion o pragma target HLSLcc |
| OS associato | Windows (Direct3D è un'esclusiva Windows) |
| Compilazione | Sorgente HLSL compilato in bytecode DXBC utilizzando fxc.exe (legacy) o in DXIL utilizzando dxc (moderno flusso di lavoro DirectX 12) |
| Stato | Framework degli effetti D3DX9/D3DX11 deprecato; il flusso di lavoro moderno utilizza i Pipeline State Objects (PSO) in DirectX 12 |
| Uso comune | Asset di giochi legacy, modding di giochi, Autodesk 3ds Max DirectX Shader Material, sviluppo e prototipazione di shader |
| Distinto dalla geometria | Contiene solo la logica di shading; i modelli 3D sono memorizzati in file separati come .x (formato mesh DirectX) |
| Rilasciato | DirectX 9.0 (2002) with the D3DX Effects framework |
| Ultima versione | DirectX 12 HLSL; legacy D3DX9/D3DX11 effect framework deprecated; modern HLSL now compiled to DXBC/DXIL bytecode |
| Specifica | learn.microsoft.com |
Conversioni FX
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file FX.
Domande frequenti
Cos'è un file .fx?
Come si apre un file .fx?
Qual è la differenza tra .fx e .hlsl?
Posso modificare un file .fx per cambiare la grafica di un gioco?
Perché DirectX .fx è deprecato?
Come si compila un file .fx?
fxc /T fx_5_0 /Fo shader.fxo shader.fx. Il file .fxo (o .cso) risultante è il binario che viene caricato nel motore.