位置: 编程技术 - 正文

Unity3D中的Post effects(unityprefab)

发布时间:2024-02-27
提要

推荐整理分享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资源包管理器)

  • 捐赠税前扣除比例表
  • 多交的企业所得税怎么处理
  • 研发人员的社保也要进入研发费用吗
  • 房地产开发企业土地增值税清算
  • 收回已核销的坏账什么意思
  • 社保次月什么时候到账
  • 发票为啥一直显示上传不成功
  • 已经退款买家不退货怎么办
  • 汽车租赁用不用交税
  • 服装租赁开票税目
  • 工程预收款如何处理
  • 付城镇土地使用税是多少
  • 工程预付款的规定
  • 经纪人佣金计入什么科目
  • 小规模和一般纳税人的区别
  • 外地预缴个人所得税会计分录
  • 公司车辆过户给公司需要交哪些税
  • 企业筹办费会计处理
  • 跨年的发票可以补开吗
  • 生育津贴支付方式
  • windows 10如何清除联网记录
  • linux系统的文件与目录操作
  • flash player用不了怎么办
  • fpp是什么文件
  • php文件用什么运行
  • 增值税纳税人兼营免税减税项目的
  • 国税代开普票能作废吗
  • php strncmp
  • laravel 自定义guard
  • 简易计税结转账务处理
  • 固定资产清理的会计科目处理
  • 补缴税款账务处理
  • 金税盘服务费可以跨年抵扣
  • php运行乱码怎么办
  • 帝国cms破解授权
  • 改造后的固定资产入账价值
  • mongodb aggregate 性能
  • 其他应收款主要核算什么
  • 预付开发票加油后还能开吗?
  • 承兑汇票大回头是什么意思
  • 没有金税盘可以开专票吗
  • 增值税抵扣勾选最晚日期
  • 总公司和子公司可以是一个法人吗
  • 运输公司发票抵扣
  • 应收票据周转率公式
  • 规模以上企业纳税要求
  • 计提本月短期借款利息500元会计分录
  • 免抵税额分录
  • 黄金以旧换新是不是不划算
  • 小规模纳税人可以抵税吗
  • 小规模公司购买汽车如何抵税
  • 一般纳税人可抵扣的票证有哪些?
  • 农业合作社成本有哪些
  • 付给非公司员工提成税务处理
  • 企业所得税季度交还要年交吗
  • 最全的sql执行顺序
  • win7开机taskeng
  • win10手机版下载官方中文版
  • win10raw预览
  • windows xp死亡倒计时
  • 升级ubuntu
  • virtualbox虚拟机
  • os x 10.11 el capitan系统安装图文教程
  • 电脑联想windows7
  • jusched.exe是什么进程
  • windows8关机键在哪里
  • linux在服务器领域的应用状况
  • linux find命令用法
  • django自定义模板标签
  • 选择照片的快捷键
  • python利用while循环求1+2+3......+n的和
  • c#中延时
  • vue复用node_module
  • jquery jwt
  • javascript中array数组对象的含义及常用方法
  • jquery的gt
  • A级纳税人和一般纳税人区别
  • 城镇土地使用税的计算公式
  • 城市维护建设税税基是什么
  • 关于增值税和消费税两者之间关系的说法错误的是
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号