constructor(context, IFC) {
            this.shadows = {};
            // Controls how far away the shadow is computed
            this.cameraHeight = 10;
            this.darkness = 1.2;
            this.opacity = 1;
            this.resolution = 512;
            this.amount = 3.5;
            this.planeColor = 0xffffff;
            this.shadowOffset = 0;
            this.tempMaterial = new MeshBasicMaterial({ visible: false });
            this.depthMaterial = new MeshDepthMaterial();
            this.context = context;
            this.IFC = IFC;
            this.initializeDepthMaterial();
        }
Two pass Gaussian blur filter (horizontal and vertical blur shaders)
- described in http://www.gamerendering.com/2008/10/11/gaussian-blur-filter-shader/
  and used in http://www.cake23.de/traveling-wavefronts-lit-up.html

- 9 samples per pass
- standard deviation 2.7
- "h" and "v" parameters should be set to "1 / width" and "1 / height"