Advertisement
tonynogo

Demo 38 - Script

Jul 6th, 2017
11,495
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.07 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. [ExecuteInEditMode]
  5. public class PostRenderer : MonoBehaviour
  6. {
  7.     public Material _material;
  8.  
  9.     void Awake()
  10.     {
  11.         _material = new Material(Shader.Find("Custom/VHSeffect"));
  12.         _material.SetTexture("_SecondaryTex", Resources.Load("Textures/TVnoise") as Texture);
  13.         _material.SetFloat("_OffsetPosY", 0f);
  14.         _material.SetFloat("_OffsetColor", 0.01f);
  15.         _material.SetFloat("_OffsetDistortion", 480f);
  16.         _material.SetFloat("_Intensity", 0.64f);
  17.     }
  18.  
  19.     public void OnRenderImage(RenderTexture source, RenderTexture destination)
  20.     {
  21.         // TV noise
  22.         _material.SetFloat("_OffsetNoiseX", Random.Range(0f, 0.6f));
  23.         float offsetNoise = _material.GetFloat("_OffsetNoiseY");
  24.         _material.SetFloat("_OffsetNoiseY", offsetNoise + Random.Range(-0.03f, 0.03f));
  25.  
  26.         // Vertical shift
  27.         float offsetPosY = _material.GetFloat("_OffsetPosY");
  28.         if(offsetPosY > 0.0f)
  29.         {
  30.             _material.SetFloat("_OffsetPosY", offsetPosY - Random.Range(0f, offsetPosY));
  31.         }
  32.         else if (offsetPosY < 0.0f)
  33.         {
  34.             _material.SetFloat("_OffsetPosY", offsetPosY + Random.Range(0f, -offsetPosY));
  35.         }
  36.         else if (Random.Range(0, 150) == 1)
  37.         {
  38.             _material.SetFloat("_OffsetPosY", Random.Range(-0.5f, 0.5f));
  39.         }
  40.  
  41.         // Channel color shift
  42.         float offsetColor = _material.GetFloat("_OffsetColor");
  43.         if (offsetColor > 0.003f)
  44.         {
  45.             _material.SetFloat("_OffsetColor", offsetColor - 0.001f);
  46.         }
  47.         else if (Random.Range(0, 400) == 1)
  48.         {
  49.                 _material.SetFloat("_OffsetColor", Random.Range(0.003f, 0.1f));
  50.         }
  51.        
  52.         // Distortion
  53.         if (Random.Range(0, 15) == 1)
  54.         {
  55.             _material.SetFloat("_OffsetDistortion", Random.Range(1f, 480f));
  56.         }
  57.         else
  58.         {
  59.             _material.SetFloat("_OffsetDistortion", 480f);
  60.         }
  61.  
  62.         Graphics.Blit(source, destination, _material);
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement