Triton 的故障处理提示
我在海面上看到了混叠或闪烁的现象
由于Triton使用精细的屏幕对齐的网格来绘制海浪,如果您的驱动程序的质量设置太低,它很容易出现混叠伪影。请确保你在你的应用程序中启用了抗锯齿功能,并且你的驱动程序启用了良好的纹理过滤选项。
我无法链接Triton库
确保你的系统上安装了Visual Studio的所有最新服务包。同时,检查你的应用程序中影响STL链接的预处理器定义,如_SECURE_SCL或_HAS_ITERATOR_DEBUGGING。如果问题仍然存在,请联系support@sundog-soft.com;我们可以为你提供混淆的源代码,允许你用任何你需要的开发环境和编译时间标志构建Triton库。如果你用静态链接的运行库构建你的项目(即 "多线程 "与 "多线程DLL"),你可能需要在你的链接器设置中把MSVCRT添加到要忽略的运行库列表中。确保你所链接的Triton库与你所使用的运行时相匹配。例如,"多线程调试DLL "应该使用Triton-MTD-DLL.lib。
我的海洋是黑色的!
确保你在调用Ocean::SetAmbientLight()和Ocean::SetDirectionalLight()之前调用Ocean::Draw()。
我的水是各种奇怪的颜色!
仔细检查传递给Triton::Environment::SetDirectionalLight()的方向。如果你不小心传入了来自光源的方向,而不是传入光源的方向,那么水的颜色就可能是未定义的。试着否定你在那里传递的东西。
什么都没有显示出来!
请确保你正在检查从Triton::Environment::Initialize()返回的错误。如果这个方法失败了,你会得到一个信息性的错误代码返回--这很可能告诉你,在Triton::ResourceLoader的构造函数中指定的通往Triton资源目录的路径是无效的。
还要确保你从Triton::Ocean::Create()返回一个有效的Triton::Ocean对象。这个方法可能会返回NULL,这可能表明我们以前没有遇到过的驱动程序兼容性问题。首先要做的是将你的图形驱动更新到最新版本,但如果失败了,我们提供了一种方法来获得更多关于Triton在引擎盖下发生的信息。
在文本编辑器中打开resources/Triton.config文件,并将enable-debug-messages设置改为 "yes"。现在,当你在调试模式下运行你的应用程序时,你会在Visual Studio的输出窗口中得到以 "TRITON: "开头的信息,告诉你更多关于它如何选择其底层FFT方法的信息,以及错误信息。
如果这些信息暗示某个特定的FFT实现遇到了问题,最简单的办法就是禁用这个罪魁祸首。disable-cuda、disable-ipp、disable-opencl和disable-compute-shader的设置可以让你强迫Triton不使用在你的系统上有潜在问题的FFT方法。你可能想尝试启用fft-force-cpu来强迫Triton使用其内置的基于CPU的FFT变换,它完全没有特殊的系统依赖或DLL依赖。
如果你在调用Triton::Ocean::Create()之后收到 "初始化投影网格失败 "的消息,并且之前没有其他消息,那么你可能是从一个与创建GL上下文不同的线程创建海洋。请确保你所有的Triton调用是在与创建上下文的线程相同的线程中完成的。
另一个可能的罪魁祸首是通过Triton::Environment::SetCameraMatrix()和Triton::Environment::SetProjectionMatrix()传入Triton的矩阵。仔细检查这些矩阵是否包含你所期望的内容,如果你的引擎的惯例与我们的不同,可以尝试将它们转置。如果你不能正确地进行转换,可以尝试从你的相机属性中 "从头开始 "创建这些矩阵,正如SDK提供的示例代码中所说明的。
我的海洋看起来是乱码或损坏的
英特尔集成显卡有一些已知的问题,以及如何处理对浮点纹理的写入,这可能会导致海浪高度的丢失或乱码。尝试更新你的驱动程序。
一些旧的ATI驱动程序在OpenGL中生成mipmap时有问题。如果你看到海洋中的黑色方块随着距离的增加而变大,那么我们的纹理上的mipmaps很可能失效了。更新你的驱动程序应该可以解决这个问题。
Triton崩溃了
如果Triton在Ocean::Draw()中崩溃了,请确保Draw()调用是在创建海洋和环境的同一线程和GL上下文中进行的。导致这个问题的常见原因是在图形上下文初始化之前初始化Triton,或者在多个窗口设置中,你需要在每个窗口中维护单独的环境和海洋实例(除非你在这些多个图形上下文之间启用了上下文列表共享)。
如果你的应用程序是用预处理器标志_SECURE_SCL=0或_HAS_ITERATOR_DEBUGGING=0构建的,这也可能导致麻烦,因为我们的库不是用这些标志构建的。试着去掉这些标志,或者联系我们:https://www.dhorde.com/ 在线客服,电话 023-62585653,或邮箱 sales@dhorde.com,以获得适合你需要的特殊库构建。
如果你仍然遇到麻烦,或者你认为你遇到了一个我们应该知道的系统兼容性问题,请联系我们:https://www.dhorde.com/ 在线客服,电话 023-62585653,或邮箱 sales@dhorde.com。我们很高兴为你提供有限的售前支持,而且我们总是对识别和修复任何我们以前没有遇到过的新的错误非常感兴趣。
渝公网安备50010702505508