美文网首页OpenGL程序员OpenGL
关于我这踩过的关于OpenGL的坑

关于我这踩过的关于OpenGL的坑

作者: 旅行中的穿越者 | 来源:发表于2019-03-18 22:16 被阅读10次

这两天我几乎一门心思扑在了OpenGL上面了,也踩了不少坑,在这里我向大家分享一下关于我所踩过的坑。

1.OpenGL关于版本

以下是我的吐槽,可以跳过。

OpenGL最新版本是2017年出的4.6,从NVIDIA当年发布的驱动说明来看,这貌似是OpenGL的最终版本。妈耶,这东西原来都差不多凉了吗。其实以目前来看OpenGL还是挺不错的,特别是4.6版本开始完全支持SPIR-V。这是个什么东西呢?玩过现代OpenGL的想必都写过着色器,但如果你想要使用着色器,在此之前你要么在源代码里写个const char*类型的字符串,要么自己写一个着色器的加载类,这他妈烦不烦啊。而且我等既然都用起了C++,这种运行时的编译过程自然是怎么看怎么不顺眼。所以,这个时候,SPIR-V登场了,SPIR-V实际上就是着色器程序的中间代码,可以直接加载到程序中使用,但是这有个问题出现了。

使用二进制的中间代码文件要求使用两个API函数,一个是glShaderBinary,一个是glSpecializelizeShader。这两个函数一个是OpenGL4.1的函数,一个是OpenGL4.6的函数,我也不知道为什么要这么设计,反正如果你OpenGL如果不是4.6,你就不得不自己写个着色器代码的加载类了,或者字符串内嵌到代码里面。本人的GTX 1050自然是支持OpenGL4.6的所以我就开开心心的上手了。

但是GLFW在我设置了4.6版本后居然罢工了。

我甚至一度怀疑GLFW这个2016年最后一个版本的第三方窗体库是不是不支持4.6,最后自然是我错了,人家当然支持。

是我一直在开着核显跑程序。

intel7代酷睿的核显不支持4.6。 

解决方法自然是更改了显卡的全局设置,问题解决。


2.关于GLAD的问题

一开始我的GLAD是从github上不知道哪里下的,第三方库本身就不支持4.6版本。

这里我给出一下我最后弄GLAD的地址。

3.关于glslang工具编译报错

我一开始编译着色器的时候会报如下错误:

'location' : SPIR-V requires location for user input/output

其实SPIR-V对源代码的要求更加严格,你必须要对每个着色器程序的in和out变量都要加上一个layout(location=xxx),不然就会报错。

相关文章

  • 关于我这踩过的关于OpenGL的坑

    这两天我几乎一门心思扑在了OpenGL上面了,也踩了不少坑,在这里我向大家分享一下关于我所踩过的坑。 1.Open...

  • 关于我买网课踩过的坑

    不知道大家有没有收到过这样的消息“你想多一份收入吗?”“你想做副业吗?”,我第一次接触ps就是被这样的消息吸引的...

  • 交互设计师所要避免的几个坑

    前言 工作中难免会踩到几个坑,即使现在不踩以后还会踩,只有踩过才会深刻记住,踩过说明爱过!但是踩过的坑必须把坑填满...

  • 吃一堑长一智

    首先,要先吃一堑,俗称“踩坑”。 踩过坑,吃过亏,从中吸取一点教训,避免重复犯错误,这坑也算没有白踩。 最近看到一...

  • 20考研过来人告诉你,这些坑你绝不能踩

    已经被学姐学长踩过的坑,求你别踩 真的大坑!关于院校选择 @alllwaysalllone: 选择大于努力 @CH...

  • vue踩过的坑

    vue踩过的坑

  • 关于ReactNative 中 this 踩过的坑

    最近项目要求使用reactnative开发,对于我这个新手来说已上手就遇到了许多奇奇怪怪的问题,今天我就来说说遇到...

  • 关于目标你踩过的坑

    14/60晨间三件事(6.18)+复盘经验 复盘经验 不要理想化,真实面对自己,以实际的时间利用率进行时间预估;越...

  • 关于 GROUP BY 踩过的小坑

    首先,我们有一张数据字段如下的数据表。 现在,我想要取每个 event_id 下最新的 status 的值,于是,...

  • 踩过的坑

    1、关于Windows下修改hosts文件无法生效,刚开始直接用浏览器打开发现404,后来ping域名才发现是连接...

网友评论

    本文标题:关于我这踩过的关于OpenGL的坑

    本文链接:https://www.haomeiwen.com/subject/mltpmftx.html