位置: 编程技术 - 正文

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

  • 小规模增值税税率表2023年最新版
  • 机器配件属于什么报销项目
  • 五联发票一般用于哪种单位
  • 非居民企业转让财产所得税
  • 预售收入是否可以退税
  • 记账凭证账务处理程序步骤
  • pos机刷卡的银行有哪些
  • 固定资产报废会议记录怎么写
  • 设备维修费怎么入账
  • 汇算清缴弥补以前年度亏损报表怎么填
  • 已付款未收到发票怎么做分录
  • 个人开具工程款发票所得税怎么算
  • 个体户办营业执照需要什么证件和材料
  • 购销合同印花税优惠政策
  • 个人劳务报酬个人所得税怎么算
  • 小微企业利润亏损原因
  • 所得税收入减免政策
  • 工会经费缴纳比例是哪里规定的
  • 苹果电脑macos big sur
  • 聘请专家费用管理办法
  • 社保公积金代缴
  • PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
  • u盘安装win8系统步骤
  • 微软预购
  • 内置管理员无法激活
  • 财政补助收入的会计分录
  • php简单聊天室源码
  • php实现删除功能
  • 适合练手的动漫人物
  • 预提费用的分录
  • 其他免税销售额>0时,免税性质代码不能为空是什么意思
  • uniapp获取手机通讯录
  • 人工智能大模型体验报告3.0
  • php array_fill
  • 累计折旧累计摊销属于现金流吗
  • 商品流通企业库存商品的核算方法有以下几种
  • 三栏式明细账需要每笔结余额吗
  • 应收款挂账会计分录
  • 公司开一般户需要多久
  • 小规模纳税人季度不超30万免增值税
  • 申报的财务报表在哪里查询
  • 财务报表没申报怎么操作呢
  • 临时设施的种类有哪些
  • 销售货物没有开票的会计分录
  • 个人贷款打到公司账户存在什么风险
  • 没报税可以先清卡吗
  • 退票费收入按什么征税
  • 税控设备管理办法
  • 政府补助的分类及会计处理方法
  • 电子发票开票方怎么做账?
  • 企业可以变更行业吗
  • 个体户需要报税吗?需要报哪些税?
  • 零售货品
  • sql数据库对象
  • 如何获取数据库的sid
  • ubuntu系统如何安装
  • 进入pe系统后c盘变成了e盘
  • win10ie
  • ubuntu设置共享文件夹命令mount
  • 如何去掉windows不是正版
  • 紧跟潮流的句子
  • linux命令eof
  • 双win系统怎么删除一个
  • win7系统的excel在哪里
  • win10右键图片
  • win10系统的电脑有哪些
  • linuxweb服务器
  • linux系统评测
  • html+css网页布局
  • Node.js中的包管理工具是什么
  • 很好的无光照模式叫什么
  • Node.js中的事件循环是什么意思
  • js控制横向滚动条
  • nodejs图片上传
  • unity地形图片
  • js div拖动
  • jquery打开文件对话框
  • 雅阁交强险和车船税多少
  • 租了店面
  • 电信部门可以知道通话内容吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设