38 lines
1.3 KiB
HLSL
38 lines
1.3 KiB
HLSL
|
|
// HMS MediaEngine – Beispielplugin: Passthrough mit Live-Parameter "mix"
|
|||
|
|
// PLAN.md §14.4 (Standard-Shaderinputs), §36 Nr. 6
|
|||
|
|
// D3D11-Pixelshader (PS_5_0); Bindung übernimmt der Backend-Adapter (ADR-0004 offen).
|
|||
|
|
// Projekte referenzieren niemals konkrete Backend-Variablennamen (§12.6).
|
|||
|
|
|
|||
|
|
Texture2D u_input_texture : register(t0);
|
|||
|
|
SamplerState u_sampler : register(s0);
|
|||
|
|
|
|||
|
|
cbuffer hms_params : register(b0)
|
|||
|
|
{
|
|||
|
|
float4 u_resolution; // xy = Auflösung in Pixeln
|
|||
|
|
float u_time_seconds;
|
|||
|
|
float u_delta_seconds;
|
|||
|
|
float u_frame_index;
|
|||
|
|
float u_layer_opacity;
|
|||
|
|
float u_audio_rms;
|
|||
|
|
float u_audio_peak;
|
|||
|
|
float u_audio_bass;
|
|||
|
|
float u_audio_mid;
|
|||
|
|
float u_audio_treble;
|
|||
|
|
float u_audio_beat;
|
|||
|
|
float param_mix; // Plugin-Parameter, live änderbar (0..1)
|
|||
|
|
float _pad0; // 16-Byte-Alignment des cbuffer
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
float4 mainPS(float4 pos : SV_POSITION, float2 uv : TEXCOORD0) : SV_Target
|
|||
|
|
{
|
|||
|
|
float4 src = u_input_texture.Sample(u_sampler, uv);
|
|||
|
|
|
|||
|
|
// Live-Parameter: mix blendet zwischen Original und zeitmodulierter Helligkeit
|
|||
|
|
float pulse = 0.5 + 0.5 * sin(u_time_seconds * 2.0);
|
|||
|
|
float m = saturate(param_mix);
|
|||
|
|
float3 rgb = src.rgb * lerp(1.0, pulse, m);
|
|||
|
|
float a = src.a * u_layer_opacity;
|
|||
|
|
|
|||
|
|
return float4(rgb * u_layer_opacity, a);
|
|||
|
|
}
|