Hvorfor konvertere PSSL til HLSL?
Studioer som leverer samme renderingsmotor på PS4 og PC beholder én shader-kropp og oversetter til .HLSL for Direct3D. PSSL og HLSL deler samme DX11-stil modell med separate Texture2D- og SamplerState-objekter, semantikk og registerbindinger, så en #define-shim dekker de fleste gap. Kun konsollspesifikke intrinsics trenger en reell omskriving.
Hvordan konvertere PSSL til HLSL
Visual Studio Code med en makro-shim FREE
Åpne .pssl i VS Code og inkluder en delt header med #defines som mapper PSSL-nøkkelord til deres HLSL-former, og fiks deretter eventuelle gjenværende deklarasjoner manuelt.
Manuell redigering i et tekstredigeringsprogram FREE
Gi nytt navn til PSSL sampler/tekstur og semantiske nøkkelord til HLSL-ekvivalenter og juster register(t#/s#/b#)-bindinger slik at filen kompilerer med fxc eller dxc.
Valider med dxc OPEN-SOURCE
Kompiler den porterte filen med Microsofts dxc shader.hlsl -T ps_6_0 for å bekrefte at HLSL-koden er gyldig og fange opp eventuell gjenværende PSSL-spesifikk syntaks.
Om disse formatene
En .pssl-fil inneholder shader-kode skrevet i Sonys PlayStation Shader Language, GPU-programmeringsspråket som brukes for spillutvikling til PlayStation 4 og PlayStation 5. Tekstbaserte…
Åpne .PSSL-detaljer →En .HLSL-fil er assosiert med High Level Shader Language source code, en 3d image-fil.
Åpne .HLSL-detaljer →Kvalitet og hva du bør passe på
- Den Wikipedia-dokumenterte likheten betyr at de fleste forskjeller er kosmetiske, men det finnes fortsatt ingen ferdig PSSL-parser.
- PS4 GPU-intrinsics og wave/thread-utvidelser har ingen HLSL-motpart og må implementeres på nytt eller erstattes med stubs.
- Ressursregister-indekser må noen ganger mappes om for å samsvare med D3D root-signature-forventninger.
Ofte stilte spørsmål
Hvor like er PSSL og HLSL?
Kan en makro-header alene gjøre jobben?
Hvilken kompilator bør jeg teste med?
dxc for Shader Model 6-mål, eller eldre fxc for eldre SM5-shadere.