- 博客(37)
- 收藏
- 关注
原创 Learn OpenGL In Qt之炫酷进度条
经过之前内容的学习,我们已经掌握了如何通过OpenGL在Qt提供的环境下绘制一个三角形,我们知道绘制一个三角形需要VAO,VBO,在一些场景还需要EBO,然后我们需要搞定着色器,最后我们绑定VAO,调用绘制接口就能绘制出想要的三角形。下面是时候来绘制一些有趣的进度条了。
2024-09-29 20:54:16
1145
2
原创 【一分钟学C++】std::memory_order
使用`std::memory_order`是用来限制编译器以及CPU对单线程当中的指令执行顺序进行重排的程度。这种限制,决定了以atom操作为基准点,对其之前的内存访问命令,以及之后的内存访问命令,能够在多大的范围内自由重排,从而形成了6种模式。
2024-09-14 20:39:01
1354
1
原创 Learn OpenGL In Qt之着色器
着色器是一种用于在图形渲染管线中对图形对象进行着色和渲染的程序。着色器主要分为顶点着色器、片元着色器和几何着色器三种类型。顶点着色器负责对图形对象的顶点坐标进行变换和处理,将对象从模型空间转换到屏幕空间。片元着色器则负责对每个像素进行着色,计算像素的颜色值和透明度等属性。几何着色器可以对几何图形进行处理和生成新的几何数据。着色器通过GLSL等编程语言编写,可以实现各种复杂的图形效果和渲染技术,使得图形应用程序能够呈现出更加逼真和生动的视觉效果。这里我们只关注顶点着色器和片元着色器。
2024-09-10 21:14:19
1736
原创 【一分钟学C++】函数地址探究
之前一直以为通过函数指针能够直接获取到函数地址(这里的函数地址指的是汇编层面call指令跳转的地址),最近实验才发现并不是这样的,并且获取函数地址过程中包含着一些坑。文章将通过测试实验,揭示C++函数地址中的那些坑。
2024-09-09 20:34:02
857
原创 为什么Qt中要用q_ptr和d_ptr
Qt中的公有类中一般都会包含d_ptr这样一个私有类型的指针,指针指向该类对应的私有类,引入这个指针主要是为了解决二进制兼容的问题。
2024-09-06 19:46:59
876
1
原创 函数调用栈从何而来
程序员对函数调用栈是再熟悉不过了,无论是使用IDE调试还是GDB等工具进行调试,都离不开函数调用栈的分析。当我们遇到卡顿问题的时候,经常苦于没有卡顿现场,也就是函数调用栈进行分析解决。除了利用上述工具获取函数调用栈,能不能想办法在代码中记录函数调用栈,特别是卡顿的时候,还好是有办法的~
2024-09-04 12:36:49
1052
1
原创 Learn OpenGL In Qt之你好,三角形
在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为管线,实际上指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程)管理的。这里我们会简单地讨论一下图形渲染管线,以及如何利用它创建一些漂亮的像素。
2024-09-03 12:50:41
1427
2
原创 markdown语法大全
markdown是一种轻量级标记语言,使用下来确实会有一个适应期,但是经过短暂的适应期后,再也不用经历不同平台发布文案调整格式的痛苦,直接markdown书写全平台发布,一步到位!打开一个[markdown](https://markdown.devtool.tech/app)编辑器就可以愉快地尝试了~ 本文灰色区块中的文本直接复制粘贴即可使用,涉及引号不生效的话,需要将中文引号改为英文引号。
2024-09-02 12:36:05
848
原创 Learn OpenGL In Qt之必会基础
文章给出了Qt环境下学习OpenGL编程最需要掌握的基本知识点,后续的开发学习离不开这里提到的QOpenGLWidget,Qt事件体系等,所以在这里给出了基本讲解,希望达到抛砖引玉的效果。再后续的系列中,让我们一步步学会使用,学会原理,学会创造~
2024-09-01 10:09:59
1137
原创 Learn OpenGL In Qt之系列简介
本博客系列将带领读者逐步学习如何在Qt环境下使用OpenGL进行图形编程。我们将从基础知识开始,介绍OpenGL的基本概念、渲染流程和常用功能。然后,我们将探讨如何在Qt中集成OpenGL,并展示如何创建简单的OpenGL图形应用程序。在后续的文章中,我们还将深入探讨OpenGL的高级功能,例如着色器编程、纹理映射、光照效果等。通过本博客系列的学习,读者将能够掌握在Qt环境下使用OpenGL进行图形编程的基本技能,为开发更复杂的图形应用程序打下坚实的基础。
2024-08-31 09:45:31
2359
1
原创 3D模型OBJ格式详解
OBJ格式是一种简单的文本格式,用于描述三维模型的几何形状和材质信息,因为其文本格式的属性,学习OBJ格式能够很好理解在3D图形中是如何描述一个3D对象的。OBJ通常由顶点、法线、纹理坐标和面片组成,可以包含多个对象和材质。OBJ格式通常用于编辑器和渲染器之间的数据交换,以便在不同的软件中共享和处理三维模型数据。由于其简单易读的特性,OBJ格式在计算机图形学领域中被广泛应用,目前几乎所有知名的3D软件都支持OBJ文件的读写。
2024-08-30 13:02:48
1505
1
原创 CMake Error at CMakeLists.txt (find_package)幕后真凶
本文从CMake中find_package()报错入手,首先给出了如何解决这类报错,然后深入探讨了find_package()的用法,揭示了find_package()背后帮我们做的事情,阐明了find_package()Module模式和Config模式的区别,同时针对在这两种模式下如何为自己写的三方库适配find_package()给出了详细说明。
2024-08-29 12:43:40
3501
原创 CMake之PUBLIC、PRIVATE、INTERFACE
使用CMake必然离不开`target_include_directories`和`target_link_libraries`,这两个命令中都可以设置为三种属性:PRIVATE、PUBLIC、INTERFACE。CMake官方文档对于这三种属性的解释过于抽象,本文将从编译行为的角度来理解这三种属性有什么差异。
2024-08-29 12:35:58
938
使用C++实现遗传算法源码
2024-09-04
C++日志库spdlog
2024-09-04
OpenSceneGraph(OSG)、zlib、FontConfig编译好的二进制文件
2024-09-03
基于java和springboot的图书管理系统
2024-09-03
基于Qt和C++的图书管理系统
2024-09-03
Learn OpenGL In Qt博客系列源码资源
2024-09-03
测试过可以使用的OBJ格式3d模型
2024-08-30
有关于C++函数地址疑问
2024-09-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人