MaterialDef Terrain { // Parameters to material: // regionXColorMap: X = 1..4 the texture that should be appliad to state X // regionX: a Vector3f containing the following information: // regionX.x: the start height of the region // regionX.y: the end height of the region // regionX.z: the texture scale for the region // it might not be the most elegant way for storing these 3 values, but it packs the data nicely :) // slopeColorMap: the texture to be used for cliffs, and steep mountain sites // slopeTileFactor: the texture scale for slopes // terrainSize: the total size of the terrain (used for scaling the texture) MaterialParameters { Texture2D region1ColorMap Texture2D region2ColorMap Texture2D region3ColorMap Texture2D region4ColorMap Texture2D slopeColorMap Float slopeTileFactor Float terrainSize Vector3 region1 Vector3 region2 Vector3 region3 Vector3 region4 } Technique { VertexShader GLSL100: Common/MatDefs/Terrain/HeightBasedTerrain.vert FragmentShader GLSL100: Common/MatDefs/Terrain/HeightBasedTerrain.frag WorldParameters { WorldViewProjectionMatrix WorldMatrix NormalMatrix } } Technique { } }