Unity3D可以使用屏幕合成效果,估计很多人都知道,因为自带的屏幕特效包里面有很多这样的例子。比如原来摄像机渲染出来的效果是这样的:通过合成,你可以把它做颜色的偏移或者反转: 或者可以在上面合成自己指定的纹理图片和效果等:屏幕合成的原理其实很简单,只是把原来屏幕渲染的东西,通过一个特定的着色器改变内容成为新的画面,然后替代了原来的画面。需要的东西有这么几样:1、一个着色器程序2、Camera.OnRenderImage(RenderTexture,RenderTexture)方法3、Graphics.Blit方法原理如下:首先,在做合成处理的脚本里面写方法 void OnRenderImage(RenderTexture src, RenderTexture dest) { Graphics.Blit(src, dest, mat); }这个方法是在所有渲染工作完成之后调用的,输入的src是渲染工作完成之后得到的画面,而dest是目标的画面,目标的画面将会替代src显示在屏幕上。里面调用的Graphics.Blit(src, dest, mat);方法,是把src给复制写入dest中,mat是材质,如果有这个,那么在复制过程中会使用mat中的着色器改变图片的内容。代码就是这么简单。如果你要容错,可以做一个检查mat是否为空的操作。剩下的工作就是编写mat里面的着色器的过程了。这个着色器你可以使用vertex and fragment shader或者Surface Shader编写都可以,没有什么神秘的地方,你可以使用各种的变量或者纹理图片。不过记得一点是,刚才我们的整个屏幕的渲染结果src会自动的成为_MainTex纹理输入,而这张图片由于是平铺在屏幕上的,所以input的uv坐标就是刚才那张_MainTex的uv坐标了。然后剩下的就是你在片段着色器程序或者表面着色器程序里面通过改变它的uv信息、偏移、颜色改变或者用各种纹理来叠加颜色。而最后,如果你的叠加效果是有动画效果的,那么就在脚本里面动态改变material里面的参数,就可以了。
推荐整理分享Unity3D屏幕特效合成(unity3d特效教程),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity特效常见问题,unity游戏特效教程,unity 屏幕特效,unity 屏幕特效,unity 屏幕特效,unity特效常见问题,unity3dui界面特效,unity 全屏特效,内容如对您有帮助,希望把文章链接给更多的朋友!
背包系统(一) 背包系统(一)1、创建一个Sprite作为背景,创建一个Sprite作为背景的子对象,并把它设为预设体。2、分别拖放8个子预设体拖放到场景中,排成3行3列,
unity3d游戏之如何开发商人模块心得(二) 【1、让我们来回顾一下原先商店的各个商品的布局】根据原先同学所做的商店的预设框架(坑,为什么是坑我后面还会具体描述),开始往里面填肉
unity游戏开发之令人上瘾的6大手游设计’潜规则’ 在当今智能手机和平板盛行的时代,这些休闲游戏乎已经达到人手一款的地步。毫无疑问,开发者将在他们的游戏中加入更多的关键心理元素。为了发