下面是我的问题。我tesselating复杂,自我路口,多轮廓多边形数百verticies的。该GLU Tesselator崩溃,空指针0x0000000问题。它永远不会崩溃的时候我不作自我相交的多边形。如果不相交,它永远不会崩溃,无论在什么情况下。我在我的应用无处不在检查NULL,我敢肯定,这不是我身边的事情。我发现了一个旧版本GLU 1.2从SGI和它永远不会崩溃,但基于GLU 1.3都崩溃了台面和Windows版本。没有在调试模式下崩溃strangly不够。为了让编译梅萨的GLU更多信息,我一看,发现第一个断言失败,那么如果我评论说出来,有其设置为NULL从失败的malloc函数的指针。我在这一点上做的非常不确定。我能做什么方式来解决这个问题?如果我只是试着让一个版本梅萨的GLU这对我的作品的?我只是不知道该如何从这里着手。

经过调试我看到我越来越GLU_TESS_ERROR_5我认为这是一个数过大的错误,但我做了一个for循环测试数大于但没有运气:(

有帮助吗?

解决方案

至少在Windows,GLU_TESS_ERROR_5装置,该坐标之一太大。具体而言,GLU要求的坐标是足够小而不溢出到相乘在一起。该规范指出的限制是在不断GLU_TESS_COORD_TOO_LARGE定义。如果这个常数存在,检查每一个绝对坐标值小于它。如果不是这样,我认为这将是安全检查的坐标之间 - 10 ^ 150和10 ^ 150。如果不工作,尝试逐步较小的范围内。

它也可以是有一个与几何形状,这触发GLU另一个问题的问题。试图找到将触发此错误的最简单的多边形。

如果不起作用,看看是否有GLU可用的新版本。我不知道梅萨,但OpenGL的版本附带VC ++是出了名过时了。

如果一切都失败了,你可以尝试使用其他库来进行镶嵌。快速搜索后,三角 1 似乎是一个不错的人选。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top