位置: 编程技术 - 正文

Unity3D中的Post effects(unityprefab)

编辑:rootadmin
提要

推荐整理分享Unity3D中的Post effects(unityprefab),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Unity3d中的扇形检测,unity post processing stack,unityprefab,unityprefab,unity form,Unity3d中的碰撞器和触发器的区别,Unity3d中的碰撞器和触发器的区别,Unity3d中的扇形检测,内容如对您有帮助,希望把文章链接给更多的朋友!

所谓post effects,就是后处理,在渲染的流水线中属于最后的阶段,处理的对象是由场景生成的一张图片。常见的后处理效果有HDR,Motion Blur等,通过对屏幕空间的后处理,可以很方便的调整游戏整体的风格。下面是要用到的场景。

Unity的ShaderLab内建变量

为了编程方便,Shaderlab中内建了一些变量,可以在Shader中直接引用。

这里要用到的 _SinTime - 时间的的正弦函数。

更多的内置变量可以参考这里 ShaderLab built-in values

基本步骤

主要思路就是首先1)将摄像机的RenderTexture传递到Shder里面,Shader在GPU中进行计算,然后2)再将处理后的图片传递回来。

第一步需要用C#脚本来处理,第二步要自己创建Shader。

灰度

创建脚本

TestRenderImage.cs

由于要使用Shader,在程序中动态地创建了一个纹理。

OnRenderImage是Unity内建的回调函数,在所有渲染完成后被调用,来渲染图片的后期处理效果。

在代码中,主要是改变Shader中的_LuminosityAmount变量。

Graphics.Blit函数用于拷贝源纹理到目的渲染纹理。

这主要是用于实现图像效果。Blit设置dest到激活的渲染纹理,在材质上设置source作为_MainTex属性,并且绘制一个全屏Quad。

将脚本拖拽到MainCamera上面。

接下来创建一个Shader,内容如下

拖拽到刚才的脚本上,调节面板上的参数,就可以得到黑白程度不同的效果。

像素画

这个效果能够将3D场景直接转换成像素风。

Unity3D中的Post effects(unityprefab)

直接看Shader

在C#中修改_NumPixel变量就可以得到不同程度像素风格的图片了。

渲染深度

首先要将相机的深度图传递到shader中去。在shader中,只要申明

sampler2D _CameraDepthTexture变量就可以对相机的深度图进行引用。

还需要在脚本的Update函数中加入

最后贴一下Shade代码运行结果

将Post effects融入到Game Play

游戏中常常会用到老电影的效果,思路其实就是图层的叠加。

+ + + =

shader代码

barrelDistortion用于产生一个镜头的畸变。公式的来由:

If (u,v) are the coordinates of a feature in the undistorted perfect image plane, then (u', v') are the coordinates of the feature on the distorted image plate, ie the scanned or captured image from the camera. The distortion occurs radially away from the image center, with correction for the image aspect ratio (image_aspect = physical image width/height), as follows:The constant k is the distortion coefficient that appears on the lens panel and through Sizzle. It is generally a small positive or negative number under 1%. The constant kcube is the cubic distortion value found on the image preprocessor's lens panel: it can be used to undistort or redistort images, but it does not affect or get computed by the solver. When no cubic distortion is needed, neither is the square root, saving time.

其他部分的解释参考参考中的文章。

参考

UnityShaders and Effects Cookbook

【Unity Shaders】游戏性和画面特效——创建一个老电影式的画面特效

Lens Distortion White Paper -

Unity3D - 资源管理 转载自:

Unity3D之Transform参数 转载自:

Unity3D使用shader实现灰图 转载自:

标签: unityprefab

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

上一篇:Unity 3D 接入 移动MM (3.1.3)计费SDK(unity连接)

下一篇:Unity3D - 资源管理(unity资源包管理器)

  • 境外培训费计入关税完税价格
  • 税务知识:同期资料应包括哪些内容?
  • 利润表中的所得税
  • 企业对企业分红要缴纳什么税免税分红
  • 如何合理把公司的钱拿出来
  • T3现金流量表怎么删除
  • 发票开工程服务和工程款的区别
  • 工业企业外购存货的入账价值一般包括增值税吗
  • 月末本年利润余额怎么算
  • 老板买增票财务怎么做账
  • 计提业务招待费和办公费需要附件吗?
  • 短期理财的门槛
  • 理财产品增值税纳税人
  • 上月未抵扣完的进项税本月可以抵扣吗
  • 有税收完税证明还需要发票吗
  • 建筑业增值税税率由11调整到10
  • 发票作废了还能查验吗
  • 提现的现金支票是什么
  • 投资收益年底结转怎么算
  • 增值税普通发票几个点
  • 工程结算收入以前年度多结转收入怎么处理?
  • 投资电影分红款如何开具发票?
  • 工资计提金额
  • w10系统搜索
  • linux mint 20.1安装
  • php怎么学
  • 小程序在线反编译网页版
  • 系统win7旗舰版
  • 建造合同完工百分比法
  • 目前超频最高几ghz
  • 收不回的应收账款会计分录
  • npm安装node指定版本
  • 社会团体账务处理流程举例
  • head命令中表示输出文件前5行的参数是
  • day03-CSS
  • 公司注册资金多好还是少好
  • 损益类科目明细账图片
  • 公司全额承担个税会计分录
  • 帝国cms移动端
  • 附有销售退回条件的商品销售
  • 什么是子公司 和控股的区别
  • 对公户单笔转账有限额吗
  • 金蝶迷你版怎么打印明细账
  • 所得税费用是属于费用类吗
  • 短期借款利息怎么做账
  • 典当行必须出具当票吗
  • 企业付的房租税费会计分录
  • 增值税发票内容填写不全应如何进行处理?
  • 长期股权投资稀释股权的两种
  • 评估价计入什么科目
  • 税控盘没有抄税是什么意思
  • 产品的销售费用计入
  • 金税盘初始化密码
  • 快递费可以抵扣销项吗
  • 汽车4s店有哪些功能
  • 进项票是服务费怎么做会计分录
  • 委托收款的流程
  • sqlserver恢复模式简单和完整
  • mysql数据库增量备份命令
  • mysql数据库完全备份
  • mysql 源码 下载
  • u盘安装win7系统教程图解
  • windows8锁屏
  • Win7系统打印机共享无法保存打印机设置0x000006d9
  • win8的ie浏览器
  • cocos creator js ts
  • Unity3D游戏开发标准教程
  • pythonreduce函数的作用
  • javascript prototype inheritence
  • div+css布局是什么
  • unity ui图层
  • unity3d怎么改变物体大小
  • shell eval用法
  • jquery warp
  • jQuery AjaxUpload 上传图片代码
  • android 图形引擎
  • 新吉高铁开工典礼
  • 关于税收的问题及答案
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设