2D/3D 的Overdraw 的检测和反馈(1)

2018-09-30  本文已影响0人  图癫

介绍

wiktionary对Overdraw的介绍:

“The process by which, during the rendering of a three-dimensional scene, a pixel is replaced by one that is closer to the viewpoint, as determined by their Z coordinates.”[wiktionary]

什么意思呢,就是同一个点,被不同Z序的对象绘制了多次。在3D空间里面,为了支持透明,绘图是从远到近的,也就是说,离视野近的点会取代(blending)远点。

不仅仅是3D里面有可能overdraw。在应用2D工具Skia做合成器的时候,也有类似问题。譬如Chromium的合成器,Skia会从远到近绘制每一个2D的图层。这个时候,同一个位置的像素点,也可能被绘制多次。

Overdraw仅仅适用于要绘制的对象或者图层是不透明的情况。如果是半透明的,因为要做blending,那么overdraw是必须的(但是如果是三层,顶层是不透明的,其实还算是overdraw)。

Overdraw检测是用软件的方法,来检测用户有没有对同一个点(如果是3D,这个点是投影后的2D平面的点,不是3D空间的点;如果是2D,这个点就直接是2D投影面的点)做多次绘图。最简单的方法就是对Draw函数进行计数。Overdraw Feedback就是把通过检测步骤得到的Draw函数调用的次数,以图形的方式叠加显示在原始画面上。

欢迎关注作者的公众号:图癫。

上一篇 下一篇

猜你喜欢

热点阅读