
material Examples/EnvMappedRustySteel
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture RustySteel.jpg
			}

			texture_unit
			{
				texture spheremap.png
				colour_op_ex add src_texture src_current
				colour_op_multipass_fallback one one
				env_map spherical
			}
		}
	}
}
material Examples/OgreLogo
{
	technique
	{
		pass
		{
			ambient 0.8 0.8 0.8

			texture_unit
			{
				texture ogrelogo.png
			}
		}
	}
}
material Examples/DarkMaterial
{
	technique
	{
		pass
		{
			ambient 0.1 0.1 0.1

			texture_unit
			{
				texture BeachStones.jpg
			}
		}
	}
}
material Examples/SpaceSkyBox
{
	technique
	{
		pass
		{
			lighting off
			depth_write off

			texture_unit
			{
				cubic_texture stevecube.jpg separateUV
				tex_address_mode clamp
			}
		}
	}
}
material Examples/SceneSkyBox1
{
	technique
	{
		pass
		{
			lighting off
			depth_write off

			texture_unit
			{
				cubic_texture cubemap_fr.jpg cubemap_bk.jpg cubemap_lf.jpg cubemap_rt.jpg cubemap_up.jpg cubemap_dn.jpg separateUV
				tex_address_mode clamp
			}
		}
	}
}
material Examples/SceneCubeMap1
{
	technique
	{
		pass
		{
			lighting off

			texture_unit
			{
				cubic_texture cubemap.jpg combinedUVW
				tex_address_mode clamp
				env_map cubic_reflection
			}
		}
	}
}
material Examples/SceneSkyBox2
{
	technique
	{
		pass
		{
			lighting off
			depth_write off

			texture_unit
			{
				cubic_texture cubescene_fr.jpg cubescene_bk.jpg cubescene_lf.jpg cubescene_rt.jpg cubescene_up.jpg cubescene_dn.jpg separateUV
				tex_address_mode clamp
			}
		}
	}
}
material Examples/SceneCubeMap2
{
	technique
	{
		pass
		{
			lighting off

			texture_unit
			{
				cubic_texture cubescene.jpg combinedUVW
				tex_address_mode clamp
				env_map cubic_reflection
			}
		}
	}
}

material Examples/CloudyNoonSkyBox
{
	technique
	{
		pass
		{
			lighting off
			depth_write off

			texture_unit
			{
				cubic_texture cloudy_noon.jpg separateUV
				tex_address_mode clamp
			}
		}
	}
}

material Examples/StormySkyBox
{
	technique
	{
		pass
		{
			lighting off
			depth_write off

			texture_unit
			{
				cubic_texture stormy.jpg separateUV
				tex_address_mode clamp
			}
		}
	}
}


fragment_program Examples/MorningSkyBoxHDRfp cg
{
	source hdr.cg
	entry_point morningskybox_fp
	profiles ps_2_0 arbfp1

}
material Examples/MorningSkyBox
{
	technique
	{
		pass
		{
			lighting off
			depth_write off

			texture_unit
			{
				cubic_texture morning.jpg separateUV
				tex_address_mode clamp
			}
		}
	}

	// HDR technique (fake)
	technique
	{
		scheme HDR

		pass
		{
			lighting off
			depth_write off

			vertex_program_ref Ogre/BasicVertexPrograms/AmbientOneTexture
			{
				param_named_auto worldViewProj worldviewproj_matrix
				param_named ambient float4 1 1 1 1
			}
			fragment_program_ref Examples/MorningSkyBoxHDRfp
			{
			}

			texture_unit
			{
				cubic_texture morning.jpg separateUV
				tex_address_mode clamp
			}
		}
	}
}
fragment_program Examples/MorningCubeMapHDRfp cg
{
	source hdr.cg
	entry_point morningcubemap_fp
	profiles ps_2_0 arbfp1

}
material Examples/MorningCubeMap
{
	technique
	{
		pass
		{
			lighting off

			texture_unit
			{
				cubic_texture morning.jpg combinedUVW
				tex_address_mode clamp
				env_map cubic_reflection
			}
		}
	}
	// HDR technique (fake)
	technique
	{
		scheme HDR

		pass
		{
			lighting off

			fragment_program_ref Examples/MorningCubeMapHDRfp
			{
			}
			texture_unit
			{
				cubic_texture morning.jpg combinedUVW
				tex_address_mode clamp
				env_map cubic_reflection
			}
		}
	}
}


material Examples/EveningSkyBox
{
	technique
	{
		pass
		{
			lighting off
			depth_write off

			texture_unit
			{
				cubic_texture evening.jpg separateUV
				tex_address_mode clamp
			}
		}
	}
}

material Examples/CloudySky
{
	technique
	{
		pass
		{
			lighting off
			depth_write off

			texture_unit
			{
				texture clouds.jpg
				scroll_anim 0.15 0
			}
		}
	}
}
material Examples/RustySteel
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture RustySteel.jpg
			}
		}
	}
}
material Examples/Chrome
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture Chrome.jpg
				env_map spherical
			}
		}
	}
}
material Examples/SpaceSkyPlane
{
	technique
	{
		pass
		{
			lighting off
			depth_write off
			fog_override true none

			texture_unit
			{
				texture spacesky.jpg
			}
		}
	}
}
material Examples/TextureEffect1
{
	technique
	{
		pass
		{
			ambient 0.75 0.75 0.75
			cull_hardware none
			cull_software none

			texture_unit
			{
				texture BumpyMetal.jpg
				rotate_anim 0.2
				wave_xform scale_x sine 1 0.1 0 5
				wave_xform scale_y sine 0.5 0.2 0.5 3
			}
		}
	}
}
material Examples/TextureEffect2
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture Water02.jpg
				scroll_anim 0.5 0
			}
		}
	}
}
material Examples/TextureEffect3
{
	technique
	{
		pass
		{
			ambient 0.7 0.7 0.7
			cull_hardware none
			cull_software none

			texture_unit
			{
				texture Water01.jpg
				scroll_anim -0.25 0.1
			}

			texture_unit
			{
				texture Water01.jpg
				colour_op_ex add src_texture src_current
				colour_op_multipass_fallback one one
				scroll_anim -0.1 0.25
			}
		}
	}
}
material Examples/TextureEffect4
{
	technique
	{
		pass
		{
			ambient 0.3 0.3 0.3
			scene_blend colour_blend
			cull_hardware none
			cull_software none

			texture_unit
			{
				texture Water02.jpg
				scroll_anim 0.01 0.01
			}
		}
	}
}
material Examples/BumpyMetal
{
	technique
	{
		pass
		{
			ambient 0.75 0.75 0.75
			cull_hardware none
			cull_software none

			texture_unit
			{
				texture BumpyMetal.jpg
			}
		}
	}
}
material Examples/TransparentTest
{
	technique
	{
		pass
		{
			ambient 0.2 0.2 0.2
			scene_blend add
			depth_write off

			texture_unit
			{
				texture Water01.jpg
				scroll_anim 0.25 0
			}

			texture_unit
			{
				texture Water01.jpg
				wave_xform scroll_y sine 0 0.1 0 0.5
			}
		}
	}
}
material Examples/Flare
{
	technique
	{
		pass
		{
			lighting off
			scene_blend add
			depth_write off

			texture_unit
			{
				texture flare.png
			}
		}
	}
}
material Examples/Flare2
{
	technique
	{
		pass
		{
			lighting off
			scene_blend add
			depth_write off

			texture_unit
			{
				texture flaretrail.png
			}
		}
	}
}
material Examples/FlarePointSprite
{
	technique
	{
		pass
		{
			lighting off
			scene_blend add
			depth_write off

			point_sprites on
			point_size 2
			point_size_attenuation on

			texture_unit
			{
				texture flare.png
			}
		}
	}
}

material Examples/Droplet
{
	technique
	{
		pass
		{
			scene_blend colour_blend
			depth_write off

			texture_unit
			{
				texture basic_droplet.png
			}
		}
	}
}
material Examples/Hilite/Yellow
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture dkyellow.png
			}
		}
	}
}
material Examples/Rocky
{
	technique
	{
		pass
		{
			ambient 0.2 0.2 0.2

			texture_unit
			{
				texture egyptrockyfull.jpg
			}
		}
	}
}
material Examples/10PointBlock
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture 10points.png
			}
		}
	}
}
material Material__25
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture texmap2.jpg
			}
		}
	}
}
material 2 - Default
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture MtlPlat2.jpg
			}
		}
	}
}
material Material #8
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture BODY.jpg
			}
		}
	}
}
material Material #3
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture HEAD4.jpg
			}
		}
	}
}
material Material #9
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture LEGS.jpg
			}
		}
	}
}

material Examples/Fish
{
	technique
	{
		pass
		{
			texture_unit
			{
				texture steelhead.png
			}
		}
	}
}
material Examples/Ninja
{
	technique
	{
		pass
		{
		
			texture_unit
			{
				texture nskingr.jpg
			}
		}
	}
}

material Examples/Robot
{
	// Hardware skinning techniique
	technique
	{
		pass
		{
			vertex_program_ref Ogre/HardwareSkinningOneWeight
			{
				param_named_auto worldMatrix3x4Array world_matrix_array_3x4
				param_named_auto viewProjectionMatrix viewproj_matrix
				param_named_auto lightPos[0] light_position 0
				param_named_auto lightPos[1] light_position 1
				param_named_auto lightDiffuseColour[0] light_diffuse_colour 0
				param_named_auto lightDiffuseColour[1] light_diffuse_colour 1
				param_named_auto ambient ambient_light_colour
			
			}
			// alternate shadow caster program
			shadow_caster_vertex_program_ref Ogre/HardwareSkinningOneWeightShadowCaster
			{
				param_named_auto worldMatrix3x4Array world_matrix_array_3x4
				param_named_auto viewProjectionMatrix viewproj_matrix
				param_named_auto ambient ambient_light_colour
			
			}

			texture_unit
			{
				texture r2skin.jpg
			}
		}
	}

	// Software blending technique
	technique
	{
		pass
		{

			texture_unit
			{
				texture r2skin.jpg
			}
		}
	}
}

material Examples/GrassFloor
{
	technique
	{
		pass
		{
			texture_unit
			{
				texture grass_1024.jpg
			}
		}
	}
}

vertex_program Examples/GrassWaverVp hlsl
{
	source Grass.hlsl
	entry_point grass_vp
	target vs_1_1
}

material Examples/GrassBlades
{
	// Vertex program waving grass
    technique
    {
        pass
        {
			vertex_program_ref Examples/GrassWaverVp
			{
				param_named_auto worldViewProj worldviewproj_matrix
				param_named_auto ambient ambient_light_colour
				param_named_auto objSpaceLight light_position_object_space 0
				param_named_auto lightColour light_diffuse_colour 0
				param_named_auto offset custom 999
			}
			alpha_rejection greater 150 
			scene_blend alpha_blend
		    cull_hardware none
            cull_software none
            texture_unit
            {
                texture gras_02.png 
            }
        }
    }

	// Non-vertex program technique (no waving)
	technique
    {
        pass
        {
			alpha_rejection greater 150 
			scene_blend alpha_blend
		    cull_hardware none
            cull_software none
            texture_unit
            {
                texture gras_02.png 
            }
        }
    }
}

material Examples/Rockwall
{
	technique
	{
		pass
		{
			texture_unit
			{
				texture rockwall.tga
			}
		}
	}
}

material Examples/Aureola
{
	technique
	{
		pass
		{
			lighting off
			scene_blend alpha_blend
			depth_write off
			cull_hardware none

			texture_unit
			{
				texture aureola.png PF_BYTE_LA
				tex_address_mode clamp
			}
		}
	}
}

// Test hardware morph animation
material Examples/HardwareMorphAnimation
{
	technique
	{
		pass
		{
			
			vertex_program_ref Ogre/HardwareMorphAnimation
			{
				// all default
			}

			texture_unit
			{
				tex_coord_set 0
				colour_op_ex source1 src_current src_current
			}
			// need to define these texture units otherwise GL won't use the uv sets			
			texture_unit
			{
				tex_coord_set 1
				// also need to set blending to ignore texture which is GL warning texture
				colour_op_ex source1 src_current src_current
			}
			texture_unit
			{
				tex_coord_set 2
				colour_op_ex source1 src_current src_current
			}
		
		}
	}
}

// Test hardware pose animation
material Examples/HardwarePoseAnimation
{
	technique
	{
		pass
		{
			
			vertex_program_ref Ogre/HardwarePoseAnimation
			{
				// all default
			}
			texture_unit
			{
				tex_coord_set 0
				colour_op_ex source1 src_current src_current
			}
			// need to define these texture units otherwise GL won't use the uv sets			
			texture_unit
			{
				tex_coord_set 1
				// also need to set blending to ignore texture which is GL warning texture
				colour_op_ex source1 src_current src_current
			}
			texture_unit
			{
				tex_coord_set 2
				colour_op_ex source1 src_current src_current
			}

		
		}
	}
}

material RustyBarrel
{
	technique
	{
		pass
		{
			ambient 0.5 0.5 0.5 1.0
			diffuse 1.0 1.0 1.0 1.0
			specular 0.0 0.0 0.0 1.0 12.5
			emissive 0.0 0.0 0.0 1.0
			texture_unit
			{
				texture RustyBarrel.png
				filtering trilinear
			}
		}
	}
}

material WoodPallet
{
	receive_shadows on
	technique
	{
		pass
		{
			ambient 0.5 0.5 0.5 1.0
			diffuse 1.0 1.0 1.0 1.0
			specular 0.0 0.0 0.0 1.0 12.5

			texture_unit
			{
				texture WoodPallet.png
				filtering trilinear
			}
		}
	}
}

material Examples/LightRibbonTrail
{
	technique
	{
		pass
		{
			lighting off
			scene_blend add
			depth_write off

			texture_unit
			{
				texture ribbonband.png 1d
				tex_address_mode clamp
				filtering none
			}
		}
	}
}

material Examples/TudorHouse
{
	technique
	{
		pass
		{
			texture_unit
			{
				texture fw12b.jpg
				tex_address_mode clamp
			}
		}
	}
}

material jaiqua
{
	// Hardware skinning techniique
	technique
	{
		pass
		{
			vertex_program_ref Ogre/HardwareSkinningTwoWeights
			{
			
			}
			// alternate shadow caster program
			shadow_caster_vertex_program_ref Ogre/HardwareSkinningTwoWeightsShadowCaster
			{
				param_named_auto worldMatrix3x4Array world_matrix_array_3x4
				param_named_auto viewProjectionMatrix viewproj_matrix
				param_named_auto ambient ambient_light_colour
			
			}

			texture_unit
			{
				texture blue_jaiqua.jpg
				tex_address_mode clamp
			}
		}
	}

	// Software blending technique
	technique
	{
		pass
		{
			texture_unit
			{
				texture blue_jaiqua.jpg
				tex_address_mode clamp
			}
		}
	}
	
}


material Examples/Plane/IntegratedShadows
{
	technique
	{
		pass
		{
			// Single-pass shadowing
			texture_unit
			{
				texture MtlPlat2.jpg
			}
			texture_unit
			{
				// standard modulation blend
				content_type shadow
				tex_address_mode clamp
			}
		}
	}
	
}
