首先,让我说这段代码几个月前在49FPS左右运行得非常好。从那以后,发生了一件重大变化,那就是我从视窗7“升级”到10。
我确实有一个很好的系统:
我已经研究了这个问题几个小时,并提出了一些人们尝试过的解决方案。有趣的是,大部分集中在1月下旬至2月17日上旬。
这些都没有解决我的问题。
关于我的代码和代码风格的一些细节。这个项目是我多年来一直致力于使用LWJGL 2.9.3库通过Java和OpenGL创建一个完整的3D引擎的大规模工作的一部分。我的代码结构的方式是,我将每个概念组织成单独的库,然后将其导入到我正在工作的任何项目中。
例如,我有一个名为“基础”的库,它处理打开OpenGL窗口本身、从外部文件加载设置以及跟踪定时增量和FPS。另一个示例库是“Text2D”,它处理向屏幕显示文本。
这样,我可以更有效地跟踪错误。每个库都有自己的测试和诊断类来验证库是否按预期工作。通常许多不同的库都依赖于某些特定的其他库,因此可以进一步独立验证此测试。
问题:
我遇到麻烦的那个叫做“实体”,它处理将3D对象放入世界中。正如我之前所说,我以前有过这段代码,不知道哪里出了问题。
代码分为设置和测试部分。设置代码生成一个对象网格,供我四处查看,并与阳光源等基础知识一起移动。测试代码只是为每个对象添加一个小旋转,以便它们原地旋转。
现在,当我的测试代码运行时,我在显示窗口中看到生成的对象很好,在加载时填充新的对象和纹理。我平均每帧2-4秒。(是的,秒/帧)
从43秒到92秒,生成大约12-15帧后,它会失败并给我以下错误消息:
C:\Users\Zaanzabar\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: -1073740791
BUILD FAILED (total time: 43 seconds)
通过插入大量输出消息并找出哪些行紧跟在某些消息之后,我已经找到了导致速度放缓的特定代码行。
当我将纹理加载到程序中时,一切都平稳快速地运行,直到它到达该行:
glGenerateMipmap(GL_TEXTURE_2D);
请注意,这些不是大纹理,我认为最大的是PNG格式的512x512。我使用SlickUtil将它们加载到OpenGL中。
一旦我完成加载纹理,它就会在该行暂停大约相同的时间:
Display.update();
然后最终崩溃。这两行代码都是openGL特性,不是我代码的一部分,所以我在从这里看哪里时遇到了难题。
有人知道如何解决这个问题吗?
这实际上是一个NetBeans问题,它基本上是说run. xml中存在问题
C:\用户\Za anz a bar\App Data\Local\Net Beans\Cache\8.2\执行器-片段\run. xml
既然你提到你已经更新了你的窗口,我猜元数据一定已经被删除了,所以Netbean基本上找不到你的主类,因此抛出了错误,你确实提到一切都很好,所以它不可能是依赖问题。
这谈到了同样的问题Netbean没有运行我的项目
解决方案
尝试在命令行
上运行代码
javac YourMain.java <br>
java Yourmain
或者换个IDE
如果这工作正常,那么这肯定是NetBean问题:)
您可以直接运行主类,或者通过转到项目的属性选项卡来提及项目文件夹中的主类
希望有帮助:)