В HLSL все переменные, объявленные вне функции, могут быть изменены между каждым вызовом отрисовки.
Чтобы изменить их значение, вы можете использовать следующий установщик из ID3DXEffect:
HRESULT SetFloat(
[in] D3DXHANDLE hParameter,
[in] FLOAT f
);
где hParameter может быть именем в виде char * или дескриптором, запрашиваемым с помощью GetParameterHandle()
Итак, в вашем примере:
effet-> SetFloat ("offsetBrightness", 0.5f);
Если вы находитесь внутри Begin()/End()
, вам нужно позвонить CommitChanges()
, чтобы применить эти значения