位置: 编程技术 - 正文

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资源包管理器)

  • 高新技术企业享受15%税率优惠的条件
  • 个税由公司承担的账务处理
  • 烟叶税税率是多少2019
  • 现金流量表现金流量项目明细分类
  • 公司内部人员发言稿
  • 房地产企业没有退还的履约保证金税务
  • 从银行提取现金用途
  • 未确认融资费用是一级科目吗
  • 研发废料收入抵研发
  • 商业企业购货分录
  • 房地产公司开水电费发票
  • 工资表不给看
  • 资本公积转实收资本会计科目
  • 社保基金的管理模式
  • 生育津贴个税汇算清缴可以扣除吗
  • 增值税专用发票的税率是多少啊
  • 工程款发票备注栏项目名称
  • 小规模纳税人还是一般纳税人
  • 研发人员工资加计
  • 代购本无罪,逃避关税须处罚
  • 收到上级补助收入怎么记账
  • 股利分配是在当期损益吗
  • 别人帮我们公司代定机票怎么做账
  • 天猫技术服务费什么时候返还
  • 去年的企业所得税
  • 地铁充值发票能报销吗
  • window1020h2更新问题
  • 维修进水的笔记怎么写
  • 付款给对方怎么做分录
  • Linux系统怎么设置常亮
  • win10商店下载错误怎么回事
  • 跨年度坏账准备转回账务处理
  • php使用什么开发工具
  • 个人所得税减免政策2023
  • 用抵扣券买了东西可以退吗
  • 前端项目如何部署到服务器
  • phpsql防注入代码
  • php单例模式的简写是什么
  • ci框架过时了吗
  • 直接进入税金及附加的科目
  • while循环语法结构
  • 企业购房怎么贷款
  • 付了工资的资产负债表怎么填
  • 建筑劳务公司税务筹划
  • 如何完成资产负债表
  • 营改增后所得税怎么计算
  • 办外经证需要交税吗
  • 保险公司 返点
  • 事业单位跨年度错账调整
  • 银行证书费入什么科目
  • 收到退回多付的材料退款
  • 可转债不卖会亏钱吗
  • 一般纳税人的进项税率是多少
  • 银行开户许可证怎么查询
  • 投资性房地产的范围
  • 国库单一账户体系包括哪些账户
  • sql连接查询实验报告
  • win2008r2下载
  • 微软警告:64位Win7系统或无法安装KB3033929补丁更新
  • 安装网络设备
  • linux的移植
  • win10系统如何设置不休眠
  • tensorflow.nn
  • python爬虫爬取京东某个商品
  • NGUI之UITab Bar的不能将Sprite与SelectedSprite设置成相同的精灵
  • 商务英语考英语笔译 算跨考吗
  • nodejs实战
  • shell正则表达式语法
  • jquery里的ready是什么意思
  • 安卓工程如何正常启动
  • jquery属性选择器的基本
  • js字符串的操作方法
  • python在设计领域的应用
  • 完美世界打斗
  • 简单的比较
  • 发票代码如何查询公司
  • 工会代扣代缴个税怎么申报
  • 仪征十大名人是哪些人
  • 重庆市大足区迪涛中学那几个是尖子班
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设