local mat_MotionBlur
= Material( "pp/motionblur" )
/*---------------------------------------------------------
Register the convars that will control this effect
---------------------------------------------------------*/
local pp_motionblur_addalpha
= CreateClientConVar( "pp_motionblur_addalpha",
"0.2",
false,
false )
local pp_motionblur_drawalpha
= CreateClientConVar( "pp_motionblur_drawalpha",
"0.99",
false,
false )
local pp_motionblur_delay
= CreateClientConVar( "pp_motionblur_delay",
"0.0",
false,
false )
local NextDraw = 0
local LastDraw = 0
if ( drawalpha == 0 ) then return end
// Copy the backbuffer to the screen effect texture
// If it's been a long time then the buffer is probably dirty, update it
if ( CurTime() - LastDraw
> 0.5 ) then
end
// Set up out materials
if ( NextDraw
< CurTime() && addalpha
> 0 ) then
end
end
local function DrawInternal()
if ( !pp_motionblur:
GetBool() ) then return end
if ( !GAMEMODE:PostProcessPermitted( "motion blur" ) ) then return end
end
hook.Add( "RenderScreenspaceEffects",
"RenderMotionBlur", DrawInternal
)
/*
// Control Panel
*/
local function BuildControlPanel( CPanel )
CPanel:AddControl( "Header", { Text = "#MotionBlur", Description = "#MotionBlur_Information" } )
CPanel:AddControl
( "CheckBox",
{ Label = "#MotionBlur_Toggle",
Command = "pp_motionblur" } )
local params
= { Options
= {}, CVars
= {},
Label = "#Presets", MenuButton
= "1", Folder
= "motionblur" }
params.Options[ "#Default" ] = { pp_motionblur_addalpha = "0.2", pp_motionblur_delay = "0.05", pp_motionblur_drawalpha = "0.99" }
params.CVars = { "pp_motionblur_addalpha", "pp_motionblur_drawalpha", "pp_motionblur_delay" }
CPanel:AddControl( "ComboBox", params )
CPanel:AddControl
( "Slider",
{ Label = "#MotionBlur_Add_Alpha",
Command = "pp_motionblur_addalpha", Type
= "Float", Min
= "0", Max
= "1" } )
CPanel:AddControl
( "Slider",
{ Label = "#MotionBlur_DrawAlpha",
Command = "pp_motionblur_drawalpha", Type
= "Float", Min
= "0", Max
= "1" } )
CPanel:AddControl
( "Slider",
{ Label = "#MotionBlur_Delay",
Command = "pp_motionblur_delay", Type
= "Float", Min
= "0", Max
= "1" } )
end
/*
// Tool Menu
*/
local function AddPostProcessMenu()
spawnmenu.AddToolMenuOption( "PostProcessing",
"PPSimple",
"MotionBlur",
"#Motion Blur",
"",
"", BuildControlPanel,
{ SwitchConVar
= "pp_motionblur" } )
end
hook.Add( "PopulateToolMenu",
"AddPostProcessMenu_MotionBlur", AddPostProcessMenu
)