位置: 编程技术 - 正文

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

  • 无偿调入的固定资产
  • 工会经费每月必须60块钱
  • 2021年超市发票税率是多少
  • 契税为什么计入成本
  • 增值税应税销售额包括哪些
  • 报关单境外收货人和合同不一致
  • 什么软件属于无线网卡
  • 小规模纳税人免征增值税政策
  • 零申报小微企业注销有影响吗
  • 2019印花税减免
  • 小规模应交的增值税
  • 非货物贸易核查项下
  • 奖品偶然所得个税如何申报
  • 新企业会计准则什么时候实施的
  • 零退税率可以做免税吗
  • 特许权使用费如何缴纳增值税
  • 印花税是按含税还是不含税缴
  • 特殊业务分录
  • 工商年检的社保基数怎么填
  • 零申报资产总额填注册资本怎么办呢
  • 冲销暂估购入原材料的账务处理?
  • 发票查出来显示不一致是为啥
  • 原材料因管理不善被盗的会计分录
  • 华为手机屏幕碎了照片
  • 购买土地交易费用怎么算
  • 消耗性生物资产
  • 新版edge浏览器历史记录
  • 同一年可以先娶后嫁吗
  • 所得税补税怎么申报
  • win10怎么样禁止电脑运行某个程序
  • 个人独资所得税税率表最新
  • 费用发票开的是跨年的账务处理
  • php数组函数实现机选双色球
  • php 首字母大写
  • 已开票未收款怎么做账
  • js技术干货分享
  • 企业发生的间接费用应先在
  • npm ERR! code E404 在vscode安装插件时报错的解决方案
  • 在途物资运费会计科目怎么写
  • javascript获取input的值并计算
  • php uasort
  • 林木业折旧年限
  • 人力资源外包可以去吗
  • js点击li
  • php常用数组函数有哪些
  • 猪肉税票怎么开
  • Win11系统自带输入法怎么卸载
  • 车辆处置收入入什么科目
  • 帝国cms功能
  • 房地产企业开发的已出租的房屋属于投资性房地产吗
  • 代扣代缴个人所得税手续费返还 增值税
  • 房地产企业根据什么交增值税
  • 坏账准备是啥意思
  • 关于赠品的财务处理
  • 应付账款长时间收不回怎么处理呢
  • 一般纳税人怎样开3个点的专票
  • 上年度凭证录错会计凭证录错了怎么修改
  • 以前年度发票退回了不重开怎么处理
  • 赠送给客户的产品怎么做账
  • 技术服务费计入主营业务成本
  • 已认证的发票怎么做账
  • 回购股票会导致所有者权益减少吗
  • 退回拨款会计分录怎么做
  • 赡养老人扣除标准个税
  • 其他应收款怎么冲平
  • OBJECTPROPERTY与sp_rename更改对象名称的介绍
  • win8系统怎样安装
  • samba webui
  • 联想笔记本出厂编号怎么查询
  • msg是什么文件
  • win 8怎么样
  • win10一年更新几次
  • win7开机时出现一堆英文
  • extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
  • shell程序中定义的函数能不能有参数
  • Windows10下安装fastdfs
  • node.js网站
  • 营业账簿中的其他账簿包括
  • 天津车辆购置税网上办税
  • 季度申报忘了报怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设