Exemplo n.º 1
0
        public override void Render(PostProcessRenderContext context)
        {
            PerCamVariables vars = GetVariables(context.camera);

            // Update the time parameters.
            var time = Time.realtimeSinceStartup;

            var delta = time - vars._prevTime;

            vars._jumpTime += delta * settings.jump.value * 11.3f;
            vars._prevTime  = time;

            // Drift parameters (time, displacement)
            var vdrift = new Vector2(
                time * 606.11f % (Mathf.PI * 2),
                settings.drift.value * 0.04f
                );

            // Jitter parameters (threshold, displacement)
            var jv      = settings.jitter.value;
            var vjitter = new Vector3(
                Mathf.Max(0, 1.001f - jv * 1.2f),
                0.002f + jv * jv * jv * 0.05f
                );

            // Jump parameters (scroll, displacement)
            var vjump = new Vector2(vars._jumpTime, settings.jump.value);

            var sheet = context.propertySheets.Get(shader);

            sheet.properties.SetVector(_Parameters0, new Vector4((int)(time * 10000), settings.shake.value * 0.2f, vdrift.x, vdrift.y));
            sheet.properties.SetVector(_Parameters1, new Vector4(vjitter.x, vjitter.y, vjump.x, vjump.y));
            context.command.BlitFullscreenTriangle(context.source, context.destination, sheet, 0);
        }
Exemplo n.º 2
0
 static PerCamVariables GetVariables(Camera cam)
 {
     if (variables.TryGetValue(cam, out PerCamVariables vars))
     {
         return(vars);
     }
     variables[cam] = new PerCamVariables();
     return(variables[cam]);
 }