摘要
最简单的避免z-fighting的方法是为camera调整一个合适的near clip和far clip,试一试都能出正确的值,但是如何理解这个值。
正文
参考这篇文章:
http://www.sjbaker.org/steve/omniv/love_your_z_buffer.html
这篇文章中有个计算器,通过这个计算器计算出了以下的depth precision。
其中计算depth precision使用到的函数如下(一般人找不到),其中nbit为depth buffer的精度,z为投影空间的深度。具体原理这个函数中公式以及推倒目前没有找到,回头再仔细看看wiki。
function zprec (nbits,zFar,zNear,z)
{
var b = zFar * zNear / ( zNear - zFar ) ;
var res = ( b / ( (b/z) - 1.0/(1<<nbits) ) ) - z