PSSL GLSL
Konwersja plików

Konwertuj PSSL na GLSL

SZYBKA ODPOWIEDŹ
Czy możliwa jest konwersja PSSL na GLSL?
Tak - PSSL konwertuje się na GLSL.

Nie istnieje konwerter PSSL-to-GLSL działający za jednym kliknięciem, ale oba formaty współdzielą tę samą strukturę shaderów typu C, więc ręczny port jest jak najbardziej wykonalny. Należy spodziewać się konieczności przepisania deklaracji tekstur/samplerów, zamiany semantyki na kwalifikatory layout oraz odwrócenia konwencji macierzy.

Również na GLSL: FX · FP

Na tej stronie

Testowane na macOS, Windows i Linux
Ostatnia weryfikacja Sep 2026

Więcej darmowych konwerterów

HEIC, PNG, WEBP, MP3 i inne - każde narzędzie tutaj jest darmowe.

Otwórz przybornik

Dlaczego konwertować PSSL na GLSL?

Zespoły przenoszące renderer z PS4 na OpenGL lub Vulkan potrzebują swoich shaderów PSSL w formacie .GLSL. PSSL czyta się bardzo podobnie do HLSL, a GLSL wyraża te same koncepcje za pomocą innych słów kluczowych, więc staranny port linia po linii wraz z małym nagłówkiem makr załatwia sprawę. Częstym skrótem jest najpierw port z PSSL do HLSL, a następnie użycie automatycznego kompilatora krzyżowego HLSL-to-GLSL.

Jak przekonwertować PSSL na GLSL

Ręczny port w edytorze tekstu FREE

Otwórz plik .pssl i przepisz go jako GLSL: przekonwertuj pary Texture2D/SamplerState na sampler2D, zastąp semantykę wejścia/wyjścia przez layout(location=...) i zmapuj mul() na operator * w GLSL przy użyciu transponowanych macierzy.

Port do HLSL, a następnie ShaderConductor OPEN-SOURCE

Najpierw przekonwertuj PSSL na HLSL, a następnie uruchom ShaderConductor od Microsoft (lub SPIRV-Cross), aby automatycznie wygenerować czytelny GLSL z tego HLSL.

Nagłówek z makrami (shim) FREE

Dodaj współdzielony nagłówek #define, który przypisuje słowa kluczowe PSSL do ich odpowiedników w GLSL, dzięki czemu duża część kodu kompiluje się bez zmian, podobnie jak w wieloplatformowym podejściu HPSL firmy Frictional Games.

O tych formatach

Jakość i na co uważać

  • Żaden parser nie czyta PSSL bezpośrednio, więc pierwszym krokiem jest zawsze ręczna edycja.
  • HLSL/PSSL używają macierzy wierszowych (row-major) i współrzędnej z w przestrzeni przycinania w zakresie [0,1]; GLSL jest kolumnowy (column-major) z z w zakresie [-1,1], więc matematyka macierzy i głębia wymagają dostosowania.
  • Funkcje wewnętrzne (intrinsics) specyficzne dla PS4 oraz powiązania rejestrów nie mają odpowiedników w GLSL i muszą zostać zastąpione ręcznie.

Najczęściej zadawane pytania

Czy istnieje automatyczne narzędzie PSSL do GLSL?
Nie ma bezpośredniego narzędzia. Przenieś PSSL do HLSL, a następnie użyj ShaderConductor lub SPIRV-Cross, aby uzyskać GLSL.
Co jest najtrudniejszą częścią portu?
Kolejność macierzy i różnice w przestrzeni przycinania, a także przepisywanie deklaracji tekstur/samplerów i semantyki.
Czy potrzebuję PS4 SDK, aby to zrobić?
Nie. Kod źródłowy to zwykły tekst, więc można go czytać i przepisywać bez zestawu deweloperskiego Sony.
Czy nagłówek z makrami może wykonać większość pracy?
Obsługuje on aliasy słów kluczowych, ale różnice strukturalne, takie jak powiązania i macierze, nadal wymagają ręcznych poprawek.