protected override void OnEnable() { instance = this; this.camera = Rendering.CreateCameraWorld(this.SceneObject, ClientAmbientOcclusion.RenderingTag, -1000); this.camera.ClearColor = ClientAmbientOcclusion.IsDisplayMask ? Color.FromArgb(0x99, 0xFF, 0xFF, 0xFF) : Color.FromArgb(0x00, 0x00, 0x00, 0x00); // transparent black this.camera.DrawMode = CameraDrawMode.Manual; this.blurPostEffect = new BlurPostEffect { RenderTextureDownsampling = 1, Passes = 2, IsEnabled = true }; this.layerRenderer = Client.Rendering.CreateLayerRenderer( this.SceneObject, TextureResource.NoTexture, drawOrder: ClientAmbientOcclusion.IsDisplayMask // display as overlay (over everything) ? DrawOrder.Overlay : DrawOrder.Occlusion); this.layerRenderer.CustomDraw += this.LayerRendererBeforeDrawHandler; this.effectInstanceCompose = EffectInstance.Create(EffectResourceAmbientOcclusionCompose); }
private void SetBlurParameters(Vector2Int size) { var blurAmount = this.settings.BlurAmount; BlurPostEffect.SetBlurEffectParameters( this.effectBlurHorizontal, dx: 1.0f / size.X, dy: 0, blurAmount: blurAmount); BlurPostEffect.SetBlurEffectParameters( this.effectBlurVertical, dx: 0, dy: 1.0f / size.Y, blurAmount: blurAmount); this.isBlurParametersDirty = false; }