O que é o formato de ficheiro FX?
Arquivos .fx estão associados à biblioteca Direct3D incluída no pacote Microsoft DirectX. Eles são escritos em HLSL (High-Level Shading Language), uma linguagem de programação de GPU semelhante a C desenvolvida pela Microsoft para descrever como os efeitos 3D devem ser renderizados.
Um arquivo .fx é tipicamente dividido em três seções:
- seção de variáveis - declarações globais: buffers de constantes (
cbuffer), texturas, estados de amostragem (sampler states) e structs de entrada/saída de shader - seção de funções - funções HLSL que implementam a lógica de sombreamento, como transformações de vértices, cálculos de iluminação e amostragem de textura
- seção de técnicas - define como as funções são usadas, agrupando-as em blocos nomeados de
techniqueepassque vinculam shaders de vértice e pixel a um estado de pipeline de renderização
Arquivos .fx contêm informações que descrevem como um determinado efeito 3D deve parecer - texturas, sombreamento, configurações de iluminação e configurações de estado de renderização. Eles não armazenam modelos 3D; a geometria é mantida em arquivos separados, como o .x (formato de malha do DirectX).
Introduzido com o DirectX 9.0 em 2002 como parte da biblioteca de utilitários D3DX, o framework de efeitos foi desde então descontinuado. Fluxos de trabalho modernos do DirectX 11/12 compilam o HLSL individualmente para bytecode binário (.cso) usando o fxc.exe ou dxc. No entanto, os arquivos .fx continuam sendo amplamente utilizados em ativos de jogos legados, comunidades de modding de jogos e no fluxo de trabalho DirectX Shader Material do Autodesk 3ds Max. O DirectX SDK incluía uma ferramenta de visualização para inspecionar efeitos; hoje, as ferramentas de HLSL do Visual Studio são preferidas.
Segurança e proteção
RISCO: LOWUm arquivo .fx é texto simples e não é executável pelo SO - ele não pode rodar sozinho ou carregar malware. No entanto, carregar um .fx não confiável em um motor de jogo ou ferramenta 3D faz com que o driver da GPU o compile; um shader construído de forma patológica poderia (em teoria) causar uma falha no driver ou travamento em drivers mais antigos vulneráveis. Na prática, o risco é insignificante para o uso típico.
Detalhes do formato
em resumo- FastLynx Online Guide File - Arquivo de ajuda/guia obsoleto do FastLynx (um aplicativo de transferência de arquivos dos anos 90); não relacionado a shaders.
- ReactOS Shell Extension Resource - Arquivo de recurso interno usado pelo sistema operacional ReactOS; não destinado a usuários finais.
- Cal3D Morph Animation File - Dados de animação morph-target usados pela biblioteca de animação de personagens 3D Cal3D para motores de jogos de código aberto.
Programas que abrem arquivos FX
Detalhes técnicos
especificação profunda| Codificação | Texto, ASCII ou UTF-8 |
| Contêiner | Texto simples |
| Tamanho típico | 1 KB - 500 KB (bibliotecas de efeitos complexas com múltiplas técnicas podem ser maiores) |
| Estrutura | Declarações globais (cbuffers, texturas, samplers), seguidas por definições de funções HLSL e blocos de técnica/passagem vinculando shaders de vértice e pixel |
| Suporte a Shader Model | SM1.1-SM5.1 (DirectX 9 ao DirectX 12); declarado via pass VertexShaderVersion/PixelShaderVersion ou pragma de alvo HLSLcc |
| SO associado | Windows (Direct3D é exclusivo para Windows) |
| Compilação | Código-fonte HLSL compilado para bytecode DXBC usando fxc.exe (legado) ou para DXIL usando dxc (fluxo de trabalho moderno do DirectX 12) |
| Descontinuado | Framework de efeitos D3DX9/D3DX11 descontinuado; o fluxo de trabalho moderno usa Pipeline State Objects (PSOs) no DirectX 12 |
| Uso comum | Ativos de jogos legados, modding de jogos, DirectX Shader Material do Autodesk 3ds Max, desenvolvimento e prototipagem de shaders |
| Distinto de geometria | Contém apenas lógica de sombreamento; modelos 3D são armazenados em arquivos separados, como .x (formato de malha DirectX) |
| Lançado | DirectX 9.0 (2002) with the D3DX Effects framework |
| Versão mais recente | DirectX 12 HLSL; legacy D3DX9/D3DX11 effect framework deprecated; modern HLSL now compiled to DXBC/DXIL bytecode |
| Especificação | learn.microsoft.com |
Conversões de FX
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos FX.
Perguntas frequentes
O que é um arquivo .fx?
Como abro um arquivo .fx?
Qual é a diferença entre .fx e .hlsl?
Posso editar um arquivo .fx para modificar os gráficos de um jogo?
Por que o .fx do DirectX foi descontinuado?
Como compilo um arquivo .fx?
fxc /T fx_5_0 /Fo shader.fxo shader.fx. O .fxo (ou .cso) resultante é o binário que é carregado no motor.