gpt4 book ai didi

c++ - OpenGL,如何设置GLSL版本?

转载 作者:行者123 更新时间:2023-12-03 06:51:11 25 4
gpt4 key购买 nike

我的系统使用 freeglut 的 OpenGL 和 GLSL 的默认版本是 4.1,同样使用 glew,它的初始化、着色器编译和链接以及执行都没有问题。
当我没有指定 glutInitContextVersion、glutInitContextFlags 或 glutInitContextProfile 时,会发生这个默认版本,然后我的着色器工作正常。
不管我是否支持这个版本,我都想提供一个 3.3 的替代方案。当我使用指定 3.3 版本的 glut 上下文时,应用程序启动时没有错误,glew 不会提示。我的着色器假设使用 GLSL 3.3 版本,然后我设置了行

#version 330
但是当我的着色器被编译时,OpenGL 会提示一个无效的枚举消息。我尝试删除此行或将其设置为另一个版本,但仍然出现相同的错误。在所有初始化都正确完成后,我要求使用 OpenGL 版本,我得到了正确的 3.3,但对于 GLSL 版本,我仍然得到默认的 4.1。
glGetString(GL_SHADING_LANGUAGE_VERSION);
如果我是对的,请纠正我,我猜这个版本被着色器代码中的版本行覆盖了。我想知道是否也有机会初始化指定 GLSL 版本的上下文?

最佳答案

我终于解决了。如果我将核心配置文件与兼容模式一起设置glutInitContextProfile(GLUT_CORE_PROFILE | GLUT_COMPATIBILITY_PROFILE);无法识别 2.1 版本的 OpenGL 命令。这与教程中提供的信息背道而驰。无论如何,只需设置 GLUT_COMPATIBILITY_PROFILE 即可使用 3.3 或更高版本。

关于c++ - OpenGL,如何设置GLSL版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8157586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com