位置: 编程技术 - 正文

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

  • 缴纳当月的增值税
  • 劳务派遣公司如何收费
  • 税控盘这个月没有反写会怎么样
  • 六大行业房产税土地使用税减免
  • 预收款增值税纳税义务发生时间与确认收入时间
  • 增值税是否计入存货成本
  • 公司名称变更在哪个网站
  • 汇总记账凭证长什么样
  • 个体工商户销售自己使用过的物品
  • 购买材料产生的运杂费怎么做分录
  • 物业公司收物业费如何入账
  • 购买电脑的方案
  • 房地产企业增值税预缴
  • 增值税专用发票有效期是多长时间
  • 电梯安装简易征收的优点
  • 3万免税是指什么
  • 增值税进项销项怎么算
  • 出差伙食补贴没发
  • 拆迁安置土地的补偿标准
  • 企业劳务外包取费的标准以及依据是什么?
  • 固定资产采用历史成本计价
  • 上个月印花税少计提了怎么办
  • 公司原因领不了失业保险要赔偿吗
  • 旅游业小规模纳税人亏损怎么填报
  • 现金股利属于什么所得
  • 联想怎么进入bios设置u盘启动
  • 稿酬计入工资所得吗
  • 为高新技术企业授牌
  • 装win7提示失败怎么办
  • php proto
  • 购入无形资产的增值税税率
  • idea如何运行ssm项目spring
  • 大数据可视化前端界面模板
  • mm32开发教程
  • mysqlmha高可用
  • nslookup命令大全
  • 帝国cms怎么用
  • 餐饮业的原材料
  • 兼职工作是单位工作吗
  • 微信收款怎么记录怎么删除
  • 减值损失和减值损失区别
  • 主营业务收入的t型账户怎么写
  • redis的
  • mongodb的用户名和密码
  • html元素一般分为哪几类
  • 背书转让操作
  • SQL server 2008安装程序遇到以下错误 sku
  • 关联方交易的税收问题
  • 企业所得税汇算清缴会计分录
  • 季报业务活动表怎么做
  • 疫情期间上班,公司是否给员工买保险
  • 接受母公司捐赠现金分录
  • 事业单位借款给下属单位
  • 收入分成的账务处理会计分录
  • 减免增值税记账
  • 开票后收不回来款怎么办
  • 净资产=资产-负债
  • 流动资产合计怎么算
  • sqlserver重命名表名
  • sql不重复计数函数
  • 苹果mac录制屏幕
  • CentOS上查看系统信息以及配置防火墙的方法
  • freebsd怎么安装软件
  • 重装windows764 位后后如何将apache mysql加入系统服务
  • mac系统怎么画图
  • calctool
  • mac计算器怎么用
  • window10英文版安装步骤
  • kb4592449-windows安全每月质量汇总
  • javascript中的数据类型分为两大类
  • nodejs stdin
  • 深入浅出python
  • unity linux arm
  • unity移动脚本代码
  • jquery添加文字
  • androidday3
  • 集资房税收问题
  • 换发票需要交钱吗
  • 小规模纳税人开专票
  • 税务机关纳税检讨书范文
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设