示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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();
        }