Hvorfor konvertere PSSL til HLSL?
Studier, der leverer den samme renderer på PS4 og PC, beholder én shader-kerne og oversætter til .HLSL til Direct3D. PSSL og HLSL deler den samme DX11-stil model med separate Texture2D- og SamplerState-objekter, semantik og registerbindinger, så en #define-shim dækker de fleste huller. Kun konsolspecifikke intrinsics kræver en reel omskrivning.
Sådan konverterer du PSSL til HLSL
Visual Studio Code med en makro-shim FREE
Åbn .pssl i VS Code og inkluder en delt header med #defines, der mapper PSSL-nøgleord til deres HLSL-former, og ret derefter eventuelle resterende erklæringer manuelt.
Manuel redigering i enhver teksteditor FREE
Omdøb PSSL sampler/texture og semantiske nøgleord til HLSL-ækvivalenter og juster register(t#/s#/b#) bindinger, så filen kan kompilere med fxc eller dxc.
Valider med dxc OPEN-SOURCE
Kompiler den porterede fil med Microsofts dxc shader.hlsl -T ps_6_0 for at bekræfte, at HLSL-koden er gyldig og fange eventuel resterende PSSL-kun-syntaks.
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 .HLSL-fil er knyttet til High Level Shader Language source code, en 3d image-fil.
Åbn .HLSL detaljer →Kvalitet & hvad man skal være opmærksom på
- Den Wikipedia-dokumenterede lighed betyder, at de fleste forskelle er kosmetiske, men der findes stadig ingen færdig PSSL-parser.
- PS4 GPU intrinsics og wave/thread-udvidelser har ingen HLSL-modpart og skal genimplementeres eller erstattes af stubs.
- Ressource-registerindekser skal nogle gange mappes om for at matche D3D root-signature forventninger.
Ofte stillede spørgsmål
Hvor ens er PSSL og HLSL?
Kan en makro-header alene klare opgaven?
Hvilken compiler skal jeg teste med?
dxc til Shader Model 6-mål, eller den ældre fxc til ældre SM5-shadere.