vertex_program glow_vs cg { source vs_glow.cg entry_point main profiles vs_1_1 arbvp1 } fragment_program glow_ps cg { source ps_glow.cg entry_point main profiles ps_2_0 arbfp1 } material glow { technique { pass { scene_blend alpha_blend depth_check on lighting off //what color should the glow be, emissive light can be changed through ogre as well emissive 0.5 0.9 1.0 0.0 vertex_program_ref glow_vs { //don't worry about auto parameters here, they are given param_named_auto iWorldTMatrix inverse_transpose_world_matrix param_named_auto iViewMatrix inverse_view_matrix param_named_auto worldMatrix world_matrix param_named_auto viewProjMatrix viewproj_matrix //how much should the glow expand from the model, usually a small value param_named inflate float 0.05 } fragment_program_ref glow_ps { //base alpha value of glow param_named alphaValue float 0.5 //from which view to surface normal angle on should the intensity of the glow decrease param_named cutoffAngle float 70.0 //by which exponent should the intensity decrease param_named exponent float 2.5 //how fast should the light pulsate param_named_auto time time_0_x 50 //don't worry about this one, it makes sure we use the emissive color value param_named_auto color surface_emissive_colour } } } } material glow/drone { technique { pass { scene_blend alpha_blend depth_check on lighting off texture_unit { texture drone.png } } pass { scene_blend alpha_blend depth_check on lighting off emissive 0.5 0.9 1.0 0.0 vertex_program_ref glow_vs { param_named_auto iWorldTMatrix inverse_transpose_world_matrix param_named_auto iViewMatrix inverse_view_matrix param_named_auto worldMatrix world_matrix param_named_auto viewProjMatrix viewproj_matrix param_named inflate float 0.2 } fragment_program_ref glow_ps { param_named alphaValue float 0.4 param_named cutoffAngle float 70.0 param_named exponent float 2.5 param_named_auto time time_0_x 50 param_named_auto color surface_emissive_colour } } } }