Qu'est-ce que le format de fichier FX ?
Les fichiers .fx sont associés à la bibliothèque Direct3D incluse dans le package Microsoft DirectX. Ils sont écrits en HLSL (High-Level Shading Language), un langage de programmation GPU proche du C développé par Microsoft pour décrire comment les effets 3D doivent être rendus.
Un fichier .fx est généralement divisé en trois sections :
- section des variables - déclarations globales : tampons de constantes (
cbuffer), textures, états d'échantillonnage (sampler states) et structures d'entrée/sortie de shader - section des fonctions - fonctions HLSL implémentant la logique d'ombrage telle que les transformations de sommets, les calculs d'éclairage et l'échantillonnage de textures
- section des techniques - définit comment les fonctions sont utilisées, en les regroupant dans des blocs nommés
techniqueetpassqui lient les shaders de sommets (vertex) et de pixels à un état du pipeline de rendu
Les fichiers .fx contiennent des informations décrivant l'aspect visuel d'un effet 3D donné - textures, ombrage, paramètres d'éclairage et configurations d'état de rendu. Ils ne stockent pas de modèles 3D ; la géométrie est conservée dans des fichiers séparés tels que .x (format de maillage DirectX).
Introduit avec DirectX 9.0 en 2002 dans le cadre de la bibliothèque utilitaire D3DX, le framework d'effets est depuis devenu obsolète. Les flux de travail modernes DirectX 11/12 compilent le HLSL individuellement en bytecode binaire (.cso) à l'aide de fxc.exe ou dxc. Cependant, les fichiers .fx restent largement utilisés dans les ressources de jeux anciens, les communautés de modding de jeux et le flux de travail DirectX Shader Material d'Autodesk 3ds Max. Le SDK DirectX incluait un outil de visualisation pour inspecter les effets ; aujourd'hui, les outils HLSL de Visual Studio sont préférés.
Sécurité et sûreté
RISQUE : LOWUn fichier .fx est du texte brut et n'est pas exécutable par le système d'exploitation - il ne peut pas s'exécuter seul ni transporter de logiciels malveillants. Cependant, le chargement d'un .fx non fiable dans un moteur de jeu ou un outil 3D force le pilote GPU à le compiler ; un shader construit de manière malveillante pourrait (en théorie) provoquer un plantage du pilote ou un blocage sur d'anciens pilotes vulnérables. En pratique, le risque est négligeable pour une utilisation typique.
Détails du format
en bref- FastLynx Online Guide File - Fichier d'aide/guide obsolète de FastLynx (une application de transfert de fichiers des années 1990) ; sans rapport avec les shaders.
- ReactOS Shell Extension Resource - Fichier de ressource interne utilisé par le système d'exploitation ReactOS ; non destiné aux utilisateurs finaux.
- Cal3D Morph Animation File - Données d'animation de cible de morphage utilisées par la bibliothèque d'animation de personnages 3D Cal3D pour les moteurs de jeux open-source.
Programmes qui ouvrent les fichiers FX
Détails techniques
spécifications approfondies| Encodage | Texte, ASCII ou UTF-8 |
| Conteneur | Texte brut |
| Taille typique | 1 Ko - 500 Ko (les bibliothèques d'effets complexes multi-techniques peuvent être plus volumineuses) |
| Structure | Déclarations globales (cbuffers, textures, samplers), puis définitions de fonctions HLSL, puis blocs de techniques/passes liant les shaders de sommets et de pixels |
| Support du Shader Model | SM1.1-SM5.1 (DirectX 9 à DirectX 12) ; déclaré via pass VertexShaderVersion/PixelShaderVersion ou pragma cible HLSLcc |
| OS associé | Windows (Direct3D est exclusif à Windows) |
| Compilation | Source HLSL compilée en bytecode DXBC à l'aide de fxc.exe (hérité) ou en DXIL à l'aide de dxc (flux de travail moderne DirectX 12) |
| Obsolescence | Framework d'effets D3DX9/D3DX11 obsolète ; le flux de travail moderne utilise des Pipeline State Objects (PSO) dans DirectX 12 |
| Utilisation courante | Ressources de jeux anciens, modding de jeux, DirectX Shader Material d'Autodesk 3ds Max, développement et prototypage de shaders |
| Distinct de la géométrie | Contient uniquement la logique d'ombrage ; les modèles 3D sont stockés dans des fichiers séparés tels que .x (format de maillage DirectX) |
| Publié | DirectX 9.0 (2002) with the D3DX Effects framework |
| Dernière version | DirectX 12 HLSL; legacy D3DX9/D3DX11 effect framework deprecated; modern HLSL now compiled to DXBC/DXIL bytecode |
| Spécification | learn.microsoft.com |
Conversions FX
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers FX.
Foire aux questions
Qu'est-ce qu'un fichier .fx ?
Comment ouvrir un fichier .fx ?
Quelle est la différence entre .fx et .hlsl ?
Puis-je modifier un fichier .fx pour modifier les graphismes d'un jeu ?
Pourquoi DirectX .fx est-il obsolète ?
Comment compiler un fichier .fx ?
fxc /T fx_5_0 /Fo shader.fxo shader.fx. Le fichier .fxo (ou .cso) résultant est le binaire qui se charge dans le moteur.