OpenGL
文章平均质量分 63
@会飞的毛毛虫
计算机专业博士在读,曾在课题组负责过硬件、软件、算法及落地部署的开发工作,发表了几篇水文。主要方向是做跟踪、跨域的虚拟生成,致力于成为一名Full Stack developer。有相关问题可以私信我为大家解答,看到不妨点个关注,我们一起进步哦!
展开
-
基于Qt的OpenGL(五):添加一个或多个纹理及纹理环绕方式
按照前几节的知识,如果要给图像绘制真实的颜色,需要给每个像素一个颜色,这样做是不现实的。通常会采用纹理绘图。每一个顶点关联一个纹理坐标(Texture Coordinate),之后在图形的其他片段上进行片段插值(Fragment Interpolation)。我们的工作:告诉OpenGL该怎样对纹理采样。下图是增加纹理坐标属性后的数据格式:接下来说明如何添加一个纹理:首先在资源文件里添加一张图片:images表示类别,image表示文件夹,不矛盾:接着,输入纹理,对应的点选几个,其他原创 2021-10-04 16:09:59 · 1808 阅读 · 0 评论 -
基于Qt的OpenGL(四):GLSL更多属性-把颜色数据加进顶点数据中
理解了前面三节后,下面这幅图很直观的就能看出来:直接上代码:相较于之前的代码就增加了两行#ifndef MYOPENGLWIDGET_H#define MYOPENGLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions_3_3_Core>#include <QOpenGLShaderProgram>class myopenglwidget : public QOpenGLWidget,QO原创 2021-10-04 12:26:21 · 4666 阅读 · 0 评论 -
基于Qt的OpenGL(三):QOpenGLShaderProgram和GLSL
QOpenGLShaderProgram是对ShaderProgram编译过程的封装,不管是加载SourceCode还是SourceFile,采用Qt的封装都是非常棒的。如果不封装,就会像下图一样,先把代码写入字符串,没有颜色标识,而且每行还得有换行符,非常麻烦。因此我们希望能像普通的C++代码一样编写Shader,好在Qt已经帮我们封装好了。为了在QT中正常加载并编辑shader文件:在工具->选项 中设置编码规则为UTF-8。步骤1:在pro文件目录新建txt文本,修改名字为shapes原创 2021-10-03 22:28:10 · 6560 阅读 · 1 评论 -
基于Qt的OpenGL(二):通过主界面绘制QOpenGLWidget
直接上QOpenGLWidget类的.h和.cpp代码:代码相对于第一节增加了析构函数,对内存合理释放。同时开放了和主界面互动的接口,想要通过按钮或者其他控件进行绘图,只需要在类中开放接口即可。程序给了详细的注释。#ifndef MYOPENGLWIDGET_H#define MYOPENGLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions_3_3_Core>class myopenglwidget :原创 2021-10-03 19:02:47 · 1288 阅读 · 0 评论 -
基于Qt的OpenGL(一):OpenGL理论及QOpenGLWidget
框架:OpenGL3.3、Qt 5.12.3MinGW(3.2以前是传统模式(固定管线模式-已被丢弃),3.3是现在模式(可编程管线))优势:安装简单,Qt已经封装好了,如GLFW和GLAD。自己有支持OpenGL的窗口。介绍:OpenGL是Open Graphics Library的缩写,它是由Khronos组织制定并维护的一个规范。OpenGL的核心库是用C语言编写,但同时也支持多种语言的派生。核心模式:3.3以后版本新推出的模式,也叫现在模式或可编程模式。GPU渲染是一个流水线:比如输入一大原创 2021-10-03 13:39:30 · 8944 阅读 · 0 评论