Hvorfor konvertere PSSL til GLSL?
Teams, der flytter en PS4-renderer til OpenGL eller Vulkan, har brug for deres PSSL-shadere i .GLSL. PSSL læses meget ligesom HLSL, og GLSL udtrykker de samme koncepter med andre nøgleord, så en omhyggelig linje-for-linje portering plus en lille makro-header gør arbejdet. En almindelig genvej er at portere PSSL til HLSL først og derefter køre en automatiseret HLSL-til-GLSL cross-compiler.
Sådan konverterer du PSSL til GLSL
Manuel portering i en teksteditor FREE
Åbn .pssl-filen og omskriv den som GLSL: konverter Texture2D/SamplerState-par til sampler2D, erstat input/output-semantik med layout(location=...), og map mul() til GLSL's *-operator med transponerede matricer.
Porter til HLSL, derefter ShaderConductor OPEN-SOURCE
Konverter PSSL til HLSL først, og kør derefter Microsofts ShaderConductor (eller SPIRV-Cross) for automatisk at generere læsbar GLSL fra den HLSL.
Makro-shim-header FREE
Tilføj en delt #define-header, der aliasser PSSL-nøgleord til GLSL-ækvivalenter, så meget af koden kompilerer uændret, svarende til Frictional Games' cross-platform HPSL-tilgang.
Om disse formater
En .pssl-fil indeholder shader-kode skrevet i Sonys PlayStation Shader Language, det GPU-programmeringssprog, der bruges til spiludvikling til PlayStation 4 og PlayStation 5. Tekstbaserede…
Åbn .PSSL detaljer →En .GLSL-fil er knyttet til OpenGL Shading Language source code, en misc-fil.
Åbn .GLSL detaljer →Kvalitet & hvad man skal være opmærksom på
- Ingen parser læser PSSL direkte, så det første skridt er altid manuel redigering.
- HLSL/PSSL bruger row-major matricer og clip-space z i [0,1]; GLSL er column-major med z i [-1,1], så matrix-matematik og dybde skal justeres.
- PS4-eksklusive intrinsics og register-specifikke bindinger har ingen GLSL-ækvivalent og skal erstattes manuelt.