/// <summary> /// Add a pipeline function. /// </summary> /// <param name="function">Pipeline function.</param> /// <returns>Pipeline.</returns> public Pipeline AddFunction(PipelineFunction function) { if (function == null) { throw new ArgumentNullException(nameof(function)); } functions.Add(function); return(this); }
private void OnPreRender() { Matrix4x4 projMat = cam.projectionMatrix; PipeLine.projMatrix = GL.GetGPUProjectionMatrix(projMat, false); PipeLine.rtProjMatrix = GL.GetGPUProjectionMatrix(projMat, true); PipeLine.lastVPMatrix = PipeLine.rtProjMatrix * PipeLine.viewMatrix; PipeLine.viewMatrix = Camera.current.worldToCameraMatrix; PipelineFunction.geometryCommandBuffer = geometryBuffer; PipelineFunction.motionVectorsCommandBuffer = motionVectorBuffer; PipelineFunction.ClearBuffer(); foreach (var i in onPreRenderEvents) { i.OnPreRenderEvent(); } }