public void MapWater(Camera camera) { camera.Reflecting = false; Plane refractionPlane = CreatePlane(waterHeight + 1.5f, Vector3.Down, camera, false); camera.SetParam("ClipPlane0", new Vector4(refractionPlane.Normal, refractionPlane.D)); camera.SetParam("Clipping", true); camera.device.SetRenderTarget(refractionT); camera.device.Clear(ClearOptions.Target | ClearOptions.DepthBuffer | ClearOptions.Stencil, Color.Transparent, 1.0f, 0); DrawGround(camera, false); camera.RevertTarget(); camera.SetParam("Clipping", false); refractionMap = refractionT; }
public void MapMirror(Camera camera, Sky sky) { camera.Reflecting = true; Plane reflectionPlane = CreatePlane(waterHeight - 0.5f, Vector3.Down, camera, true); camera.SetParam("ClipPlane0", new Vector4(reflectionPlane.Normal, reflectionPlane.D)); camera.SetParam("Clipping", true); camera.SetTarget(reflectionT); camera.device.Clear(ClearOptions.Target | ClearOptions.DepthBuffer | ClearOptions.Stencil, Color.SteelBlue, 1.0f, 0); sky.DrawClouds(camera); DrawGround(camera, true); camera.SetParam("Clipping", false); camera.RevertTarget(); reflectionMap = reflectionT; }