Fade into Black and White

Hey Guys,
So I presume you all have played Elevator:Source or Slender the Arrival.
I am working on something with Charlie Matheson.

When he is near you, he slowly fades your vision from color to Black and White.
I know there is a floor in Elevator Source that does this.
Thesis: Is their anyway I can slowly change a players vision from color to Black and White, with only lua?

Thanks,
-Blue

Something like


local pp, IN, OUT

pp = { }
IN = 1 / 3
OUT = 3

pp[ "$pp_colour_addr" ] 		= 0
pp[ "$pp_colour_addg" ] 		= 0
pp[ "$pp_colour_addb" ] 		= 0
pp[ "$pp_colour_contrast" ] 	= 1
pp[ "$pp_colour_mulr" ] 		= 0
pp[ "$pp_colour_mulg" ] 		= 0
pp[ "$pp_colour_mulb" ] 		= 0
pp[ "$pp_colour_brightness" ]	= 1

pp.progress = 1

local function RenderScreenspaceEffects( )
	local pl, p
	
	if not other guy is near us then
		pp.progress = math.Approach( pp.progress, 1, OUT * FrameTime( ) )
	else
		pp.progress = math.Approach( pp.progress, 0, IN * FrameTime( ) )
	end
	
	pp[ "$pp_colour_colour" ] = pp.progress
	
	if pp.progress > 0 then
		DrawColorModify( pp )
	end
end

hook.Add( "RenderScreenspaceEffects"	, "..."	, RenderScreenspaceEffects 	)

You just invoke the color modify post processing effect

There’s a convenience function, Player:ScreenFade, but it might not be dynamic enough for you.

Thanks, to both of you!
I will try them both.

Screen fade would be a fade/in fadeout like the chapter transitions in HL2 - OP wants to just remove the color from the screen.