CreateRenderTarget2D() public méthode

public CreateRenderTarget2D ( int w, int h, SurfaceFormat sf = SurfaceFormat.Color, DepthFormat df = DepthFormat.Depth24Stencil8, RenderTargetUsage usage = RenderTargetUsage.DiscardContents, int msc = 1, bool mipmap = false ) : RenderTarget2D
w int
h int
sf SurfaceFormat
df DepthFormat
usage RenderTargetUsage
msc int
mipmap bool
Résultat Microsoft.Xna.Framework.Graphics.RenderTarget2D
Exemple #1
0
        public void Hook(RTSRenderer renderer, GameState s, int ti)
        {
            ImageWidth  = s.CGrid.numCells.X;
            ImageHeight = s.CGrid.numCells.Y;
            Terrain     = renderer.CreateRenderTarget2D(ImageWidth, ImageHeight, SurfaceFormat.Color, DepthFormat.Depth24Stencil8, RenderTargetUsage.DiscardContents);
            TeamIndex   = ti;
            Team        = s.teams[TeamIndex];

            Vector3 center = new Vector3(s.CGrid.size.X * 0.5f, 0, s.CGrid.size.Y * 0.5f);

            float h = Grey.Vox.Region.HEIGHT + Camera.INITIAL_HIGH_SETTINGS.MaxDistance;

            mV  = Matrix.CreateLookAt(center + Vector3.Up * (h + 1f), center, -Vector3.UnitZ);
            mP  = Matrix.CreateOrthographic(s.CGrid.size.X, s.CGrid.size.Y, 0, h + 2f);
            mVP = mV * mP;

            fxCamera = renderer.CreateEffect();
            fxCamera.LightingEnabled    = false;
            fxCamera.FogEnabled         = false;
            fxCamera.TextureEnabled     = false;
            fxCamera.VertexColorEnabled = true;
            fxCamera.View       = mV;
            fxCamera.Projection = mP;
            fxCamera.World      = Matrix.Identity;

            mapPlanes = new Plane[6];
            float off = s.CGrid.size.Length() * 0.25f;

            mapPlanes[0] = new Plane(Vector3.UnitX, off);
            mapPlanes[1] = new Plane(Vector3.UnitY, 0);
            mapPlanes[2] = new Plane(Vector3.UnitZ, off);
            mapPlanes[3] = new Plane(-Vector3.UnitX, s.CGrid.size.X + off);
            mapPlanes[4] = new Plane(-Vector3.UnitY, h + 2f);
            mapPlanes[5] = new Plane(-Vector3.UnitZ, s.CGrid.size.Y + off);

            refreshFOW           = true;
            s.CGrid.OnFOWChange += (x, y, p, f) => {
                refreshFOW = refreshFOW | (p == ti);
            };

            TeamMap   = renderer.CreateTexture2D(s.CGrid.numCells.X, s.CGrid.numCells.Y, SurfaceFormat.Color, false);
            qSeen     = new Queue <SeenEntity>();
            tbScanner = new TimeBudget(SCAN_BINS);
            float r = (float)s.CGrid.numCells.X / SCAN_BINS;

            for (int i = 0; i < SCAN_BINS - 1; i++)
            {
                tbScanner.AddTask(new ScanTask((int)(r * i), (int)(r * (i + 1)), s.CGrid, Team, qSeen));
            }
            tbScanner.AddTask(new ScanTask((int)(r * (SCAN_BINS - 1)), s.CGrid.numCells.X, s.CGrid, Team, qSeen));
        }
Exemple #2
0
        public void Hook(RTSRenderer renderer, GameState s, int ti)
        {
            ImageWidth = s.CGrid.numCells.X;
            ImageHeight = s.CGrid.numCells.Y;
            Terrain = renderer.CreateRenderTarget2D(ImageWidth, ImageHeight, SurfaceFormat.Color, DepthFormat.Depth24Stencil8, RenderTargetUsage.DiscardContents);
            TeamIndex = ti;
            Team = s.teams[TeamIndex];

            Vector3 center = new Vector3(s.CGrid.size.X * 0.5f, 0, s.CGrid.size.Y * 0.5f);

            float h = Grey.Vox.Region.HEIGHT + Camera.INITIAL_HIGH_SETTINGS.MaxDistance;
            mV = Matrix.CreateLookAt(center + Vector3.Up * (h + 1f), center, -Vector3.UnitZ);
            mP = Matrix.CreateOrthographic(s.CGrid.size.X, s.CGrid.size.Y, 0, h + 2f);
            mVP = mV * mP;

            fxCamera = renderer.CreateEffect();
            fxCamera.LightingEnabled = false;
            fxCamera.FogEnabled = false;
            fxCamera.TextureEnabled = false;
            fxCamera.VertexColorEnabled = true;
            fxCamera.View = mV;
            fxCamera.Projection = mP;
            fxCamera.World = Matrix.Identity;

            mapPlanes = new Plane[6];
            float off = s.CGrid.size.Length() * 0.25f;
            mapPlanes[0] = new Plane(Vector3.UnitX, off);
            mapPlanes[1] = new Plane(Vector3.UnitY, 0);
            mapPlanes[2] = new Plane(Vector3.UnitZ, off);
            mapPlanes[3] = new Plane(-Vector3.UnitX, s.CGrid.size.X + off);
            mapPlanes[4] = new Plane(-Vector3.UnitY, h + 2f);
            mapPlanes[5] = new Plane(-Vector3.UnitZ, s.CGrid.size.Y + off);

            refreshFOW = true;
            s.CGrid.OnFOWChange += (x, y, p, f) => {
                refreshFOW = refreshFOW | (p == ti);
            };

            TeamMap = renderer.CreateTexture2D(s.CGrid.numCells.X, s.CGrid.numCells.Y, SurfaceFormat.Color, false);
            qSeen = new Queue<SeenEntity>();
            tbScanner = new TimeBudget(SCAN_BINS);
            float r = (float)s.CGrid.numCells.X / SCAN_BINS;
            for(int i = 0; i < SCAN_BINS - 1; i++) {
                tbScanner.AddTask(new ScanTask((int)(r * i), (int)(r * (i + 1)), s.CGrid, Team, qSeen));
            }
            tbScanner.AddTask(new ScanTask((int)(r * (SCAN_BINS - 1)), s.CGrid.numCells.X, s.CGrid, Team, qSeen));
        }