Что такое формат файла FP?
Файл .fp - это текстовый исходный файл шейдера, напоминающий ассемблер, который используется в устаревшем расширении OpenGL ARB_fragment_program (утверждено в сентябре 2002 года). Каждый файл указывает GPU, как вычислять цвет отрисованного пикселя - стадия фрагмента в графическом конвейере - используя низкоуровневый набор инструкций регистровой машины вместо высокоуровневого языка шейдеров.
Корректно сформированные файлы .fp начинаются с директивы заголовка !!ARBfp1.0, за которой следуют объявления PARAM (привязка констант шейдера к среде программы или локальным параметрам), объявления регистров TEMP и операционные коды ассемблера, такие как MOV, MUL, ADD, TEX, DP3, DP4 и MAD. Файл заканчивается директивой END.
Этот формат был принят в 3D-приложениях начала 2000-х годов, включая Celestia, программу космического моделирования с открытым исходным кодом, которая до сих пор поставляет устаревшие шейдеры .fp для пообъектного рендеринга планет, звезд и космических аппаратов. Celestia продолжает активно поддерживаться на GitHub.
Расширение ARB_fragment_program было вытеснено, когда GLSL (OpenGL Shading Language) вошел в состав OpenGL 2.0 в сентябре 2004 года. В OpenGL 3.1 (2009) ассемблерные программы были полностью удалены из основного профиля. Современные шейдеры GPU пишутся на GLSL (файлы .glsl / .frag) или HLSL.
Поскольку .fp является обычным текстом ASCII, его может открыть любой текстовый редактор, хотя редакторы с подсветкой синтаксиса GLSL обеспечивают наиболее удобное чтение. Размер файлов варьируется от нескольких десятков строк для простых эффектов до нескольких сотен строк для сложных проходов смешивания нескольких текстур.
Безопасность и защита
РИСК: LOWТекстовые файлы шейдеров без исполняемого содержимого вне среды 3D-рендеринга. Файл FP, загруженный вредоносным дополнением Celestia, потенциально может вызвать артефакты рендеринга или злоупотребление ресурсами через патологические шейдеры, но риск выполнения кода вне компилятора шейдеров GPU отсутствует. Стандартный текстовый файл с низким уровнем риска.
Детали формата
в двух словах- База данных FileMaker Pro 4-6 - Версии FileMaker Pro 4-6 сохраняли базы данных с расширением .fp (распространенными вариантами были .fp3, .fp5); FileMaker Pro 7+ использует .fp7, а затем .fmp12.
- Конфигурационный файл Visual FoxPro / FoxPro 2.x - Microsoft FoxPro 2.x (DOS/Windows, 1990-е) использовал .fp для конфигурационных файлов; Visual FoxPro снят с поддержки (2015), эти файлы являются редкими устаревшими артефактами.
Программы, открывающие файлы FP
Технические подробности
глубокая спецификация| Директива заголовка файла | «!!ARBfp1.0» - обязательная первая строка в каждом валидном файле фрагментной программы ARB |
| Набор инструкций | Операционные коды в стиле ассемблера: MOV, MUL, ADD, MAD, TEX, DP3, DP4, LRP, POW, SWZ и другие, определенные в спецификации ARB_fragment_program |
| Типы регистров | TEMP (общего назначения), ATTRIB (вход фрагмента), OUTPUT (result.color / result.depth), PARAM (константы и привязки среды) |
| Доступ к текстурам | Инструкции TEX / TXB / TXP / TXD; до 16 текстурных юнитов на программу (минимум по спецификации) |
| Макс. инструкций ALU | 1024 на программу (минимум по спецификации; реализации драйверов могут позволять больше) |
| Макс. регистров TEMP | 16 временных регистров (минимум по спецификации) |
| Макс. привязок PARAM | 24 локальных параметра + 96 привязок параметров среды (минимумы по спецификации) |
| Кодировка | Обычный текст ASCII; отсутствие символов, отличных от ASCII, в кодах или директивах |
| Типичный размер файла | 1 КБ - 50 КБ |
| Сопутствующий формат | Используется в паре с файлами `.vp` (вершинная программа ARB) для полной замены фиксированного конвейера вершин и фрагментов |
| Модель выполнения | Запускается один раз для каждого растеризованного фрагмента; базовая спецификация не поддерживает условные переходы или циклы (они были добавлены позже расширениями) |
| Известный пользователь | Космический симулятор Celestia (open-source) поставляет устаревшие шейдеры `.fp` для пообъектного рендеринга планет и космических кораблей |
| Заменен форматом | GLSL (`.frag` / `.glsl`), представленным в OpenGL 2.0 (сентябрь 2004 г.); удален из основного профиля OpenGL в версии 3.1 (2009 г.) |
| Поддержка платформ | Windows, Linux, macOS - любая платформа с OpenGL 1.4+ и расширением ARB_fragment_program |
| Выпущен | 2002 (ARB_fragment_program OpenGL extension; Celestia adoption circa 2003-2004) |
| Последняя версия | ARB_fragment_program spec v1.0; effectively superseded by GLSL (OpenGL 2.0, 2004) |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.khronos.org |
Конвертации FP
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах FP.