基于Qt的OpenGL编程(3.x以上GLSL可编程管线版)---(二十四)高级GLSL技巧

这篇博客介绍了基于Qt的OpenGL编程中的高级GLSL技巧,包括顶点着色器变量gl_PointSize、片段着色器变量gl_FragCoord、gl_FrontFacing和gl_FragDepth的使用,以及接口块和Uniform缓冲对象的应用。文章提供了相关代码示例,展示了如何利用这些特性在Qt环境中实现图形渲染和效果调整。
摘要由CSDN通过智能技术生成

Vries的教程是我看过的最好的可编程管线OpenGL教程,没有之一其原地址如下,https://learnopengl-cn.github.io/04%20Advanced%20OpenGL/08%20Advanced%20GLSL/关于高级GLSL技巧的详细知识了解请看原教程,本篇旨在对Vires基于visual studio平台的编程思想与c++代码做纯Qt平台的移植,代码移植顺序基本按照原教程顺序,并附加一些学习心得,重在记录自身学习之用

Tip1Joey De Vries的教程写的真是非常好呢,他本人可能想不到,他的中文版教程在中国的CSDN上有N多的“备份”,为什么有的人通篇转载他的教程时不能加上“转载”两个字呢。

Tip2: 博客最后的“Uniform缓冲对象”特别有用,特别推荐看Vries原教程的解析,强推!!!

Tip3: 这节的Qt代码移植没有值得注意的地方,可直接将Vries的代码直接复制进来使用。

 

程序源代码链接:https://pan.baidu.com/s/1stvBQWxAI6Pu_GznF4Jc7Q 提取码:juh9 

编译环境:Qt5.9.4

编译器:Desktop Qt5.9.4 MSVC2017 64bit

IDE:QtCreator

 

一. 这篇博客要讲什么

    这节的内容在讲,关于着色器shader本身,一些有趣且有用的内建变量,比如gl_Position就是着色器的一个内建变量,负责在顶点着色器中,向其他着色器传递空间中点的坐标。因为这些内建变量都是着色器本身就具有的,所以在移植到Qt时,不需要结合Qt本身平台做一些函数的特殊化处理,直接粗暴复制代码即可。

 

. 顶点着色器变量

  2.1 gl_PointSize

  当以GL_POINTS格式进行绘制点时,默认的点非常小,如左下图所示。

  core->glDrawArrays(GL_POINTS, 0, 36);

而顶点着色器中的内建变量gl_PointSize就可以改变绘制的点的大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值