Mac 13.1下使用GLSL 330 core着色器编译失败求助
解答
- 没错,就是这个原因。你的环境仅支持OpenGL 2.1,而
#version 330是OpenGL 3.3核心配置文件对应的着色器版本,2.1完全不兼容这类特性,所以才会出现版本不支持、语法错误的报错。 - 你看到的
2.1 Metal - 83说明当前是在macOS系统上,通过Metal层转译提供OpenGL 2.1的兼容实现,默认不会启用高版本OpenGL上下文。 - 如果想继续跟着LearnOpenGL的教程走,需要在SDL2创建窗口时,添加配置参数强制请求OpenGL 3.3核心上下文。不过要注意,部分旧款Mac硬件不支持OpenGL 3.3及以上版本,得先确认你的设备硬件能力。
- 要是硬件不支持高版本,也可以改用OpenGL 2.1对应的着色器版本
#version 120,但教程里的核心管线代码要改成2.1的固定管线写法,需要做不少调整。
内容的提问来源于stack exchange,提问作者Veer Singh
相关产品推荐
相关产品推荐

