给项目组做了个imageEffect特效,结果导致ngui不显示(ugui则不存在此问题),看ngui的一些shader,其中ztest是开着的,而且ui相机的Clear Flags用的是Don't Clear。试了一下,无论是将ngui的shader中的ztest改成Always还是将ui相机的Clear Flags改成Depth Only,ui都能正常显示。但问题是在没加我的imageEffect特效之前什么都不用改也能正常显示ui,所以以上解法都不太本质。

其实经过上面的观察已经明白了问题的原因,就是加了我的imageEffect之后zbuffer跟之前相比发生了变化。我在主相机的OnRenderImage里做了一个blit链:

  Graphics.Blit(sourceTexture,RT1,mat1);

  Graphics.Blit(RT1,RT2,mat2);

  Graphics.Blit(RT2,RT3,mat3);

  ...

  Graphics.Blit(RT(n-1),RT(n),mat(n));

  Graphics.Blit(RT(n),destTexture,mat(n+1));

最后一步blit到destTexture上时,所用的shader应该是不读写zbuffer的,即:

ZWrite off
ZTest Always

我之前忘加了这个。

unity, imageEffect的最后一步blit所用的shader,应该关闭zwrite和ztest的更多相关文章

  1. unity 支持圆形、切倒角和虚化UGUI Shader

    // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt ...

  2. unity, imageEffect在android上不显示的问题

    使用imageEffect做了个景深特效,原理很简单,就是一张清晰大图和一张模糊小图根据z值进行混合,z值小的像素清晰大图的比例高一些,z值大的像素模糊小图的比例高一些. 在pc上是ok的,但打出an ...

  3. Unity Ruby's Adventure 第一步

    官方游戏教程:https://learn.unity.com/project/ruby-s-2d-rpg?language=en 鲁比大冒险是一个2D游戏入门教程,涉及动画,特效,UI,瓦片地图,音效 ...

  4. Unity NGUI和UGUI与模型、特效的层级关系

    目录 1.介绍两大UI插件NGUI和UGUI 2.unity渲染顺序控制方式 3.NGUI的控制 4.UGUI的控制 5.模型深度的控制 6.粒子特效深度控制 7.NGUI与模型和粒子特效穿插层级管理 ...

  5. 【浅墨Unity3D Shader编程】之二 雪山飞狐篇:Unity的基本Shader框架写法&颜色、光照与材质

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40955607 作者:毛星云(浅墨)  ...

  6. unity render pipeline

    post process v2 GUI temp8->TaregtPool0->temp8       tem8                      temp8->backbu ...

  7. Unity Shader-热空气扭曲效果

    GrabPass GrabPass是Unity为我们提供的一个很方便的功能,可以直接将当前屏幕内容渲染到一张贴图上,我们可以直接在shader中使用这张贴图而不用自己去实现渲染到贴图这样的一个过程,大 ...

  8. Unity中Mesh分解与边缘高亮加上深度检测

    一个比较简单的需求,不过遇到些坑,记录下. 房间有多个模型,每个模型可能多个SubMesh,点击后,需要能具体到是那个SubMesh,并且在这个SubMesh上显示边缘高光,以及能个性这单个SubMe ...

  9. 【Unity Shaders】使用CgInclude让你的Shader模块化——创建CgInclude文件存储光照模型

    本系列主要參考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同一时候会加上一点个人理解或拓展. 这里是本书全部的插图. 这里是本书所需的代码 ...

随机推荐

  1. 进程上下文VS中断上下文

    转载:http://www.cnblogs.com/zzx1045917067/archive/2012/12/19/2824552.html 内核空间和用户空间是现代操作系统的两种工作模式,内核模块 ...

  2. C++ Tr1中的正則表達式

    要使用正則表達式,首先要有类库支持,C++曾经不像Java或者C#有完整的类库使用,可是在Tr1中早已提供了正则库,仅仅是非常少被人们注意罢了 TR1中包括了一个正则库,来自Boost的 regex, ...

  3. GPGPU OpenCL 精确字符串查找

    字符串查找是信息安全.信息过滤领域的重要操作,尤其是对大文本的实时处理.这篇作为实例,使用GPU OpenCL进行精确模式串查找. 1.加速方法 (1)将少量常量数据,如模式串长度.文本长度等,保存在 ...

  4. flex创建hashMap

    1,定义hashMap的接口. import flash.events.IEventDispatcher; import mx.events.CollectionEvent; /** *  Dispa ...

  5. go语言基础之局部变量特点

    1.局部变量特点 示例1: package main import "fmt" func main() { //定义在{}里面的变量就是局部变量,只能在{}里面有效 //执行到定义 ...

  6. go语言基础之闭包的特点

    所谓闭包就是一个函数“捕获”了和它在同一作用域的其它常量和变量.这就意味着当闭包被调用的时候,不管在程序什么地方调用,闭包能够使用这些常量或者变量.它不关心这些捕获了的变量和常量是否已经超出了作用域, ...

  7. git/github运用

    了解git和svn很久了,但是一直没有拿来做过版本控制管理,虽然svn有用到过,但是觉得还是运用git的比较多吧,尤其github. Git术语                             ...

  8. Chrome 制作绿色便携版

    1.建立一个新的文件夹命名为Chrome 2.将电脑上默认的Chrome文件复制到新的文件夹Chrome里包含安装文件和Chrome数据文件     Chrome数据文件一般在"C:\Use ...

  9. C#应用视频教程1.4 实现完整以太网通讯

    对于事件和委托机制不够理解的读者可以参考本节提供的委托相关的范例程序,这个是控制台的程序,比较简洁(书店发布一本书的事件注册到某个读者A身上,原理跟前面一小节讲的是一致的,只不过没有通过委托对外发送数 ...

  10. apache服务器多端口支持

    本示例支持80,82两端口 修改conf/httpd.conf文件: Listen 改为 Listen Listen # Virtual hosts #Include conf/extra/httpd ...