public LightSource(GraphicsDeviceManager graphics, int radius, LightAreaQuality quality, Color color)
        {
            switch (quality)
            {
            case LightAreaQuality.VeryLow:
                this.qualityRatio = 0.1f;
                break;

            case LightAreaQuality.Low:
                this.qualityRatio = 0.25f;
                break;

            case LightAreaQuality.Middle:
                this.qualityRatio = 0.5f;
                break;

            case LightAreaQuality.High:
                this.qualityRatio = 0.75f;
                break;

            case LightAreaQuality.VeryHigh:
                this.qualityRatio = 1f;
                break;
            }
            this.graphics     = graphics;
            this.Radius       = radius;
            this.RenderRadius = (float)radius * this.qualityRatio;
            float baseSize = (float)this.Radius * 2f;

            this.Size             = new Vector2(baseSize);
            baseSize             *= this.qualityRatio;
            this.RenderTargetSize = new Vector2(baseSize);
            PrintedLight          = new RenderTarget2D(graphics.GraphicsDevice, (int)baseSize, (int)baseSize);
            this.Color            = color;
        }
Example #2
0
 public LightSource(GraphicsDevice graphics, int radius, LightAreaQuality quality, Color color, BeamStencilType bst, SpotStencilType sst)
 {
     switch (quality)
     {
         case LightAreaQuality.VeryLow:
             this.qualityRatio = 0.1f;
             break;
         case LightAreaQuality.Low:
             this.qualityRatio = 0.25f;
             break;
         case LightAreaQuality.Middle:
             this.qualityRatio = 0.5f;
             break;
         case LightAreaQuality.High:
             this.qualityRatio = 0.75f;
             break;
         case LightAreaQuality.VeryHigh:
             this.qualityRatio = 1f;
             break;
     }
     this.graphics = graphics;
     this.Radius = radius;
     this.RenderRadius = (float)radius * this.qualityRatio;
     float baseSize = (float)this.Radius * 2f;
     this.Size = new Vector2(baseSize);
     baseSize *= this.qualityRatio;
     this.RenderTargetSize = new Vector2(baseSize);
     //PrintedLight = new RenderTarget2D(graphics, (int)baseSize, (int)baseSize);
     //BeamLight = new RenderTarget2D(graphics, (int)baseSize, (int)baseSize);
     this.Color = color;
     if (bst != BeamStencilType.None) BeamStencil = LightingEngine.Instance.BeamStencils[bst];
     if (sst != SpotStencilType.None) SpotStencil = LightingEngine.Instance.SpotStencils[sst].Item3;
 }