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(); }
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(); }
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); }