function BackgroundMaterial(name, scene) {
            var _this = _super.call(this, name, scene) || this;
            _this.primaryColor = BABYLON.Color3.White();
            _this.primaryLevel = 1;
            _this.secondaryColor = BABYLON.Color3.Gray();
            _this.secondaryLevel = 1;
            _this.tertiaryColor = BABYLON.Color3.Black();
            _this.tertiaryLevel = 1;
            _this.reflectionTexture = null;
            _this.reflectionBlur = 0;
            _this.diffuseTexture = null;
            /**
             * Specify the list of lights casting shadow on the material.
             * All scene shadow lights will be included if null.
             */
            _this._shadowLights = null;
            _this.shadowLights = null;
            _this.shadowBlurScale = 1;
            _this.shadowLevel = 0;
            _this.sceneCenter = BABYLON.Vector3.Zero();
            _this.opacityFresnel = true;
            _this.reflectionFresnel = false;
            _this.reflectionFalloffDistance = 0.0;
            _this.reflectionAmount = 1.0;
            _this.reflectionReflectance0 = 0.05;
            _this.reflectionReflectance90 = 0.5;
            _this.useRGBColor = true;
            _this.enableNoise = false;
            /**
             * Number of Simultaneous lights allowed on the material.
             */
            _this._maxSimultaneousLights = 4;
            _this.maxSimultaneousLights = 4;
            /**
             * Keep track of the image processing observer to allow dispose and replace.
             */
            _this._imageProcessingObserver = null;
            // Temp values kept as cache in the material.
            _this._renderTargets = new BABYLON.SmartArray(16);
            _this._reflectionControls = BABYLON.Vector4.Zero();
            // Setup the default processing configuration to the scene.
            _this._attachImageProcessingConfiguration(null);
            _this.getRenderTargetTextures = function () {
                _this._renderTargets.reset();
                if (_this._diffuseTexture && _this._diffuseTexture.isRenderTarget) {
                    _this._renderTargets.push(_this._diffuseTexture);
                }
                if (_this._reflectionTexture && _this._reflectionTexture.isRenderTarget) {
                    _this._renderTargets.push(_this._reflectionTexture);
                }
                return _this._renderTargets;
            };
            return _this;
        }
constructor
@param name The name of the material
@param scene The scene to add the material to