/// <summary> /// Initialize terrain context /// </summary> private void InitializeContext() { float x = this.minimapArea.Maximum.X - this.minimapArea.Minimum.X; float y = this.minimapArea.Maximum.Y - this.minimapArea.Minimum.Y; float z = this.minimapArea.Maximum.Z - this.minimapArea.Minimum.Z; float aspect = this.minimapBox.Height / this.minimapBox.Width; float near = 0.1f; Vector3 eyePos = new Vector3(0, y + near, 0); Vector3 target = Vector3.Zero; Matrix view = Matrix.LookAtLH( eyePos, target, Vector3.UnitZ); Matrix proj = Matrix.OrthoLH( x / aspect, z, near, y + near); this.drawContext = new DrawContext() { DrawerMode = DrawerModes.Forward | DrawerModes.OpaqueOnly, ViewProjection = view * proj, EyePosition = eyePos, EyeTarget = target, Lights = SceneLights.CreateDefault(), }; }
/// <summary> /// Create default set of lights /// </summary> /// <returns>Returns default set of ligths</returns> public static SceneLights CreateDefault() { var lights = new[] { SceneLightDirectional.KeyLight, SceneLightDirectional.FillLight, SceneLightDirectional.BackLight, }; var defLights = new SceneLights(); defLights.AddRange(lights); return(defLights); }