我试图使用OSG在屏幕上显示一些立方体 .
在某些运行中它运行良好,但有时它不会显示任何内容,只需在虚拟控制台中打印:
CullVisitor::apply(Geode&) detected NaN,
depth=nan, center=(0 0 0),
matrix={
-1 0 0 0
0 0 1 0
0 1 0 0
-nan -nan -nan -nan
}
它有时可以工作的原因和其他时间没有可能是立方体随机定位,有些位置显然不起作用 .
问题是:它是什么意思,我该如何避免呢?
注意:你可能会想要立即对这个问题进行投票,但请注意,谷歌只提供了无用的结果,除了寻求帮助外,我认为无法解决这个问题 .
2 回答
关键是视图矩阵未正确初始化 .
执行检查,如果视图矩阵无效,则用身份矩阵替换它:
您是否在代码中搜索了常见的嫌疑人名单?
见:http://en.wikipedia.org/wiki/NaN#Operations_generating_NaN
您也可能在对象完全初始化之前尝试剔除场景(还没有位置) - 修复将是在您初始化它之前不将其添加到场景中 . 但我们真的只是猜测,除非你发布一些相关的代码 .