¿Por qué convertir PSSL a GLSL?
Los equipos que mueven un renderizador de PS4 a OpenGL o Vulkan necesitan sus shaders PSSL en .GLSL. PSSL se lee de forma muy similar a HLSL, y GLSL expresa los mismos conceptos con diferentes palabras clave, por lo que una migración cuidadosa línea por línea junto con un pequeño encabezado de macros hace el trabajo. Un atajo común es portar PSSL a HLSL primero y luego ejecutar un compilador cruzado automatizado de HLSL a GLSL.
Cómo convertir PSSL a GLSL
Migración manual en un editor de texto FREE
Abra el archivo .pssl y reescríbalo como GLSL: convierta los pares Texture2D/SamplerState en sampler2D, reemplace las semánticas de entrada/salida con layout(location=...) y mapee mul() al operador * de GLSL con matrices transpuestas.
Portar a HLSL, luego a ShaderConductor OPEN-SOURCE
Convierta PSSL a HLSL primero, luego ejecute ShaderConductor de Microsoft (o SPIRV-Cross) para emitir GLSL legible automáticamente desde ese HLSL.
Encabezado de macros (shim) FREE
Agregue un encabezado #define compartido que cree alias de las palabras clave de PSSL a sus equivalentes en GLSL para que gran parte del cuerpo se compile sin cambios, similar al enfoque HPSL multiplataforma de Frictional Games.
Acerca de estos formatos
Un archivo .pssl contiene código de sombreado (shader) escrito en el PlayStation Shader Language de Sony, el lenguaje de programación de GPU utilizado para el desarrollo de juegos en…
Abrir detalles de .PSSL →Un archivo .GLSL está asociado con OpenGL Shading Language source code, un archivo de tipo misc.
Abrir detalles de .GLSL →Calidad y qué observar
- Ningún analizador lee PSSL directamente, por lo que el primer paso siempre es la edición manual.
- HLSL/PSSL usan matrices «row-major» y z de espacio de recorte en [0,1]; GLSL es «column-major» con z en [-1,1], por lo que las matemáticas de matrices y la profundidad necesitan ajustes.
- Las funciones intrínsecas exclusivas de PS4 y los enlaces específicos de registros no tienen equivalente en GLSL y deben reemplazarse a mano.