Зачем конвертировать PSSL в CG?
Пользователи попадают сюда, потому что Cg синтаксически близок к HLSL, поэтому он кажется естественной целью для шейдера PS4. На практике компилятор PSSL поставляется только внутри лицензионного devkit от Sony и выдает бинарные файлы GPU, а не переносимый текст Cg, а сам Cg - это тупиковый путь. Большинство команд вместо этого переводят PSSL на поддерживаемый язык, такой как .HLSL.
Способы конвертации PSSL в CG
Ручной перенос в HLSL, затем в Cg (если действительно нужно) OPEN-SOURCE
Перепишите точки входа PSSL как HLSL в редакторе, затем подайте этот HLSL в устаревший компилятор cgc от NVIDIA с помощью команды cgc -profile vp40 shader.hlsl, если профиль Cg действительно необходим.
Трансляция через ShaderConductor OPEN-SOURCE
После ручного преобразования PSSL в HLSL используйте ShaderConductor от Microsoft для кросс-компиляции этого HLSL в GLSL/MSL; бэкенда Cg не существует, поэтому Cg остается этапом ручной работы.
Об этих форматах
Файл .pssl содержит код шейдеров, написанный на PlayStation Shader Language - языке программирования GPU, используемом для разработки игр на PlayStation 4 и PlayStation 5. Текстовые файлы…
Открыть детали .PSSL →Файл .CG связан с nVidia CgFX, это файл категории 3d image.
Открыть детали .CG →Качество и на что обратить внимание
- Ни один автоматизированный инструмент не читает
.psslза пределами ограниченного NDA SDK для PS4/PS5 от Sony. - Cg был официально признан устаревшим компанией NVIDIA в 2012 году и не получает обновлений, поэтому портирование в него обычно является шагом назад.
- Специфичные для оборудования PS4 встроенные функции (intrinsics) в исходном коде PSSL не имеют эквивалентов в Cg и должны быть удалены или реализованы заново.