material Examples/SphereMappedRustySteel
{
	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/BeachStones
{
	technique
	{
		pass
		{
			ambient 0.1 0.1 0.1

			texture_unit
			{
				texture BeachStones.jpg
			}
		}
	}
}

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

			texture_unit
			{
				texture nm.png cubic
				tex_address_mode clamp
			}
		}
	}
}

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

			texture_unit
			{
				texture stevecube.jpg cubic
				tex_address_mode clamp
			}
		}
	}
}

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

			texture_unit
			{
				texture studio_garden.jpg cubic
				tex_address_mode clamp
			}
		}
	}
}

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

			texture_unit
			{
				texture cloudy_noon.jpg cubic
				tex_address_mode clamp
			}
		}
	}
}

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

			texture_unit
			{
				texture stormy.jpg cubic
				tex_address_mode clamp
			}
		}
	}
}

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

			texture_unit
			{
				texture early_morning.jpg cubic
				tex_address_mode clamp
			}
		}
	}
}

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

			texture_unit
			{
				texture morning.jpg cubic
				tex_address_mode clamp
			}
		}
	}

	// HDR technique (fake)
	technique
	{
		// this causes the current FFP technique to be picked
		// over the RTSS generated one
		// scheme HDR

		pass
		{
			lighting off
			depth_write off

			rtshader_system HDR {} // connect and set the scheme for the RTSS

			texture_unit
			{
				texture morning.jpg cubic
				tex_address_mode clamp
				// blow out the light a bit
				colour_op_ex modulate src_texture src_manual 1.7 1.7 1.7
			}
		}
	}
}

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
			{
				texture morning.jpg cubic
				tex_address_mode clamp
				env_map cubic_reflection
			}
		}
	}
	// HDR technique (fake)
	technique
	{
		scheme HDR

		pass
		{
			lighting off

			fragment_program_ref Examples/MorningCubeMapHDRfp
			{
			}
			texture_unit
			{
				texture morning.jpg cubic
				tex_address_mode clamp
				env_map cubic_reflection
			}
		}
	}
}

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

			texture_unit
			{
				texture evening.jpg cubic
				tex_address_mode clamp
			}
		}
	}
}

material Examples/DynamicCubeMap
{
	technique
	{
		pass
		{
			texture_unit
			{
				content_type compositor CubeMap tex
				filtering linear linear none
				tex_address_mode clamp
				env_map cubic_reflection
			}
		}
	}
}

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

			texture_unit
			{
				texture spacesky.jpg
			}
		}
	}
}

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

			texture_unit
			{
				anim_texture ogredance.png 8 2
				filtering none
			}
		}
	}
}

material Examples/OgreParade : Examples/OgreDance
{
	technique
	{
		pass
		{
			texture_unit
			{
				scroll 0.5 0
				scale 0.5 0.5
				scroll_anim 0 0.5
			}
		}
	}
}

material Examples/OgreSpin : Examples/OgreDance
{
	technique
	{
		pass
		{
			texture_unit
			{
				texture ogredance_1.png
				rotate_anim 0.25
				tex_address_mode clamp
			}
		}
	}
}

material Examples/OgreWobble : Examples/OgreDance
{
	technique
	{
		pass
		{
			texture_unit
			{
				texture ogredance_6.png
				wave_xform scale_x sine 1 1.2 0 0.35
				wave_xform scale_y sine 1 1 0.5 0.25
				tex_address_mode clamp
			}
		}
	}
}

material Examples/BumpyMetal
{
	technique
	{
		pass
		{
			ambient 0.75 0.75 0.75

			texture_unit
			{
				texture BumpyMetal.jpg
			}
		}
	}
}

material Examples/WaterStream
{
	technique
	{
		pass
		{
			ambient 0.1 0.1 0.1
			scene_blend add
			depth_write off
			cull_hardware none

			texture_unit
			{
				texture Water01.jpg
				scroll_anim 0.125 0
			}

			texture_unit
			{
				texture Water01.jpg
				wave_xform scroll_y sine 0 0.1 0 0.25
			}
		}
	}
}

material Examples/WaterStream/OIT : Examples/WaterStream
{
	technique
	{
		pass
		{
			diffuse 1 1 1 0.9
			rtshader_system
			{
				weighted_blended_oit on
			}
		}
	}
}

material Examples/Flare
{
	technique
	{
		pass
		{
			lighting off
			scene_blend add
			depth_write off
			diffuse vertexcolour

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

			texture_unit
			{
				texture flaretrail.png
			}
		}
	}
}
material Examples/Flare3
{
	technique
	{
		pass
		{
			lighting off
			scene_blend alpha_blend
			depth_write off
			diffuse vertexcolour

			texture_unit
			{
				texture flare_alpha.dds
			}
		}
	}
}
material Examples/FlarePointSprite
{
	technique
	{
		pass
		{
			lighting off
			scene_blend add
			depth_write off
			diffuse vertexcolour

			point_sprites on
			point_size 2
			point_size_attenuation on

			texture_unit
			{
				texture flare.png
			}
		}
	}
}

material Examples/Droplet
{
	technique
	{
		pass
		{
			emissive 0.3 0.3 0.3
			scene_blend colour_blend
			depth_write off
			diffuse vertexcolour
			lighting 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 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
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture r2skin.jpg
			}
		}
	}
}

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

vertex_program Examples/GrassWaverVpCg hlsl
{
	source Grass.cg
	entry_point grass_vp
}
fragment_program Examples/GrassWaverFpCg hlsl
{
	source Grass.cg
	entry_point grass_fp
}
vertex_program Examples/GrassWaverVpGLSL glsl glsles
{
	source GrassVp.glsl
}

fragment_program Examples/GrassWaverFpGLSL glsl glsles
{
	source GrassFp.glsl
    default_params
    {
        param_named diffuseMap int 0
    }
}

fragment_program Examples/GrassWaverFp unified
{
	delegate Examples/GrassWaverFpGLSL
	delegate Examples/GrassWaverFpCg
    default_params
    {
		param_named_auto alphaThresh surface_alpha_rejection_value
    }
}

vertex_program Examples/GrassWaverVp unified
{
	delegate Examples/GrassWaverVpGLSL
	delegate Examples/GrassWaverVpCg

    default_params
    {
        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
    }
}

material Examples/GrassBlades/Caster
{
    technique
    {
        pass
        {
            cull_hardware none
            alpha_rejection greater 150
            diffuse 0 0 0

            texture_unit
            {
                tex_address_mode clamp
                texture gras_02.png
            }
        }
    }
}

material Examples/GrassBlades
{
    transparency_casts_shadows on
    receive_shadows on
    technique
    {
        shadow_caster_material Examples/GrassBlades/Caster
        pass
        {
			alpha_rejection greater 150
		    cull_hardware none

            texture_unit
            {
				tex_address_mode clamp
                texture gras_02.png
            }
        }
    }
}

material Examples/GrassBladesWaver : Examples/GrassBlades
{
    technique
    {
        pass
        {
			// Vertex program waving grass
			vertex_program_ref Examples/GrassWaverVp
			{
			}
			fragment_program_ref Examples/GrassWaverFp
			{
			}
        }
    }
}

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

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

			texture_unit
			{
                                // FreeImage reads texture as 32 bpp,
                                // so either texture is 16-bit per
                                // channel when it should be 8-bit or
                                // FreeImage has a bug.  Either way
                                // do not set texture type for now.

                                //texture aureola.png PF_BYTE_LA
				texture aureola.png
				tex_address_mode clamp
			}
		}
	}
}

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
			diffuse vertexcolour

			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
{
	technique
	{
		pass
		{
			texture_unit
			{
				texture blue_jaiqua.jpg
				tex_address_mode clamp
			}

			rtshader_system
			{
				// In case the system uses the RTSS, the following line will ensure
				// that hardware animation is used.
				// Alternatively, you can derive this information programatically via
				// HardwareSkinningFactory::prepareEntityForSkinning
				hardware_skinning 38 2 dual_quaternion true false
			}
		}
	}

}

material Penguin
{
    technique
    {
        pass
        {
		    texture_unit
			{
			    texture penguin.jpg
			}
        }
    }
}

material RZR-002
{
	technique
	{
		pass
		{

			texture_unit
			{
				texture RZR-002.png
			}
		}
	}
}

material "spine/01 - Default"
{
	technique
	{
		pass
		{
			diffuse 1 1 1
			texture_unit
			{
				texture circuit.dds
			}
		}
	}
}

material Panels
{
	technique
	{
		pass
		{
			specular 0.64 0.64 0.64 32 0

			texture_unit
			{
				texture Panels_Diffuse.png
			}
		}
	}
}

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
			}
		}
	}

}

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/TextureEffect1
{
	technique
	{
		pass
		{
			ambient 0.75 0.75 0.75
			cull_hardware 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

			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

			texture_unit
			{
				texture Water02.jpg
				scroll_anim 0.01 0.01
			}
		}
	}
}

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/TransparentBlue50
{
  technique
  {
    pass
    {
      scene_blend alpha_blend
      depth_write off

      texture_unit
      {
        colour_op_ex source1 src_manual src_current 0 0 1
        alpha_op_ex source1 src_manual src_current 0.5
      }
    }
  }
}

// material Examples/Passthrough
// {
//     technique
//     {
//         pass
//         {
//             diffuse vertexcolour
//             specular vertexcolour
//             ambient vertexcolour
//             lighting off
//         }
//     }
// }

material DebugSphere1000
{
	technique
	{			
	}
}

material Examples/WoodenFloor
{
	technique
	{
		pass
		{
			texture_unit
			{
				texture WoodFloor043_1K_Color.jpg
			}
			rtshader_system
			{
                lighting_stage metal_roughness texture WoodFloor043_1K_MetalRoughness.jpg
                lighting_stage normal_map WoodFloor043_1K_NormalGL.jpg
			}
		}
	}
}

material Examples/PBR_Sphere
{
	technique
	{
		pass
		{
			rtshader_system
			{
                lighting_stage metal_roughness
			}
		}
	}
}

material TestLevel_b0_m0/TEXFACE/Grass.jpg
{
	receive_shadows on
	technique
	{
		pass
		{
			ambient 0.500000 0.500000 0.500000 1.000000
			diffuse 0.800000 0.800000 0.800000 1.000000
			texture_unit
			{
				texture grass_1024.jpg
			}
		}
	}
}
material TestLevel_b0_m0/TEXFACE/Soil.jpg
{
	receive_shadows on
	technique
	{
		pass
		{
			ambient 0.500000 0.500000 0.500000 1.000000
			diffuse 0.800000 0.800000 0.800000 1.000000
			texture_unit
			{
				texture egyptrockyfull.jpg
			}
		}
	}
}