使用对数深度缓存可以在一定程度上解决z冲突(Z-Fighting),osgEarth也支持使用对数深度缓存,方法是:
if ( useLogDepth )
{
OE_INFO << LC << "Activating logarithmic depth buffer (vertex-only) on main camera" << std::endl;
osgEarth::Util::LogarithmicDepthBuffer logDepth;
logDepth.setUseFragDepth( false );
logDepth.install( view->getCamera() );
}
else if ( useLogDepth2 )
{
OE_INFO << LC << "Activating logarithmic depth buffer (precise) on main camera" << std::endl;
osgEarth::Util::LogarithmicDepthBuffer logDepth;
logDepth.setUseFragDepth( true );
logDepth.install( view->getCamera() );
}

本文介绍如何在osgEarth中使用对数深度缓存(logarithmic depth buffer)来解决Z冲突问题,提供了两种不同的实现方式,一种是仅在顶点阶段应用,另一种是在片段阶段应用,以提高深度缓冲的精度。

被折叠的 条评论
为什么被折叠?



