public void StartRender(Texture Input) { start = true; EffectProcess.SetupProcess(Input); EarlyProcess.SetupProcess(EffectProcess.ProcessResult); if (branchProcessPath.Count > 0) { for (int i = 0; i < branchProcessPath.Count; i++) { if (i == 0) { branchProcessPath[i].SetupProcess(EarlyProcess.ProcessResult); } else { branchProcessPath[i].SetupProcess(branchProcessPath[i - 1].ProcessResult); } } TransitionProcess.SetupProcess(branchProcessPath[branchProcessPath.Count - 1].ProcessResult); } else { TransitionProcess.SetupProcess(EarlyProcess.ProcessResult); } PostProcess.SetupProcess(TransitionProcess.ProcessResult); StartCoroutine(OnRender()); }
IEnumerator OnRender(Texture input = null) { while (true) { EffectProcess.DoRenderProcess(input); EarlyProcess.DoRenderProcess(); for (int i = 0; i < branchProcessPath.Count; i++) { branchProcessPath[i].DoRenderProcess(); } TransitionProcess.DoRenderProcess(); PostProcess.DoRenderProcess(); yield return(new WaitForEndOfFrame()); } }