CameraHotWave 脚本具体代码和代码说明如下:

using UnityEngine;

///

/// 实现相机热浪效果

///

[ExecuteInEditMode]     // 编辑状态下执行该类

[RequireComponent(typeof(Camera))]  // 要求有相机

public class CameraHotWave : MonoBehaviour {

public Shader curShader;                // shader变量参数

public Texture noise;                   // 噪点图片

[Range(0.0f, 1.0f)]

public float grayScaleAmount = 0.1f;    // 主图扭曲范围参数

[Range(0.0f, 1.0f)]

public float DistortTimeFactor = 0.15f; // 主图扭曲热浪动态变化速度参数

private Material curMaterial;           // 材质参数

public Material material                // 材质参数属性

{

get

{

// 材质为空,新建材质,并赋予热浪 shader

if (curMaterial == null)

{

curMaterial = new Material(curShader);

curMaterial.hideFlags = HideFlags.HideAndDontSave;

}

return curMaterial;

}

}

void Start()

{

// 判断系统是否支持图像特效

if (SystemInfo.supportsImageEffects == false)

{

enabled = false;

return;

}

// 判断当前shader 是否为空,是否支持

if (curShader != null && curShader.isSupported == false)

{

enabled = false;

}

}

///

/// 图片渲染函数

/// Camera的一个回调(message),他会在camera执行渲染时候被调用

///

/// 原图片

/// 目标图片

void OnRenderImage(RenderTexture sourceTexture, RenderTexture destTexture)

{

// 判断当前shader是否为空

// 不为空则设置控制赋值对用的shader参数,进行渲染

// 为空则不带 Material 渲染

if (curShader != null)

{

material.SetFloat("_LuminosityAmount", grayScaleAmount);

material.SetFloat("_DistortTimeFactor", DistortTimeFactor);

material.SetTexture("_NoiseTex", noise);

Graphics.Blit(sourceTexture, destTexture, material);

}

else

{

Graphics.Blit(sourceTexture, destTexture);

}

}

void Update()

{

// 保证值不越界在[0,1]范围

grayScaleAmount = Mathf.Clamp(grayScaleAmount, 0.0f, 1.0f);

}

void OnDisable()

{

// 失效时销毁新建的材质

if (curMaterial != null)

{

DestroyImmediate(curMaterial);

}

}

}

unity沙子堆积_Unity Shader 之 简单实现沙漠干旱热浪的效果相关推荐

  1. unity沙子堆积_unity游戏动态体积雾沙尘暴管理渲染插件Dynamic Fogamp;Mist 6.5 - 素材巷...

    unity游戏动态体积雾沙尘暴管理渲染着色器Dynamic Fog&Mist 6.5,是一种相机脚本和全屏图像后处理效果,可在游戏场景中添加实时的.移动的雾和天空薄雾,使其不那么枯燥乏味. D ...

  2. unity沙子堆积_unity游戏逼真沙子和白雪粒子特效渲染创建插件Basic Sand amp; Snow 1.0 - 素材巷...

    Basic Sand & Snow 1.0是写实风格的沙子和白雪粒子特效渲染创建游戏插件 Basic Sand & Snow allow you to add simple defor ...

  3. unity 太阳自发光_unity shader基础之——unity中实现环境光、自发光

    上篇主要讲的是unity中的光照模型及其原理,还有几种光照类型(自发光.环境光.漫反射.高光反射),后面几篇文章就开始在unity中实现这几种光照类型,本篇在unity实现自发光.环境光. 一.uni ...

  4. unity 半透明混合问题_Unity Shader教程 八、半透明物体的初步探索

    我必须要宣布一个不幸的消息:我们得抛弃跟随我们许久的Sakura.shader,而创建一个新的shader了.它已经完成了自己的使命. 重新写一个shader吧,可以是一个在附加篇写的那种,这次我不会 ...

  5. unity 半透明混合问题_Unity Shader 透明度混合的双面渲染(十八)

    效果: 双面渲染的透明度混合的物体.png 原图: transparent_texture.png Shader代码: Shader中2个Pass代码一样,一个只渲染背面,一个只渲染正面 // 透明度 ...

  6. Unity Shader 之 简单 护盾Shield 效果的实现

    Unity Shader 之 简单 护盾Shield 效果的实现 目录 Unity Shader 之 简单 护盾Shield 效果的实现 一.简单介绍 二.实现原理

  7. Unity Shader 之 简单实现物体被压扁(top顶点的逐渐与bottom顶点重合)的效果

    Unity Shader 之 简单实现物体被压扁(top顶点的逐渐与bottom顶点重合)的效果 目录 Unity

  8. Unity Shader 之 简单实现物体被黑洞吸收吞噬(或者从黑洞中出来)的效果

    Unity Shader 之 简单实现物体被黑洞吸收吞噬(或者从黑洞中出来)的效果 目录

  9. Unity Shader - 实现简单水体 - 浅水到深水颜色控制

    文章目录 制作步骤 准备好水体网格 扰动水体网格 添加水体网格色调,纹理 放置海上放哨点(一些随便放的立方体) 添加水的深浅透视效果 添加水光效 重构水顶点法线 正交的相机的深度需要注意 改进 Pro ...

最新文章

  1. dropout,batch norm 区别 顺序
  2. 我的业务要不要用人工智能?引入AI前你需要评估的(一)
  3. 白帽渗透测试的36条军规
  4. 腾讯企业IT部安全运营中心总监蔡晨:十年沉淀,腾讯iOA为企业安全保驾护航...
  5. PS教程第二十三课:套索工具
  6. 用mingw链接msvc生成的库时,无定义chkstk问题的解决
  7. Ext.tree.TreePanel 对复选框的处理(Tree)
  8. 农村新兴致富行业,小家电玩具换旧手机,最多月入几十万
  9. vue||简易版音乐播放器
  10. Julia Pro国内下载地址
  11. excel生成随机数 / random number in excel
  12. Spring系列学习之Spring Data Envers数据访问
  13. 如何将mp4视频制作成gif表情包
  14. 一文读懂身份证ocr识别
  15. open***用户验证(转自badb0y)
  16. CF 111B Petya and Divisors
  17. 第4期——华为WLAN产品介绍
  18. 怎么查看服务器主板开启虚拟化,主板BIOS中VT虚拟化怎么开启
  19. sed编辑器工作流程及使用方法
  20. java non-heap_Java堆内存Heap与非堆内存Non-Heap简介和设置

热门文章

  1. 如何看待数字藏品越来越火
  2. 区块链报告会心得体会3000_实习心得体会3000字篇【优秀篇】
  3. Python快速编程入门#学习笔记06# |第6章 :函数(学生管理系统)
  4. 谷歌聘请 macOS 老兵操盘新操作系统 Fuchsia OS
  5. 论文笔记:FLEX: Unifying Evaluation for Few-Shot NLP
  6. 直播带货系统开发,如何实现一个简单的直播平台
  7. Premiere室内背景场景MG动画PR素材MOGRT Vol.2
  8. 项目管理IPD产品开发
  9. 求解函数最值的几种算法,梯度下降法python实现
  10. 【Scratch-动作模块】碰到边缘就反弹和翻转方式