PSSL GLSL
Конвертация файлов

Конвертировать PSSL в GLSL

БЫСТРЫЙ ОТВЕТ
Возможно ли конвертировать PSSL в GLSL?
Да - PSSL конвертируется в GLSL.

Готового конвертера PSSL в GLSL в один клик не существует, но оба формата имеют схожую C-подобную структуру шейдеров, поэтому ручной перенос вполне осуществим. Приготовьтесь переписать объявления текстур/сэмплеров, заменить семантику на квалификаторы layout и изменить соглашения о матрицах.

Также в GLSL: FX · FP

На этой странице

Протестировано на macOS, Windows и Linux
Последняя проверка: Sep 2026

Больше бесплатных конвертеров

HEIC, PNG, WEBP, MP3 и другие - все инструменты здесь бесплатны.

Открыть инструменты

Зачем конвертировать PSSL в GLSL?

Командам, переносящим рендерер PS4 на OpenGL или Vulkan, нужны шейдеры PSSL в формате .GLSL. PSSL читается почти как HLSL, а GLSL выражает те же концепции другими ключевыми словами, поэтому тщательный построчный перенос плюс небольшой заголовочный файл с макросами справятся с задачей. Распространенный обходной путь - сначала перенести PSSL в HLSL, а затем запустить автоматический кросс-компилятор HLSL в GLSL.

Способы конвертации PSSL в GLSL

Ручной перенос в текстовом редакторе FREE

Откройте файл .pssl и перепишите его как GLSL: преобразуйте пары Texture2D/SamplerState в sampler2D, замените входную/выходную семантику на layout(location=...) и замените mul() на оператор * в GLSL с транспонированными матрицами.

Перенос в HLSL, затем в ShaderConductor OPEN-SOURCE

Сначала конвертируйте PSSL в HLSL, затем запустите Microsoft ShaderConductor (или SPIRV-Cross), чтобы автоматически сгенерировать читаемый GLSL из этого HLSL.

Заголовочный файл с макросами FREE

Добавьте общий заголовок #define, который связывает ключевые слова PSSL с эквивалентами GLSL, чтобы большая часть кода компилировалась без изменений, аналогично кроссплатформенному подходу HPSL в Frictional Games.

Об этих форматах

Качество и на что обратить внимание

  • Ни один парсер не читает PSSL напрямую, поэтому первым шагом всегда является ручное редактирование.
  • HLSL/PSSL используют матрицы со строчным хранением и z в пространстве отсечения [0,1]; GLSL использует столбцовое хранение и z в диапазоне [-1,1], поэтому матричную математику и глубину нужно корректировать.
  • Специфичные для PS4 интринсики и привязки к регистрам не имеют эквивалентов в GLSL и должны быть заменены вручную.

Часто задаваемые вопросы

Существует ли инструмент для автоматического преобразования PSSL в GLSL?
Прямого инструмента нет. Перенесите PSSL в HLSL, затем используйте ShaderConductor или SPIRV-Cross для получения GLSL.
Что самое сложное в переносе?
Порядок матриц и различия в пространстве отсечения, а также переписывание объявлений текстур/сэмплеров и семантики.
Нужен ли мне PS4 SDK для этого?
Нет. Исходный код - это обычный текст, поэтому вы можете читать и переписывать его без Sony devkit.
Может ли заголовочный файл с макросами выполнить большую часть работы?
Он справляется с подменой ключевых слов, но структурные различия, такие как привязки и матрицы, все равно требуют ручного исправления.