[Orxonox-commit 7576] r12181 - in data/data_extern: . images/levelpreviews images/textures materials models programs

merholzl at orxonox.net merholzl at orxonox.net
Tue Dec 11 17:22:11 CET 2018


Author: merholzl
Date: 2018-12-11 17:22:11 +0100 (Tue, 11 Dec 2018)
New Revision: 12181

Added:
   data/data_extern/images/levelpreviews/bumpMap.png
   data/data_extern/images/textures/Cube_Lava_COLOR.jpg
   data/data_extern/images/textures/Cube_Lava_MASK.jpg
   data/data_extern/images/textures/Cube_Lava_NORM.jpg
   data/data_extern/materials/BumpMapping/
   data/data_extern/materials/Cube_Lava.material
   data/data_extern/materials/Cube_Lava_Normal.material
   data/data_extern/materials/Cube_Lava_Normal_Blank.material
   data/data_extern/models/Cube_Lava.mesh
   data/data_extern/models/Cube_Lava_Normal.mesh
   data/data_extern/models/Cube_Lava_Normal_Blank.mesh
   data/data_extern/programs/Cg/
   data/data_extern/programs/GLSL/
   data/data_extern/programs/GLSL120/
   data/data_extern/programs/GLSL150/
   data/data_extern/programs/GLSL400/
   data/data_extern/programs/OLD/
Removed:
   data/data_extern/materials/Example.material
   data/data_extern/materials/Examples.compositor
   data/data_extern/materials/Examples.program
   data/data_extern/materials/ToonShader.material
   data/data_extern/programs/AmbientOneTexture.glsl
   data/data_extern/programs/BloomFP.cg
   data/data_extern/programs/Blur0_ps20.hlsl
   data/data_extern/programs/Blur0_vs.glsl
   data/data_extern/programs/Blur0_vs11.hlsl
   data/data_extern/programs/Blur1_ps20.hlsl
   data/data_extern/programs/Blur1_vs.glsl
   data/data_extern/programs/Blur1_vs11.hlsl
   data/data_extern/programs/Blur_ps.glsl
   data/data_extern/programs/BumpMapping.cg
   data/data_extern/programs/Combine_fp.cg
   data/data_extern/programs/Example_Basic.cg
   data/data_extern/programs/Example_Basic.hlsl
   data/data_extern/programs/GlassFP.cg
   data/data_extern/programs/Grass.cg
   data/data_extern/programs/GrayScale.cg
   data/data_extern/programs/InvertFP.cg
   data/data_extern/programs/LaplaceFP.cg
   data/data_extern/programs/OldMovieFP.cg
   data/data_extern/programs/OldTV.cg
   data/data_extern/programs/PosterizeFP.cg
   data/data_extern/programs/Radial_Blur_FP.cg
   data/data_extern/programs/SharpenEdgesFP.cg
   data/data_extern/programs/StdQuad_vp.cg
   data/data_extern/programs/StdQuad_vp.glsl
   data/data_extern/programs/TilingFP.cg
   data/data_extern/programs/ToonShaderPS.cg
   data/data_extern/programs/ToonShader_ps.frag
   data/data_extern/programs/ToonShader_vs.vert
   data/data_extern/programs/glow.cg
   data/data_extern/programs/hdr.cg
   data/data_extern/programs/hdr.hlsl
   data/data_extern/programs/hdr_bloom.glsl
   data/data_extern/programs/hdr_downscale2x2luminence.glsl
   data/data_extern/programs/hdr_downscale3x3.glsl
   data/data_extern/programs/hdr_downscale3x3brightpass.glsl
   data/data_extern/programs/hdr_finalToneMapping.glsl
   data/data_extern/programs/hdr_tonemap_util.glsl
   data/data_extern/programs/ps_glow.cg
   data/data_extern/programs/skinningTwoWeightsShadowCasterVp.glsl
   data/data_extern/programs/skinningTwoWeightsVp.glsl
   data/data_extern/programs/vs_glow.cg
Modified:
   data/data_extern/
   data/data_extern/materials/Flares.material
   data/data_extern/resources.oxr
Log:
all new materials for HS18

Index: data/data_extern
===================================================================
--- data/data_extern	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern	2018-12-11 16:22:11 UTC (rev 12181)

Property changes on: data/data_extern
___________________________________________________________________
Modified: svn:mergeinfo
## -1,3 +1,4 ##
+/data/branches/Shader_HS18:12078-12180
 /data/branches/altaudio:6211-6263
 /data/branches/cegui0.8:11119-11793
 /data/branches/cegui0.8_ogre1.9:12033-12060
Copied: data/data_extern/images/levelpreviews/bumpMap.png (from rev 12180, data/branches/Shader_HS18/images/levelpreviews/bumpMap.png)
===================================================================
(Binary files differ)

Copied: data/data_extern/images/textures/Cube_Lava_COLOR.jpg (from rev 12180, data/branches/Shader_HS18/images/textures/Cube_Lava_COLOR.jpg)
===================================================================
(Binary files differ)

Copied: data/data_extern/images/textures/Cube_Lava_MASK.jpg (from rev 12180, data/branches/Shader_HS18/images/textures/Cube_Lava_MASK.jpg)
===================================================================
(Binary files differ)

Copied: data/data_extern/images/textures/Cube_Lava_NORM.jpg (from rev 12180, data/branches/Shader_HS18/images/textures/Cube_Lava_NORM.jpg)
===================================================================
(Binary files differ)

Copied: data/data_extern/materials/Cube_Lava.material (from rev 12180, data/branches/Shader_HS18/materials/Cube_Lava.material)
===================================================================
--- data/data_extern/materials/Cube_Lava.material	                        (rev 0)
+++ data/data_extern/materials/Cube_Lava.material	2018-12-11 16:22:11 UTC (rev 12181)
@@ -0,0 +1,42 @@
+// Cube_Lava genrated by blender2ogre 0.6.0
+
+material Cube_Lava 
+{
+    receive_shadows on 
+
+    technique
+    {
+        pass Cube_Lava
+        {
+            ambient 0.800000011920929 0.800000011920929 0.800000011920929 1.0
+            diffuse 0.6400000190734865 0.6400000190734865 0.6400000190734865 1.0
+            specular 0.5 0.5 0.5 1.0 12.5
+            emissive 0.0 0.0 0.0 1.0
+
+            alpha_to_coverage off
+            colour_write on
+            cull_hardware clockwise
+            depth_check on
+            depth_func less_equal
+            depth_write on
+            illumination_stage 
+            light_clip_planes off
+            light_scissor off
+            lighting on
+            normalise_normals off
+            polygon_mode solid
+            scene_blend one zero
+            scene_blend_op add
+            shading gouraud
+            transparent_sorting on
+
+            texture_unit 
+            {
+                texture Cube_Lava_COLOR.jpg
+                tex_address_mode wrap
+                scale 1.0 1.0
+                colour_op modulate
+            }
+        }
+    }
+}

Copied: data/data_extern/materials/Cube_Lava_Normal.material (from rev 12180, data/branches/Shader_HS18/materials/Cube_Lava_Normal.material)
===================================================================
--- data/data_extern/materials/Cube_Lava_Normal.material	                        (rev 0)
+++ data/data_extern/materials/Cube_Lava_Normal.material	2018-12-11 16:22:11 UTC (rev 12181)
@@ -0,0 +1,31 @@
+import * from "BumpMap.material"
+// Any number of lights, diffuse
+material Cube_Lava_Normal : BumpMap_Base
+{
+    technique
+    {
+        pass ambient
+        {
+        }
+        // Now do the lighting pass
+        // NB we don't do decal texture here because this is repeated per light
+        pass perlight
+        {
+            // Base bump map
+            texture_unit normalmap
+            {
+                texture Cube_Lava_NORM.jpg
+                colour_op replace
+            }
+        }
+
+        // Decal pass
+        pass decal
+        {
+            texture_unit decalmap
+            {
+                texture Cube_Lava_COLOR.jpg
+            }
+        }
+    }
+}
\ No newline at end of file

Copied: data/data_extern/materials/Cube_Lava_Normal_Blank.material (from rev 12180, data/branches/Shader_HS18/materials/Cube_Lava_Normal_Blank.material)
===================================================================
--- data/data_extern/materials/Cube_Lava_Normal_Blank.material	                        (rev 0)
+++ data/data_extern/materials/Cube_Lava_Normal_Blank.material	2018-12-11 16:22:11 UTC (rev 12181)
@@ -0,0 +1,31 @@
+import * from "BumpMap.material"
+// Any number of lights, diffuse
+material Cube_Lava_Normal_Blank : BumpMap_Base
+{
+    technique
+    {
+        pass ambient
+        {
+        }
+        // Now do the lighting pass
+        // NB we don't do decal texture here because this is repeated per light
+        pass perlight
+        {
+            // Base bump map
+            texture_unit normalmap
+            {
+                texture Cube_Lava_NORM.jpg
+                colour_op replace
+            }
+        }
+
+        // Decal pass
+        pass decal
+        {
+            texture_unit decalmap
+            {
+                colour_op_ex source1 src_manual src_current 0.8 0.8 0.8
+            }
+        }
+    }
+}

Deleted: data/data_extern/materials/Example.material
===================================================================
--- data/data_extern/materials/Example.material	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/materials/Example.material	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,934 +0,0 @@
-
-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/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
-			}
-		}
-	}
-
-	technique
-	{
-		scheme glow
-		pass
-		{
-			lighting off
-			scene_blend add
-			depth_write off
-
-			texture_unit
-			{
-				texture flare.png
-			}
-		}
-	}
-}
-material Examples/FlareZwei
-{
-	technique
-	{
-		pass
-		{
-			lighting off
-			scene_blend add
-			depth_write off
-
-			texture_unit
-			{
-				texture flare2.png
-			}
-		}
-	}
-}
-material Examples/Flaredrei
-{
-	technique
-	{
-		pass
-		{
-			lighting off
-			scene_blend add
-			depth_write off
-
-			texture_unit
-			{
-				texture flare3.png
-			}
-		}
-	}
-}
-material Examples/FlareZwei_1
-{
-	technique
-	{
-		pass
-		{
-			lighting off
-			scene_blend add
-			depth_write off
-
-			texture_unit
-			{
-				texture flare2_1.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 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 cg
-{
-	source Grass.cg
-	entry_point grass_vp
-	profiles vs_1_1 arbvp1
-}
-
-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.png
-			}
-		}
-	}
-}
-
-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
-			}
-		}
-	}
-	
-}
-
-material Examples/Black
-{
-	technique
-	{
-		pass
-		{
-
-			texture_unit
-			{
-				texture OrxonoxBlack.png
-			}
-		}
-	}
-}

Deleted: data/data_extern/materials/Examples.compositor
===================================================================
--- data/data_extern/materials/Examples.compositor	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/materials/Examples.compositor	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,207 +0,0 @@
-//compositor DOF // based on Blur but final pass does depth of field
-//{
-//    technique
-//    {
-//        // Temporary textures
-//        texture rt0 target_width target_height PF_A8R8G8B8
-//        texture rt1 target_width target_height PF_A8R8G8B8
-//
-//        target rt1
-//        {
-//            // Render output from previous compositor (or original scene)
-//            input previous
-//        }
-//
-//        target rt0
-//        {
-//            // Start with clear texture
-//            input none
-//            // Vertical blur pass
-//            pass render_quad
-//            {
-//                // Renders a fullscreen quad with a material
-//                material Ogre/Compositor/DOF_Blur0
-//                input 0 rt1
-//            }
-//        }
-//
-//        target rt1
-//        {
-//            // Start with clear texture
-//            input none
-//            // Horizontal blur pass
-//            pass render_quad
-//            {
-//                // Renders a fullscreen quad with a material
-//                material Ogre/Compositor/DOF_Blur1
-//                input 0 rt0
-//            }
-//        }
-//
-//        target_output
-//        {
-//            // Start with clear output
-//            input none
-//            // Draw a fullscreen quad
-//            pass render_quad
-//            {
-//                // Renders a fullscreen quad with a material
-//                material Ogre/Compositor/DOF_Blend
-//                input 0 rt0
-//                input 1 rt1
-//            }
-//        }
-//    }
-//}
-
-// HDR
-compositor HDR
-{
-	// floating point only for now
-	technique
-	{
-        // Temporary textures
-		// Fullsize HDR render target, used as tone mapping source
-		texture rt_full target_width target_height PF_FLOAT16_RGB
-		// Targets used for luminance evaluation (3x3 downsample, point filtering)
-		texture rt_lum0 1 1 PF_FLOAT16_RGB
-		texture rt_lum1 4 4 PF_FLOAT16_RGB
-		texture rt_lum2 16 16 PF_FLOAT16_RGB
-		texture rt_lum3 64 64 PF_FLOAT16_RGB
-		texture rt_lum4 128 128 PF_FLOAT16_RGB
-		// Bright-pass filtered target (tone mapped)
-		texture rt_brightpass 128 128 PF_R8G8B8
-		// Bloom filter targets
-		texture rt_bloom0 128 128 PF_R8G8B8
-		texture rt_bloom1 128 128 PF_R8G8B8
-
-
-		target rt_full
-		{
-			// No input, render differently
-			input none
-
-			// Use float target HDR material scheme (unclamped shaders)
-			material_scheme HDR
-
-			pass clear
-			{
-			}
-
-			pass render_scene
-			{
-			}
-
-		}
-
-		// Downsample the original HDR scene to extract luminence value
-		target rt_lum4
-		{
-            input none
-            pass render_quad
-            {
-                // Downsample using a 2x2 filter and convert to greyscale
-                material Ogre/Compositor/HDR/Downsample2x2Luminence
-                input 0 rt_full
-                identifier 994
-            }
-		}
-		target rt_lum3
-		{
-            input none
-            pass render_quad
-            {
-                // Downsample using a 3x3 filter
-                material Ogre/Compositor/HDR/Downsample3x3
-                input 0 rt_lum4
-                identifier 993
-            }
-		}
-		target rt_lum2
-		{
-            input none
-            pass render_quad
-            {
-                // Downsample using a 3x3 filter
-                material Ogre/Compositor/HDR/Downsample3x3
-                input 0 rt_lum3
-                identifier 992
-            }
-		}
-		target rt_lum1
-		{
-            input none
-            pass render_quad
-            {
-                // Downsample using a 3x3 filter
-                material Ogre/Compositor/HDR/Downsample3x3
-                input 0 rt_lum2
-                identifier 991
-            }
-		}
-		target rt_lum0
-		{
-            input none
-            pass render_quad
-            {
-                // Downsample using a 3x3 filter
-                material Ogre/Compositor/HDR/Downsample3x3
-                input 0 rt_lum1
-                identifier 990
-            }
-		}
-
-
-		target rt_brightpass
-		{
-			input none
-			pass render_quad
-			{
-				// Downsample using a 3x3 filter, hi-pass and tone map
-				material Ogre/Compositor/HDR/Downsample3x3Brightpass
-				input 0 rt_full
-				input 1 rt_lum0
-				identifier 800
-			}
-		}
-
-		target rt_bloom1
-		{
-			input none
-			pass render_quad
-			{
-				// Blur horizontally
-				material Ogre/Compositor/HDR/GaussianBloom
-				input 0 rt_brightpass
-				identifier 701
-			}
-		}
-		target rt_bloom0
-		{
-			input none
-			pass render_quad
-			{
-				// Blur horizontally
-				material Ogre/Compositor/HDR/GaussianBloom
-				input 0 rt_bloom1
-				identifier 700
-			}
-		}
-
-
-		// Final output combines tone mapping of the original scene, with an
-		// exposure setting passed in as a GPU parameter, and an additive bloom
-		// effect
-		target_output
-		{
-			input none
-			pass render_quad
-			{
-				material Ogre/Compositor/HDR/ToneMapping
-				input 0 rt_full
-				input 1 rt_bloom0
-				input 2 rt_lum0
-			}
-		}
-	}
-}

Deleted: data/data_extern/materials/Examples.program
===================================================================
--- data/data_extern/materials/Examples.program	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/materials/Examples.program	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,146 +0,0 @@
-//---------------------------------------------------
-// This file includes a number of basic GPU programs
-// for use in many materials. 
-//---------------------------------------------------
-
-
-
-
-// A really basic ambient pass program, support for one texture coodinate set
-vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureHLSL hlsl
-{
-	source Example_Basic.hlsl
-	entry_point ambientOneTexture_vp
-	target vs_1_1
-
-	default_params
-	{
-		param_named_auto worldViewProj worldviewproj_matrix
-		param_named_auto ambient ambient_light_colour
-	}
-}
-// A really basic ambient pass program, support for one texture coodinate set
-vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureGLSL glsl
-{
-	source AmbientOneTexture.glsl
-
-	default_params
-	{
-		param_named_auto ambient ambient_light_colour
-	}
-}
-
-
-vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureUnified unified
-{
-	delegate Ogre/BasicVertexPrograms/AmbientOneTextureGLSL
-	delegate Ogre/BasicVertexPrograms/AmbientOneTextureHLSL
-}
-
-// Same as below, but for use when rendering texture shadows
-vertex_program Ogre/HardwareSkinningOneWeightShadowCaster cg
-{
-	source Example_Basic.cg
-	entry_point hardwareSkinningOneWeightCaster_vp
-	profiles vs_1_1 arbvp1
-	includes_skeletal_animation true
-}
-// Basic hardware skinning using one indexed weight per vertex
-vertex_program Ogre/HardwareSkinningOneWeight cg
-{
-   source Example_Basic.cg
-   entry_point hardwareSkinningOneWeight_vp
-   profiles vs_1_1 arbvp1
-   includes_skeletal_animation true   
-}
-// Same as below, but for use when rendering texture shadows
-vertex_program Ogre/HardwareSkinningTwoWeightsShadowCasterCg cg
-{
-	source Example_Basic.cg
-	entry_point hardwareSkinningTwoWeightsCaster_vp
-	profiles vs_1_1 arbvp1
-	includes_skeletal_animation true
-}
-
-vertex_program Ogre/HardwareSkinningTwoWeightsShadowCasterGLSL glsl
-{
-	source skinningTwoWeightsShadowCasterVp.glsl
-	includes_skeletal_animation true
-}
-
-vertex_program Ogre/HardwareSkinningTwoWeightsShadowCaster unified
-{
-	delegate Ogre/HardwareSkinningTwoWeightsShadowCasterGLSL
-	delegate Ogre/HardwareSkinningTwoWeightsShadowCasterCg
-}
-
-// Basic hardware skinning using two indexed weights per vertex
-vertex_program Ogre/HardwareSkinningTwoWeightsCg cg
-{
-   source Example_Basic.cg
-   entry_point hardwareSkinningTwoWeights_vp
-   profiles vs_1_1 arbvp1
-   includes_skeletal_animation true
-}
-
-vertex_program Ogre/HardwareSkinningTwoWeightsGLSL glsl
-{
-   source skinningTwoWeightsVp.glsl
-   includes_skeletal_animation true
-}
-
-vertex_program Ogre/HardwareSkinningTwoWeights unified
-{
-	delegate Ogre/HardwareSkinningTwoWeightsGLSL
-	delegate Ogre/HardwareSkinningTwoWeightsCg
-	
-   default_params
-   {
-   		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
-   }
-}
-
-// Basic hardware skinning using four indexed weights per vertex
-vertex_program Ogre/HardwareSkinningFourWeights cg
-{
-   source Example_Basic.cg
-   entry_point hardwareSkinningFourWeights_vp
-   profiles vs_1_1 arbvp1
-   includes_skeletal_animation true
-
-}
-// Basic hardware morph animation 
-vertex_program Ogre/HardwareMorphAnimation cg
-{
-	source Example_Basic.cg
-	entry_point hardwareMorphAnimation
-	profiles vs_1_1 arbvp1
-
-	includes_morph_animation true
-	default_params
-	{
-		param_named_auto worldViewProj worldviewproj_matrix
-		param_named_auto anim_t animation_parametric
-	}
-}
-// Basic hardware pose animation supporting 2 active poses
-vertex_program Ogre/HardwarePoseAnimation cg
-{
-	source Example_Basic.cg
-	entry_point hardwarePoseAnimation
-	profiles vs_1_1 arbvp1
-
-	includes_pose_animation 2
-	default_params
-	{
-		param_named_auto worldViewProj worldviewproj_matrix
-		param_named_auto anim_t animation_parametric
-	}
-}
-
-

Modified: data/data_extern/materials/Flares.material
===================================================================
--- data/data_extern/materials/Flares.material	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/materials/Flares.material	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,3 +1,36 @@
+material Examples/Flare
+{
+        technique
+        {
+                pass
+                {
+                        lighting off
+                        scene_blend add
+                        depth_write off
+
+                        texture_unit
+                        {
+                                texture flare.png
+                        }
+                }
+        }
+
+        technique
+        {
+                scheme glow
+                pass
+                {
+                        lighting off
+                        scene_blend add
+                        depth_write off
+
+                        texture_unit
+                        {
+                                texture flare.png
+                        }
+                }
+        }
+}
 material Flares/point_lensflare
 {
 	technique

Deleted: data/data_extern/materials/ToonShader.material
===================================================================
--- data/data_extern/materials/ToonShader.material	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/materials/ToonShader.material	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,31 +0,0 @@
-vertex_program toonvs glsl
-{
-	source ToonShader_vs.vert
-}
-
-fragment_program Toonps glsl
-{
-	source ToonShader_ps.frag
-}
-
-
-material ToonShader
-{
-	technique asdftec
-	{
-		pass asdfpass
-		{
-			//vertex_program_ref toon_vs
-			//{
-			//}
-			texture_unit
-			{
-				texture thrust.jpg
-			}
-			fragment_program_ref Toonps
-			{
-			}
-		}
-	}
-}
-

Copied: data/data_extern/models/Cube_Lava.mesh (from rev 12180, data/branches/Shader_HS18/models/Cube_Lava.mesh)
===================================================================
(Binary files differ)

Copied: data/data_extern/models/Cube_Lava_Normal.mesh (from rev 12180, data/branches/Shader_HS18/models/Cube_Lava_Normal.mesh)
===================================================================
(Binary files differ)

Copied: data/data_extern/models/Cube_Lava_Normal_Blank.mesh (from rev 12180, data/branches/Shader_HS18/models/Cube_Lava_Normal_Blank.mesh)
===================================================================
(Binary files differ)

Deleted: data/data_extern/programs/AmbientOneTexture.glsl
===================================================================
--- data/data_extern/programs/AmbientOneTexture.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/AmbientOneTexture.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,13 +0,0 @@
-uniform vec4 ambient;
-
-/*
-  Basic ambient lighting vertex program
-*/
-void main()
-{
-	gl_Position = ftransform();
-	gl_TexCoord[0] = gl_MultiTexCoord0;
-	gl_FrontColor = ambient;
-}
-
-

Deleted: data/data_extern/programs/BloomFP.cg
===================================================================
--- data/data_extern/programs/BloomFP.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/BloomFP.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,7 +0,0 @@
-sampler RT1 : register(s0);
-sampler RT2 : register(s1);
-
-float4 Bloom_ps (float2 iTexCoord : TEXCOORD0) : COLOR
-{
-	return 0.5*tex2D(RT1, iTexCoord) + 0.5*tex2D(RT2, iTexCoord);
-}

Deleted: data/data_extern/programs/Blur0_ps20.hlsl
===================================================================
--- data/data_extern/programs/Blur0_ps20.hlsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Blur0_ps20.hlsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,31 +0,0 @@
-sampler RT: register(s0);
-// Simple blur filter
-
-float4 main(float2 texCoord: TEXCOORD0) : COLOR {
-
-	float2 samples[12] = {
-   	-0.326212, -0.405805,
-   	-0.840144, -0.073580,
-   	-0.695914,  0.457137,
-   	-0.203345,  0.620716,
-    	0.962340, -0.194983,
-    	0.473434, -0.480026,
-    	0.519456,  0.767022,
-    	0.185461, -0.893124,
-    	0.507431,  0.064425,
-    	0.896420,  0.412458,
-   	-0.321940, -0.932615,
-   	-0.791559, -0.597705,
-	};
-
-   float4 sum = tex2D(RT, texCoord);
-   for (int i = 0; i < 12; i++){
-      sum += tex2D(RT, texCoord + 0.025 * samples[i]);
-   }
-   return sum / 13;
-
-}
-
-
-
-

Deleted: data/data_extern/programs/Blur0_vs.glsl
===================================================================
--- data/data_extern/programs/Blur0_vs.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Blur0_vs.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,15 +0,0 @@
-varying vec2 texCoord[5];
-
-void main()                    
-{
-	vec2 inPos = sign(gl_Vertex.xy);
-	gl_Position = vec4(inPos.xy, 0.0, 1.0);
-	
-	texCoord[0]  = (vec2(inPos.x, -inPos.y) + 1.0)/2.0;
-	
-	const float size = 0.01;
-	texCoord[1] = texCoord[0] + vec2(1.0, 0.0)*size;
-	texCoord[2] = texCoord[0] + vec2(2.0, 0.0)*size;
-	texCoord[3] = texCoord[0] + vec2(-1.0, 0.0)*size;
-	texCoord[4] = texCoord[0] + vec2(-2.0, 0.0)*size;
-}

Deleted: data/data_extern/programs/Blur0_vs11.hlsl
===================================================================
--- data/data_extern/programs/Blur0_vs11.hlsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Blur0_vs11.hlsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,22 +0,0 @@
-struct VS_OUTPUT {
-   float4 Pos: POSITION;
-   float2 texCoord: TEXCOORD0;
-};
-
-VS_OUTPUT main(float4 Pos: POSITION){
-   VS_OUTPUT Out;
-
-   // Clean up inaccuracies
-   Pos.xy = sign(Pos.xy);
-
-   Out.Pos = float4(Pos.xy, 0, 1);
-   // Image-space
-   Out.texCoord.x = 0.5 * (1 + Pos.x);
-   Out.texCoord.y = 0.5 * (1 - Pos.y);
-
-   return Out;
-}
-
-
-
-

Deleted: data/data_extern/programs/Blur1_ps20.hlsl
===================================================================
--- data/data_extern/programs/Blur1_ps20.hlsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Blur1_ps20.hlsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,28 +0,0 @@
-sampler Blur0: register(s0);
-// Simple blur filter
-
-float4 main(float2 texCoord: TEXCOORD0) : COLOR {
-
-	float2 samples[12] = {
-   	-0.326212, -0.405805,
-   	-0.840144, -0.073580,
-   	-0.695914,  0.457137,
-   	-0.203345,  0.620716,
-    	0.962340, -0.194983,
-    	0.473434, -0.480026,
-    	0.519456,  0.767022,
-    	0.185461, -0.893124,
-    	0.507431,  0.064425,
-    	0.896420,  0.412458,
-   	-0.321940, -0.932615,
-   	-0.791559, -0.597705,
-	};
-
-   float4 sum = tex2D(Blur0, texCoord);
-   for (int i = 0; i < 12; i++){
-      sum += tex2D(Blur0, texCoord + 0.025 * samples[i]);
-   }
-   return sum / 13;
-
-}
-

Deleted: data/data_extern/programs/Blur1_vs.glsl
===================================================================
--- data/data_extern/programs/Blur1_vs.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Blur1_vs.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,15 +0,0 @@
-varying vec2 texCoord[5];
-
-void main()                    
-{
-	vec2 inPos = sign(gl_Vertex.xy);
-	gl_Position = vec4(inPos.xy, 0.0, 1.0);
-	
-	texCoord[0]  = (vec2(inPos.x, -inPos.y) + 1.0)/2.0;
-	
-	const float size = 0.01;
-	texCoord[1] = texCoord[0] + vec2(0.0, 1.0)*size;
-	texCoord[2] = texCoord[0] + vec2(0.0, 2.0)*size;
-	texCoord[3] = texCoord[0] + vec2(0.0, -1.0)*size;
-	texCoord[4] = texCoord[0] + vec2(0.0, -2.0)*size;
-}

Deleted: data/data_extern/programs/Blur1_vs11.hlsl
===================================================================
--- data/data_extern/programs/Blur1_vs11.hlsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Blur1_vs11.hlsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,19 +0,0 @@
-struct VS_OUTPUT {
-   float4 Pos: POSITION;
-   float2 texCoord: TEXCOORD0;
-};
-
-VS_OUTPUT main(float4 Pos: POSITION){
-   VS_OUTPUT Out;
-
-   // Clean up inaccuracies
-   Pos.xy = sign(Pos.xy);
-
-   Out.Pos = float4(Pos.xy, 0, 1);
-   // Image-space
-   Out.texCoord.x = 0.5 * (1 + Pos.x);
-   Out.texCoord.y = 0.5 * (1 - Pos.y);
-
-   return Out;
-}
-

Deleted: data/data_extern/programs/Blur_ps.glsl
===================================================================
--- data/data_extern/programs/Blur_ps.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Blur_ps.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,14 +0,0 @@
-uniform sampler2D tex0;
-
-varying vec2 texCoord[5];
-
-void main()
-{
-	vec4 sum = texture2D(tex0, texCoord[0]) + 
-			   texture2D(tex0, texCoord[1]) +
-			   texture2D(tex0, texCoord[2]) + 
-			   texture2D(tex0, texCoord[3]) +
-			   texture2D(tex0, texCoord[4]);
-	gl_FragColor = sum / 5.0;
-}
-

Deleted: data/data_extern/programs/BumpMapping.cg
===================================================================
--- data/data_extern/programs/BumpMapping.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/BumpMapping.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,152 +0,0 @@
-// General functions
-
-// Expand a range-compressed vector
-float3 expand(float3 v)
-{
-	return (v - 0.5) * 2;
-}
-
-
-/* Bump mapping vertex program
-   In this program, we want to calculate the tangent space light vector
-   on a per-vertex level which will get passed to the fragment program,
-   or to the fixed function dot3 operation, to produce the per-pixel
-   lighting effect.
-*/
-void main_vp(float4 position	: POSITION,
-			 float3 normal		: NORMAL,
-			 float2 uv			: TEXCOORD0,
-			 float3 tangent     : TANGENT0,
-			 // outputs
-			 out float4 oPosition    : POSITION,
-			 out float2 oUv			 : TEXCOORD0,
-			 out float3 oTSLightDir	 : TEXCOORD1,
-			 // parameters
-			 uniform float4 lightPosition, // object space
-			 uniform float4x4 worldViewProj)
-{
-	// calculate output position
-	oPosition = mul(worldViewProj, position);
-
-	// pass the main uvs straight through unchanged
-	oUv = uv;
-
-	// calculate tangent space light vector
-	// Get object space light direction
-	// Non-normalised since we'll do that in the fragment program anyway
-	float3 lightDir = lightPosition.xyz -  (position * lightPosition.w);
-
-	// Calculate the binormal (NB we assume both normal and tangent are
-	// already normalised)
-	// NB looks like nvidia cross params are BACKWARDS to what you'd expect
-	// this equates to NxT, not TxN
-	float3 binormal = cross(tangent, normal);
-
-	// Form a rotation matrix out of the vectors
-	float3x3 rotation = float3x3(tangent, binormal, normal);
-
-	// Transform the light vector according to this matrix
-	oTSLightDir = mul(rotation, lightDir);
-
-
-}
-
-void main_fp( float2 uv			: TEXCOORD0,
-			  float3 TSlightDir : TEXCOORD1,
-
-			  out float4 colour	: COLOR,
-
-			  uniform float4 lightDiffuse,
-			  uniform sampler2D   normalMap : register(s0),
-			  uniform samplerCUBE normalCubeMap : register(s1) )
-{
-	// retrieve normalised light vector, expand from range-compressed
-	float3 lightVec = expand(texCUBE(normalCubeMap, TSlightDir).xyz);
-
-	// get bump map vector, again expand from range-compressed
-	float3 bumpVec = expand(tex2D(normalMap, uv).xyz);
-
-	// Calculate dot product
-	colour = lightDiffuse * dot(bumpVec, lightVec);
-
-}
-
-/* Vertex program which includes specular component */
-void specular_vp(float4 position	: POSITION,
-			 	 float3 normal		: NORMAL,
-			 	 float2 uv			: TEXCOORD0,
-			 	 float3 tangent     : TANGENT0,
-			 	 // outputs
-			 	 out float4 oPosition    : POSITION,
-			 	 out float2 oUv			 : TEXCOORD0,
-			 	 out float3 oTSLightDir	 : TEXCOORD1,
-				 out float3 oTSHalfAngle : TEXCOORD2,
-			 	 // parameters
-				 uniform float4 lightPosition, // object space
-			 	 uniform float3 eyePosition,   // object space
-			 	 uniform float4x4 worldViewProj)
-{
-	// calculate output position
-	oPosition = mul(worldViewProj, position);
-
-	// pass the main uvs straight through unchanged
-	oUv = uv;
-
-	// calculate tangent space light vector
-	// Get object space light direction
-	float3 lightDir = normalize(lightPosition.xyz -  (position * lightPosition.w));
-
-	// Calculate the binormal (NB we assume both normal and tangent are
-	// already normalised)
-	// NB looks like nvidia cross params are BACKWARDS to what you'd expect
-	// this equates to NxT, not TxN
-	float3 binormal = cross(tangent, normal);
-
-	// Form a rotation matrix out of the vectors
-	float3x3 rotation = float3x3(tangent, binormal, normal);
-
-	// Transform the light vector according to this matrix
-	oTSLightDir = mul(rotation, lightDir);
-
-	// Calculate half-angle in tangent space
-	float3 eyeDir = normalize(eyePosition - position.xyz);
-	float3 halfAngle = normalize(eyeDir + lightDir);
-	oTSHalfAngle = mul(rotation, halfAngle);
-
-
-}
-
-/* Fragment program which supports specular component */
-void specular_fp( float2 uv			: TEXCOORD0,
-			  float3 TSlightDir : TEXCOORD1,
-			  float3 TShalfAngle: TEXCOORD2,
-
-			  out float4 colour	: COLOR,
-
-			  uniform float4 lightDiffuse,
-			  uniform float4 lightSpecular,
-			  uniform float shine,
-			  uniform sampler2D   normalMap : register(s0),
-			  uniform samplerCUBE normalCubeMap : register(s1),
-			  uniform samplerCUBE normalCubeMap2 : register(s2)) // we need this second binding to be compatible with ps_1_1, ps_2_0 could reuse the other
-{
-	// retrieve normalised light vector, expand from range-compressed
-	float3 lightVec = expand(texCUBE(normalCubeMap, TSlightDir).xyz);
-
-	// retrieve half angle and normalise through cube map
-	float3 halfAngle = expand(texCUBE(normalCubeMap2, TShalfAngle).xyz);
-
-	// get bump map vector, again expand from range-compressed
-	float3 bumpVec = expand(tex2D(normalMap, uv).xyz);
-
-
-	float specFactor = pow(dot(bumpVec, halfAngle),shine);
-
-
-
-	// Calculate dot product for diffuse
-	colour = (lightDiffuse * saturate(dot(bumpVec, lightVec))) +
-			(lightSpecular * specFactor);
-
-}
-

Deleted: data/data_extern/programs/Combine_fp.cg
===================================================================
--- data/data_extern/programs/Combine_fp.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Combine_fp.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,15 +0,0 @@
-float4 Combine_fp
-(
-    in float2 texCoord: TEXCOORD0,
-    
-    uniform sampler RT : register(s0),
-    uniform sampler Sum : register(s1),
-
-    uniform float blur
-) : COLOR
-{
-   float4 render = tex2D(RT, texCoord);
-   float4 sum = tex2D(Sum, texCoord);
-
-   return lerp(render, sum, blur);
-}

Deleted: data/data_extern/programs/Example_Basic.cg
===================================================================
--- data/data_extern/programs/Example_Basic.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Example_Basic.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,272 +0,0 @@
-/*
-  Basic ambient lighting vertex program
-*/
-void ambientOneTexture_vp(float4 position : POSITION,
-						  float2 uv		  : TEXCOORD0,
-						  
-						  out float4 oPosition : POSITION,
-						  out float2 oUv	   : TEXCOORD0,
-						  out float4 colour    : COLOR,
-
-						  uniform float4x4 worldViewProj,
-						  uniform float4 ambient)
-{
-	oPosition = mul(worldViewProj, position);
-	oUv = uv;
-	colour = ambient;
-}
-
-/*
-  Single-weight-per-vertex hardware skinning, 2 lights
-  The trouble with vertex programs is they're not general purpose, but
-  fixed function hardware skinning is very poorly supported
-*/
-void hardwareSkinningOneWeight_vp(
-	float4 position : POSITION,
-	float3 normal   : NORMAL,
-	float2 uv       : TEXCOORD0,
-	float  blendIdx : BLENDINDICES,
-	
-
-	out float4 oPosition : POSITION,
-	out float2 oUv       : TEXCOORD0,
-	out float4 colour           : COLOR,
-	// Support up to 24 bones of float3x4
-	// vs_1_1 only supports 96 params so more than this is not feasible
-	uniform float3x4   worldMatrix3x4Array[24],
-	uniform float4x4 viewProjectionMatrix,
-	uniform float4   lightPos[2],
-	uniform float4   lightDiffuseColour[2],
-	uniform float4   ambient)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(mul(worldMatrix3x4Array[blendIdx], position).xyz, 1.0);
-	// view / projection
-	oPosition = mul(viewProjectionMatrix, blendPos);
-	// transform normal
-	float3 norm = mul((float3x3)worldMatrix3x4Array[blendIdx], normal);
-	// Lighting - support point and directional
-	float3 lightDir0 = 	normalize(
-		lightPos[0].xyz -  (blendPos.xyz * lightPos[0].w));
-	float3 lightDir1 = 	normalize(
-		lightPos[1].xyz -  (blendPos.xyz * lightPos[1].w));
-
-	oUv = uv;
-	colour = ambient + 
-		(saturate(dot(lightDir0, norm)) * lightDiffuseColour[0]) + 
-		(saturate(dot(lightDir1, norm)) * lightDiffuseColour[1]);
-	
-}	
-
-/*
-  Single-weight-per-vertex hardware skinning, shadow-caster pass
-*/
-void hardwareSkinningOneWeightCaster_vp(
-	float4 position : POSITION,
-	float3 normal   : NORMAL,
-	float  blendIdx : BLENDINDICES,
-	
-
-	out float4 oPosition : POSITION,
-	out float4 colour    : COLOR,
-	// Support up to 24 bones of float3x4
-	// vs_1_1 only supports 96 params so more than this is not feasible
-	uniform float3x4   worldMatrix3x4Array[24],
-	uniform float4x4 viewProjectionMatrix,
-	uniform float4   ambient)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(mul(worldMatrix3x4Array[blendIdx], position).xyz, 1.0);
-	// view / projection
-	oPosition = mul(viewProjectionMatrix, blendPos);
-	
-	colour = ambient;
-	
-}	
-
-/*
-  Two-weight-per-vertex hardware skinning, 2 lights
-  The trouble with vertex programs is they're not general purpose, but
-  fixed function hardware skinning is very poorly supported
-*/
-void hardwareSkinningTwoWeights_vp(
-	float4 position : POSITION,
-	float3 normal   : NORMAL,
-	float2 uv       : TEXCOORD0,
-	float4 blendIdx : BLENDINDICES,
-	float4 blendWgt : BLENDWEIGHT,
-	
-
-	out float4 oPosition : POSITION,
-	out float2 oUv       : TEXCOORD0,
-	out float4 colour           : COLOR,
-	// Support up to 24 bones of float3x4
-	// vs_1_1 only supports 96 params so more than this is not feasible
-	uniform float3x4   worldMatrix3x4Array[24],
-	uniform float4x4 viewProjectionMatrix,
-	uniform float4   lightPos[2],
-	uniform float4   lightDiffuseColour[2],
-	uniform float4   ambient)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(0,0,0,0);
-	int i;
-	for (i = 0; i < 2; ++i)
-	{
-		blendPos += float4(mul(worldMatrix3x4Array[blendIdx[i]], position).xyz, 1.0) * blendWgt[i];
-	}
-	// view / projection
-	oPosition = mul(viewProjectionMatrix, blendPos);
-	// transform normal
-	float3 norm = float3(0,0,0);
-	for (i = 0; i < 2; ++i)
-	{
-		norm += mul((float3x3)worldMatrix3x4Array[blendIdx[i]], normal) * 
-		blendWgt[i];
-	}
-	norm = normalize(norm);
-	// Lighting - support point and directional
-	float3 lightDir0 = 	normalize(
-		lightPos[0].xyz -  (blendPos.xyz * lightPos[0].w));
-	float3 lightDir1 = 	normalize(
-		lightPos[1].xyz -  (blendPos.xyz * lightPos[1].w));
-
-	
-	oUv = uv;
-	colour = float4(0.5, 0.5, 0.5, 1) + 
-		(saturate(dot(lightDir0, norm)) * lightDiffuseColour[0]) + 
-		(saturate(dot(lightDir1, norm)) * lightDiffuseColour[1]);
-	
-}
-
-/*
-  Two-weight-per-vertex hardware skinning, shadow caster pass
-*/
-void hardwareSkinningTwoWeightsCaster_vp(
-	float4 position : POSITION,
-	float3 normal   : NORMAL,
-	float2 uv       : TEXCOORD0,
-	float4 blendIdx : BLENDINDICES,
-	float4 blendWgt : BLENDWEIGHT,
-	
-
-	out float4 oPosition : POSITION,
-	out float4 colour           : COLOR,
-	// Support up to 24 bones of float3x4
-	// vs_1_1 only supports 96 params so more than this is not feasible
-	uniform float3x4   worldMatrix3x4Array[24],
-	uniform float4x4 viewProjectionMatrix,
-	uniform float4   ambient)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(0,0,0,0);
-	int i;
-	for (i = 0; i < 2; ++i)
-	{
-		blendPos += float4(mul(worldMatrix3x4Array[blendIdx[i]], position).xyz, 1.0) * blendWgt[i];
-	}
-	// view / projection
-	oPosition = mul(viewProjectionMatrix, blendPos);
-	
-
-	colour = ambient;
-		
-	
-}
-
-
-/*
-  Four-weight-per-vertex hardware skinning, 2 lights
-  The trouble with vertex programs is they're not general purpose, but
-  fixed function hardware skinning is very poorly supported
-*/
-void hardwareSkinningFourWeights_vp(
-	float4 position : POSITION,
-	float3 normal   : NORMAL,
-	float2 uv       : TEXCOORD0,
-	float4 blendIdx : BLENDINDICES,
-	float4 blendWgt : BLENDWEIGHT,
-	
-
-	out float4 oPosition : POSITION,
-	out float2 oUv       : TEXCOORD0,
-	out float4 colour           : COLOR,
-	// Support up to 24 bones of float3x4
-	// vs_1_1 only supports 96 params so more than this is not feasible
-	uniform float3x4   worldMatrix3x4Array[24],
-	uniform float4x4 viewProjectionMatrix,
-	uniform float4   lightPos[2],
-	uniform float4   lightDiffuseColour[2],
-	uniform float4   ambient)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(0,0,0,0);
-	int i;
-	for (i = 0; i < 4; ++i)
-	{
-		blendPos += float4(mul(worldMatrix3x4Array[blendIdx[i]], position).xyz, 1.0) * blendWgt[i];
-	}
-	// view / projection
-	oPosition = mul(viewProjectionMatrix, blendPos);
-	// transform normal
-	float3 norm = float3(0,0,0);
-	for (i = 0; i < 4; ++i)
-	{
-		norm += mul((float3x3)worldMatrix3x4Array[blendIdx[i]], normal) * 
-		blendWgt[i];
-	}
-	norm = normalize(norm);
-	// Lighting - support point and directional
-	float3 lightDir0 = 	normalize(
-		lightPos[0].xyz -  (blendPos.xyz * lightPos[0].w));
-	float3 lightDir1 = 	normalize(
-		lightPos[1].xyz -  (blendPos.xyz * lightPos[1].w));
-
-	
-	oUv = uv;
-	colour = ambient + 
-		(saturate(dot(lightDir0, norm)) * lightDiffuseColour[0]) + 
-		(saturate(dot(lightDir1, norm)) * lightDiffuseColour[1]);
-	
-}
-
-void hardwareMorphAnimation(float3 pos1 : POSITION,
-			  float4 normal		: NORMAL,
-			  float2 uv		  : TEXCOORD0,
-			  float3 pos2	  : TEXCOORD1,
-						  
-			  out float4 oPosition : POSITION,
-			  out float2 oUv	   : TEXCOORD0,
-			  out float4 colour    : COLOR,
-
-			  uniform float4x4 worldViewProj, 
-			  uniform float4 anim_t)
-{
-	// interpolate
-	float4 interp = float4(pos1 + anim_t.x*(pos2 - pos1), 1.0f);
-	
-	oPosition = mul(worldViewProj, interp);
-	oUv = uv;
-	colour = float4(1,0,0,1);
-}
-
-void hardwarePoseAnimation(float3 pos : POSITION,
-			  float4 normal		: NORMAL,
-			  float2 uv		  : TEXCOORD0,
-			  float3 pose1	  : TEXCOORD1,
-			  float3 pose2	  : TEXCOORD2,
-						  
-			  out float4 oPosition : POSITION,
-			  out float2 oUv	   : TEXCOORD0,
-			  out float4 colour    : COLOR,
-
-			  uniform float4x4 worldViewProj, 
-			  uniform float4 anim_t)
-{
-	// interpolate
-	float4 interp = float4(pos + anim_t.x*pose1 + anim_t.y*pose2, 1.0f);
-	
-	oPosition = mul(worldViewProj, interp);
-	oUv = uv;
-	colour = float4(1,0,0,1);
-}

Deleted: data/data_extern/programs/Example_Basic.hlsl
===================================================================
--- data/data_extern/programs/Example_Basic.hlsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Example_Basic.hlsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,273 +0,0 @@
-/*
-  Basic ambient lighting vertex program
-*/
-void ambientOneTexture_vp(float4 position : POSITION,
-						  float2 uv		  : TEXCOORD0,
-						  
-						  out float4 oPosition : POSITION,
-						  out float2 oUv	   : TEXCOORD0,
-						  out float4 colour    : COLOR,
-
-						  uniform float4x4 worldViewProj,
-						  uniform float4 ambient)
-{
-	oPosition = mul(worldViewProj, position);
-	oUv = uv;
-	colour = ambient;
-}
-
-/*
-  Single-weight-per-vertex hardware skinning, 2 lights
-  The trouble with vertex programs is they're not general purpose, but
-  fixed function hardware skinning is very poorly supported
-*/
-void hardwareSkinningOneWeight_vp(
-	float4 position : POSITION,
-	float3 normal   : NORMAL,
-	float2 uv       : TEXCOORD0,
-	float  blendIdx : BLENDINDICES,
-	
-
-	out float4 oPosition : POSITION,
-	out float2 oUv       : TEXCOORD0,
-	out float4 colour           : COLOR,
-	// Support up to 24 bones of float3x4
-	// vs_1_1 only supports 96 params so more than this is not feasible
-	uniform float3x4   worldMatrix3x4Array[24],
-	uniform float4x4 viewProjectionMatrix,
-	uniform float4   lightPos[2],
-	uniform float4   lightDiffuseColour[2],
-	uniform float4   ambient)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(mul(worldMatrix3x4Array[blendIdx], position).xyz, 1.0);
-	// view / projection
-	oPosition = mul(viewProjectionMatrix, blendPos);
-	// transform normal
-	float3 norm = mul((float3x3)worldMatrix3x4Array[blendIdx], normal);
-	// Lighting - support point and directional
-	float3 lightDir0 = 	normalize(
-		lightPos[0].xyz -  (blendPos.xyz * lightPos[0].w));
-	float3 lightDir1 = 	normalize(
-		lightPos[1].xyz -  (blendPos.xyz * lightPos[1].w));
-
-	oUv = uv;
-	colour = ambient + 
-		(saturate(dot(lightDir0, norm)) * lightDiffuseColour[0]) + 
-		(saturate(dot(lightDir1, norm)) * lightDiffuseColour[1]);
-	
-}	
-
-/*
-  Single-weight-per-vertex hardware skinning, shadow-caster pass
-*/
-void hardwareSkinningOneWeightCaster_vp(
-	float4 position : POSITION,
-	float3 normal   : NORMAL,
-	float  blendIdx : BLENDINDICES,
-	
-
-	out float4 oPosition : POSITION,
-	out float4 colour    : COLOR,
-	// Support up to 24 bones of float3x4
-	// vs_1_1 only supports 96 params so more than this is not feasible
-	uniform float3x4   worldMatrix3x4Array[24],
-	uniform float4x4 viewProjectionMatrix,
-	uniform float4   ambient)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(mul(worldMatrix3x4Array[blendIdx], position).xyz, 1.0);
-	// view / projection
-	oPosition = mul(viewProjectionMatrix, blendPos);
-	
-	colour = ambient;
-	
-}	
-
-/*
-  Two-weight-per-vertex hardware skinning, 2 lights
-  The trouble with vertex programs is they're not general purpose, but
-  fixed function hardware skinning is very poorly supported
-*/
-void hardwareSkinningTwoWeights_vp(
-	float4 position : POSITION,
-	float3 normal   : NORMAL,
-	float2 uv       : TEXCOORD0,
-	float4 blendIdx : BLENDINDICES,
-	float4 blendWgt : BLENDWEIGHT,
-	
-
-	out float4 oPosition : POSITION,
-	out float2 oUv       : TEXCOORD0,
-	out float4 colour           : COLOR,
-	// Support up to 24 bones of float3x4
-	// vs_1_1 only supports 96 params so more than this is not feasible
-	uniform float3x4   worldMatrix3x4Array[24],
-	uniform float4x4 viewProjectionMatrix,
-	uniform float4   lightPos[2],
-	uniform float4   lightDiffuseColour[2],
-	uniform float4   ambient)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(0,0,0,0);
-	int i;
-	for (i = 0; i < 2; ++i)
-	{
-		blendPos += float4(mul(worldMatrix3x4Array[blendIdx[i]], position).xyz, 1.0) * blendWgt[i];
-	}
-	// view / projection
-	oPosition = mul(viewProjectionMatrix, blendPos);
-	// transform normal
-	float3 norm = float3(0,0,0);
-	for (i = 0; i < 2; ++i)
-	{
-		norm += mul((float3x3)worldMatrix3x4Array[blendIdx[i]], normal) * 
-		blendWgt[i];
-	}
-	norm = normalize(norm);
-	// Lighting - support point and directional
-	float3 lightDir0 = 	normalize(
-		lightPos[0].xyz -  (blendPos.xyz * lightPos[0].w));
-	float3 lightDir1 = 	normalize(
-		lightPos[1].xyz -  (blendPos.xyz * lightPos[1].w));
-
-	
-	oUv = uv;
-	colour = ambient + 
-		(saturate(dot(lightDir0, norm)) * lightDiffuseColour[0]) + 
-		(saturate(dot(lightDir1, norm)) * lightDiffuseColour[1]);
-	
-}
-
-/*
-  Two-weight-per-vertex hardware skinning, shadow caster pass
-*/
-void hardwareSkinningTwoWeightsCaster_vp(
-	float4 position : POSITION,
-	float3 normal   : NORMAL,
-	float2 uv       : TEXCOORD0,
-	float4 blendIdx : BLENDINDICES,
-	float4 blendWgt : BLENDWEIGHT,
-	
-
-	out float4 oPosition : POSITION,
-	out float4 colour           : COLOR,
-	// Support up to 24 bones of float3x4
-	// vs_1_1 only supports 96 params so more than this is not feasible
-	uniform float3x4   worldMatrix3x4Array[24],
-	uniform float4x4 viewProjectionMatrix,
-	uniform float4   ambient)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(0,0,0,0);
-	int i;
-	for (i = 0; i < 2; ++i)
-	{
-		blendPos += float4(mul(worldMatrix3x4Array[blendIdx[i]], position).xyz, 1.0) * blendWgt[i];
-	}
-	// view / projection
-	oPosition = mul(viewProjectionMatrix, blendPos);
-	
-
-	colour = ambient;
-		
-	
-}
-
-
-/*
-  Four-weight-per-vertex hardware skinning, 2 lights
-  The trouble with vertex programs is they're not general purpose, but
-  fixed function hardware skinning is very poorly supported
-*/
-void hardwareSkinningFourWeights_vp(
-	float4 position : POSITION,
-	float3 normal   : NORMAL,
-	float2 uv       : TEXCOORD0,
-	float4 blendIdx : BLENDINDICES,
-	float4 blendWgt : BLENDWEIGHT,
-	
-
-	out float4 oPosition : POSITION,
-	out float2 oUv       : TEXCOORD0,
-	out float4 colour           : COLOR,
-	// Support up to 24 bones of float3x4
-	// vs_1_1 only supports 96 params so more than this is not feasible
-	uniform float3x4   worldMatrix3x4Array[24],
-	uniform float4x4 viewProjectionMatrix,
-	uniform float4   lightPos[2],
-	uniform float4   lightDiffuseColour[2],
-	uniform float4   ambient)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(0,0,0,0);
-	int i;
-	for (i = 0; i < 4; ++i)
-	{
-		blendPos += float4(mul(worldMatrix3x4Array[blendIdx[i]], position).xyz, 1.0) * blendWgt[i];
-	}
-	// view / projection
-	oPosition = mul(viewProjectionMatrix, blendPos);
-	// transform normal
-	float3 norm = float3(0,0,0);
-	for (i = 0; i < 4; ++i)
-	{
-		norm += mul((float3x3)worldMatrix3x4Array[blendIdx[i]], normal) * 
-		blendWgt[i];
-	}
-	norm = normalize(norm);
-	// Lighting - support point and directional
-	float3 lightDir0 = 	normalize(
-		lightPos[0].xyz -  (blendPos.xyz * lightPos[0].w));
-	float3 lightDir1 = 	normalize(
-		lightPos[1].xyz -  (blendPos.xyz * lightPos[1].w));
-
-	
-	oUv = uv;
-	colour = ambient + 
-		(saturate(dot(lightDir0, norm)) * lightDiffuseColour[0]) + 
-		(saturate(dot(lightDir1, norm)) * lightDiffuseColour[1]);
-	
-}
-
-void hardwareMorphAnimation(float3 pos1 : POSITION,
-			  float4 normal		: NORMAL,
-			  float2 uv		  : TEXCOORD0,
-			  float3 pos2	  : TEXCOORD1,
-						  
-			  out float4 oPosition : POSITION,
-			  out float2 oUv	   : TEXCOORD0,
-			  out float4 colour    : COLOR,
-
-			  uniform float4x4 worldViewProj, 
-			  uniform float4 anim_t)
-{
-	// interpolate
-	float4 interp = float4(pos1 + anim_t.x*(pos2 - pos1), 1.0f);
-	
-	oPosition = mul(worldViewProj, interp);
-	oUv = uv;
-	colour = float4(1,0,0,1);
-}
-
-void hardwarePoseAnimation(float3 pos : POSITION,
-			  float4 normal		: NORMAL,
-			  float2 uv		  : TEXCOORD0,
-			  float3 pose1	  : TEXCOORD1,
-			  float3 pose2	  : TEXCOORD2,
-						  
-			  out float4 oPosition : POSITION,
-			  out float2 oUv	   : TEXCOORD0,
-			  out float4 colour    : COLOR,
-
-			  uniform float4x4 worldViewProj, 
-			  uniform float4 anim_t)
-{
-	// interpolate
-	float4 interp = float4(pos + anim_t.x*pose1 + anim_t.y*pose2, 1.0f);
-	
-	oPosition = mul(worldViewProj, interp);
-	oUv = uv;
-	colour = float4(1,0,0,1);
-}
-

Deleted: data/data_extern/programs/GlassFP.cg
===================================================================
--- data/data_extern/programs/GlassFP.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/GlassFP.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,9 +0,0 @@
-sampler RT : register(s0);
-sampler NormalMap : register(s1);
-
-float4 main_ps(float2 iTexCoord : TEXCOORD0) : COLOR
-{
-	float4 normal = 2 * (tex2D(NormalMap, iTexCoord * 2.5) - 0.5);
-
-	return tex2D(RT, iTexCoord + normal.xy * 0.05);
-}

Deleted: data/data_extern/programs/Grass.cg
===================================================================
--- data/data_extern/programs/Grass.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Grass.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,31 +0,0 @@
-// Vertex program to wave some grass about
-// Simplistic, assumes base of the grass at 0
-void grass_vp(float4 position : POSITION,
-			  float3 normal   : NORMAL,
-			  float2 uv		  : TEXCOORD0,
-			  out float4 oPosition : POSITION,
-			  out float2 oUv	   : TEXCOORD0,
-			  out float4 colour    : COLOR,
-
-			  uniform float4x4 worldViewProj,
-			  uniform float4 ambient,
-			  uniform float4 objSpaceLight,
-			  uniform float4 lightColour,
-			  uniform float4 offset)
-{
-	float4 mypos = position;
-	//offset = float4(0.5, 0, 0, 0);
-	float4 factor = float4(1,1,1,1) - uv.yyyy;
-	mypos = mypos + offset * factor;
-	oPosition = mul(worldViewProj, mypos);
-
-	oUv = uv;
-	// get vertex light direction (support directional and point)
-	float3 light = normalize(
-		objSpaceLight.xyz -  (position.xyz * objSpaceLight.w));
-	float diffuseFactor = max(dot(normal, light), 0);
-	
-	
-	colour = ambient + diffuseFactor * lightColour;
-}
-

Deleted: data/data_extern/programs/GrayScale.cg
===================================================================
--- data/data_extern/programs/GrayScale.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/GrayScale.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,18 +0,0 @@
-sampler RT : register(s0);
-
-float4 GrayScale_ps(float2 iTexCoord : TEXCOORD0) : COLOR
-{
-    float3 greyscale = dot(tex2D(RT, iTexCoord).rgb, float3(0.3, 0.59, 0.11));
-	return float4(greyscale, 1.0);
-}
-
-float4 Embossed_ps(float2 iTexCoord : TEXCOORD0) : COLOR
-{
-    float4 Color;
-    Color.a = 1.0f;
-    Color.rgb = 0.5f;
-    Color -= tex2D( RT, iTexCoord - 0.001)*2.0f;
-    Color += tex2D( RT, iTexCoord + 0.001)*2.0f;
-    Color.rgb = (Color.r+Color.g+Color.b)/3.0f;
-    return Color;
-}

Deleted: data/data_extern/programs/InvertFP.cg
===================================================================
--- data/data_extern/programs/InvertFP.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/InvertFP.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,6 +0,0 @@
-sampler RT : register(s0);
-
-float4 Invert_ps (float2 iTexCoord : TEXCOORD0) : COLOR
-{
-	return 1 - tex2D(RT, iTexCoord);
-}

Deleted: data/data_extern/programs/LaplaceFP.cg
===================================================================
--- data/data_extern/programs/LaplaceFP.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/LaplaceFP.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,36 +0,0 @@
-sampler Image : register(s0);
-
-// The Laplace filter approximates the second order derivate,
-// that is, the rate of change of slope in the image. It can be
-// used for edge detection. The Laplace filter gives negative
-// response on the higher side of the edge and positive response
-// on the lower side.
-
-// This is the filter kernel:
-// 0  1  0
-// 1 -4  1
-// 0  1  0
-
-
-
-float4 Laplace_ps (float2 texCoord: TEXCOORD0,
-			uniform float scale,
-			uniform float pixelSize) : COLOR
-{
-
-    float2 samples[4] = {
-        0, -1,
-       -1,  0,
-        1,  0,
-        0,  1
-    };
-   float4 laplace = -4 * tex2D(Image, texCoord);
-
-   // Sample the neighbor pixels
-   for (int i = 0; i < 4; i++){
-      laplace += tex2D(Image, texCoord + pixelSize * samples[i]);
-   }
-
-   return (0.5 + scale * laplace);
-}
-

Deleted: data/data_extern/programs/OldMovieFP.cg
===================================================================
--- data/data_extern/programs/OldMovieFP.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/OldMovieFP.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,54 +0,0 @@
-sampler RT : register(s0);
-sampler SplotchesTx : register(s1);
-sampler Texture2 : register(s2);
-sampler SepiaTx : register(s3);
-
-float2 calcSpriteAddr(float2 texCoord, float DirtFrequency, float period)
-{
-   return texCoord + tex1D(Texture2, period  * DirtFrequency);
-}
-
-float4 getSplotches(float2 spriteAddr)
-{
-   // get sprite address into paged texture coords space
-   spriteAddr = spriteAddr / 6.3f;
-   //spriteAddr = spriteAddr - frac(spriteAddr);
-   spriteAddr = spriteAddr - (spriteAddr /33.3f);
-
-   return tex2D(SplotchesTx, spriteAddr);
-}
-
-float4 OldMovie_ps (float2 texCoord  : TEXCOORD0,
-				uniform float time_cycle_period,
-				uniform float flicker,
-				uniform float DirtFrequency,
-				uniform float3 luminance,
-				uniform float frameJitter,
-				uniform float lumiShift
-				) : COLOR
-{
-
-   // get sprite address
-   float2 spriteAddr = calcSpriteAddr(texCoord, DirtFrequency, time_cycle_period);
-
-    // add some dark and light splotches to the film
-   float4 splotches = getSplotches(spriteAddr);
-   float4 specs = 1.0f - getSplotches(spriteAddr / 3.0f);
-
-   // convert color to base luminance
-   float4 base = tex2D(RT, texCoord + float2(0, spriteAddr.y * frameJitter));
-   float lumi = dot(base.rgb, luminance);
-   // randomly shift luminance
-   lumi -= spriteAddr.x * lumiShift;
-   // tone map luminance
-   base.rgb = tex1D(SepiaTx, lumi );
-
-   // calc flicker speed
-   float darken = frac(flicker * time_cycle_period);
-
-   // we want darken to cycle between 0.6 and 1.0
-   darken = abs(darken - 0.5f) * 0.4f + 0.6f;
-   // composite dirt onto film
-   return base * splotches * darken + specs;
-}
-

Deleted: data/data_extern/programs/OldTV.cg
===================================================================
--- data/data_extern/programs/OldTV.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/OldTV.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,42 +0,0 @@
-
-
-sampler Image: register(s0);
-sampler Rand: register(s1);
-sampler Noise: register(s2);
-
-float4 OldTV_ps(float2 pos: TEXCOORD1, float2 img: TEXCOORD0,
-    uniform float distortionFreq: register(c3),
-    uniform float distortionScale: register(c4),
-    uniform float distortionRoll: register(c5),
-    uniform float interference: register(c7),
-    uniform float frameLimit: register(c8),
-    uniform float frameShape: register(c0),
-    uniform float frameSharpness: register(c1),
-    uniform float time_0_X: register(c2),
-    uniform float sin_time_0_X: register(c6)
-
-) : COLOR {
-   // Define a frame shape
-   float f = (1 - pos.x * pos.x) * (1 - pos.y * pos.y);
-   float frame = saturate(frameSharpness * (pow(f, frameShape) - frameLimit));
-
-   // Interference ... just a texture filled with rand()
-   float rand = tex3D(Rand, float3(1.5 * pos, time_0_X)) - 0.2;
-
-   // Some signed noise for the distortion effect
-   float noisy = tex3D(Noise, float3(0, 0.5 * pos.y, 0.1 * time_0_X)) - 0.5;
-
-   // Repeat a 1 - x^2 (0 < x < 1) curve and roll it with sinus.
-   float dst = frac(pos.y * distortionFreq + distortionRoll * sin_time_0_X);
-   dst *= (1 - dst);
-   // Make sure distortion is highest in the center of the image
-   dst /= 1 + distortionScale * abs(pos.y);
-
-   // ... and finally distort
-   img.x += distortionScale * noisy * dst;
-   float4 image = tex2D(Image, img);
-
-   // Combine frame, distorted image and interference
-   return frame * (interference * rand + image);
-}
-

Deleted: data/data_extern/programs/PosterizeFP.cg
===================================================================
--- data/data_extern/programs/PosterizeFP.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/PosterizeFP.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,17 +0,0 @@
-sampler RT : register(s0);
-
-float4 Posterize_ps (float2 iTexCoord : TEXCOORD0) : COLOR
-{
-
-	float nColors = 8;
-	float gamma = 0.6;
-
-	float4 texCol = tex2D(RT, iTexCoord);
-	float3 tc = texCol.xyz;
-	tc = pow(tc, gamma);
-	tc = tc * nColors;
-	tc = floor(tc);
-	tc = tc / nColors;
-	tc = pow(tc,1.0/gamma);
-	return float4(tc,texCol.w);
-}

Deleted: data/data_extern/programs/Radial_Blur_FP.cg
===================================================================
--- data/data_extern/programs/Radial_Blur_FP.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/Radial_Blur_FP.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,57 +0,0 @@
-//------------------------------------------------------
-//Radial_Blur_FP.cg
-//  Implements radial blur to be used with the compositor
-//  It's very dependant on screen resolution
-//------------------------------------------------------
-
-uniform sampler tex: register(s0);
-
-static const float samples[10] =
-{
--0.08,
--0.05,
--0.03,
--0.02,
--0.01,
-0.01,
-0.02,
-0.03,
-0.05,
-0.08
-};
-
-float4 main(float2 texCoord: TEXCOORD0,
-            uniform float sampleDist,
-            uniform float sampleStrength
-           ) : COLOR
-{
-   //Vector from pixel to the center of the screen
-   float2 dir = 0.5 - texCoord;
-
-   //Distance from pixel to the center (distant pixels have stronger effect)
-   //float dist = distance( float2( 0.5, 0.5 ), texCoord );
-   float dist = sqrt( dir.x*dir.x + dir.y*dir.y );
-
-
-   //Now that we have dist, we can normlize vector
-   dir = normalize( dir );
-
-   //Save the color to be used later
-   float4 color = tex2D( tex, texCoord );
-
-   //Average the pixels going along the vector
-   float4 sum = color;
-   for (int i = 0; i < 10; i++)
-   {
-      sum += tex2D( tex, texCoord + dir * samples[i] * sampleDist );
-   }
-   sum /= 11;
-
-   //Calculate amount of blur based on
-   //distance and a strength parameter
-   float t = dist * sampleStrength;
-   t = saturate( t );//We need 0 <= t <= 1
-
-   //Blend the original color with the averaged pixels
-   return lerp( color, sum, t );
-}

Deleted: data/data_extern/programs/SharpenEdgesFP.cg
===================================================================
--- data/data_extern/programs/SharpenEdgesFP.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/SharpenEdgesFP.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,23 +0,0 @@
-sampler RT: register(s0);
-
-float4 sharpenEdges_fp(float2 iTexCoord: TEXCOORD0, uniform float2 vTexelSize) : COLOR
-{
-
-	float2 usedTexelED[8] = {
-		-1, -1,
-		 0, -1,
-		 1, -1,
-		-1,  0,
-		 1,  0,
-		-1,  1,
-		 0,  1,
-	     1,  1,
-	};
-
-	float4 cAvgColor= 9 * tex2D (RT, iTexCoord);
-
-	for(int t=0; t<8; t++)
-		cAvgColor -= tex2D(RT, iTexCoord + vTexelSize * usedTexelED[t]);
-
-	return cAvgColor;
-}

Deleted: data/data_extern/programs/StdQuad_vp.cg
===================================================================
--- data/data_extern/programs/StdQuad_vp.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/StdQuad_vp.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,113 +0,0 @@
-void StdQuad_vp
-(
-    in float4 inPos : POSITION,
-
-    out float4 pos : POSITION,
-    out float2 uv0 : TEXCOORD0,
-
-    uniform float4x4 worldViewProj
-)
-{
-    // Use standardise transform, so work accord with render system specific (RS depth, requires texture flipping, etc)
-    pos = mul(worldViewProj, inPos);
-
-    // The input positions adjusted by texel offsets, so clean up inaccuracies
-    inPos.xy = sign(inPos.xy);
-
-    // Convert to image-space
-    uv0 = (float2(inPos.x, -inPos.y) + 1.0f) * 0.5f;
-}
-
-void StdQuad_Tex2_vp
-(
-    in float4 inPos : POSITION,
-
-    out float4 pos : POSITION,
-    out float2 uv0 : TEXCOORD0,
-    out float2 uv1 : TEXCOORD1,
-
-    uniform float4x4 worldViewProj
-)
-{
-    // Use standardise transform, so work accord with render system specific (RS depth, requires texture flipping, etc)
-    pos = mul(worldViewProj, inPos);
-
-    // The input positions adjusted by texel offsets, so clean up inaccuracies
-    inPos.xy = sign(inPos.xy);
-
-    // Convert to image-space
-    uv0 = (float2(inPos.x, -inPos.y) + 1.0f) * 0.5f;
-    uv1 = uv0;
-}
-
-void StdQuad_Tex2a_vp
-(
-    in float4 inPos : POSITION,
-
-    out float4 pos : POSITION,
-    out float2 uv0 : TEXCOORD0,
-    out float2 uv1 : TEXCOORD1,
-
-    uniform float4x4 worldViewProj
-)
-{
-    // Use standardise transform, so work accord with render system specific (RS depth, requires texture flipping, etc)
-    pos = mul(worldViewProj, inPos);
-
-    // The input positions adjusted by texel offsets, so clean up inaccuracies
-    inPos.xy = sign(inPos.xy);
-
-    // Convert to image-space
-    uv0 = (float2(inPos.x, -inPos.y) + 1.0f) * 0.5f;
-    uv1 = inPos.xy;
-}
-
-void StdQuad_Tex3_vp
-(
-    in float4 inPos : POSITION,
-
-    out float4 pos : POSITION,
-    out float2 uv0 : TEXCOORD0,
-    out float2 uv1 : TEXCOORD1,
-    out float2 uv2 : TEXCOORD2,
-
-    uniform float4x4 worldViewProj
-)
-{
-    // Use standardise transform, so work accord with render system specific (RS depth, requires texture flipping, etc)
-    pos = mul(worldViewProj, inPos);
-
-    // The input positions adjusted by texel offsets, so clean up inaccuracies
-    inPos.xy = sign(inPos.xy);
-
-    // Convert to image-space
-    uv0 = (float2(inPos.x, -inPos.y) + 1.0f) * 0.5f;
-    uv1 = uv0;
-    uv2 = uv0;
-}
-
-void StdQuad_Tex4_vp
-(
-    in float4 inPos : POSITION,
-
-    out float4 pos : POSITION,
-    out float2 uv0 : TEXCOORD0,
-    out float2 uv1 : TEXCOORD1,
-    out float2 uv2 : TEXCOORD2,
-    out float2 uv3 : TEXCOORD3,
-
-    uniform float4x4 worldViewProj
-)
-{
-    // Use standardise transform, so work accord with render system specific (RS depth, requires texture flipping, etc)
-    pos = mul(worldViewProj, inPos);
-
-    // The input positions adjusted by texel offsets, so clean up inaccuracies
-    inPos.xy = sign(inPos.xy);
-
-    // Convert to image-space
-    uv0 = (float2(inPos.x, -inPos.y) + 1.0f) * 0.5f;
-    uv1 = uv0;
-    uv2 = uv0;
-    uv3 = uv0;
-}

Deleted: data/data_extern/programs/StdQuad_vp.glsl
===================================================================
--- data/data_extern/programs/StdQuad_vp.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/StdQuad_vp.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,11 +0,0 @@
-varying vec2 uv;
-
-void main()                    
-{
-	gl_Position = ftransform();
-	
-	vec2 inPos = sign(gl_Vertex.xy);
-	
-	uv = (vec2(inPos.x, -inPos.y) + 1.0)/2.0;
-}
-

Deleted: data/data_extern/programs/TilingFP.cg
===================================================================
--- data/data_extern/programs/TilingFP.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/TilingFP.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,33 +0,0 @@
-sampler RT : register(s0);
-
-float4 Tiling_ps(float4 inPos : POSITION,
-				float2 iTexCoord : TEXCOORD0,
-				uniform half NumTiles,
-				uniform half Threshhold) : COLOR
-{
-
-
-	half3 EdgeColor = {0.7, 0.7, 0.7};
-
-    half size = 1.0/NumTiles;
-    half2 Pbase = iTexCoord - fmod(iTexCoord, size.xx);
-    half2 PCenter = Pbase + (size/2.0).xx;
-    half2 st = (iTexCoord - Pbase)/size;
-    half4 c1 = (half4)0;
-    half4 c2 = (half4)0;
-    half4 invOff = half4((1-EdgeColor),1);
-    if (st.x > st.y) { c1 = invOff; }
-    half threshholdB =  1.0 - Threshhold;
-    if (st.x > threshholdB) { c2 = c1; }
-    if (st.y > threshholdB) { c2 = c1; }
-    half4 cBottom = c2;
-    c1 = (half4)0;
-    c2 = (half4)0;
-    if (st.x > st.y) { c1 = invOff; }
-    if (st.x < Threshhold) { c2 = c1; }
-    if (st.y < Threshhold) { c2 = c1; }
-    half4 cTop = c2;
-    half4 tileColor = tex2D(RT, PCenter);
-    half4 result = tileColor + cTop - cBottom;
-    return result;
-}

Deleted: data/data_extern/programs/ToonShaderPS.cg
===================================================================
--- data/data_extern/programs/ToonShaderPS.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/ToonShaderPS.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,11 +0,0 @@
-float4 main(in float3 texCoord: TEXCOORD0) : COLOR
-{
-	float4 c;
-
-	c.r = 0.9;
-	c.g = 0.8;
-	c.b = 0.1;
-	c.a = 0.0;
-
-	return c;
-}

Deleted: data/data_extern/programs/ToonShader_ps.frag
===================================================================
--- data/data_extern/programs/ToonShader_ps.frag	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/ToonShader_ps.frag	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,4 +0,0 @@
-void main()
-{
-	gl_FragColor = vec4(0.4, 0.4, 0.8, 1.0);
-}

Deleted: data/data_extern/programs/ToonShader_vs.vert
===================================================================
--- data/data_extern/programs/ToonShader_vs.vert	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/ToonShader_vs.vert	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,4 +0,0 @@
-void main()
-{
-	gl_Position = ftransform();
-}

Deleted: data/data_extern/programs/glow.cg
===================================================================
--- data/data_extern/programs/glow.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/glow.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,72 +0,0 @@
-//A.
-float4 GlowX_fp
-	(
-		float2 uv: TEXCOORD0,
-
-		uniform sampler2D scene: register(s0),
-		uniform float4 invTexSize
-	) : COLOR
-#define RENDER_SCENE 1
-#define BLUR_RADIUS 1
-{
-	float4 colour = float4(0);
-	float blurSize = BLUR_RADIUS * invTexSize.x;
-
-	//X-blur.
-	int x = uv.x/blurSize;
-	colour += tex2D(scene, float2((x - 4.0) * blurSize, uv.y)) * 1.0/25.0;
-	colour += tex2D(scene, float2((x - 3.0) * blurSize, uv.y)) * 2.0/25.0;
-	colour += tex2D(scene, float2((x - 2.0) * blurSize, uv.y)) * 3.0/25.0;
-	colour += tex2D(scene, float2((x - 1.0) * blurSize, uv.y)) * 4.0/25.0;
-	colour += tex2D(scene, float2((x + 0.0) * blurSize, uv.y)) * 5.0/25.0;
-	colour += tex2D(scene, float2((x + 1.0) * blurSize, uv.y)) * 4.0/25.0;
-	colour += tex2D(scene, float2((x + 2.0) * blurSize, uv.y)) * 3.0/25.0;
-	colour += tex2D(scene, float2((x + 3.0) * blurSize, uv.y)) * 2.0/25.0;
-	colour += tex2D(scene, float2((x + 4.0) * blurSize, uv.y)) * 1.0/25.0;
-
-	return colour;
-}
-
-//B.
-float4 GlowY_fp
-	(
-		float2 uv: TEXCOORD0,
- 
-		uniform sampler2D blurX: register(s0),
-		uniform float4 invTexSize
-	) : COLOR
-{
-	float4 colour = float4(0);
-	float blurSize = BLUR_RADIUS * invTexSize.y;
-
-	//Y-blur.
-	int y = uv.y/blurSize;
-	colour += tex2D(blurX, float2(uv.x, (y - 4.0) * blurSize)) * 1.0/25.0;
-	colour += tex2D(blurX, float2(uv.x, (y - 3.0) * blurSize)) * 2.0/25.0;
-	colour += tex2D(blurX, float2(uv.x, (y - 2.0) * blurSize)) * 3.0/25.0;
-	colour += tex2D(blurX, float2(uv.x, (y - 1.0) * blurSize)) * 4.0/25.0;
-	colour += tex2D(blurX, float2(uv.x, (y + 0.0) * blurSize)) * 5.0/25.0;
-	colour += tex2D(blurX, float2(uv.x, (y + 1.0) * blurSize)) * 4.0/25.0;
-	colour += tex2D(blurX, float2(uv.x, (y + 2.0) * blurSize)) * 3.0/25.0;
-	colour += tex2D(blurX, float2(uv.x, (y + 3.0) * blurSize)) * 2.0/25.0;
-	colour += tex2D(blurX, float2(uv.x, (y + 4.0) * blurSize)) * 1.0/25.0;
-
-	return colour;
-}
-
-//C.
-float4 GlowBlend_fp
-	(
-		float2 uv: TEXCOORD0,
-
-		uniform sampler2D scene: register(s0),
-		uniform sampler2D blurXY: register(s1)
-	) : COLOR
-{
-	//Add this to original, return.
-	return
-#if RENDER_SCENE
-		tex2D(scene, uv) +
-#endif
-		tex2D(blurXY, uv) * 1;
-}

Deleted: data/data_extern/programs/hdr.cg
===================================================================
--- data/data_extern/programs/hdr.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/hdr.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,25 +0,0 @@
-void morningskybox_fp (
-	float2 uv : TEXCOORD0,
-	out float4 colour : COLOR,
-
-	uniform sampler2D tex : register(s0) )
-{
-	colour = tex2D(tex, uv);
-
-	// blow out the light a bit
-	colour *= 1.7;
-}
-void morningcubemap_fp (
-	float3 uv : TEXCOORD0,
-	out float4 colour : COLOR,
-
-	uniform samplerCUBE tex : register(s0) )
-{
-	colour = texCUBE(tex, uv);
-
-	// blow out the light a bit
-	colour *= 1.7;
-}
-
-
-

Deleted: data/data_extern/programs/hdr.hlsl
===================================================================
--- data/data_extern/programs/hdr.hlsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/hdr.hlsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,228 +0,0 @@
-// RGBE mode utilities
-// RGB each carry a mantissa, A carries a shared exponent
-// The exponent is calculated based on the largest colour channel
-
-
-float3 decodeRGBE8(in float4 rgbe)
-{
-    // get exponent (-128 since it can be +ve or -ve)
-	float exp = rgbe.a * 255 - 128;
-	
-	// expand out the rgb value
-	return rgbe.rgb * exp2(exp);
-}
-
-float4 encodeRGBE8(in float3 rgb)
-{
-	float4 ret;
-
-    // What is the largest colour channel?
-	float highVal = max(rgb.r, max(rgb.g, rgb.b));
-	
-	// Take the logarithm, clamp it to a whole value
-	float exp = ceil(log2(highVal));
-
-    // Divide the components by the shared exponent
-	ret.rgb = rgb / exp2(exp);
-	
-	// Store the shared exponent in the alpha channel
-	ret.a = (exp + 128) / 255;
-
-	return ret;
-}
-
-
-static const float4 LUMINENCE_FACTOR  = float4(0.27f, 0.67f, 0.06f, 0.0f);
-static const float MIDDLE_GREY = 0.72f;
-static const float FUDGE = 0.001f;
-static const float L_WHITE = 1.5f;
-static const float4 BRIGHT_LIMITER = float4(0.6f, 0.6f, 0.6f, 0.0f);
-
-
-/** Tone mapping function 
- at note Only affects rgb, not a
- at param inColour The HDR colour
- at param lum The scene lumninence 
- at returns Tone mapped colour
-*/
-float4 toneMap(float4 inColour, float lum)
-{
-	// From Reinhard et al
-	// "Photographic Tone Reproduction for Digital Images"
-	
-	// Initial luminence scaling (equation 2)
-    inColour.rgb *= MIDDLE_GREY / (FUDGE + lum);
-
-	// Control white out (equation 4 nom)
-    inColour.rgb *= (1.0f + inColour / L_WHITE);
-
-	// Final mapping (equation 4 denom)
-	inColour.rgb /= (1.0f + inColour);
-	
-	return inColour;
-
-}
-
-/* Downsample a 2x2 area and convert to greyscale
-*/
-float4 downscale2x2Luminence(
-	float2 uv : TEXCOORD0,
-	uniform float2 texelSize, // depends on size of source texture
-	uniform sampler2D inRTT : register(s0)
-    ) : COLOR
-{
-	
-    float4 accum = float4(0.0f, 0.0f, 0.0f, 0.0f);
-
-	float2 texOffset[4] = {
-		-0.5, -0.5,
-		-0.5,  0.5, 
-		 0.5, -0.5,
-		 0.5, 0.5 };
-
-	for( int i = 0; i < 4; i++ )
-    {
-        // Get colour from source
-        accum += tex2D(inRTT, uv + texelSize * texOffset[i]);
-    }
-    
-	// Adjust the accumulated amount by lum factor
-	// Cannot use float3's here because it generates dependent texture errors because of swizzle
-	float lum = dot(accum, LUMINENCE_FACTOR);
-	// take average of 4 samples
-	lum *= 0.25;
-	return lum;
-
-}
-
-/* Downsample a 3x3 area 
- * This shader is used multiple times on different source sizes, so texel size has to be configurable
-*/
-float4 downscale3x3(
-	float2 uv : TEXCOORD0,
-	uniform float2 texelSize, // depends on size of source texture
-	uniform sampler2D inRTT : register(s0)
-    ) : COLOR
-{
-	
-    float4 accum = float4(0.0f, 0.0f, 0.0f, 0.0f);
-
-	float2 texOffset[9] = {
-		-1.0, -1.0,
-		 0.0, -1.0,
-		 1.0, -1.0,
-		-1.0,  0.0,
-		 0.0,  0.0,
-		 1.0,  0.0,
-		-1.0,  1.0,
-		 0.0,  1.0,
-		 1.0,  1.0
-	};
-
-	for( int i = 0; i < 9; i++ )
-    {
-        // Get colour from source
-        accum += tex2D(inRTT, uv + texelSize * texOffset[i]);
-    }
-    
-	// take average of 9 samples
-	accum *= 0.1111111111111111;
-	return accum;
-
-}
-
-/* Downsample a 3x3 area from main RTT and perform a brightness pass
-*/
-float4 downscale3x3brightpass(
-	float2 uv : TEXCOORD0,
-	uniform float2 texelSize, // depends on size of source texture
-	uniform sampler2D inRTT : register(s0),
-	uniform sampler2D inLum : register(s1)
-    ) : COLOR
-{
-	
-    float4 accum = float4(0.0f, 0.0f, 0.0f, 0.0f);
-
-	float2 texOffset[9] = {
-		-1.0, -1.0,
-		 0.0, -1.0,
-		 1.0, -1.0,
-		-1.0,  0.0,
-		 0.0,  0.0,
-		 1.0,  0.0,
-		-1.0,  1.0,
-		 0.0,  1.0,
-		 1.0,  1.0
-	};
-
-	for( int i = 0; i < 9; i++ )
-    {
-        // Get colour from source
-        accum += tex2D(inRTT, uv + texelSize * texOffset[i]);
-    }
-    
-	// take average of 9 samples
-	accum *= 0.1111111111111111;
-
-    // Reduce bright and clamp
-    accum = max(float4(0.0f, 0.0f, 0.0f, 1.0f), accum - BRIGHT_LIMITER);
-
-	// Sample the luminence texture
-	float4 lum = tex2D(inLum, float2(0.5f, 0.5f));
-	
-	// Tone map result
-	return toneMap(accum, lum.r);
-
-}
-
-/* Gaussian bloom, requires offsets and weights to be provided externally
-*/
-float4 bloom(
-		float2 uv : TEXCOORD0,
-		uniform float2 sampleOffsets[15],
-		uniform float4 sampleWeights[15],	
-		uniform sampler2D inRTT : register(s0)
-		) : COLOR
-{
-    float4 accum = float4(0.0f, 0.0f, 0.0f, 1.0f);
-	float2 sampleUV;
-    
-    for( int i = 0; i < 15; i++ )
-    {
-        // Sample from adjacent points, 7 each side and central
-        sampleUV = uv + sampleOffsets[i];
-        accum += sampleWeights[i] * tex2D(inRTT, sampleUV);
-    }
-    
-    return accum;
-	
-}
-		
-
-/* Final scene composition, with tone mapping
-*/
-float4 finalToneMapping(
-	float2 uv : TEXCOORD0,
-	uniform sampler2D inRTT : register(s0),
-	uniform sampler2D inBloom : register(s1),
-	uniform sampler2D inLum : register(s2)
-    ) : COLOR
-{
-	// Get main scene colour
-    float4 sceneCol = tex2D(inRTT, uv);
-
-	// Get luminence value
-	float4 lum = tex2D(inLum, float2(0.5f, 0.5f));
-
-	// tone map this
-	float4 toneMappedSceneCol = toneMap(sceneCol, lum.r);
-	
-	// Get bloom colour
-    float4 bloom = tex2D(inBloom, uv);
-
-	// Add scene & bloom
-	return float4(toneMappedSceneCol.rgb + bloom.rgb, 1.0f);
-     	
-}
-
-

Deleted: data/data_extern/programs/hdr_bloom.glsl
===================================================================
--- data/data_extern/programs/hdr_bloom.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/hdr_bloom.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,22 +0,0 @@
-uniform sampler2D inRTT;
-
-uniform vec4 sampleOffsets[15];
-uniform vec4 sampleWeights[15];
-
-varying vec2 uv;
-
-void main(void)
-{
-    vec4 accum = vec4(0.0, 0.0, 0.0, 1.0);
-	vec2 sampleUV;
-    
-    for( int i = 0; i < 15; i++ )
-    {
-        // Sample from adjacent points, 7 each side and central
-        sampleUV = uv + sampleOffsets[i].xy;
-        accum += sampleWeights[i] * texture2D(inRTT, sampleUV);
-    }
-    
-    gl_FragColor = accum;
-	
-}

Deleted: data/data_extern/programs/hdr_downscale2x2luminence.glsl
===================================================================
--- data/data_extern/programs/hdr_downscale2x2luminence.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/hdr_downscale2x2luminence.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,24 +0,0 @@
-uniform sampler2D inRTT;
-uniform vec2 texelSize;
-
-varying vec2 uv;
-
-void main(void)
-{
-	
-    vec4 accum = vec4(0.0, 0.0, 0.0, 0.0);
-	vec4 LUMINENCE_FACTOR  = vec4(0.27, 0.67, 0.06, 0.0);
-
-    // Get colour from source
-    accum += texture2D(inRTT, uv + texelSize * vec2(-0.5, -0.5));
-    accum += texture2D(inRTT, uv + texelSize * vec2(-0.5, 0.5));
-    accum += texture2D(inRTT, uv + texelSize * vec2(0.5, 0.5));
-    accum += texture2D(inRTT, uv + texelSize * vec2(0.5, -0.5));
-    
-	// Adjust the accumulated amount by lum factor
-	float lum = dot(accum, LUMINENCE_FACTOR);
-	// take average of 4 samples
-	lum *= 0.25;
-	gl_FragColor = vec4(lum, lum, lum, 1.0);
-
-}

Deleted: data/data_extern/programs/hdr_downscale3x3.glsl
===================================================================
--- data/data_extern/programs/hdr_downscale3x3.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/hdr_downscale3x3.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,26 +0,0 @@
-uniform sampler2D inRTT;
-uniform vec2 texelSize;
-
-varying vec2 uv;
-
-void main(void)
-{
-    vec4 accum = vec4(0.0, 0.0, 0.0, 0.0);
-
-    // Get colour from source
-    accum += texture2D(inRTT, uv + texelSize * vec2(-1.0, -1.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 0.0, -1.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 1.0, -1.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2(-1.0,  0.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 0.0,  0.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 1.0,  0.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2(-1.0,  1.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 0.0,  1.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 1.0,  1.0));
-    
-	// take average of 9 samples
-	accum *= 0.1111111111111111;
-
-	gl_FragColor = accum;
-
-}

Deleted: data/data_extern/programs/hdr_downscale3x3brightpass.glsl
===================================================================
--- data/data_extern/programs/hdr_downscale3x3brightpass.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/hdr_downscale3x3brightpass.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,37 +0,0 @@
-uniform sampler2D inRTT;
-uniform sampler2D inLum;
-uniform vec2 texelSize;
-
-varying vec2 uv;
-const vec4 BRIGHT_LIMITER = vec4(0.6, 0.6, 0.6, 0.0);
-
-// declare external function
-vec4 toneMap(in vec4 inColour, in float lum);
-
-void main(void)
-{
-    vec4 accum = vec4(0.0, 0.0, 0.0, 0.0);
-
-    accum += texture2D(inRTT, uv + texelSize * vec2(-1.0, -1.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 0.0, -1.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 1.0, -1.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2(-1.0,  0.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 0.0,  0.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 1.0,  0.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2(-1.0,  1.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 0.0,  1.0));
-    accum += texture2D(inRTT, uv + texelSize * vec2( 1.0,  1.0));
-    
-	// take average of 9 samples
-	accum *= 0.1111111111111111;
-
-    // Reduce bright and clamp
-    accum = max(vec4(0.0, 0.0, 0.0, 1.0), accum - BRIGHT_LIMITER);
-
-	// Sample the luminence texture
-	vec4 lum = texture2D(inLum, vec2(0.5, 0.5));
-	
-	// Tone map result
-	gl_FragColor = toneMap(accum, lum.r);
-
-}

Deleted: data/data_extern/programs/hdr_finalToneMapping.glsl
===================================================================
--- data/data_extern/programs/hdr_finalToneMapping.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/hdr_finalToneMapping.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,28 +0,0 @@
-uniform sampler2D inRTT;
-uniform sampler2D inBloom;
-uniform sampler2D inLum;
-
-varying vec2 uv;
-
-// declare external function
-vec4 toneMap(in vec4 inColour, in float lum);
-
-void main(void)
-{
-	// Get main scene colour
-    vec4 sceneCol = texture2D(inRTT, uv);
-
-	// Get luminence value
-	vec4 lum = texture2D(inLum, vec2(0.5, 0.5));
-
-	// tone map this
-	vec4 toneMappedSceneCol = toneMap(sceneCol, lum.r);
-	
-	// Get bloom colour
-    vec4 bloom = texture2D(inBloom, uv);
-
-	// Add scene & bloom
-	gl_FragColor = vec4(toneMappedSceneCol.rgb + bloom.rgb, 1.0);
-    
-}
-

Deleted: data/data_extern/programs/hdr_tonemap_util.glsl
===================================================================
--- data/data_extern/programs/hdr_tonemap_util.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/hdr_tonemap_util.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,29 +0,0 @@
-const float MIDDLE_GREY = 0.72;
-const float FUDGE = 0.001;
-const float L_WHITE = 1.5;
-
-/** Tone mapping function 
- at note Only affects rgb, not a
- at param inColour The HDR colour
- at param lum The scene lumninence 
- at returns Tone mapped colour
-*/
-vec4 toneMap(in vec4 inColour, in float lum)
-{
-	// From Reinhard et al
-	// "Photographic Tone Reproduction for Digital Images"
-	
-	// Initial luminence scaling (equation 2)
-    inColour.rgb *= MIDDLE_GREY / (FUDGE + lum);
-
-	// Control white out (equation 4 nom)
-    inColour.rgb *= (1.0 + inColour.rgb / L_WHITE);
-
-	// Final mapping (equation 4 denom)
-	inColour.rgb /= (1.0 + inColour.rgb);
-	
-	return inColour;
-
-}
-
-

Deleted: data/data_extern/programs/ps_glow.cg
===================================================================
--- data/data_extern/programs/ps_glow.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/ps_glow.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,26 +0,0 @@
-struct vertexOut
-{
-    float4 position : POSITION;
-    float2 uv : TEXCOORD0;
-    float3 worldNormal : TEXCOORD1;
-    float3 worldView : TEXCOORD2;
-};
-
-float4 main(vertexOut input, uniform float alphaValue, uniform float cutoffAngle, uniform float exponent, uniform float time, uniform float4 color) : COLOR
-{
-    float3 Nn = normalize(input.worldNormal);
-    float3 Vn = normalize(input.worldView);
-    float alphaMod = dot(Nn, Vn);//this is a measure for how close we are to the edge of a model according to our view
-    float cutoff=cos(cutoffAngle * 3.14 / 180.0);//pi divided by 180
-    if(alphaMod<cutoff)//transform output range so it only affects angles close to 90 degrees
-    {
-        alphaMod/=cutoff;
-    }
-    else
-    {
-        alphaMod=1.0;
-    }
-    alphaMod = pow(alphaMod,exponent); //how fast should the intensity of the glow decrease
-    color.w = alphaMod * alphaValue * ((sin(time)/3.14 + 1.0) / 2.0 + 0.1);
-    return color;
-}
\ No newline at end of file

Deleted: data/data_extern/programs/skinningTwoWeightsShadowCasterVp.glsl
===================================================================
--- data/data_extern/programs/skinningTwoWeightsShadowCasterVp.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/skinningTwoWeightsShadowCasterVp.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,40 +0,0 @@
-// Example GLSL program for skinning with two bone weights per vertex
-
-attribute vec4 blendIndices;
-attribute vec4 blendWeights;
-
-// 3x4 matrix, passed as vec4's for compatibility with GL 2.0
-// GL 2.0 supports 3x4 matrices
-// Support 24 bones ie 24*3, but use 72 since our parser can pick that out for sizing
-uniform vec4 worldMatrix3x4Array[72];
-uniform mat4 viewProjectionMatrix;
-uniform vec4 ambient;
-
-void main()
-{
-	vec3 blendPos = vec3(0,0,0);
-
-	for (int bone = 0; bone < 2; ++bone)
-	{
-		// perform matrix multiplication manually since no 3x4 matrices
-        // ATI GLSL compiler can't handle indexing an array within an array so calculate the inner index first
-	    int idx = int(blendIndices[bone]) * 3;
-        // ATI GLSL compiler can't handle unrolling the loop so do it manually
-        // ATI GLSL has better performance when mat4 is used rather than using individual dot product
-        // There is a bug in ATI mat4 constructor (Cat 7.2) when indexed uniform array elements are used as vec4 parameter so manually assign
-		mat4 worldMatrix;
-		worldMatrix[0] = worldMatrix3x4Array[idx];
-		worldMatrix[1] = worldMatrix3x4Array[idx + 1];
-		worldMatrix[2] = worldMatrix3x4Array[idx + 2];
-		worldMatrix[3] = vec4(0);
-		// now weight this into final 
-		blendPos += (gl_Vertex * worldMatrix).xyz * blendWeights[bone];
-	}
-
-	// apply view / projection to position
-	gl_Position = viewProjectionMatrix * vec4(blendPos, 1);
-	
-	gl_FrontSecondaryColor = vec4(0,0,0,0);
-	gl_FrontColor = ambient;
-	gl_TexCoord[0] = gl_MultiTexCoord0;
-}

Deleted: data/data_extern/programs/skinningTwoWeightsVp.glsl
===================================================================
--- data/data_extern/programs/skinningTwoWeightsVp.glsl	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/skinningTwoWeightsVp.glsl	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,57 +0,0 @@
-// Example GLSL program for skinning with two bone weights per vertex
-
-attribute vec4 blendIndices;
-attribute vec4 blendWeights;
-
-// 3x4 matrix, passed as vec4's for compatibility with GL 2.0
-// GL 2.0 supports 3x4 matrices
-// Support 24 bones ie 24*3, but use 72 since our parser can pick that out for sizing
-uniform vec4 worldMatrix3x4Array[72];
-uniform mat4 viewProjectionMatrix;
-uniform vec4 lightPos[2];
-uniform vec4 lightDiffuseColour[2];
-
-void main()
-{
-	vec3 blendPos = vec3(0,0,0);
-	vec3 blendNorm = vec3(0,0,0);
-	
-	for (int bone = 0; bone < 2; ++bone)
-	{
-		// perform matrix multiplication manually since no 3x4 matrices
-        // ATI GLSL compiler can't handle indexing an array within an array so calculate the inner index first
-	    int idx = int(blendIndices[bone]) * 3;
-        // ATI GLSL compiler can't handle unrolling the loop so do it manually
-        // ATI GLSL has better performance when mat4 is used rather than using individual dot product
-        // There is a bug in ATI mat4 constructor (Cat 7.2) when indexed uniform array elements are used as vec4 parameter so manually assign
-		mat4 worldMatrix;
-		worldMatrix[0] = worldMatrix3x4Array[idx];
-		worldMatrix[1] = worldMatrix3x4Array[idx + 1];
-		worldMatrix[2] = worldMatrix3x4Array[idx + 2];
-		worldMatrix[3] = vec4(0);
-		// now weight this into final 
-	    float weight = blendWeights[bone];
-		blendPos += (gl_Vertex * worldMatrix).xyz * weight;
-		
-		mat3 worldRotMatrix = mat3(worldMatrix[0].xyz, worldMatrix[1].xyz, worldMatrix[2].xyz);
-		blendNorm += (gl_Normal * worldRotMatrix) * weight;
-
-	}
-
-	// apply view / projection to position
-	gl_Position = viewProjectionMatrix * vec4(blendPos, 1);
-
-	// simple vertex lighting model
-	vec3 lightDir0 = normalize(
-		lightPos[0].xyz -  (blendPos.xyz * lightPos[0].w));
-	vec3 lightDir1 = normalize(
-		lightPos[1].xyz -  (blendPos.xyz * lightPos[1].w));
-		
-	gl_FrontSecondaryColor = vec4(0);
-	gl_FrontColor = vec4(0.5, 0.5, 0.5, 1.0) 
-		+ clamp(dot(lightDir0, blendNorm), 0.0, 1.0) * lightDiffuseColour[0]
-		+ clamp(dot(lightDir1, blendNorm), 0.0, 1.0) * lightDiffuseColour[1];
-
-	gl_TexCoord[0] = gl_MultiTexCoord0;
-	
-}

Deleted: data/data_extern/programs/vs_glow.cg
===================================================================
--- data/data_extern/programs/vs_glow.cg	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/programs/vs_glow.cg	2018-12-11 16:22:11 UTC (rev 12181)
@@ -1,28 +0,0 @@
-struct vertexIn
-{
-    float4 position : POSITION;
-    float4 normal : NORMAL;
-    float2 uv : TEXCOORD0;
-};
-
-struct vertexOut
-{
-    float4 position : POSITION; //<! transformed position
-    float2 uv : TEXCOORD0; //<! passing on uv information
-    float3 worldNormal : TEXCOORD1; //<! surface normal transformed into world
-    float3 worldView : TEXCOORD2; //<! view direction transformed into world
-};
-
-vertexOut main(vertexIn input, uniform float4x4 iWorldTMatrix, uniform float4x4 iViewMatrix, uniform float4x4 worldMatrix, uniform float4x4 viewProjMatrix, uniform float inflate )
-{
-   vertexOut output;
-   float4 myPosition = input.position;
-   output.worldNormal=mul(iWorldTMatrix, input.normal).xyz; //transforming the normal
-   input.normal = normalize(float4(input.normal.xyz,0)); //normalizing the normal according to the three relevant parts
-   myPosition.xyz += inflate * input.normal; //inflating the model into a bigger shape
-   myPosition = mul(worldMatrix, myPosition); //transforming position into world
-   output.worldView = normalize(float3(iViewMatrix[0].w, iViewMatrix[1].w, iViewMatrix[2].w) - myPosition.xyz);//view direction according to world
-   output.position = mul(viewProjMatrix, myPosition); //finish transformation of the position into the projection space
-   output.uv = input.uv; //passing on uv information
-   return output;
-}
\ No newline at end of file

Modified: data/data_extern/resources.oxr
===================================================================
--- data/data_extern/resources.oxr	2018-12-11 13:52:30 UTC (rev 12180)
+++ data/data_extern/resources.oxr	2018-12-11 16:22:11 UTC (rev 12181)
@@ -12,11 +12,20 @@
     <ResourceLocation path = "images/textures/seamless"/>
     <ResourceLocation path = "images/textures/stellarobjects"/>
     <ResourceLocation path = "materials"        />
+    <ResourceLocation path = "materials/BumpMapping"        />
     <ResourceLocation path = "models"           />
     <ResourceLocation path = "packs/cubemap.zip" archiveType = "Zip"/>
     <ResourceLocation path = "packs/skybox.zip"  archiveType = "Zip"/>
+
     <ResourceLocation path = "programs"         />
+    <ResourceLocation path = "programs/GLSL"    />
+    <ResourceLocation path = "programs/Cg"    />
+    <ResourceLocation path = "programs/GLSL120/BumpMapping" />
+    <ResourceLocation path = "programs/GLSL120" />
+    <ResourceLocation path = "programs/GLSL150" />
+    <ResourceLocation path = "programs/GLSL400" />
 
+
     <ResourceLocation path = "gui/fonts"        />
     <ResourceLocation path = "gui/imagesets"    />
     <ResourceLocation path = "gui/looknfeels"   />



More information about the Orxonox-commit mailing list