void BlitLightsToLayer(VLSPassLayer _layer, RenderTexture _input, RenderTexture _output)
        {
            tempCompMat = GetCompositeMaterial();// (_layer.overlay.enabled && _layer.overlay.texture != null) ? GetCompositeMaterialwithOverlay() : GetCompositeMaterial();

            tempBuffer = RenderTexture.GetTemporary(pixelWidth, pixelHeight);
            tempBuffer.Create();

            if (_layer.lightsEnabled || _layer.lightLayerMask == 0)
            {
                for (int i = 0; i < lightPasses.Length; i++)
                {
                    if (((int)Mathf.Pow(2, i) & _layer.lightLayerMask) != 0)
                    {
                        Graphics.Blit(lightPasses[i].renderTexture, tempBuffer, GetMultiplyMaterial());
                    }
                }
            }

            tempCompMat.SetTexture("_OverlayTex", tempBuffer);

            tempCompMat.SetFloat("_Intensity", _layer.lightIntensity);
            tempCompMat.SetColor("_AmbientColor", _layer.useSceneAmbientColor ? RenderSettings.ambientLight : _layer.ambientColor);

            if (_layer.blur.enabled)
            {
                BlurRenderTexture(_input, _input, _layer.blur.iterations, _layer.blur.spread);
            }

            Graphics.Blit(_input, _output, tempCompMat);

            ReleaseRenderTexture(ref tempBuffer);
        }
        void RenderLayer(VLSPassLayer _layer)
        {
            ReleaseRenderTexture(ref _layer.renderTexture);
            _layer.renderTexture = RenderTexture.GetTemporary(pixelWidth, pixelHeight);

            for (int i = 0; i < lightPasses.Length; i++)
            {
                RTCamera.cullingMask = (_layer.layerMask & ~lightPasses[i].layerMask);
            }

            //defaultLayer.layerMask = RTCamera.cullingMask;

            RTCamera.clearFlags      = CameraClearFlags.Color; //_layer.clearFlag;
            RTCamera.backgroundColor = Color.clear;            // _layer.backgroundColor;

            RTCamera.targetTexture = _layer.renderTexture;
            RTCamera.Render();
        }
Exemple #3
0
        void RenderLayer(VLSPassLayer _layer)
        {
            ReleaseRenderTexture(ref _layer.renderTexture);
            _layer.renderTexture = RenderTexture.GetTemporary(pixelWidth, pixelHeight);

            for (int i = 0; i < lightPasses.Length; i++)
                RTCamera.cullingMask = (_layer.layerMask & ~lightPasses[i].layerMask);

            //defaultLayer.layerMask = RTCamera.cullingMask;

            RTCamera.clearFlags = CameraClearFlags.Color; //_layer.clearFlag;
            RTCamera.backgroundColor = Color.clear;// _layer.backgroundColor;

            RTCamera.targetTexture = _layer.renderTexture;
            RTCamera.Render();
        }
Exemple #4
0
        void BlitLightsToLayer(VLSPassLayer _layer, RenderTexture _input, RenderTexture _output)
        {
            tempCompMat = GetCompositeMaterial();// (_layer.overlay.enabled && _layer.overlay.texture != null) ? GetCompositeMaterialwithOverlay() : GetCompositeMaterial();

            tempBuffer = RenderTexture.GetTemporary(pixelWidth, pixelHeight);
            tempBuffer.Create();

            if (_layer.lightsEnabled || _layer.lightLayerMask == 0)
                for (int i = 0; i < lightPasses.Length; i++)
                    if (((int)Mathf.Pow(2, i) & _layer.lightLayerMask) != 0)
                        Graphics.Blit(lightPasses[i].renderTexture, tempBuffer, GetMultiplyMaterial());
            
            tempCompMat.SetTexture("_OverlayTex", tempBuffer);

            tempCompMat.SetFloat("_Intensity", _layer.lightIntensity);
            tempCompMat.SetColor("_AmbientColor", _layer.useSceneAmbientColor ? RenderSettings.ambientLight : _layer.ambientColor);

            if (_layer.blur.enabled)
                BlurRenderTexture(_input, _input, _layer.blur.iterations, _layer.blur.spread);
            
            Graphics.Blit(_input, _output, tempCompMat);

            ReleaseRenderTexture(ref tempBuffer);
        }