12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class DepthFog : MonoBehaviour
- {
- Camera Cam;
- Material fogmat;
- public float StartDistance;
- public float EndDistance;
- public float Height;
- public Color FogCol;
- void Awake()
- {
- fogmat = new Material(Shader.Find("Hidden/DepthFog"));
- Cam = this.GetComponent<Camera>();
- }
- // Update is called once per frame
- void Update()
- {
-
- }
- private void OnRenderImage(RenderTexture source, RenderTexture destination)
- {
- if (fogmat == null|| Cam==null) return;
- Shader.SetGlobalFloat("_StartDistance", StartDistance);
- Shader.SetGlobalFloat("_EndDistance", EndDistance);
- Shader.SetGlobalFloat("_Height", Height);
- Shader.SetGlobalColor("_FogCol", FogCol);
- Matrix4x4 vp = GL.GetGPUProjectionMatrix(Cam.projectionMatrix, false) * Cam.worldToCameraMatrix;
- vp = vp.inverse;
- Shader.SetGlobalMatrix("_InvVP", vp);
- Graphics.Blit(source, destination, fogmat);
- }
- }
|