C++ CullVisitor::应用(大地测量)检测到NaN,
运行OSG应用程序时,我收到以下消息:C++ CullVisitor::应用(大地测量)检测到NaN,,c++,ruby,openscenegraph,C++,Ruby,Openscenegraph,运行OSG应用程序时,我收到以下消息: CullVisitor::apply(Geode&) detected NaN, depth=nan, center=(1.79588 1.50488 1.42179), matrix={ nan nan -nan -nan nan nan -nan -nan nan nan -nan -nan nan nan -nan -nan } 这种警告/错误意味
CullVisitor::apply(Geode&) detected NaN,
depth=nan, center=(1.79588 1.50488 1.42179),
matrix={
nan nan -nan -nan
nan nan -nan -nan
nan nan -nan -nan
nan nan -nan -nan
}
这种警告/错误意味着什么
提前感谢,
Rômulo来自
我认为这是一个由于深度的问题
RefMatrix& matrix = *getModelViewMatrix();
...
float depth = bb.valid() ? distance(bb.center(),matrix) : 0.0f;
来自
我认为这是一个由于深度的问题
RefMatrix& matrix = *getModelViewMatrix();
...
float depth = bb.valid() ? distance(bb.center(),matrix) : 0.0f;
我发现并解决了这个问题 当我第一次抓取osg场景时,我的视图矩阵是NaN;从第二次开始,该矩阵已正确填充 然后我执行一个检查:如果视图矩阵无效,我将用标识矩阵替换它,如下所示:
// if the view matrix is invalid (NaN), use the identity
osg::ref_ptr<osg::Camera> camera = _viewer->getCamera();
if (camera->getViewMatrix().isNaN())
camera->setViewMatrix(osg::Matrix::identity());
//如果视图矩阵无效(NaN),请使用标识
osg::ref_ptr camera=\u viewer->getCamera();
如果(摄影机->getViewMatrix().isNaN())
摄像头->setViewMatrix(osg::Matrix::identity());
我发现并解决了这个问题
当我第一次抓取osg场景时,我的视图矩阵是NaN;从第二次开始,该矩阵已正确填充
然后我执行一个检查:如果视图矩阵无效,我将用标识矩阵替换它,如下所示:
// if the view matrix is invalid (NaN), use the identity
osg::ref_ptr<osg::Camera> camera = _viewer->getCamera();
if (camera->getViewMatrix().isNaN())
camera->setViewMatrix(osg::Matrix::identity());
//如果视图矩阵无效(NaN),请使用标识
osg::ref_ptr camera=\u viewer->getCamera();
如果(摄影机->getViewMatrix().isNaN())
摄像头->setViewMatrix(osg::Matrix::identity());
当您选择场景时?场景是否在那里初始化?我的代码中唯一的cull是_viewer->getCamera()->setComputeNearFarMode(osg::CullSettings::DO_not_COMPUTE_NEAR\u FAR);你能不能改变Don_COMPUTE_NEAR_FAR,然后用_原语再次测试类似于COMPUTE_NEAR_的东西并进行测试?Hi@CherkesgillerTural,我用这个新参数进行了测试,问题依然存在……在我下面的回答中,你可以看到你有某种深度问题,解决这个问题,我想你的问题也会在你挑选场景时得到解决?场景是否在那里初始化?我的代码中唯一的cull是_viewer->getCamera()->setComputeNearFarMode(osg::CullSettings::DO_not_COMPUTE_NEAR\u FAR);你能改变Don_COMPUTE_NEAR_FAR,然后用_原语再次测试类似于COMPUTE_NEAR_的东西并进行测试吗?Hi@CherkesgillerTural,我用这个新参数进行了测试,问题依然存在……在我下面的答案中,你可以看到你有某种深度问题,解决这个问题,我认为你的问题也会解决我能够解决这个问题,@Cherkesgiller,谢谢你的评论。我能够解决这个问题,@Cherkesgiller,谢谢你的评论。