unity沙子堆积_Unity Shader 之 简单实现沙漠干旱热浪的效果
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 之 简单实现沙漠干旱热浪的效果相关推荐
- unity沙子堆积_unity游戏动态体积雾沙尘暴管理渲染插件Dynamic Fogamp;Mist 6.5 - 素材巷...
unity游戏动态体积雾沙尘暴管理渲染着色器Dynamic Fog&Mist 6.5,是一种相机脚本和全屏图像后处理效果,可在游戏场景中添加实时的.移动的雾和天空薄雾,使其不那么枯燥乏味. D ...
- unity沙子堆积_unity游戏逼真沙子和白雪粒子特效渲染创建插件Basic Sand amp; Snow 1.0 - 素材巷...
Basic Sand & Snow 1.0是写实风格的沙子和白雪粒子特效渲染创建游戏插件 Basic Sand & Snow allow you to add simple defor ...
- unity 太阳自发光_unity shader基础之——unity中实现环境光、自发光
上篇主要讲的是unity中的光照模型及其原理,还有几种光照类型(自发光.环境光.漫反射.高光反射),后面几篇文章就开始在unity中实现这几种光照类型,本篇在unity实现自发光.环境光. 一.uni ...
- unity 半透明混合问题_Unity Shader教程 八、半透明物体的初步探索
我必须要宣布一个不幸的消息:我们得抛弃跟随我们许久的Sakura.shader,而创建一个新的shader了.它已经完成了自己的使命. 重新写一个shader吧,可以是一个在附加篇写的那种,这次我不会 ...
- unity 半透明混合问题_Unity Shader 透明度混合的双面渲染(十八)
效果: 双面渲染的透明度混合的物体.png 原图: transparent_texture.png Shader代码: Shader中2个Pass代码一样,一个只渲染背面,一个只渲染正面 // 透明度 ...
- Unity Shader 之 简单 护盾Shield 效果的实现
Unity Shader 之 简单 护盾Shield 效果的实现 目录 Unity Shader 之 简单 护盾Shield 效果的实现 一.简单介绍 二.实现原理
- Unity Shader 之 简单实现物体被压扁(top顶点的逐渐与bottom顶点重合)的效果
Unity Shader 之 简单实现物体被压扁(top顶点的逐渐与bottom顶点重合)的效果 目录 Unity
- Unity Shader 之 简单实现物体被黑洞吸收吞噬(或者从黑洞中出来)的效果
Unity Shader 之 简单实现物体被黑洞吸收吞噬(或者从黑洞中出来)的效果 目录
- Unity Shader - 实现简单水体 - 浅水到深水颜色控制
文章目录 制作步骤 准备好水体网格 扰动水体网格 添加水体网格色调,纹理 放置海上放哨点(一些随便放的立方体) 添加水的深浅透视效果 添加水光效 重构水顶点法线 正交的相机的深度需要注意 改进 Pro ...
最新文章
- dropout,batch norm 区别 顺序
- 我的业务要不要用人工智能?引入AI前你需要评估的(一)
- 白帽渗透测试的36条军规
- 腾讯企业IT部安全运营中心总监蔡晨:十年沉淀,腾讯iOA为企业安全保驾护航...
- PS教程第二十三课:套索工具
- 用mingw链接msvc生成的库时,无定义chkstk问题的解决
- Ext.tree.TreePanel 对复选框的处理(Tree)
- 农村新兴致富行业,小家电玩具换旧手机,最多月入几十万
- vue||简易版音乐播放器
- Julia Pro国内下载地址
- excel生成随机数 / random number in excel
- Spring系列学习之Spring Data Envers数据访问
- 如何将mp4视频制作成gif表情包
- 一文读懂身份证ocr识别
- open***用户验证(转自badb0y)
- CF 111B Petya and Divisors
- 第4期——华为WLAN产品介绍
- 怎么查看服务器主板开启虚拟化,主板BIOS中VT虚拟化怎么开启
- sed编辑器工作流程及使用方法
- java non-heap_Java堆内存Heap与非堆内存Non-Heap简介和设置
热门文章
- 如何看待数字藏品越来越火
- 区块链报告会心得体会3000_实习心得体会3000字篇【优秀篇】
- Python快速编程入门#学习笔记06# |第6章 :函数(学生管理系统)
- 谷歌聘请 macOS 老兵操盘新操作系统 Fuchsia OS
- 论文笔记:FLEX: Unifying Evaluation for Few-Shot NLP
- 直播带货系统开发,如何实现一个简单的直播平台
- Premiere室内背景场景MG动画PR素材MOGRT Vol.2
- 项目管理IPD产品开发
- 求解函数最值的几种算法,梯度下降法python实现
- 【Scratch-动作模块】碰到边缘就反弹和翻转方式