Other shader languagesAutres langages de shader
HLSL pixel shaders (.hlsl), WGSL fragment shaders (.wgsl) and complete GLSL fragment shaders (.frag or .glsl with #version 330 to 460, ES 3.x) are rendered like Shadertoy shaders. The program translates them to GLSL 3.30 with small programs of its tools folder. HLSL also needs the DirectX Shader Compiler: run ShaderToMP4 --get-dxc once (24 MB, checked by SHA-256).
Uniforms: declare them with the Shadertoy names and types, in a cbuffer (HLSL) or in a struct bound at group 0, binding 0 (WGSL): iResolution (float3), iTime, iTimeDelta, iFrameRate (float), iFrame (int), iMouse and iDate (float4). The position (SV_Position, @builtin(position), gl_FragCoord) has its origin at the bottom left, as in Shadertoy.
Textures and passes: in HLSL write Texture2D iChannel0 and a SamplerState; in WGSL the textures in the order they are declared are iChannel0 to iChannel3. Choose the channels with the usual comments (// iChannel0=bufferA). Passes are files next to the shader: name.bufferA.hlsl, name.common.hlsl (functions only, added before every pass), name.post.hlsl.
Errors are shown as file:line: message with an explanation; double-click in the log to open the file at that line.
Limits: fragment shaders only (no compute, geometry or tessellation), one colour output, a source of 1 MB at most and 30 seconds of translation.
Les pixel shaders HLSL (.hlsl), les fragment shaders WGSL (.wgsl) et les fragment shaders GLSL complets (.frag ou .glsl avec #version 330 à 460, ES 3.x) sont rendus comme des shaders Shadertoy. Le programme les traduit en GLSL 3.30 avec de petits programmes de son dossier tools. Le HLSL demande aussi le DirectX Shader Compiler : lancez une fois ShaderToMP4 --get-dxc (24 Mo, vérifié par SHA-256).
Uniforms : déclarez-les avec les noms et les types de Shadertoy, dans un cbuffer (HLSL) ou dans une struct liée au groupe 0, liaison 0 (WGSL) : iResolution (float3), iTime, iTimeDelta, iFrameRate (float), iFrame (int), iMouse et iDate (float4). La position (SV_Position, @builtin(position), gl_FragCoord) a son origine en bas à gauche, comme dans Shadertoy.
Textures et passes : en HLSL, écrivez Texture2D iChannel0 et un SamplerState ; en WGSL, les textures dans l'ordre de leur déclaration sont iChannel0 à iChannel3. Choisissez les canaux avec les commentaires habituels (// iChannel0=bufferA). Les passes sont des fichiers à côté du shader : nom.bufferA.hlsl, nom.common.hlsl (des fonctions seulement, ajoutées devant chaque passe), nom.post.hlsl.
Les erreurs s'affichent sous la forme fichier:ligne: message avec une explication ; un double-clic dans le journal ouvre le fichier à cette ligne.
Limites : fragment shaders seulement (ni calcul, ni géométrie, ni tessellation), une seule sortie de couleur, une source de 1 Mo au plus et 30 secondes de traduction.