【问题标题】:How to handle a Java 7 LWJGL shader exception?如何处理 Java 7 LWJGL 着色器异常?
【发布时间】:2014-04-26 13:15:23
【问题描述】:

我尝试使用 3d 引擎 jme3 和 jmeplanet 库运行我的techdemo 进行 3D 渲染,它会显示启动启动画面并开始渲染 3D 场景,但是当启动控件并实际在游戏世界中移动时,它因此错误消息而崩溃。你能帮我解释一下这是什么意思吗?这些项目在 MS-Windows 8.1 上运行良好(但它也在 Ubuntu 上获得了第二个不同的堆栈跟踪)。

【问题讨论】:

  • 这是片段着色器(在显卡上运行的一段代码)的问题。您是否尝试过编辑片段着色器?如果是这样,您可以将其包含在问题中(使用相应的 j3md 材料文件)
  • 顺便说一句,不同计算机上出现不同错误的最可能原因是由于不同 OpenGL 版本的片段着色器不同;可能只有 1 个坏了
  • 你更新到最新的显卡驱动了吗??

标签: macos java-7 lwjgl jmonkeyengine


【解决方案1】:

根据错误,看起来 OpenGL 无法编译您的片段着色器,因为错误指定 GLSL 语言版本为 1(语言 = GLSL100),这是非常旧的,我假设用于创建的语法着色器适用于更高级别的 OpenGL。尝试查看引擎使用的 OpenGL 版本以及您的显卡是否支持。另外,尝试检查该片段着色器的源代码是否在第一行包含#version XXXX 指令,如果它没有尝试添加引擎正在使用的 OpenGL 版本的 GLSL 版本。

如果它没有解决您的问题,请在此处发布该片段着色器的源代码。

【讨论】:

  • 我在AppSettings.java 中找到了关于OpenGL 版本的明确说明,现在我将在下次获得除Win 8.1 之外的另一个操作系统时尝试它。我还在 Virtuabox 中使用模拟的 Ubuntu 对其进行测试,并获得不同的堆栈跟踪。
  • 我认为在模拟操作系统上必须有一些选项来启用硬件加速(opengl、directx 等)。在测试之前确保它在那里启用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多