位置: 编程技术 - 正文

【猫猫的Unity Shader之旅】之初识屏幕特效(猫的喵喵)

编辑:rootadmin

推荐整理分享【猫猫的Unity Shader之旅】之初识屏幕特效(猫的喵喵),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:猫的猫的视频,猫的好玩视频,猫的合集,猫咪的testflight,猫猫的游戏,猫的好玩视频,猫猫的游戏,猫的猫的视频,内容如对您有帮助,希望把文章链接给更多的朋友!

  Shader除了可以处理模型的显示效果外,还有一个腻害的功能就是对要渲染的画面进行整体的处理,也就是屏幕特效。常见的比如《鬼泣4》里的动态模糊效果,景深效果,还有一些全局的颜色矫正,比如可以做出像《英雄联盟》中英雄死亡后的屏幕变灰的效果。Unity中实现屏幕特效需要用到一个脚本和一个Shader来完成。

利用脚本搭建一个屏幕特效系统

  要实现屏幕特效,首先需要面临的一个问题是特效作用于何处。既然说屏幕特效是对画面的一个整体控制,那么这个被作用的对象就应该能控制整个画面。在Unity中,这个对象就是摄像机。利用脚本,我们可以连接摄像机和Shader,在摄像机进行画面的渲染之前先经过Shader的处理。

  首先定义两个必要的变量,分别表示屏幕特效用到的材质和Shader。

  为了方便,定义一个材质的属性,当curMaterial为null时,动态创建一个材质。当然,我们也可以在Start里面先创建好。

  这个hideFlag表示我们动态创建的材质不会进行保存,因为它只是个临时的材质。在使用屏幕特效之前,我们首先应该检测下当前设备是不是支持屏幕特效,以及脚本所需的参数和资源有没有准备好。

  为了真正地实现对画面的控制,Unity提供了一个回调函数OnRenderImage(RenderTexture source, RenderTexture dest)。这两个RenderTexture表示渲染纹理。如果我们对画面不做任何处理的话,需要用Graphic.Blit(source, dest)把源纹理拷贝到目标纹理。这里的RenderTexture就是表示我们当前的画面是被当做一张贴图来表示的。

  因为我们要让source先经过Shader处理,所以需要传入使用的材质:

  这样就通过材质将脚本和Shader关联到一起了,完整代码如下:

Vertex&Fragment Shader【猫猫的Unity Shader之旅】之初识屏幕特效(猫的喵喵)

  屏幕特效另一个比较特殊的地方是它不能用Surface Shader,为了使用屏幕特效,我们需要Unity Shader的另一种形式:Vertex & FragMent Shader,或者叫可编程Shader。

  仅仅作为屏幕特效的基础介绍的一篇,这里我们没有必要深入介绍Vertex&Fragment Shader,只需要大概了解下它的结构就好:

  无需关注太多细节,只需要关注两个地方。一是#pragma指定了这个Shader的vertex和fragment方法,之前我们说过一个Shader执行的四个步骤,在Surface Shader中以四个函数来表示,分别是vert,surface,LightingXXX和finalcolor,在Vertex&Fragment Shader中这四个步骤合成了两个步骤(更准确说是Surface Shader拆成了四个步骤),后三个阶段统一为fragment阶段,逐片段进行处理,计算出最终颜色。虽然片段≠像素,但是由于它们是类似的,这里我们可以用fragment方法来处理屏幕特效的画面。

  另一个需要关注的就是fragment方法本身。我们对屏幕特效大部分的处理都要在这里进行,最终计算出摄像机渲染的某一位置的最终颜色值,在这里,我们简单地显示红色。

  现在,我们把脚本添加到摄像机上,再把Shader添加到脚本上。运行时就可以看到不论场景中放了什么东西,最终效果都是显示一片红色。

  通过定义_MainTex,我们可以使用RenderTexture中的信息,也就是待处理的画面。通过v2f_img中的uv分量可以得到具体的颜色值。v2f_img的定义可以在UnityCG.cginc中找到。对Shader稍作修改,可以显示出应有的画面:

  这里我们还定义了一个颜色属性,为了使用这个属性,我们需要对脚本进行修改:

  最终效果如图:

  

结束语

  屏幕特效非常强大,合理地运用可以极大地丰富画面的视觉效果。然而,由于RenderTexture是一种逐像素的处理,对于性能的消耗也是非常大的。尤其是在移动平台上,屏幕特效的使用更要慎之又慎。

unity嵌入网页:uWebKit使用记录 uWebKit支持ios1.关于WebTexture:要求:带有meshcollider才可以对网页进行点击拖拽的操作,在显示网页的面片上添加WebTexture脚本(组件)。修改:同时显示多

两个Collider遮挡的解决办法 两个Collider遮挡,也就是我在做一个关卡拖动的界面的时候,拖动的Collider遮盖住了关卡的按钮的Collider。结果要不就只能拖动要不就只能点击。这种情

Unity 简单随机创建玩家游戏名 usingUnityEngine;usingSystem.Collections;usingSystem;publicclassRandomName{//形容词跟名字的下标privatestaticintnameIndex=0;privatestaticintadjIndex=0;//两个保存随机游戏名的数组pri

标签: 猫的喵喵

本文链接地址:https://www.jiuchutong.com/biancheng/381444.html 转载请保留说明!

上一篇:Unity VS--在unity中进行断点调试(unity的vs)

下一篇:unity嵌入网页:uWebKit使用记录(unity做网页)

  • 税务师考试各科老师推荐
  • 间接税和直接税哪个容易转嫁
  • 个体工商户怎么申请开普票
  • 劳务报酬需要补税吗
  • 异地分公司需要什么手续
  • 结转完工入库产品成本计算
  • 个人独资企业的优缺点
  • 代开增值税票普票专票税点一样吗
  • 销售补差怎么做分析
  • 公司股东没有认缴资金
  • 专项申报的类别
  • 居民企业核定征收企业所得税的情形有哪些
  • 公司偷税漏税是当事人责任大还是法人责任大
  • 税务局代开的增值税专票可以红冲吗?
  • 实收资本没到账,一直挂其他应收款,有啥影响
  • 建筑业在外地预缴了增值税,可以报在本地吗
  • 增值税普通发票和普通发票的区别怎么交税
  • 出口退税逾期未申报的可以申请免税吗
  • 公司未分配利润太大,怎么处理好
  • 企业恢复生产经营方案
  • 改建或新建建筑物含义
  • 外贸企业增值税表二填写流程
  • 预交增值税扣税绑不了三方
  • 无偿划转房产能否入递延收益
  • 代付给其他供应商货物尾款怎么记账
  • 个人所得税的征收
  • 公司买厨房用品计入什么科目
  • 生产领用产成品验证会计分录
  • 水电费无发票如何做账
  • 两免三减半条件
  • php错误日志
  • 报销租房费用开发票
  • 佣金代扣代缴增值税还有附加税吗
  • Linux系统中怎么定位到java代码的方法级
  • 代金券消费怎么做分录
  • 公司为什么每年都要招人
  • 有进项没销项怎么处理,可以结转成本吗
  • 分配辅助生产成本时可能借记的科目有
  • 保险公司的展业方式
  • 财务收支审批制度主要包括
  • php删除指定字符串
  • 图片转base64格式返回给前端,前端如何展示?
  • vuecli打包项目
  • web前后端连接
  • ie11已经为了帮助保护您的计算机而关闭此网页
  • 分公司增值税可以放总公司一起缴纳吗
  • 金蝶软件怎么查银行科目明细
  • 非税收入票据是什么意思
  • 筹建期的费用计入什么科目
  • 在mysql中子查询是
  • 织梦怎么改首页背景
  • 购买债券的利息会计分录
  • 生产型出口企业的概念
  • 支付宝商户服务电话
  • 揭秘蟹卡骗局
  • sqlserver 通用存储过程分页代码(附使用ROW_NUMBER()和不使用ROW_NUMBER()两种情况性能分析)
  • 公款私存个人检讨
  • 取得收入未开具发票
  • 基金申购费的会计分录
  • 支付宝已经支付快递费怎么还支付
  • 发票金额与实际金额不符怎么举报
  • 集团固定资产管理
  • Mysql5.7.14 linux版密码忘记完美解决办法
  • ubuntu安装软件教程
  • windows无法启动怎么解决
  • 苹果电脑安装虚拟机会有什么影响
  • win10系统的设备管理器在哪里
  • windowsxp打不开网页怎么办
  • win10系统预览版
  • php创建注释的方法
  • win7升级win 10
  • 模型变量是什么
  • python3条件语句
  • Linux文本处理工具的实验总结
  • 谈一谈如何抓好党建工作
  • 安卓白屏问题有哪些
  • jQuery基于$.ajax设置移动端click超时处理方法
  • python else用法
  • 芜湖办税服务厅
  • 淮北税务局领导简介
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设