毕设相关

Qt/C++ opengl导入机械臂模型,添加ui拖拽交互,运动插补,包括关节和直线运动,可保存关节点信息_哔哩哔哩_bilibili

学习资源

1
2
```
[【B站最好】OpenGL小白到精通系列-保姆级-计算机图形学_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1aK4y1z7ii/?spm_id_from=333.337.search-card.all.click&vd_source=d521037e2f7ecb75ef4d2baefe35f648)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

[Fetching Title#g3p6](https://blog.csdn.net/MASILEJFOAISEGJIAE/article/details/84840748)

[现代OpenGL教程(一):绘制三角形(imgui+OpenGL3.3)\_imgui gl绘制三角形-CSDN博客](https://blog.csdn.net/MASILEJFOAISEGJIAE/article/details/84840748)
上面这个偏向通识
[主页 - LearnOpenGL CN](https://learnopengl-cn.github.io/)
这个是文档类型的教程,可以在看完阿西拜的教程之后看。学习模型加载。
[Qt 5练习 之 QtOpenGL三战模型加载(抄)\_哔哩哔哩\_bilibili](https://www.bilibili.com/video/BV1y34y1X7D7?spm_id_from=333.788.videopod.sections&vd_source=d521037e2f7ecb75ef4d2baefe35f648)
这个是一个up主上面再模型加载章节的学习笔记

# 学习记录
[Qt5.9.4中配置opengl的glut库(Windows)\_qt 控制opengl版本-CSDN博客](https://blog.csdn.net/qing666888/article/details/78946384)
[Qt+OpenGL基础教程\_qt opengl-CSDN博客](https://blog.csdn.net/weixin_43220219/article/details/127863676?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522e285d0706108a5e60f71c236a595aa08%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=e285d0706108a5e60f71c236a595aa08&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-127863676-null-null.142^v100^pc_search_result_base5&utm_term=qt%20opengl&spm=1018.2226.3001.4187)
这个教程里面有直接进行机械臂导入

glut 库配置记录[Qt5.9.4中配置opengl的glut库(Windows)\_qt 控制opengl版本-CSDN博客](https://blog.csdn.net/qing666888/article/details/78946384)
这个教程中进行了环境的配置
但是配置完,进行编译的过程中出现了报错
![image.png](https://xingnote.oss-cn-beijing.aliyuncs.com/minenotebook/202411240243330.png)
![image.png](https://xingnote.oss-cn-beijing.aliyuncs.com/minenotebook/202411240147620.png)

![image.png](https://xingnote.oss-cn-beijing.aliyuncs.com/minenotebook/202411240147496.png)
评论区中提到需要添加 `-lglu32`
在Qt项目的`.pro`文件中,`LIBS`变量用于添加链接器需要的库文件。以下是对您提供的`LIBS`行的解释:

```pro
LIBS += -LD:/qt/Qt5.13.1/5.13.1/mingw73_64/lib -llibfreeglut -lopengl32 -lglu32
  • -L:这是一个链接器选项,用于指定链接器搜索库文件的目录。在这个例子中,-L后面跟着的路径是D:/qt/Qt5.13.1/5.13.1/mingw73_64/lib,这意味着链接器会在该目录下搜索库文件。

  • llibfreeglut:这是一个链接器选项,用于链接名为libfreeglut的库。在Unix-like系统中,库文件的命名约定通常是lib加上库的名称,然后是.so(共享库)或.a(静态库)后缀。在这里,-l选项告诉链接器要链接的库的名称,不包括lib前缀和文件扩展名。

  • -lopengl32:这是另一个链接器选项,用于链接OpenGL库。opengl32是Windows平台上OpenGL的库名称。

  • -lglu32:这是用于链接OpenGL Utility Library(GLU)的链接器选项。GLU提供了一些额外的实用函数,比如用于创建常用的三维几何形状。

综上所述,这行代码的作用是告诉Qt的构建系统在编译链接项目时,从指定的目录D:/qt/Qt5.13.1/5.13.1/mingw73_64/lib中寻找并链接freeglutopengl32glu32这三个库。这些库通常用于OpenGL编程,提供渲染三维图形所需的函数和工具。

image.png 消除了一个报错,但是仍然存在报错,这里显示找不到索引,我的理解应该是头文件的问题,但是直接在使用 ctrl +鼠标左键,也能实现跳转。image.png image.png

最终未解决,发现网上有资料可以不用这个库

qt基础知识

Qt Creator和Visual Studio双环境开发技能攻略_qt和visual-CSDN博客 解释了为什么要使用visual Studio进行开发

什么是opengl

00:00:36.620 image.png

00:01:53.150 image.png

00:09:30.623 image.png

00:09:49.282 image.png

状态机是opengl中很重要的概念 # opengl对象 00:00:40.553 image.png

00:01:53.114 image.png

00:03:33.348 image.png

状态机 在opengl库中体现为,函数总体可分为两种,一种是使用state,一种是修改state 00:09:57.982 image.png

上面的glSetObjectOption就是修改state # widget 00:02:48.464 image.png

直接使用函数实现显卡调用,而不需要glfw glad

这里提到了一个点,绘制完窗口需要进行 updatea opengl就是一个大的状态机 00:05:46.943 image.png

00:07:02.829 image.png

00:12:46.881 image.png

vao和vbo

00:00:56.727 image.png 00:03:13.472 image.png

00:04:22.666 image.png

上述gpu调用过程中的第一步 绑定buffer然后

顶点给显存 00:14:46.716 image.png

vao没有数据类型 00:16:50.184 image.png

可以对显卡有更强的控制 00:18:08.217 image.png

00:20:09.091 image.png

00:21:45.394 image.png OpenGL 4 Reference Pages 要开始学会使用官方手册 不管是这个还是qt还是ros

00:29:34.553 image.png

编译链接着色器

[00:00:42.000](jv://?url=https://www.bilibili.com/video/BV1UL411W71w/?spm_id_from=333.788.player.switch&vd_source=d521037e2f

image.png 7ecb75ef4d2baefe35f648&p=7&time=00:00:42.000)

00:03:51.534 image.png

ebo画图

00:00:58.067 image.png

练习

00:00:31.996 image.png

qt ui调用 opengl

00:03:03.713 image.png

画完图要 update # opengl旋转与平移 Site Unreachable

矩阵平移 image.png 旋转矩阵 image.png