位置: 编程技术 - 正文

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

  • 房产契税是怎样计算的
  • 已收保证金
  • 年报会计师审计费用
  • 审计调整分录要在金蝶调吗
  • 企业员工的高铁票进项税如何申报
  • 个人车卖给公司能抵税吗
  • 外购货物应抵扣的进项税额税率
  • 电子承兑汇票如何拆小
  • 亏损结转本年利润会计分录
  • 筹建期的印花税计入现金流量表哪里
  • 关停企业的生产线能否停止计提折旧?
  • 其他业务成本是什么类
  • 事业单位自用的房产
  • 退役士兵增值税优惠申报方法
  • 以前年度损益调整会计分录
  • 财务报表包含哪些表
  • 没有走公户的发票费用怎么做账
  • 留抵税额算进项税额吗
  • 机器用润滑油怎么使用
  • 防暑降温费会计处理
  • 长期股权投资权益法四个明细科目
  • 退回多扣的社保费给员工,怎样做会计分录?
  • 交罚金怎么交
  • js图片放大代码
  • vue打包速度优化
  • 资产减值损失会影响营业利润吗
  • 一搬纳税人
  • css如何实现文字环绕
  • 微服务架构java框架
  • thinkphp 模块
  • es6特性及使用场景
  • websocket怎么读
  • 在建工程减值准备借贷方向
  • 如何区分误餐费和补助费
  • 福利费工会经费教育经费计提比例
  • mysql5.7.23安装配置教程
  • mongodb自增主键
  • 小规模纳税人收普票和专票有什么区别
  • 进项发票已入账 未开具出口发票
  • 小规模代开增值税专用发票怎么操作?
  • 所得税费用是什么意思
  • 企业收到房租发票怎么做账
  • 电子发票和增值税发票有什么区别
  • 小规模纳税人开专票税率是1%还是3%
  • 承兑贴现个人违法吗
  • 非公益捐赠如何入账
  • 库存商品如何结转生产成本
  • 税控系统专用设备抵减增值税账务处理
  • 从外面买回来的鸡蛋能孵出小鸡吗
  • 已认证发票退回说明模板
  • 哪些账户期末结账后一定无余额
  • 租车费报销管理规定
  • 外商投资企业的中国投资者
  • 销售费用和管理费用的税前扣除
  • 用友T3怎么结转成本费用
  • 如何确定开票内容
  • 应收账款是净额列示吗
  • 什么是固定资产?其特征有哪些
  • 新办企业必须经过什么核准登记
  • mysql查看使用情况
  • pe工具箱怎么用
  • win8系统磁盘清理在哪里
  • awk 筛选有特定字符
  • rftray.exe - rftray是什么进程 有什么用
  • linux怎么使用无线网卡
  • linux命令eof
  • win7系统怎么查看隐藏文件夹
  • 搜索超级模式
  • jquery多选
  • media and
  • jQuery Checkbox 全选 反选的简单实例
  • 安卓关键词覆盖
  • android开发是什么意思
  • jq设置下拉框的值
  • python简要介绍
  • 捐赠支出的扣除标准是什么是30%吗
  • 租车费为何不能抵扣
  • 南京税务局几点下班
  • 增值税发票选择确认平台查询不到以开出的进项发票?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设