opengl 版本

前两天买的opengl红宝书第八版还没到,于是在网上找了个教程开始学习。今天书到了,才发现前几天学的全是过时的旧版gl内容。


晚上看书的时候发现第一个例子都这么难,心理不免有些失落。配置了半天环境,最后终于出图像了。现在记录一下中途遇到的问题:

1、配置开发环境的时候,我是参考这篇文章来的;点击打开链接

2、运行后发现自己的显卡只能支持opengl4.2,例子中的glutInitContextVersion(4, 3);设置的是4.3,直接运行的话无法创建4.3的窗口;

然后我就想当然的改成把参数改成4.2;结果出现很多人遇到的错误:

glGenVertexArrays:0x00000000处未处理的异常 0xC0000005:Access Violation.内存错误


最后在网上有人说改成3.1,我试了一下确实好了。


3.在写triangle.vert和triangle.frag时,opengl着色语言部分可以是 
#version 330 core
<think>嗯,用户想查询OpenGL版本信息以及更新日志。首先,我需要回忆一下如何通过代码获取OpenGL版本信息。记得OpenGL提供了glGetString函数,可以传入不同的参数来获取版本、厂商、渲染器等信息。比如,GL_VERSION会返回版本号,GL_SHADING_LANGUAGE_VERSION返回GLSL的版本。在用户提供的引用[1]里,有一个TEGlVersionInfo函数,里面调用了glGetString来获取这些信息,并记录到日志中。这说明用户可能需要类似的代码示例来获取版本信息。 接下来,用户可能还想知道各个版本的主要更新内容。比如从OpenGL 1.0到最新的4.6版本,每个版本都有不同的新特性。比如,OpenGL 2.0引入了可编程着色器,3.0开始废弃固定管线,4.0增加了细分着色器等。需要将这些关键版本的更新点整理出来,帮助用户理解不同版本的区别。 另外,用户提到了更新日志,可能需要简要说明如何查看官方的更新文档,比如访问OpenGL官方网站或者Khronos Group的页面。引用[2]和[3]提到了GLSL版本和绘制方法,这些可能和不同OpenGL版本支持的特性有关联,需要联系起来说明。 还要注意用户可能的实际应用场景,比如开发跨版本的应用时需要考虑兼容性,或者在使用某些高级功能时需要特定版本的支持。例如,引用[4]中的Android OpenGL ES代码,可能涉及到移动端的OpenGL ES版本,但用户的问题是关于桌面版的OpenGL,需要区分清楚,避免混淆。 最后,生成相关问题时要围绕版本查询方法、版本差异、更新内容以及实际开发中的注意事项来设计,帮助用户进一步深入了解。</think>### OpenGL版本信息查询方法 1. **通过代码获取版本信息**: 使用$glGetString(GL_VERSION)$获取OpenGL版本,$glGetString(GL_SHADING_LANGUAGE_VERSION)$获取GLSL版本。示例代码参考: ```cpp const GLubyte* version = glGetString(GL_VERSION); std::cout << "OpenGL Version: " << version << std::endl; ``` 该函数会返回形如"4.6.0 NVIDIA 456.71"的字符串[^1]。 2. **命令行工具查询**: - Windows:使用GPU-Z或dxdiag - Linux:执行$glxinfo | grep "OpenGL version$" - macOS:系统报告 > 图形/显示器 ### 主要版本更新日志 | 版本 | 发布时间 | 重大特性 | |------|---------|---------| | OpenGL 1.0 | 1992 | 固定渲染管线、立即模式绘制 | | OpenGL 2.0 | 2004 | 引入GLSL可编程着色器[^2] | | OpenGL 3.0 | 2008 | 废弃固定管线,核心模式强制VAO | | OpenGL 4.0 | 2010 | 细分着色器(Tessellation) | | OpenGL 4.6 | 2017 | SPIR-V支持、更高效的多线程 | ### 版本兼容性注意事项 1. 使用新版特性需在着色器首行声明版本: ```glsl #version 460 core // GLSL 4.6核心模式[^2] ``` 2. 旧版驱动可能不支持新特性,建议使用glew/glad扩展加载库 3. 移动平台需区分OpenGL ES版本(ES 2.0/3.0/3.1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值