OpenGL,如何设置GLSL版本
OpenGL, how to set up GLSL version?
我的系统使用freeglut的OpenGL和GLSL的默认版本是4.1,同样使用glow,它的初始化,着色器编译和链接以及执行都没有问题。
当我不指定glutInitContextVersion, glutInitContextFlags或glutInitContextProfile时,这个默认版本会发生,然后我的着色器工作正确。
无论我是否支持这个版本,我都想提供一个3.3替代版本。当我使用指定3.3版本的glut上下文时,应用程序启动时没有错误,glow也没有抱怨。我的着色器应该使用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);
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 在C++/Linux中设置单调时钟的一些技巧
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 嵌套在类中时无法设置成员数据
- 需要帮助设置在C++中使用的Potrace
- OpenInventor从9.8升级到10.4.2后,GLSL纹理返回零
- 如何在自删除后将对象设置为nullptr
- 将指针设置为"nullptr"并不能防止双重删除?
- 如何在Ubuntu中使用cmake设置qt4
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 如何在boost beast http请求中设置http头
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 如何在24位SDL_Surface上设置像素的颜色
- GLSL 统一 ivec 未设置,并且在询问时具有默认(错误)值
- GLSL 计算着色器 使用查找表设置缓冲区会导致不写入任何数据,与其他数据设置相同的缓冲区有效
- 颜色设置在碎片着色器中,未显示GLSL 1.30
- OpenGL,如何设置GLSL版本
- 我的GLSL着色器对象/包装器是否应该封装加载/设置VertexArrayObject