前提:功能限制,2个面一定会重合,请教大家如何解决共面时闪烁问题
1赞
自己顶一下
默认是 GL_LESS 的,
改成这个 glDepthFunc(GL_LEQUAL) 试试
不行哦,还有别的方法嘛
z-fighting一般出现在贴图,比如把一个贴纸、喷涂盖在另一个表面上之类的逻辑,
基本上就是以下几种方法:
- render to texture,把贴好图的纹理拿来用,缺点是对于复杂模型不太好做
- 在fragment shader上做手脚,比较麻烦,缺点是可能要动架构
- 用 stencil check,把原纹理被贴住的部分裁掉,缺点是不能处理半透明的贴图
- 让贴图离开原背景一小段距离,缺点是镜头切到很近的地方能看出来分层
至于在cocos里怎么实现,我也没坐过,我是云玩家