TF2 Glow Effect (2013 SDK): Difference between revisions
Jump to navigation
Jump to search
Beerdude26 (talk | contribs) No edit summary |
Beerdude26 (talk | contribs) No edit summary |
||
Line 12: | Line 12: | ||
UnlitGeneric | UnlitGeneric | ||
{ | { | ||
$basetexture | $basetexture white // or whatever you like | ||
$ignorez 1 | $ignorez 1 | ||
$model 1 | $model 1 | ||
$linearwrite 1 | $linearwrite 1 | ||
} | |||
</source> | |||
* Create another .VMT file in /materials/dev/ called "halo_add_to_screen.vmt" with the following contents: | |||
<source> | |||
"screenspace_general" | |||
{ | |||
"$PIXSHADER" "haloaddoutline_ps20" | |||
"$ALPHA_BLEND_COLOR_OVERLAY" 1 | |||
"$basetexture" "_rt_fullframefb" | |||
"$ignorez" 1 | |||
"$linearread_basetexture" 1 | |||
"$linearwrite" 1 | |||
"$texture1" "dev/glow_red" | |||
"$texture2" "dev/glow_white" | |||
"$texture3" "dev/glow_blue" | |||
} | } | ||
</source> | </source> | ||
Line 24: | Line 42: | ||
CLIENTEFFECT_REGISTER_BEGIN( PrecachePostProcessingEffectsGlow ) | CLIENTEFFECT_REGISTER_BEGIN( PrecachePostProcessingEffectsGlow ) | ||
CLIENTEFFECT_MATERIAL( "dev/glow_color" ) | CLIENTEFFECT_MATERIAL( "dev/glow_color" ) | ||
CLIENTEFFECT_MATERIAL( "dev/halo_add_to_screen" ) | |||
CLIENTEFFECT_REGISTER_END_CONDITIONAL( engine->GetDXSupportLevel() >= 90 ) | CLIENTEFFECT_REGISTER_END_CONDITIONAL( engine->GetDXSupportLevel() >= 90 ) | ||
</source> | </source> |
Revision as of 05:26, 8 April 2014
Activation
- Add GLOWS_ENABLE to the preprocessor directives on your client and server projects (don't forget to add it for release and debug, too!)
- Add the following line to ClientModeShared::DoPostScreenSpaceEffects:
g_GlowObjectManager.RenderGlowEffects( pSetup, 0 );
- Create a .VMT file in /materials/dev/ called "glow_color.vmt" with the following contents:
UnlitGeneric
{
$basetexture white // or whatever you like
$ignorez 1
$model 1
$linearwrite 1
}
- Create another .VMT file in /materials/dev/ called "halo_add_to_screen.vmt" with the following contents:
"screenspace_general"
{
"$PIXSHADER" "haloaddoutline_ps20"
"$ALPHA_BLEND_COLOR_OVERLAY" 1
"$basetexture" "_rt_fullframefb"
"$ignorez" 1
"$linearread_basetexture" 1
"$linearwrite" 1
"$texture1" "dev/glow_red"
"$texture2" "dev/glow_white"
"$texture3" "dev/glow_blue"
}
- Precache the effect by placing this code in clientmode_shared.cpp (search for other references of CLIENTEFFECT_REGISTER_BEGIN for usage example):
CLIENTEFFECT_REGISTER_BEGIN( PrecachePostProcessingEffectsGlow )
CLIENTEFFECT_MATERIAL( "dev/glow_color" )
CLIENTEFFECT_MATERIAL( "dev/halo_add_to_screen" )
CLIENTEFFECT_REGISTER_END_CONDITIONAL( engine->GetDXSupportLevel() >= 90 )
Usage
Objects derived from CBaseEntity are able to glow, but setters and getters for the glow effect only appear to be defined from CBaseCombatCharacter onwards.
To start a glow, call:
myObject->AddGlowEffect(); //Make it glow
To update a glow, call:
myObject->UpdateGlowEffect(); //Update glow
To stop a glow, call:
myObject->RemoveGlowEffect(); //Make it stop glowing