一个猜测——三维空间重叠图元 “交替闪烁“ 现象猜想

之前有一段时间,使用OpenGL ES进行图形渲染过程中: 三维空间中,两个深度相同三维实体,重叠部分出现交替闪烁的现象。

我们准备以下条件,可复现该现象:

  • 先后渲染两张纹理矩形A、B;
  • 两张纹理矩形深度相同,并且所在三维空间坐标部分重贴;
  • 深度测试类型设置为: glDepthFunc(GL_LEQUAL) 小于等于深度值通过
  • 后渲染的纹理矩形B,覆盖先绘制的纹理矩形A。

按照以上条件,当完成渲染后: 将两个纹理矩形同时倾斜一定的角度,便会出现两张纹理交替闪烁的情况

原因猜测:

猜测引起纹理矩形A、B交替闪烁的根本原因是 浮点误差

在做深度测试的时候,将深度测试的类型改为了 glDepthFunc(GL_LEQUAL)小于等于深度值通过了,那么理论上应该是出现 纹理矩形A 覆盖 纹理矩形B 的效果。 但在进行仿射变换(渲染操作)时,摄像机由于 浮点误差,可能出现分不清楚,哪一个纹理矩形距离 摄像机更近一些。

因此由于 浮点误差,会出现纹理矩形A、纹理矩形B 交替闪烁。 (纯属个人猜测,如有不同观点者,请留言,共同讨论!)

= THE END =

欢迎关注我的公众号

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bjxiaxueliang

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值