¿Qué es el formato de archivo FX?
Los archivos .fx están asociados con la biblioteca Direct3D incluida en el paquete Microsoft DirectX. Están escritos en HLSL (High-Level Shading Language), un lenguaje de programación de GPU similar a C desarrollado por Microsoft para describir cómo deben renderizarse los efectos 3D.
Un archivo .fx suele dividirse en tres secciones:
- sección de variables - declaraciones globales: búferes de constantes (
cbuffer), texturas, estados de muestreo (sampler states) y estructuras de entrada/salida del shader - sección de funciones - funciones HLSL que implementan la lógica de sombreado, como transformaciones de vértices, cálculos de iluminación y muestreo de texturas
- sección de técnicas - define cómo se utilizan las funciones, agrupándolas en bloques con nombre
techniqueypassque vinculan los sombreadores de vértices y píxeles a un estado de la canalización de renderizado (rendering pipeline)
Los archivos .fx contienen información que describe cómo debe verse un efecto 3D determinado: texturas, sombreado, ajustes de iluminación y configuraciones de estado de renderizado. No almacenan modelos 3D; la geometría se guarda en archivos separados como .x (formato de malla de DirectX).
Introducido con DirectX 9.0 en 2002 como parte de la biblioteca de utilidades D3DX, el marco de trabajo de efectos (effects framework) ha sido desde entonces declarado obsoleta. Los flujos de trabajo modernos de DirectX 11/12 compilan HLSL individualmente a código de bytes binario (.cso) usando fxc.exe o dxc. Sin embargo, los archivos .fx siguen siendo ampliamente utilizados en activos de juegos heredados, comunidades de modding de juegos y en el flujo de trabajo de DirectX Shader Material de Autodesk 3ds Max. El SDK de DirectX incluía una herramienta de visualización para inspeccionar efectos; hoy en día se prefiere el herramental de HLSL de Visual Studio.
Seguridad y protección
RIESGO: LOWUn archivo .fx es texto plano y no es ejecutable por el SO; no puede ejecutarse por sí solo ni contener malware. Sin embargo, cargar un .fx no confiable en un motor de juego o herramienta 3D hace que el controlador de la GPU lo compile; un shader construido de forma patológica podría (en teoría) causar un bloqueo del controlador o un cuelgue en controladores antiguos vulnerables. En la práctica, el riesgo es insignificante para el uso típico.
Detalles del formato
en pocas palabras- FastLynx Online Guide File - Archivo de ayuda/guía obsoleto de FastLynx (una aplicación de transferencia de archivos de los años 90); no relacionado con shaders.
- ReactOS Shell Extension Resource - Archivo de recurso interno utilizado por el sistema operativo ReactOS; no es para usuarios finales.
- Cal3D Morph Animation File - Datos de animación de objetivos de deformación (morph-target) utilizados por la biblioteca de animación de personajes 3D Cal3D para motores de juegos de código abierto.
Programas que abren archivos FX
.fx como un archivo de texto/HLSL para leerlo o editarlo; instale la extensión HLSL Tools para obtener resaltado de sintaxis y detección de errores. .fx a un material a través de DirectX Shader Material para previsualizar los resultados del shader en tiempo real en el visor de 3ds Max. Detalles técnicos
especificación profunda| Codificación | Texto, ASCII o UTF-8 |
| Contenedor | Texto plano |
| Tamaño típico | 1 KB - 500 KB (las bibliotecas de efectos complejas con múltiples técnicas pueden ser más grandes) |
| Estructura | Declaraciones globales (cbuffers, texturas, samplers), seguidas de definiciones de funciones HLSL y bloques de técnica/paso que vinculan sombreadores de vértices y píxeles |
| Soporte de Shader Model | SM1.1-SM5.1 (DirectX 9 hasta DirectX 12); declarado mediante pass VertexShaderVersion/PixelShaderVersion o pragma de destino HLSLcc |
| SO asociado | Windows (Direct3D es exclusivo de Windows) |
| Compilación | Código fuente HLSL compilado a código de bytes DXBC usando fxc.exe (heredado) o a DXIL usando dxc (flujo de trabajo moderno de DirectX 12) |
| Estado | Marco de efectos D3DX9/D3DX11 obsoleto; el flujo de trabajo moderno utiliza Pipeline State Objects (PSOs) en DirectX 12 |
| Uso común | Activos de juegos heredados, modding de juegos, DirectX Shader Material de Autodesk 3ds Max, desarrollo y prototipado de shaders |
| Distinto de la geometría | Contiene solo lógica de sombreado; los modelos 3D se almacenan en archivos separados como .x (formato de malla de DirectX) |
| Lanzado | DirectX 9.0 (2002) with the D3DX Effects framework |
| Última versión | DirectX 12 HLSL; legacy D3DX9/D3DX11 effect framework deprecated; modern HLSL now compiled to DXBC/DXIL bytecode |
| Especificación | learn.microsoft.com |
Conversiones de FX
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos FX.
Preguntas frecuentes
¿Qué es un archivo .fx?
¿Cómo abro un archivo .fx?
¿Cuál es la diferencia entre .fx y .hlsl?
.hlsl contiene código de sombreado HLSL independiente; .fx envuelve HLSL en un marco de efectos con bloques de técnica/paso y declaraciones de estado de renderizado (D3DX Effects). La sintaxis .fx es una capa heredada; .hlsl es la convención moderna.¿Puedo editar un archivo .fx para modificar los gráficos de un juego?
.fx. Ábralo en un editor de código, cambie las matemáticas o los valores, y luego recargue el juego o recompile con fxc.¿Por qué está obsoleto el formato .fx de DirectX?
¿Cómo compilo un archivo .fx?
fxc /T fx_5_0 /Fo shader.fxo shader.fx. El archivo .fxo (o .cso) resultante es el binario que se carga en el motor.