这是一个非常奇怪的问题。
我有一个非常简单的着色器,带有一个统一的 vec4,在使用 GLEW 和 GLFW 的程序中运行。该程序在我运行该程序的几台装有 nVidia 显卡的机器上运行良好。
问题是,当我切换到带有 Intel Graphics 3000 芯片(支持 OpenGL 3.1,我的目标版本)的笔记本电脑时,任何尝试设置统一变量值的函数调用(glProgramUniform4f、glProgramUniformMatrix4fv、其他任何东西) ),游戏因访问冲突而崩溃。
此外(我知道这不是直接的问题,但我认为它可能与解决方案有关),在 nVidia 机器上调用 glGetUniformLocation 返回较小的值,而在 Intel 机器上的相同调用返回较大 (> 6 位)值。
我会发布代码,但我不太确定会有什么帮助。如果您没有找到解决方案,但您知道我应该发布什么样的代码,请告诉我,我很乐意为您效劳!
谢谢!