// 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); }