private void SetupLighting() { scene.AmbientLight = new ColorEx(0.2f, 0.2f, 0.2f); Light = scene.CreateLight("Light2"); Light.DiffuseColour = MinLightColour; Light.SetAttenuation(8000, 1, 0.0005f, 0); Light.SpecularColour = new ColorEx(1, 1, 1); LightNode = scene.RootSceneNode.CreateChildSceneNode("MovingLightNode"); LightNode.AttachObject(Light); //create billboard set BillboardSet bbs = scene.CreateBillboardSet("lightbbs", 1); bbs.SetMaterialName("Examples/Flare"); Billboard bb = bbs.CreateBillboard(new Vector3(0, 0, 0), MinLightColour); LightNode.AttachObject(bbs); mLightController = new LightGrassWibbler(Light, bb, MinLightColour, this.MaxLightColour, MinFlareSize, MaxFlareSize); // create controller, after this is will get updated on its own //WaveformControllerFunction func = new WaveformControllerFunction(WaveformType.Sine, 0.0f, 0.5f); //ControllerManager.Instance.CreateController(val, func); LightNode.Position = new Vector3(300, 250, -300); Animation anim = scene.CreateAnimation("LightTrack", 20); //Spline it for nce curves anim.SetInterpolationMode(Animation.InterpolationMode.IM_SPLINE);// = Mogre.Animation.InterpolationMode.IM_SPLINE; //create a srtack to animte the camera's node NodeAnimationTrack track = anim.CreateNodeTrack(0, LightNode); //setup keyframes TransformKeyFrame key = track.CreateNodeKeyFrame(0); key.Translate = new Vector3(300, 550, -300); key = track.CreateNodeKeyFrame(2); //B key.Translate = new Vector3(150, 600, -250); key = track.CreateNodeKeyFrame(4); //C key.Translate = new Vector3(-150, 650, -100); key = track.CreateNodeKeyFrame(6); //D key.Translate = new Vector3(-400, 500, -200); key = track.CreateNodeKeyFrame(8); //E key.Translate = new Vector3(-200, 500, -400); key = track.CreateNodeKeyFrame(10); //F key.Translate = new Vector3(-100, 450, -200); key = track.CreateNodeKeyFrame(12); //G key.Translate = new Vector3(-100, 400, 180); key = track.CreateNodeKeyFrame(14); //H key.Translate = new Vector3(0, 250, 600); key = track.CreateNodeKeyFrame(16); //I key.Translate = new Vector3(100, 650, 100); key = track.CreateNodeKeyFrame(18); //J key.Translate = new Vector3(250, 600, 0); key = track.CreateNodeKeyFrame(20); //K == A key.Translate = new Vector3(300, 550, -300); // Create a new animation state to track this AnimState = scene.CreateAnimationState("LightTrack"); AnimState.Enabled = true; }