void RenderLights(VLSLightLayer _layer)
        {
            ReleaseRenderTexture(ref _layer.renderTexture);
            RenderTexture buffer = RenderTexture.GetTemporary(pixelWidth, pixelHeight);

            _layer.renderTexture = RenderTexture.GetTemporary(pixelWidth, pixelHeight);

            RTCamera.clearFlags      = CameraClearFlags.Color;
            RTCamera.backgroundColor = Color.clear;

            RTCamera.cullingMask = _layer.layerMask;

            RTCamera.targetTexture = _layer.renderTexture;
            RTCamera.Render();

            if (_layer.blur.enabled && _layer.blur.iterations > 0)
            {
                BlurRenderTexture(_layer.renderTexture, buffer, _layer.blur.iterations, _layer.blur.spread);
            }
            else
            {
                Graphics.Blit(_layer.renderTexture, buffer);
            }

            if (_layer.overlay.enabled && _layer.overlay.texture != null)
            {
                GetAddOverlayMaterial().SetTexture("_OverlayTex", _layer.overlay.texture);
                GetAddOverlayMaterial().SetFloat("_Intensity", _layer.overlay.intensity);
                GetAddOverlayMaterial().SetFloat("_Scale", _layer.overlay.scale);
                GetAddOverlayMaterial().SetFloat("_XScrollSpeed", _layer.overlay.xScrollSpeed);
                GetAddOverlayMaterial().SetFloat("_YScrollSpeed", _layer.overlay.yScrollSpeed);
            }
            else
            {
                GetAddOverlayMaterial().SetTexture("_OverlayTex", null);
            }

            Graphics.Blit(buffer, _layer.renderTexture, GetAddOverlayMaterial());

            RenderTexture.ReleaseTemporary(buffer);
        }
Esempio n. 2
0
        void RenderLights(VLSLightLayer _layer)
        {
            ReleaseRenderTexture(ref _layer.renderTexture);
            RenderTexture buffer = RenderTexture.GetTemporary(pixelWidth, pixelHeight);
            _layer.renderTexture = RenderTexture.GetTemporary(pixelWidth, pixelHeight);

            RTCamera.clearFlags = CameraClearFlags.Color;
            RTCamera.backgroundColor = Color.clear;

            RTCamera.cullingMask = _layer.layerMask;

            RTCamera.targetTexture = _layer.renderTexture;
            RTCamera.Render();

            if (_layer.blur.enabled && _layer.blur.iterations > 0)
            {
                BlurRenderTexture(_layer.renderTexture, buffer, _layer.blur.iterations, _layer.blur.spread);
            }
            else
            {
                Graphics.Blit(_layer.renderTexture, buffer);
            }

            if (_layer.overlay.enabled && _layer.overlay.texture != null)
            {
                GetAddOverlayMaterial().SetTexture("_OverlayTex", _layer.overlay.texture);
                GetAddOverlayMaterial().SetFloat("_Intensity", _layer.overlay.intensity);
                GetAddOverlayMaterial().SetFloat("_Scale", _layer.overlay.scale);
                GetAddOverlayMaterial().SetFloat("_XScrollSpeed", _layer.overlay.xScrollSpeed);
                GetAddOverlayMaterial().SetFloat("_YScrollSpeed", _layer.overlay.yScrollSpeed);
            }
            else
            {
                GetAddOverlayMaterial().SetTexture("_OverlayTex", null);
            }

            Graphics.Blit(buffer, _layer.renderTexture, GetAddOverlayMaterial());

            RenderTexture.ReleaseTemporary(buffer);
        }