;===========================
; Vertex/Fragment templates
;===========================
vf_standard
{
  ; Most-often used shader for static objects
  vertex_shader 
  {
    file=standard_v.cg
  }
  fragment_shader
  {
    file=standard_f.cg
  }
}
;-------------------------------------------------
vf_dyn_standard
{
  ; Dynamic objects (such as cones) with a default shader
  vertex_shader 
  {
    file=dyn_standard_v.cg
  }
  fragment_shader
  {
    file=standard_f.cg
  }
}
;-------------------------------------------------
vf_standard_transparent
{
  ; Shader for transparent (blended) materials
  vertex_shader 
  {
    file=standard_v.cg
  }
  fragment_shader
  {
    file=standard_transparent_f.cg
  }
}
;-------------------------------------------------
vf_vertexcolor
{
  ; Carlswood uses vertex coloring a lot in the grass. Other tracks may use 'standard_v.cg' and 'standard_f.cg' instead.
  vertex_shader 
  {
    file=standard_vc_v.cg
  }
  fragment_shader
  {
    file=standard_vc_f.cg
  }
}
;-------------------------------------------------
vf_animate
{
  ; Animation test (top moves around)
  vertex_shader 
  {
    file=animate_test_v.cg
  }
  fragment_shader
  {
    file=standard_f.cg
  }
}
;-------------------------------------------------
vf_road
{
  ; The road uses specularity but burned through the red channel to get a coarse gloss map
  specular=0.1 0.1 0.1
  shininess=80
  scale=7.5
  ;scale=3.1
  vertex_shader 
  {
    file=standard_v.cg
  }
  fragment_shader
  {
    file=standard_detail_burn_a_f.cg
    ; Burn specularity through alpha
    ;file=standard_burn_a_f.cg
  }
}
;vf_road
{
	specular=1 1 1
	shininess=4
	scale=3.1
	diffuse=0.5 0.5 0.5
	cast_shadow=0
	vertex_shader
	{
		file=standard_v.cg
	}
	fragment_shader
	{
		file=standard_detail_burn_a_f.cg
	}
}
;-------------------------------------------------
vf_sky
{
  vertex_shader
  {
    ;file=sky_daynight_v.cg
    file=sky_v.cg
  }
  fragment_shader
  {
    ;file=sky_daynight_f.cg
    file=sky_f.cg
  }
}
;-------------------------------------------------
vf_bump
{
  vertex_shader
  {
    file=standard_bump_v.cg
  }
  fragment_shader
  {
    file=standard_bump_f.cg
  }
}
;-------------------------------------------------
vf_x_tree
{
	cull=none
	vertex_shader
	{
		file=standard_xtree_v.cg
	}
	fragment_shader
	{
		file=standard_xtree_f.cg
		;file=standard_xtree_basic_f.cg
	}
}
;-------------------------------------------------
vf_tree
{
	cull=none
	vertex_shader
	{
		file=standard_tree_v.cg
	}
	fragment_shader
	{
		file=standard_tree_f.cg
	}
}
;-------------------------------------------
vf_reflect
{
  ; Just reflection
  vertex_shader
  {
    file=dyn_standard_reflect_v.cg
  }
  fragment_shader
  {
    file=dyn_standard_reflect_f.cg
  }
}
;-------------------------------------------
vf_reflect_bump
{
  ; Texture+bumpmap+reflection map
  vertex_shader
  {
    file=dyn_standard_bump_reflect_v.cg
    ;file=dyn_standard_reflect_v.cg
  }
  fragment_shader
  {
    file=dyn_standard_bump_reflect_f.cg
    ;file=dyn_standard_reflect_f.cg
  }
}
;-------------------------------------------
vf_mix1w
{
  ; Single texture, world mapped
  vertex_shader 
  {
    file=standard_v.cg
  }
  fragment_shader
  {
    file=standard_mix1w_f.cg
  }
}
;-------------------------------------------
vf_mix2
{
  ; 2 textures, both world mapped
  vertex_shader 
  {
    file=standard_v.cg
  }
  fragment_shader
  {
    file=standard_mix2_f.cg
  }
}
;-------------------------------------------
vf_mix2w
{
  ; 2 textures with world mapping for the 2nd texture
  vertex_shader 
  {
    file=standard_v.cg
  }
  fragment_shader
  {
    file=standard_mix2w_f.cg
  }
}
;-------------------------------------------
vf_glass
{
  vertex_shader
  {
    file=dyn_standard_reflect_window_v.cg
  }
  fragment_shader
  {
    file=dyn_standard_reflect_window_f.cg
  }
  fresnel
  {
    bias=0.2
    scale=0.8
    power=3.0
  }
}
;-------------------------------------------
;
; Racer shaders
;

shader_sky~vf_sky
{
  sky=1
  cull=none
  layer0
  {
    map=sky.tga
    depthwrite=0
    depthfunc=always
  }
  layer1
  {
    map=sky04.dds
    depthwrite=0
    depthfunc=always
  }
}

;shader_textured_material_bldgba~vf_standard
{
  layer0
  {
    map=
  }
}

;shader_textured_material_bldgbb~vf_standard
{
  layer0
  {
    map=q_generated
  }
}

shader_textured_material_tyremblo~vf_standard
{
  layer0
  {
    map=LOGOPTRC.bmp
  }
}

shader_textured_material_roada~vf_standard
{
  layer0
  {
    map=roada.bmp
  }
}
shader_textured_material_dirtg~vf_standard
{
  layer0
  {
    map=dirtg.bmp
  }
}
shader_textured_material_grasa~vf_standard
{
  layer0
  {
    map=grasa.bmp
  }
}
shader_textured_material_xrw1a~vf_standard_transparent
{
  layer0
  {
    map=xrw1a.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_rsaa~vf_standard
{
  layer0
  {
    map=rsaa.bmp
  }
}
shader_textured_material_xrw1st~vf_standard
{
  layer0
  {
    map=xrw1st.bmp
  }
}
shader_textured_material_grvla~vf_standard
{
  layer0
  {
    map=grvla.bmp
  }
}
shader_textured_material_dirts~vf_standard
{
  layer0
  {
    map=dirts.bmp
  }
}
shader_textured_material_logoptrd~vf_standard
{
  layer0
  {
    map=logoptrd.bmp
  }
}
shader_textured_material_concwala~vf_standard
{
  layer0
  {
    map=concwala.bmp
  }
}
shader_textured_material_roadd~vf_standard
{
  layer0
  {
    map=roadd.bmp
  }
}
shader_textured_material_roadc~vf_standard
{
  layer0
  {
    map=roadc.bmp
  }
}
shader_textured_material_roadb~vf_standard
{
  layer0
  {
    map=roadb.bmp
  }
}
shader_textured_material_bldgpa~vf_standard
{
  layer0
  {
    map=bldgpa.bmp
  }
}
shader_textured_material_bldgpc~vf_standard
{
  layer0
  {
    map=bldgpc.bmp
  }
}
shader_textured_material_concsema~vf_standard
{
  layer0
  {
    map=concsema.bmp
  }
}
shader_textured_material_concsemb~vf_standard
{
  layer0
  {
    map=concsemb.bmp
  }
}
shader_textured_material_fncec~vf_standard_transparent
{
  layer0
  {
    map=fncec.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_roade~vf_standard
{
  layer0
  {
    map=roade.bmp
  }
}
shader_textured_material_roadf~vf_standard
{
  layer0
  {
    map=roadf.bmp
  }
}
shader_textured_material_grasc~vf_standard
{
  layer0
  {
    map=grasc.bmp
  }
}
shader_textured_material_grasd~vf_standard
{
  layer0
  {
    map=grasd.bmp
  }
}
shader_textured_material_logofstn~vf_standard
{
  layer0
  {
    map=logofstn.bmp
  }
}
shader_textured_material_logohsbc~vf_standard
{
  layer0
  {
    map=logohsbc.bmp
  }
}
shader_textured_material_logobrdg~vf_standard
{
  layer0
  {
    map=logobrdg.bmp
  }
}
shader_textured_material_gstnda~vf_standard
{
  layer0
  {
    map=gstnda.bmp
  }
}
shader_textured_material_bldgpd~vf_standard
{
  layer0
  {
    map=bldgpd.bmp
  }
}
shader_textured_material_bldgpb~vf_standard
{
  layer0
  {
    map=bldgpb.bmp
  }
}

shader_textured_material_tenta~vf_standard
{
  layer0
  {
    map=tenta.bmp
  }
}

shader_textured_material_fnceg~vf_standard
{
  layer0
  {
    map=fnceg.bmp
  }
}
shader_textured_material_fncef~vf_standard_transparent
{
  layer0
  {
    map=fncef.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_fnced~vf_standard
{
  layer0
  {
    map=fnced.bmp
  }
}
shader_textured_material_signa~vf_standard
{
  layer0
  {
    map=signa.bmp
  }
}
shader_textured_material_logofost~vf_standard
{
  layer0
  {
    map=logofost.bmp
  }
}
shader_textured_material_logomlyb~vf_standard
{
  layer0
  {
    map=logomlyb.bmp
  }
}
shader_textured_material_fncee~vf_standard_transparent
{
  layer0
  {
    map=fncee.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_walat~vf_standard
{
  layer0
  {
    map=walat.bmp
  }
}
shader_textured_material_logoptrc~vf_standard
{
  layer0
  {
    map=logoptrc.bmp
  }
}
shader_textured_material_logomblo~vf_standard
{
  layer0
  {
    map=logomblo.bmp
  }
}
shader_textured_material_logoptrb~vf_standard
{
  layer0
  {
    map=logoptrb.bmp
  }
}
shader_textured_material_logoeuro~vf_standard
{
  layer0
  {
    map=logoeuro.bmp
  }
}
shader_textured_material_logotaga~vf_standard
{
  layer0
  {
    map=logotaga.bmp
  }
}
shader_textured_material_logomlya~vf_standard
{
  layer0
  {
    map=logomlya.bmp
  }
}
shader_textured_material_gstndh~vf_standard
{
  layer0
  {
    map=gstndh.bmp
  }
}
shader_textured_material_gstndg~vf_standard
{
  layer0
  {
    map=gstndg.bmp
  }
}
shader_textured_material_gstndd~vf_standard_transparent
{
  layer0
  {
    map=gstndd.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_gstndi~vf_standard_transparent
{
  layer0
  {
    map=gstndi.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_gstnde~vf_standard_transparent
{
  layer0
  {
    map=gstnde.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_gstndf~vf_standard_transparent
{
  layer0
  {
    map=gstndf.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_gstndb~vf_standard
{
  layer0
  {
    map=gstndb.bmp
  }
}
shader_textured_material_concwals~vf_standard
{
  layer0
  {
    map=concwals.bmp
  }
}
shader_textured_material_gstndc~vf_standard
{
  layer0
  {
    map=gstndc.bmp
  }
}
shader_textured_material_gstndo~vf_standard
{
  layer0
  {
    map=gstndo.bmp
  }
}
shader_textured_material_jumboa~vf_standard
{
  layer0
  {
    map=jumboa.bmp
  }
}
shader_textured_material_ref~vf_standard
{
  layer0
  {
    map=ref.bmp
  }
}
shader_textured_material_gstndk~vf_standard
{
  layer0
  {
    map=gstndk.bmp
  }
}
shader_textured_material_pitmchna~vf_standard
{
  layer0
  {
    map=pitmchna.bmp
  }
}
shader_textured_material_pitmchnb~vf_standard
{
  layer0
  {
    map=pitmchnb.bmp
  }
}
shader_textured_material_pitguyc~vf_standard_transparent
{
  layer0
  {
    map=pitguyc.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_pitguya~vf_standard_transparent
{
  layer0
  {
    map=pitguya.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_pitanks~vf_standard_transparent
{
  layer0
  {
    map=pitanks.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_pitguyb~vf_standard_transparent
{
  layer0
  {
    map=pitguyb.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_gspa~vf_standard_transparent
{
  layer0
  {
    map=gspa.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_gspc~vf_standard_transparent
{
  layer0
  {
    map=gspc.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_gspb~vf_standard_transparent
{
  layer0
  {
    map=gspb.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_itay~vf_standard_transparent
{
  layer0
  {
    map=itay.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_germ~vf_standard_transparent
{
  layer0
  {
    map=germ.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_fribc~vf_standard_transparent
{
  layer0
  {
    map=fribc.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_chck~vf_standard_transparent
{
  layer0
  {
    map=chck.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_shaka~vf_standard
{
  layer0
  {
    map=shaka.bmp
  }
}
shader_textured_material_shakb~vf_standard
{
  layer0
  {
    map=shakb.bmp
  }
}

shader_textured_material_grasas~vf_standard
{
  layer0
  {
    map=GRASA.bmp
  }
}
shader_textured_material_grdra~vf_standard_transparent
{
  layer0
  {
    map=grdra.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_gstndn~vf_standard
{
  layer0
  {
    map=gstndn.bmp
  }
}
shader_textured_material_grasb~vf_standard
{
  layer0
  {
    map=grasb.bmp
  }
}
shader_textured_material_trelb~vf_tree
{
  layer0
  {
    map=trelb.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_trela~vf_tree
{
  layer0
  {
    map=trela.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_busha~vf_tree
{
  layer0
  {
    map=busha.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_treea~vf_tree
{
  layer0
  {
    map=treea.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_treeb~vf_tree
{
  layer0
  {
    map=treeb.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_treec~vf_tree
{
  layer0
  {
    map=treec.bmp
    ; Map has transparency so enable blending
    alpha_to_coverage=1
    alphafunc=gequal 128
    ; Real blending
    ;blendfunc=blend
    ;depthwrite=0
  }
}
shader_textured_material_tsa~vf_standard
{
  layer0
  {
    map=tsa.bmp
  }
}
shader_textured_material_tsb~vf_standard
{
  layer0
  {
    map=tsb.bmp
  }
}
shader_textured_material_tsc~vf_standard
{
  layer0
  {
    map=tsc.bmp
  }
}
shader_textured_material_tsd~vf_standard
{
  layer0
  {
    map=tsd.bmp
  }
}
shader_textured_material_tiresc~vf_standard
{
  layer0
  {
    map=tiresc.bmp
  }
}
shader_textured_material_tiresd~vf_standard
{
  layer0
  {
    map=tiresd.bmp
  }
}
shader_textured_material_tiresb~vf_standard
{
  layer0
  {
    map=tiresb.bmp
  }
}
shader_textured_material_tirese~vf_standard
{
  layer0
  {
    map=tirese.bmp
  }
}
shader_textured_material_tiresa~vf_standard
{
  layer0
  {
    map=tiresa.bmp
  }
}
shader_textured_material_sctwra~vf_standard
{
  layer0
  {
    map=sctwra.bmp
  }
}