public void MapClouds(Camera cam, float time) { cam.SetTarget(cloudsRenderTarget); cam.SetTechnique("PerlinNoise"); cam.SetParam("xTexture", perlin.Map); cam.SetParam("xOvercast", 1.5f); cam.SetParam("xTime", time * 0.0005f); cam.Begin(); foreach (EffectPass pass in cam.Technique.Passes) { pass.Begin(); cam.device.VertexDeclaration = vDeclaration; cam.device.DrawUserPrimitives(PrimitiveType.TriangleStrip, perlin.Vertices, 0, 2); pass.End(); } cam.End(); cam.RevertTarget(); clouds = cloudsRenderTarget.GetTexture(); }
public void MapWater(Camera camera) { camera.Reflecting = false; Plane seaPlane = CreatePlane(waterHeight + 1.5f, Vector3.Down, camera, false); camera.device.ClipPlanes[0].Plane = seaPlane; camera.device.ClipPlanes[0].IsEnabled = true; camera.SetTarget(Refractor); DrawBase(camera, false); camera.device.ClipPlanes[0].IsEnabled = false; camera.RevertTarget(); waterMap = Refractor.GetTexture(); //waterMap.Save("watermap.jpg", ImageFileFormat.Jpg); }
public void MapMirror(Camera camera, Skydome sky) { camera.Reflecting = true; Plane seaPlane = CreatePlane(waterHeight - 0.5f, Vector3.Down, camera, true); camera.device.ClipPlanes[0].Plane = seaPlane; camera.device.ClipPlanes[0].IsEnabled = true; camera.SetTarget(Reflector); sky.Draw(camera, true); DrawBase(camera, true); camera.device.ClipPlanes[0].IsEnabled = false; camera.RevertTarget(); mirrorMap = Reflector.GetTexture(); //mirrorMap.Save("mirrormap.jpg", ImageFileFormat.Jpg); }