自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (195)
  • 收藏
  • 关注

原创 error: LNK2019: 无法解析的外部符号 gluPerspective

error: LNK2019: 无法解析的外部符号 gluPerspective原因:找不到头文件#include "GL/GLU.H"#include "GL/GL.H"#include "GL/GLAUX.H"解决:在qt工程中包含这3个头文件,主要大小写头文件下载地址

2021-05-28 09:27:56 1356 4

原创 non-portable path to file ‘“GL/GL.H“‘; specified path differs in case from file name on disk

non-portable path to file '"GL/GL.H"'; specified path differs in case from file name on disknon-portable path to file'"GL/GLU.H"'; specified path differs in case from file name on disknon-portable path to file'"GL/GLAUX.H"'; specified path differs in c

2021-05-27 16:21:53 4629

原创 GLFW编译生成dll lib库

GLFW编译生成dll lib库GLFW下载选择 Download GLFW 3.3.4 Release on April 8, 2021 ,下载的是源码,需要自己编译成lib和dll选择GLFW 3.3.4 isavailable for download.,是官方编译好的lib和dll,如果图省事,就选择他glfw3.3.4编译好的lib和dll...

2021-05-22 21:18:09 680

原创 QtCreator 下使用glut.lib glut.dll

QtCreator 下使用glut.lib glut.dll问题qtCreator下error: LNK1104: 无法打开文件“glut32.lib原因:We direct you to use FreeGLUT found on SourceForge:http://freeglut.sourceforge.net/. The original GLUT has been unsupported for 20 years.意思过就是glut已经超过20年没有更新了,心在已经被..

2021-05-21 17:22:28 564

原创 FLEW(The OpenGL Extension Wrangler Library) 源码编译

FLEW(The OpenGL Extension Wrangler Library) 源码编译前言: 最近发现GLEW库在vs2013~VS019都能正常使用,但是在QtCreator下却无法使用,万般无奈下,自己重新编译了一下GLEW库下载GLEW下载GLEW 2.1.0发现源码报错,只好下载glew-2.2.0.zip下载glew-2.2.0.zip地址1 .解压后的目录结构2. 使用vs2017打开glew.sln工程3...

2021-05-21 14:44:39 312

原创 glew\glew.h:85: error: C1189: #error: gl.h included before glew.h

glew\glew.h:85: error: C1189: #error: gl.h included before glew.h原因头文件包含顺序导致,qt中使用opengl的话头文件书写顺序错误的话会报告这个错误,这时需要保证#include <QOpenGLWindow>#include <QOpenGLWidget>#include <QGLWidget>#include <QGLFunctions&g...

2021-05-20 15:33:51 1997

原创 QtCreator中文乱码

QtCreator中文乱码1 .现象(1)按照下图的QtCreator设置依然有中文乱码(2)在notepad++中设置 转为UTF-8 BOM编码,依然有乱码解决在pro工程文件中加入 :QMAKE_CXXFLAGS+=-execution-charset:utf-8...

2021-05-11 19:13:32 498

原创 unity下载和安装

unity下载和安装1. 下载unity安装包 unity官网下载2. 选择你需要的版本 这里我选择windows / Unity Editor 64-bit版本3. 安装 4. 安装完后,第一次启动Unity时弹窗,选择Install然后会弹出如下页面,选择下载Unity Hub,并安装Unity Hub然后会弹出界面...

2021-05-09 21:57:34 3526

Windows权限服务控制启动服务停止服务Delivery Optimization

Windows权限服务控制Delivery Optimization OpenService failed. Error code: 1060. 指定的服务未安装,代码解决以上问题

2024-08-21

使用openGL、glad、glfw、stb-image创建鼠标和键盘wsad控制窗口内的视口,并加载纹理

使用openGL、glad、glfw创建鼠标和键盘wsad控制窗口内的视口,并加载纹理,封装了openGL中的相机、矩阵变换、纹理处理,窗口键盘鼠标事件响应,参考learn openGL

2024-03-20

QGraphicsItem、QGraphicsView、QGraphicsScene封装

QGraphicsItem、QGraphicsView、QGraphicsScene封装自定义

2023-04-02

Qt QListWidget传入多张图片

Qt QListWidget传入多张图片,QListWidget样式设置,QListWidget是继承QListView,QListView是基于Model的,需要自己来建模(如建立QStringListModel,QSqlTableModel等),保存数据,这样就大大降低了数据冗余,提高了程序的效率,但是需要我们对数据建模有一定的了解,而QListWidget是一个升级版本的QListView,它已经为我们建立了一个数据存储模型QListWidgetItem,操作方便,直接调用addItem即可添加Item项。

2023-03-20

Qt中QMap和QMultimap使用

QMap 是Qt的通用容器类之一。它存储(键,值) 对,并提供与键相关联的值的快速查找。其实就是一个键值对的集合,经常使用的。具体更详细还得看看帮助文档 QMap/QMultiMap属于关联式容器,其底层结构是通过二叉树实现,故其查找value的效率很快。QMap中的数据都是成对出现的,第一个称为key(键),第二个称value(键值)。

2023-03-19

QT使用QListWidget显示多张图片

使用了QListWidget,QDockWidget QListWidget类提供了一个基于项目的列表小部件 QListWidget是一个方便的类,它提供了一个列表视图,类似于QListView提供的列表视图,但是具有一个用于添加和删除项的经典基于项的接口。QListWidget使用一个内部模型来管理列表中的每个QListWidgetItem。要获得更灵活的列表视图小部件,请使用带有标准模型的QListView类。列表小部件的构造方法与其他小部件相同。QListWidget与QListView类似,都可以显示一列Item,区别在于前者可以往其中增删Item。 QListWidget确定可以同时选择列表中的多少项,以及是否可以创建复杂的项选择。这可以使用函数设置

2023-03-10

Qt QDockWidget、QtreeWidget界面实现

Qt QDockWidget、QtreeWidget界面实现 ,QDockWidget提供了dock widget的概念,也称为工具面板或实用工具窗口

2023-03-09

openCV加载jpg图片完整代码

openCV加载jpg图片完整代码,包含完整头文件、lib、dll无需安装和配置opencv就可以运行

2023-02-23

QTreeWidgetItem的setData(int column,int role,QVariant& data)等,

Qt中QVariant是多种类型的联合,QVariant类中有个SetValue(T& value)方法,将自定义 T 类型的数据保存到QVariant对象中,可以理解为是自定义类型被封装成了QVariant的形式,这样,我们自定义的T类型的对象就能够通过所有参数和返回值为QVarian类型传递。比如QTableWidgetItem的setData(int column,QVariant& data)和QTreeWidgetItem的setData(int column,int role,QVariant& data)等,通过setData函数我们可以为每个单元格保存自己想绑定的数据及为每个树节点保存想绑定的自定义类型的数据。   但是,QVariant中的setValue方法的使用有个前提,就是我们自定义的类型要能被Qt所识别。那该怎样识别呢?   这就要用到宏定义Q_DECLARE_METATYPE了,通过这个宏定义可以将自定义的类型注册到Qt的元类型中,从而被Qt识别,通常在自定义类型定义之后使用。

2022-09-16

QStackedWidget 控件使用详解

QStackedWidget 控件相当于一个容器,提供一个空间来存放一系列的控件,并且每次只能有一个控件是可见的,即被设置为当前的控件。QStackedWidget可用于创建类似于QTabWidget提供的用户界面。它是一个构建在QStackedLayout类之上的方便布局小部件。与QStackedLayout一样,QStacked Widget可以构建并填充许多子Widget(“页面”):

2022-09-07

QTreeWidget类是一个方便的类,它提供了一个标准tree小部件与一个典型的基于项目所使用的接口类似QListView

QTreeWidget类是一个方便的类,它提供了一个标准tree小部件与一个典型的基于项目所使用的接口类似QListView Qt 3类。这个类是基于Qt的模型/视图的体系结构,使用一个默认的模型项目,每一个都是一个QTreeWidgetItem。      开发人员不需要模型/视图框架的灵活性可以使用这个类来创建简单的分层列表。更灵活的方法是结合QTreeView标准项目模型。这允许存储的数据是与它的表示分离。 在其最简单的形式,一个tree小部件可以构建在以下方式

2022-09-02

QTreeWidget用法并解决中文乱码问题 QTreeWidgetItem

QTreeWidget用法并解决中文乱码问题 Qt中实现树形结构可以使用QTreeWidget类,QTreeWidgetItem,也可以使用QTreeView类,QTreeWidget继承自QTreeView类。

2022-08-31

openSceneGraph3.5.1编译

osg3.5.1_windows_lib_dll_debug_release,openSceneGraph3.5.1编译 OpenSceneGraph3.5.1在windows10、visual studio2019编译的动态库和静态库

2022-08-23

Movie To GIF 主要特点 将视频转换为动画 GIF 将 AVI,MPEG,MKV,MP4,WMV,MOV 和 RM 等

Movie To GIF 主要特点 将视频转换为动画 GIF 将 AVI,MPEG,MKV,MP4,WMV,MOV 和 RM 等视频文件转换为动画 GIF 文件,同时保持原始播放速率和分辨率。 调整 将输出图像文件的分辨率保持为原始分辨率,或根据需要设置新大小。 帧率 用户可以更改输出帧速率的值(每秒多少图片)来控制剪辑的速度。 颜色 用户可以选择 GIF 的颜色。 支持运行平台: NT/2000/XP/Vista/Win7/8/10 支持语言: English/German/Spanish/Italian/French/Chinese/Japanese Movie to GIF 提供了在 GIF 文件中播放视频片段的选项。 您可以每秒设置更多帧,因此输出 GIF 显示为原始视频,或者为较小的动画GIF文件设置较少的帧数。 GIF 的宽度和高度也可调节。 Movie To GIF 许可证 免费软件

2022-08-22

今天在windows7下安装qt-opensource-windows-x86-5.12.9报错: gdb.exe -系统错误

今天在windows7下安装qt-opensource-windows-x86-5.12.9报错: gdb.exe -系统错误 无法启动此程序,因为计算机中丢失api-ms-win-core-path-l1-1-0.dll。尝试重新安装该程序以解决此问题

2022-08-17

ofstream,ifstream,fstream读写文件

在编程总经常会用到读写文件,基本都是使用ofstream,ifstream,fstream

2022-08-01

QTreeWidget是实现树形结构的类,在很多软件中都可以看到类似树形结构的界面

QTreeWidget是实现树形结构的类,在很多软件中都可以看到类似树形结构的界面 1.QTreeWidget树上添加图片 2.QTreeWidget动态加载,双击书上每个子节点,树会自动添加子节点

2022-07-22

vtk加载stl格式三维模型,完整代码包括所有的头文件,lib库和dll库

vtk加载stl格式三维模型,完整代码包括所有的头文件,lib库和dll库,解析STL文件

2022-07-17

Qt不同类进行信号与槽建立,并传递参数

Qt不同类进行信号与槽建立,并传递参数,Qt不同类之间槽函数连接

2022-07-05

Qt中使用QDomDocument和QDomnode来读取xml

Qt中使用QDomDocument和QDomnode来读取xml 内容简介:一.对QDomDocument和QDomnode的理解QDom前缀的都是代表节点类型。所以有,QDomElement代表一个Element节点,而QDomText代表一个Text节点。QDomNode类可以存储任意类型的节点。如果想进一步处理一个节点,首先必须把它转化为正确的数据类型。QDomNode调用toElement()以把它转化成QDomElement,然后调用tagName()来获得元素的标签名称。如果节点不是Element类型,那么toElement()函数就返回一个空QDomElement对

2022-06-29

opengl实现骨骼动画,用到glaux,glut

opengl实现骨骼动画,用到glaux,glut,包含身体各个部分:头文小腿,大腿,自定义运动角度

2022-06-15

osg(OpenSceneGraph)多窗口渲染

osg(OpenSceneGraph)多窗口渲染 在不同的窗口渲染不同的场景

2022-06-14

osg(OpenSceneGraph)添加纹理

osg(OpenSceneGraph)添加纹理 OSG为模型添加纹理图片共分为两种方式,一种是自动方式,一种自定义顶点方式设置纹理坐标。

2022-06-14

openGL曲面细分地形、高度图的细分

,在顶点着色器中执行高度贴图可能会遇到顶点数量不足以用来渲染所需的细 节的情况。现在我们有了生成大量顶点的方法,让我们回到Hastings-Trew 的月球表面纹理 贴图[HT16]并将其用作高度贴图,提升曲面细分顶点来生成月球表面细节。正如我们将看到 的,这具有一些优点,可以让顶点的几何形状更好地匹配月亮图像,并且提升轮廓(边缘) 细节。

2022-05-02

opengl贝塞尔曲面细分,win7+VS017,win10+vs2019版本

opengl贝塞尔曲面细分,win7+VS017,win10+vs2019版本 现在让我们扩展我们的程序,使它将我们简单的矩形网格转换为贝塞尔曲面。细分网格 应该为我们提供了足够的顶点来对曲面进行采样(如果我们想要更多的话,我们可以增加 内部/外部细分级别)。我们现在需要的是通过管线发送控制点,然后使用这些控制点执行计 算以将细分网格转换为我们所需的贝塞尔曲面。

2022-04-25

opengl贝塞尔曲面细分

现在让我们扩展我们的程序,使它将我们简单的矩形网格转换为贝塞尔曲面。细分网格 应该为我们提供了足够的顶点来对曲面进行采样(如果我们想要更多的话,我们可以增加 内部/外部细分级别)。我们现在需要的是通过管线发送控制点,然后使用这些控制点执行计 算以将细分网格转换为我们所需的贝塞尔曲面。 假设我们希望建立一个立方体贝塞尔曲面,我们将需要16 个控制点。我们可以通过VBO 从C++端发送它们,或者我们可以在顶点着色器中硬编码写死它们。 现在是更准确地解释曲面细分控制着色器(TCS)如何工作的好时机。与顶点着色器类 似,TCS 对每个传入顶点执行一次。另外,回想一下第2 章,OpenGL 提供了一个名为 gl_VertexID 的内置变量,它保存一个计数器,指示顶点着色器当前正在执行哪次调用。曲 面细分控制着色器中存在一个类似的内置变量gl_InvocationID。 曲面细分的一个强大功能是TCS(以及TES)着色器可以同时访问数组中的所有控制 点顶点。首先,当每个调用都可以访问所有顶点时,TCS 对每个顶点执行一次可能会让人 感到困惑。在每个TCS 调用中,冗余地在赋值语句中指定曲面细分级

2022-04-12

OpenGL 对硬件曲面细分的支持,通过3 个管线阶段提供: (1)曲面细分控制着色器; (2)曲面细分器; (3)曲面细分评估

OpenGL 对硬件曲面细分的支持,通过3 个管线阶段提供: (1)曲面细分控制着色器; (2)曲面细分器; (3)曲面细分评估着色器。 (1)C++/OpenGL 应用程序: 创建一个摄像机和相关的MVP 矩阵,视图(v)和投影(p)矩阵确定摄像机朝向,模 型(m)矩阵可用于修改网格的位置和方向。 (2)顶点着色器: 在这个例子中基本上什么都不做,顶点将在曲面细分器中生成。 (3)曲面细分控制着色器: 指定曲面细分器要构建的网格。 (4)曲面细分评估着色器: 将MVP 矩阵应用于网格中的顶点。 (5)片段着色器: 只需为每个像素输出固定颜色。 曲面细分器生成由两个参数定义的顶点网格:内层级别和外层级别。在这种情况下, 内层级别为12,外层级别为6——网格的外边缘被分为6 段,而跨越内部的线被分为 12 段。 程序12.1 中的特别相关的新结构被高亮显示。让我们首先讨论第一部分——C++/ OpenGL 代码。 编译这两个新着色器,跟顶点和片段着色器完全相同。然后将它们附加到同一个渲染程 序,并且链接调用保持不变。唯一的新项目是用于指定要实例化的着色器类型的常量——新 常量如下: G

2022-04-09

openGL增强表面细节,模拟地球表面地形

1.openGL增强表面细节,模拟地球表面地形,使用高度贴图实现 2.现在我们扩展法线贴图的概念——从纹理图像用于扰动法向量到扰乱顶点位置本身。实 际上,以这种方式修改对象的几何体具有一定的优势,例如使表面特征沿着对象的边缘可 见,并使特征能够响应阴影贴图。我们将会看到,它还可以帮助构建地形。 3.一种实用的方法是使用纹理图像来存储高度值,然后使用该高度值来提升(或降低)顶 点位置。含有高度信息的图像称为高度图,使用高度图更改对象的顶点的方法称为高度贴 图①。高度图通常将高度信息编码为灰度颜色:(0,0,0)(黑色)=低高度,(1,1,1)(白色)=高高度。这样一来通过算法或使用“画图”程序就可以轻松创建高度图。图像的对比度越 高,其表示的高度变化越大 4.改变顶点位置是否有用取决于改变的模型。顶点操作可以在顶点着色器中轻松完成,当 模型顶点细节级别够高(例如在足够高精度的球体中)时,改变顶点高度的方法效果很好。 但是,当模型的顶点数量很少(例如立方体的角)时,渲染对象的表面需要依赖于光栅器 中的顶点插值来填充细节。当顶点着色器中可用于改变高度的顶点很少时,许多像素的高 度将无法从高度

2022-03-26

openGL高度贴图,使用纹理图像来存储高度值,然后使用该高度值来提升(或降低)顶 点位置。

1.现在我们扩展法线贴图的概念——从纹理图像用于扰动法向量到扰乱顶点位置本身。实 际上,以这种方式修改对象的几何体具有一定的优势,例如使表面特征沿着对象的边缘可 见,并使特征能够响应阴影贴图。我们将会看到,它还可以帮助构建地形。 2.openGL高度贴图,使用纹理图像来存储高度值,然后使用该高度值来提升(或降低)顶 点位置。含有高度信息的图像称为高度图,使用高度图更改对象的顶点的方法称为高度贴 图 3. 高度图通常将高度信息编码为灰度颜色:(0,0,0)(黑色)=低高度,(1,1,1)(白色)=高高度。这样一来通过算法或使用“画图”程序就可以轻松创建高度图。图像的对比度越高,其表示的高度变化越大。 4.改变顶点位置是否有用取决于改变的模型。顶点操作可以在顶点着色器中轻松完成,当 模型顶点细节级别够高(例如在足够高精度的球体中)时,改变顶点高度的方法效果很好。但是,当模型的顶点数量很少(例如立方体的角)时,渲染对象的表面需要依赖于光栅器中的顶点插值来填充细节。 5.当顶点着色器中可用于改变高度的顶点很少时,许多像素的高 度将无法从高度图中检索,而需要由插值生成,从而导致表面细节较差。当然

2022-03-26

openGL法线贴图混合纹理贴图以达到更好的物体表面细节

openGL法线贴图混合纹理贴图以达到更好的物体表面细节 1.凹凸贴图是使用数学公式产生物体表面凹凸特效 2.凹凸贴图的一种替代方法是使用查找表来替换法向量 3.一种使用查找表的常见方法叫作法线贴图。 4.法线贴图使用一个图像文件(称为法线贴图),该图像文件包含在光照下所期望表面外 观的法向量。

2022-03-20

openGL法线贴图原理以及实现方法

1.凹凸贴图的一种替代方法是使用查找表来替换法向量。这样我们就可以在不依赖数学函 数的情况下,对凸起进行构造,例如月球上的陨石坑所对应的凸起。一种使用查找表的常 见方法叫作法线贴图。 2.为了理解法线贴图的工作原理,我们首先注意,向量通过3 字节存储,X、Y 和Z 分量 各占1 字节,就可以达到合理的精度。 3.这样,我们就可以将法向量存储在彩色图像文件中, 其中R、G 和B 分量分别对应于X、Y 和Z。图像中的RGB 值以字节存储,通常被解释为[0…1] 范围内的值,但是向量可以有正负值分量。如果我们将法向量分量限制在[−1…+1]范围内, 那么在图像文件中将法向量N 存储为像素的简单转换是:

2022-03-14

openGL环境贴图,反射向量可用来直接访问纹理立方体贴图。当立方体 贴图用于上述功能时,称其为环境贴图

1.。这些物体在有小范围镜面高光的同时,还能够反射出周围 物体的镜像 2.反射向量可用来直接访问纹理立方体贴图。当立方体 贴图用于上述功能时,称其为环境贴图

2022-03-12

1.实现凹凸表面相关的方法,通过使用光照效果 2.即使在实际对象模型表面平滑的情况下,也能使对象看起来具有逼真的表面纹理

1.实现凹凸表面相关的方法,通过使用光照效果 2.即使在实际对象模型表面平滑的情况下,也能使对象看起来具有逼真的表面纹理 3.将首先观察凹凸贴图和法线贴图 4.当直接为对象添加微小表面细节会使得计算代价过高时,它们可以 为场景中的对象增加相当程度的真实感

2022-03-10

openGL天空盒实现

天空盒的概念非常巧妙而又简单: (1)实例化一个立方体对象; (2)将立方体的纹理设置为所需的环境; (3)将立方体围绕相机放置。

2022-03-10

openGL实现天空盒,使用OpenGL 立方体贴图

1.构建天空盒的另一种方法是使用OpenGL 纹理立方体贴图。OpenGL 立方体贴图比我们 在上一节中看到的简单方法稍微复杂一点。但是,使用OpenGL 立方体贴图有自己的优点, 例如减少接缝以及支持环境贴图。 2.OpenGL 纹理立方体贴图类似于稍后将要研究的3D 纹理,它们都使用3 个纹理坐标访 问——通常标记为(s, t, r)——而不是我们目前为止用到的两个。OpenGL 纹理立方体贴图 的另一个特性是,其中的图像以纹理图像的左上角(而不是通常的左下角)作为纹理坐标 (0, 0, 0),这通常是混乱产生的源头。

2022-03-02

openGL绘制天空盒背景

1.openGL绘制天空盒背景 2.加入天空盒纹理 3.添加鼠标键盘事件

2022-03-01

openGL软阴影,消除硬阴影,消除阴影中的锯齿,和伪影

1.openGL软阴影,消除硬阴影,消除阴影中的锯齿,和伪影 2.生成柔和阴影——百分比邻近滤波(PCF) 3.有多种方法可以用来模拟半影效果以在软件中生成柔和阴影。最简单也最常见的一种方 法叫作百分比邻近滤波(Percentage Closer Filtering,PCF) 4.在PCF 中,我们对单个点周围 的几个位置的阴影纹理进行采样,以估计附近位置在阴影中的百分比。

2022-02-28

目前我们所展示的阴影生成方法都仅限于生成硬阴影,即带锐边的阴影。

1.目前我们所展示的阴影生成方法都仅限于生成硬阴影,即带锐边的阴影。 2.但是,现实世界中出现的大多数阴影都是柔和阴影。它们的边缘都会发生不同程度的模糊 3.柔和阴影的成因有很多,同时也有许多类型的柔和阴影。通常在自然界中产生柔和阴影 原因是,真实世界的光源很少是点光源——它们常常是区域光源。另一个原因是材料和表面 的缺陷积累,以及物体本身通过其自身的反射特性产生环境光的作用。

2022-02-28

openGL阴影贴图 阴影贴图是用于投射阴影最实用也最流行的方法之一。

1.阴影贴图是用于投射阴影最实用也最流行的方法之一。虽然它并不总是像阴影体一样准 确(且通常伴随着讨厌的伪影),但阴影贴图实现起来更简单,可以在各种情况下使用,并 享有强大的硬件支持。 2.阴影贴图基于一个非常简明的想法:光线无法看到的任何东西都在阴影中。也就是说, 如果对象#1 阻挡光到达对象#2,等同于光不能“看到”对象#2。

2022-02-28

openGL加载obj三维模型,并且在模型上添加光照

1.openGL加载obj三维模型, 2.并且在模型上添加光照 3.Blinn-Phong 着色

2022-02-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除