Advertisement
Guest User

Untitled

a guest
Jan 28th, 2015
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.84 KB | None | 0 0
  1. using UnityEngine;
  2.  
  3. [ExecuteInEditMode]
  4. [AddComponentMenu("Image Effects/Frost")]
  5. public class FrostEffect : MonoBehaviour
  6. {
  7.     public float FrostAmount = 0.5f; //0-1 (0=minimum Frost, 1=maximum frost)
  8.     public float EdgeSharpness = 1; //>=1
  9.     public float minFrost = 0; //0-1
  10.     public float maxFrost = 1; //0-1
  11.     public float seethroughness = 0.2f; //blends between 2 ways of applying the frost effect: 0=normal blend mode, 1="overlay" blend mode
  12.     public float distortion = 0.1f; //how much the original image is distorted through the frost (value depends on normal map)
  13.     public Texture2D Frost; //RGBA
  14.     public Texture2D FrostNormals; //normalmap
  15.     public Shader Shader; //ImageBlendEffect.shader
  16.    
  17.     private Material material;
  18.  
  19.     private void Awake()
  20.     {
  21.         material = new Material(Shader);
  22.         material.SetTexture("_BlendTex", Frost);
  23.         material.SetTexture("_BumpMap", FrostNormals);
  24.     }
  25.  
  26.     //first  try to implement layout, "HIT" was logged; frostamount didnt increased.
  27.     void OnTriggerEnter(Collider coll){
  28.         if (coll.gameObject.tag == "Player") {
  29.             Debug.Log ("HIT");
  30.             FrostAmount = 1;
  31.         }
  32.     }
  33.  
  34.     private void OnRenderImage(RenderTexture source, RenderTexture destination)
  35.     {
  36.         if (!Application.isPlaying)
  37.         {
  38.             material.SetTexture("_BlendTex", Frost);
  39.             material.SetTexture("_BumpMap", FrostNormals);
  40.             EdgeSharpness = Mathf.Max(1, EdgeSharpness);
  41.         }
  42.         //second test
  43.         //FrostAmount = 1;
  44.  
  45.         material.SetFloat("_BlendAmount", Mathf.Clamp01(Mathf.Clamp01(FrostAmount) * (maxFrost - minFrost) + minFrost));
  46.         material.SetFloat("_EdgeSharpness", EdgeSharpness);
  47.         material.SetFloat("_SeeThroughness", seethroughness);
  48.         material.SetFloat("_Distortion", distortion);
  49.  
  50.         Graphics.Blit(source, destination, material);
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement