Qt+OpenGL
文章平均质量分 76
JuicyActiveGilbert
心有猛虎,细嗅蔷薇。
胸有惊雷而面若平潮者,可拜上将军。
写博客的初衷是为了记笔记,代码有任何看不懂的地方可以留言,希望我的笔记能为你带来助力。
展开
-
Qt+OpenGL——模型控制类实现
头文件#ifndef GLMODELCTRL_H#define GLMODELCTRL_H#include <QVector2D>#include <QVector3D>#include <QMatrix4x4>#include <QObject>class GLModelCTRL : public QObject{ Q_OBJECTpublic: explicit GLModelCTRL(QObject *parent原创 2020-08-05 10:46:23 · 347 阅读 · 0 评论 -
Qt+OpenGL——通过索引绘制管道模型并使用鼠标控制摄像机镜头
头文件#ifndef GLWIDGET_H#define GLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions_4_5_Core>#include <QWheelEvent>#include <QMouseEvent>#include <QOpenGLShaderProgram>#include "glcamera.h"class GLWidget : pu原创 2020-08-05 09:53:03 · 716 阅读 · 1 评论 -
Qt+OpenGL——摄像机类实现
参考链接:从零实现3D图像引擎:(12)构建支持欧拉和UVN的相机系统LearnOpenGL CN——摄像机头文件#ifndef GLCAMERA_H#define GLCAMERA_H#include <QVector2D>#include <QVector3D>#include <QMatrix4x4>#include <QObject>class GLCamera{public: GLCamera(float aspe原创 2020-08-05 09:49:41 · 861 阅读 · 0 评论 -
Qt+OpenGL——参考公开课绘制球
公开课地址:中国大学慕课网——华中科技大学《计算机图形学》根据老师的课件的代码绘制出来的球只有一面,当把X坐标和Z坐标进行交换就能正常绘制出球。shader代码参考上一篇博客:Qt+OpenGL——索引绘制四边形头文件#ifndef GLWIDGET_H#define GLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions_4_5_Core>#include <QOpenGLShaderPro原创 2020-07-24 15:44:14 · 1217 阅读 · 2 评论 -
Qt+OpenGL——索引绘制四边形
头文件#ifndef GLWIDGET_H#define GLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions_4_5_Core>#include <QOpenGLShaderProgram>class GLWidget : public QOpenGLWidget,public QOpenGLFunctions_4_5_Core{ Q_OBJECTpublic: e原创 2020-07-23 15:42:07 · 575 阅读 · 0 评论 -
Qt+OpenGL——屏幕坐标转OpenGL归一化后的坐标
OpenGL在显示图形时是将坐标转化为以屏幕中心为原点的一个坐标系。屏幕显示区域的x,y轴的取值区间都是[-1,1]。如图:Qt界面的坐标系是以左上角为原点的坐标系,将鼠标点击的点转化为OpenGL坐标的算法较为简单,不再赘述直接以代码的形式进行给出。代码如下:GLW_POINT mousePosToNormalizedPos(const QPoint &pos){ ...原创 2019-06-06 14:23:53 · 3194 阅读 · 0 评论 -
Qt+OpenGL——3D坐标转2D坐标
原理介绍:https://learnopengl-cn.github.io/01%20Getting%20started/08%20Coordinate%20Systems/代码实现为了获取模型中的顶点在窗口中显示的坐标。我们可以借用glm库对模型坐标进行转换。代码如下:struct GLW_POINT{ double x = 0.0; double y = 0...原创 2019-05-31 14:57:43 · 1158 阅读 · 0 评论 -
Qt+OpenGL——着色器
定义与结构着色器是使用一种叫GLSL的类C语言写成的运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信;它们之间唯一的沟通只有通过输入和输出。——LearnOpenGL CN一个典型的着色器有下面的结构:#version version_number ...原创 2019-05-24 10:27:51 · 1891 阅读 · 0 评论 -
QT+OpenGL——GLFW编译配置
环境:Qt5.8.0、VS20151、下载glfw源码;地址:https://www.glfw.org/download.html2、下载cmake工具;地址:http://www.cmake.org/cmake/resources/software.html3、启动cmake-gui,配置好源码路径及编译路径;如图:4、点击configure选择vs 2015如图:5...原创 2019-05-17 12:02:15 · 3272 阅读 · 0 评论 -
Qt+OpenGL——第一个三角形
在使用纯C++进行OpenGL开发的时候,需要使用额外的库(例如:GLFW、GLAD等),但是使用Qt进行OpenGL开发时将不再需要安装额外的库,自Qt5.4以后Qt便有了QOpenGLWidget类使我们方便的进行开发。初学OpenGL在求助前辈后得到一个国外大神编写的OpenGL教程,由国内大神进行了翻译(网址在文末给出)。但是大神是用的纯C++进行的开发,所以并不是很适合Qt+Open...原创 2019-05-17 15:56:06 · 785 阅读 · 7 评论