位置: 编程技术 - 正文

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%征收率的应税服务
  • 外商投资企业税务优惠
  • 2021通行费抵扣税率
  • 辞退员工会计分录
  • 发票 发票联
  • 销售利润率和毛利率计算
  • 与权益法核算相关的累计净损益
  • 库存商品在贷方怎么调回借方
  • 研发费用属于期余资产吗
  • ios14 举报短信
  • 新版edge浏览器如何打开ie浏览器
  • 反结账是什么意思怎么取消
  • 无形资产商标设计图片
  • 戴尔电脑设置u盘
  • videojs自定义按钮
  • 贷款钱到账又被转出去
  • 广告费与业务宣传费范围
  • 出口货物退税率为0,是否出口免税
  • 代扣代缴个人所得税账务处理
  • Vue3+ElementPlus el-date-picker设置可选时间范围
  • 蕾德纳斯
  • PHP:mcrypt_module_get_algo_block_size()的用法_Mcrypt函数
  • lean in桑德伯格
  • php格式转换
  • 经营性应收项目的计算公式
  • 2021劳务分包专票开几个点
  • framework教程
  • vue.js.
  • vue 插槽详解
  • lunux删除命令
  • ethtool-g
  • 免征增值税账务怎么处理
  • 事业单位结余资金管理办法
  • discuz mysql8.0
  • 投资理财产品的骗术
  • 更改增值税申报表退税在哪里退钱
  • 省市县三级联动工作机制
  • 残保金账务处理会计科目
  • 记账凭证错误的更正方法
  • 高速公路过路费可以抵扣进项税吗
  • 公司注销前如何先注销工会
  • 借用别人公司
  • 股东在注册资本金范围内承担责任
  • 季度末需要结转本年利润吗
  • 普通发票记账联盖章了怎么办
  • 新成立的分公司怎么样
  • 园林土方施工有哪些分项工程
  • 存货与总账对账
  • 私营企业会计退休年龄50还是55
  • Windows Server AD 访问数量控制配置方法
  • 无线网络连接上但上不了网
  • win10安装 升级
  • linux0.11文件系统
  • Linux安装anaconda
  • win10在哪里更改软件大小
  • 滚小球的实验过程和材料
  • unity的设置在哪里
  • unity3d课程
  • jquery的实现原理
  • libgdx robovm admob IOS SDK的绑定
  • javascript的dom操作
  • 个人所得税全年不到60000,单月超过
  • 10%加计抵减政策条件
  • 自然人电子税务局web端怎么进入
  • 新疆喀什泽普县教育局联系电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设