QT中学习Opengl---(GLSL简单的使用)
来源:http://www.tudoupe.com时间:2022-02-08
前言:
本文的代码是LearnOpenGL中对应代码,这里提供学习,大家喜欢的可去官方网站去看看:
https://learnopengl-cn.readthedocs.io/zh/latest/
https://learnopengl-cn.readthedocs.io/zh/latest/
本章简单讲解GLSL 中的简单使用,详细知识点请查阅对应书籍
GLSL:
着色器是使用一种叫GLSL的类C语言写成的。 GLSL是为图形计算量身定制的, 它包含针对向
量和矩阵操作的有用特性。
比如我们顶点着色器写成:
这里我们看到有layout out ,其实我们常用的就是 in out 、layout、uniform这几个,下面我给你们讲下基本情况,大家也就了解了。
in 与 out
在shader.vs 文件下:
在shader.fs 文件下:
我们可以看到里面都有个变量vertexColor,在顶点着色器中输出,然后在片段着色器接受,然后在给颜色。
输出结果:

如何理解in 与 out 呢:

如图,in 就是给这个着色器的值,out 就是送出去的值。这下,你懂了吧。
全部代码:
cpp
layout
我们先看基本标识:
这里有location = 0,1.这里就是对应变量的编号。比如我想把顶点写成
前边是位置,后面是颜色值,那我们要告诉gpu改如何操作,于是下面代码你就懂了:
第一参数就是对应的location,然后最后一个是偏移量。这下你懂了吧。
我们使用qt中找到对应的pos值也是可以的 。
输出结果:

cpp代码:
uniform
uniform是另一种从CPU应用向GPU着色器发送数据的方式, 但uniform和顶点属性有点不
同。 首先, uniform是全局的(Global)。 这里全局的意思是uniform变量必须在所有着色器程序
对象中都是独一无二的, 它可以在着色器程序的任何着色器任何阶段使用。 第二, 无论你把
uniform值设置成什么, uniform会一直保存它们的数据, 直到它们被重置或更新。
我们先看基本标识:
然后我们在代码中写到:
这个是qt提供的类使用的方法,原生方式:
这里的id 就是你glCreateProgram()返回的值,原生态你要创建的链接器id
然后修改对应的数据:
输出结果:

全部代码:
写在后面的话:
喜欢我博客的小伙伴们,也同时想在qt上学习opengl的伙伴,可以关注与点赞博客,让我们共同进步吧。
下一篇:没有了
相关新闻
- 2022-02-08 WAMP环境下PHPExcel使用
- 2022-02-08 一键ghost重装xp系统教程
- 2022-02-08 专业版64位win10安装教程
- 2022-02-08 电脑系统u盘安装教程win7
- 2022-02-07 Openwrt 镜像安装
- 2022-02-07 win11正式版如何退回win10 windows11正式
- 2022-02-07 win11正式版镜像如何安装
- 2022-02-07 QT中学习Opengl---(绘制矩形glDrawEl
- 2022-02-07 openGL之API学习(一九九)纹理单元
- 2022-02-07 小白pe系统怎么重装系统
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
