自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 虚拟机联网问题总结-VMWare桥接、NAT模式、仅主机模式解释与配置

前言今天搞实验把工作环境搬来搬去的过程中,把带着VM环境的移动硬盘弄掉了好几次,VMWare里面的虚拟机终于不堪折磨宕机掉了,磁盘文件损坏。还好之前留了快照可以恢复(所以定期备份快照很重要,特别是重要,配置了很多东西的虚拟机,不是说重装就重装的)。然后切换工作环境,网络环境变更啥的,搞得脑子晕了,一时上不了网就直接把虚拟机网络编辑里面的东西全重置了。重置就重置吧,重新配置呗。问题就是以前配过的东西全忘光了。果然工作不总结的话就会出现重复工作,一个问题没记住解决方案就会导致一直是问题。。借此机会把虚拟机

2022-04-09 23:09:48 9278 2

原创 windows内存占用过高

Windows开机内存占用超过30%(6G/18G),Come on:Round 1msconfig->常规:有选择的启动->服务->隐藏所有Microsoft服务,全部禁用。Ban了再说。需要的自己单独启。发现触摸板配置没了(主要是连接外部设备时禁用触摸板的设置),查找刚刚关闭的服务,是SynTPEnhService(制造商:Synaptics),开启它。设置以后记得点击应用才会生效。添加虚拟内存,设置->系统->关于->高级系统设置->高级-

2022-04-07 20:04:45 7791

原创 Windows Terminal + WSL + Ubuntu + 图形化 总结

前言最近上高级操作系统的研究生课,又开始折腾Linux系统。虽然我挺菜的,但就是差生文具多。所以先折腾折腾一个舒适的Linux环境吧。配置Linux环境大致分为三种:双系统:划分一块硬盘空间,通过U盘等作为安装盘从镜像开始构建系统。最彻底最真实的Linux环境。好处就是更能折腾、自由度更高,不会出现各种兼容性问题。缺点是配置起来比较麻烦,不能自由切换windows与linux。虚拟机:使用VMVare或VBox等软件,直接加载一个系统镜像启动虚拟机,硬盘分配可以是动态的。好处就是最方便快捷,也便于

2022-03-27 19:49:01 4580

原创 构建我的工作空间--懒人攻略

前言懒得写(懒就完事了)。远程服务器ssh免登录1、服务器端开启密钥登录模式/etc/ssh/sshd_config# 开启公钥认证PubkeyAuthentication yes# 存放登录用户公钥的文件位置# 位置就是登录用户名的家目录下的 .ssh# root 就是 /root/.ssh# foo 就是 /home/foo/.sshAuthorizedKeysFile .ssh/authorized_keys2、用户端创建自己的秘钥对ssh-keygen -t rsa

2022-03-23 23:13:11 795

原创 windows痛苦面具-C盘瘦身法

简单粗暴:买更大内存的电脑(SSD)重装系统(五星推荐)原则:所有软件能不安装在C盘就不要安装在C盘,必须安装在C盘的:Windows系统、Visual Studio、Chrome等;安装软件时留个心眼,碰到高级设置、自定义等一点要点进去设置安装路径;操作它:到了真的山穷水尽,看着红色的C盘,要开始操作了:修改默认存储路径1。右键windows自带视频、文档、下载、桌面、音乐等,属性中修改位置(文档、下载、桌面这几个尤其会占地方);修改默认存储路径2:修改环境变量TEMP、T

2021-12-24 18:31:28 1284

原创 windows生产力提升-装机必备

前言最近因为要配置新的工作环境,而且在之前重装系统的压力测试之后已经轻车熟路了,于是便想着把这个经验分享出来,也便于下次啥时候系统被玩崩了(bushi)之后简单的复制这套方案。目录前言正文装机必备舒适度提升能力进阶最后正文本文根据装机后的急迫性、功用、必要性等方面分为四个方面的列表,分为是《装机必备》《舒适度提高》《能力进阶》。下面所说的所有软件都会在最后提供安装包(官网下载的、云盘形式),除了插件相关的。下面的描述将以第一人称用户体验的方式进行,关于产品的详细介绍,客官们在看了我的安利后感兴趣的可

2021-12-24 18:22:11 668

原创 Win7 开机进入grub

问题描述win7电脑,开机进入GNU Grub,输入exit可以退出grub并进入Boot manager选择启动系统。此时可发现多个系统,ubuntu及win7.原因电脑中以前装的ubuntu存在其开机引导文件,但ubuntu系统无法被正确启动,因此进入了grub命令启动页面。只需要将开机启动顺序更改,默认启动win7即可。解决开机进入BIOS(电脑为联想小新Air,可翻到电脑后侧查看型号,搜索进入BIOS方法),开机出现LOGO时长按FN+F2进入。在BIOS界面切换至BOOT,根据提示切

2021-06-20 17:18:25 1881

原创 word插入漂亮的代码块

前言在写毕业论文的时候不可避免需要插入代码片段(凑字数啊 ),以往使用的word插入方式感觉不太适合正规严肃的场合,遂再研究了一遍word插入代码方式,最终结果差强人意吧。下面列出几种方式待查阅。同时先放出最心仪的效果(在该场景中):方案VSCode直接复制粘贴效果如图所示:优点:保留原IDE中的主题、代码着色等效果。缺点:代码块在word文档中没有分隔与突出的效果。适用场景:作为技术文档非常实用,方便技术人员查看。借助网页的渲染格式方式最简单,借助某些帮助网址即可。原本流传较广的

2021-04-09 22:15:27 179588 21

原创 编码规范汇总【持续更新】

目录前言规范标准C++规范C#规范规范记录命名硬编码单例类【线程安全】Qt定义类【隐式内存共享】前言作为软件工程师,出产物就应该具备工程的健壮性和美观性。因此代码规范是作为软件工程师的职业素养。但总所周知,程序员的工作基本就是在维护一座屎山,这确实是现实中种种客观条件约束下导致的。记录本篇博客,也是希望本人在打码过程,能够保持负责任的初心,以及追求完美的极客精神吧。诸君共勉。愿人间没有ugly的代码。规范标准首先列出一些常见的编码规范。C++规范一. 变量声明与命名风格(1) 代码中的命

2021-04-06 20:49:30 4880

原创 Winsock编程 blocking UDP socket导致死锁问题解决

项目场景:项目需求是通过UDP与服务器通讯。其中客户端有一个功能模块,进入该模块运行时需要监听端口,停止运行或退出时应停止监听。使用了一个监听线程去管理接受数据。服务器是纯C++代码,因此采用了Winsock。客户端基于Qt库,但为保持一致性,也是用Winsock进行通讯。问题描述:监听线程继承于QThread,实现了挂起、恢复、终止等服务,代码类似于:void UDPThread::stop(){ if (QThread::isRunning()) {// qD

2021-04-04 22:39:30 352 4

原创 Qt样式控制:主题切换以及QIcon的源码探析

需求需求是:类似于Qt Creator或者VS Code一样,提供单机软件的主题切换功能。Simple Thing其中颜色等配置切换可采取Qt Creator的Settings文档格式或者VS Code的json格式定义。如果仅提供最基本的内嵌主题,则直接更换QSS设计即可(设置于顶层界面,需确保所有子界面均为顶层界面的孩子/孩子的孩子)。问题QSS样式中存在一个难题,即QSS无法设置图标颜色。如Qt Creator中浅色主题显示的是黑色图标,而黑色主题显示的是白色图标。针对该问题进行探索。解

2020-08-25 15:29:02 2584

原创 3D游戏引擎入门课程——内存管理与插件机制

目录写在前面内存管理与插件机制内存管理和扩展插件概述内存管理扩展性内存管理和扩展插件实现实例OGRE内存管理和扩展插件写在前面本专栏内容均为学堂在线慕课《3D游戏引擎架构设计基础》中的内容。个人将其转化成文字和图片的版本(个人更加喜欢文字版本的教程,阅读速度更快很多),方便查阅。原课程链接:3D游戏引擎架构设计基础。内存管理与插件机制内存管理和扩展插件概述内存管理内存管理是引擎底层和核心内容之一,引擎中几乎所有顶层基类都是内存分配的类,所以内存管理决定了系统的运行效率。引擎的内存管理从对象可

2020-06-29 16:06:14 355

原创 3D游戏引擎入门课程——事件处理与脚本语言

目录写在前面事件处理与脚本语言事件处理与脚本语言概述事件处理脚本语言事件处理实现实例OGRE事件处理Panda3D事件处理写在前面本专栏内容均为学堂在线慕课《3D游戏引擎架构设计基础》中的内容。个人将其转化成文字和图片的版本(个人更加喜欢文字版本的教程,阅读速度更快很多),方便查阅。原课程链接:3D游戏引擎架构设计基础。事件处理与脚本语言事件处理与脚本语言概述事件处理事件驱动的游戏交互控制:游戏引擎的事件处理方式影响着整个引擎架构的设计与风格。事件处理是引擎架构的底层设计,是引擎的两大主线

2020-06-29 16:00:42 701

原创 3D游戏引擎入门课程——角色动画

目录写在前面角色动画角色动画概述和表示方法角色的表示骨骼蒙皮动画中重要的概念角色动画实现实例OGEE角色动画Panda3D角色动画写在前面本专栏内容均为学堂在线慕课《3D游戏引擎架构设计基础》中的内容。个人将其转化成文字和图片的版本(个人更加喜欢文字版本的教程,阅读速度更快很多),方便查阅。原课程链接:3D游戏引擎架构设计基础。角色动画角色动画概述和表示方法角色是指推动游戏剧情的载体,包括玩家、非玩家、怪兽和敌人等。角色的表示赛璐璐动画刚性层阶式动画每顶点动画

2020-06-29 15:46:29 772

原创 3D游戏引擎入门课程——场景渲染

目录写在前面场景渲染渲染概述与剔除方法场景渲染实例OGRE场景渲染Panda3D场景渲染写在前面本专栏内容均为学堂在线慕课《3D游戏引擎架构设计基础》中的内容。个人将其转化成文字和图片的版本(个人更加喜欢文字版本的教程,阅读速度更快很多),方便查阅。原课程链接:3D游戏引擎架构设计基础。场景渲染渲染概述与剔除方法渲染的定义:将三维矢量描述的场景转换到二维像素描述的场景的处理过程,是整个游戏引擎功能模块是最重要的内容。相关的概念描述包括:为了提升渲染的效率,可以采用不可见物体剔除,包括:

2020-06-29 14:57:46 1690

原创 3D游戏引擎入门课程——资源管理

目录写在前面资源管理资源管理概述资源管理实例OGRE资源管理Panda3D资源管理写在前面本专栏内容均为学堂在线慕课《3D游戏引擎架构设计基础》中的内容。个人将其转化成文字和图片的版本(个人更加喜欢文字版本的教程,阅读速度更快很多),方便查阅。原课程链接:3D游戏引擎架构设计基础。资源管理资源管理概述游戏资源的组织和管理。其目的是有效地组织和管理各类游戏资源,即在合适的时候快速准确地提供给游戏程序使用。其中,资源组织是指根据各类资源的特性和使用方式,设计资源数据的内存结构;资源管理是指抽象并定义

2020-06-29 14:41:13 510

原创 3D游戏引擎入门课程——场景管理

写在前面本专栏内容均为学堂在线慕课《3D游戏引擎架构设计基础》中的内容。个人将其转化成文字和图片的版本(个人更加喜欢文字版本的教程,阅读速度更快很多),方便查阅。原课程链接:3D游戏引擎架构设计基础。场景管理- 场景管理概述与BVH为了提高场景管理的效率,场景对象的逻辑组织架构通常是树型的结构。举例:游戏场景组织的架构包括:场景图,多用于管理动态场景。八叉树,多用于管理大型室外场景。二叉空间分割,即BSP树,多用于管理室内场景。BVH(Bouding Volum

2020-06-29 14:15:25 1283

原创 3D游戏引擎入门课程——概述

写在前面本专栏内容均为学堂在线慕课《3D游戏引擎架构设计基础》中的内容。个人将其转化成文字和图片的版本(个人更加喜欢文字版本的教程,阅读速度更快很多),方便查阅。原课程链接:3D游戏引擎架构设计基础。本文由整份的word文档转化而来,可自行阅读整份文档。链接放到最后。导图课程思维导图:图 1 思维导图因此,本专栏将根据导图的索引,分为7个章节。目录概述场景管理资源管理场景渲染角色动画事件处理与脚本语言内存管理正文–概述游戏引擎概述定义:如果把游戏开发中的核心基础功

2020-06-29 12:50:04 1002 1

原创 Kintinuous算法+Ubuntu19.10编译过程记录

写在前面这篇博文告诉你什么:Kintinuous编译过程可能遇到的一些问题和解决办法。属于汇总贴。同时证明了较新系统中运行编译Kintinuous的可行性。不告诉你什么:算法解析。工作过程下面将记录一遍整个工作的流程(具体命令将省去,详情见参考链接)。查询获取Kintinuou项目,并从项目中获知所需的依赖环境。(https://github.com/mp3guy/Kintinuous)进入ubuntu实体机(具体版本为19.10),本项目环境配置必须在Linux的实体机上进行。因为项

2020-06-29 12:04:37 455 6

原创 C++标准库与OSG库智能指针对比记录

转载mark一下总结帖:https://www.cnblogs.com/wuyepeng/p/9741241.htmlhttps://www.cnblogs.com/greatverve/p/smart-ptr.html个人记录 std::weak_ptr<>和osg::observer_ptr<>感觉C++的weak_ptr没有osg中osg::obser...

2020-03-19 00:05:19 254

原创 openCV with CUDA编译:乱码错误+no such file

前言关于OpenCV编译教程非常多,个人参考的链接如下:https://blog.csdn.net/stjuliet/article/details/84640094基本上按照步骤一步一步下来没有什么问题,这个流程经过很多小伙伴的验证也是可行的。但是在cmake完成,使用VS进行build的时候,本人就出现了一大堆错误,直接导致编译失败。查找输出,发现第一个错误是在nvcc编译.cu文件的...

2020-03-18 17:41:52 1336

原创 HEAP: HEAP: Free Heap block xx modified at xxafter it was freed 堆内存出现野指针错误

首先看下问题提示:HEAP[SimEng.exe]: HEAP: Free Heap block 000002CA51FC08A0 modified at 000002CA51FC0950 after it was freedOk,碰到这种xxxx地址的报错提示就慌得一批。解答经过一种暴力式解谜,找到以下的原因(解谜过程不建议也不见得能复用,基本上就是看堆栈,“偶然”看到有熟悉的名字就去找...

2020-03-01 20:30:00 3093

原创 Qt查看源码总结帖

前言在学习osg的时候养成一个习惯,就是一边学习一边打开自制的帮助文档,看着源码,一边去编码。然后结合很久之前就想学习Qt源码,拿到一份Qt类图之类的,对Qt学习实践进行一些总结。所以趁此机会,鼓捣了一下Qt中如何使用源码的做法。此处实名感谢Qt开源社区群的の大佬,尽心尽力地给出许多有用的建议,一步一步进行指导。实践做法一基于从osg处学来的操作,我先是利用doxygen扫描Qt的源码(...

2020-02-28 16:55:05 5122 1

原创 osgEarth添加图例

在osgEarth地图上添加图例多的不说了直接上代码:首先是添加控件(使用的是自带控件Control)//由于该功能属于项目的一部分,所以部分使用到的外部变量可能看不懂//根据API更替为自己的变量即可osg::ref_ptr<osg::Group> MAP_GR_CreateScale::createScale(){ using namespace osgEart...

2020-02-11 20:54:37 973 2

原创 osg添加插件--爬坑之路 无法定位程序输入点于动态库上

前文osg官方推荐的Windows平台软件源(真希望做好起来):vcpkg正文osg添加新插件(我们根据官方文档编译好的osg库中已经有了部分插件dll,见{OSG_DIR}\bin\osgPlugins-3.6.0,但要使用其他的插件,如svg插件则需要自己编译添加)。寻找要添加的插件源码,osg官网提供有许多,参考url:https://github.com/openscenegr...

2020-02-10 18:04:32 1548

原创 Qt 统一样式-结合良好设计原则

写在前面结合上一篇提到的界面风格统一的问题,ui界面美观是产品一个至关重要的优势,而界面美观最基础的一点就是风格统一。但在团队中界面设计往往由许多人共同完成,如果统一大家的样式就成了一个问题。下文方法是项目过程自己摸索的方法,不知道成熟团队或者公司内部有没有更好的准则,仅供参考。解决思路以QDialog一个常用的组件为例。首先,我们建立一个模板控件:并搭建需要的框架:这里我要达...

2020-02-10 17:46:28 895

原创 Qt-统一样式爬的坑(参考统一样式的思路)

写在前面嗯…在后后面项目经验中,这是一份已经落后的文档了。因为如果在一开始就持有保持统一的思想跟良好的设计原则,这些问题并不会出现。但也是一份经验教训吧。样式标准(参考)统一标准:字体全部设为微软雅黑,11号按钮统一大小93,28.对话框统一:标题栏需添加自定义标题栏(自定义标题栏的接口会给出,可能如MAP_GUI_MainWindowTitleBar或MAP_GUI_Custom...

2020-02-10 17:23:48 823

原创 SVN-版本控制:深入浅出入门SVN使用

说在前面首先讨论一下版本控制的重要性:每一个小版本只更新了一个或两个功能,那后面如果出错了,排查错误、进行回滚就可以根据message方便的进行;团队协作的时候,必然会出现合作、共同使用代码的情况,比如我们两个人一同更新mainwindow这个文件,那就极可能出现冲突,像我们都在第1000行新写了一个函数,那版本就无法识别到底最后选择哪个,而当这些情况积累起来之后要处理就很困难而且容易出错...

2020-02-10 17:10:32 234

原创 osg学习之路

osg入门的时候材料教程真的是特别少,而且很多都特别老的。这里分享一下个人学习过程的项目,会持续更新。里面暂时包括有:Array大佬《osg程序设计》所有源码的整理,配置好环境后可以直接运行;osg_earth官方例子的一些整理;osg+qt的实现;以及一些经验教训总结等。项目地址:https://github.com/kkkiitty/learnOSG当时整理的时候就想着能整理出一套教...

2020-02-09 20:10:03 786

原创 C++隐式类型转换 operator T()

最近研究智能指针,osg::ref_ptr的机制时候发现一个有趣的问题。就是C++智能指针都会提到一点:由于智能指针是一个对象,所以if (my_smart_object)永远为真,要判断智能指针的裸指针是否为空,需要这样判断:if (my_smart_object.get())。但是我在写osg的时候,下意识都是直接判定的if(myPtr)也没碰到问题。研究后发现原来是osg::ref_...

2020-02-09 19:51:37 2483

原创 OSG智能指针:osg::ref_ptr

在osg开发时(特别是刚上手),有一点比较重要然后容易忽略的是,在osg程序开发中,要尽量使用osg::ref_ptr<T*>。这个智能指针构建起osg的对象树(绝大部分osg类都是继承于osg::Referenced,即可计数对象),类似于Qt的对象树,负责其内存的管理。当然其内存管理策略不是我们关心的,我们使用它的原因是基于其内存管理策略,大部分类的析构函数都是受保护的,意味着...

2020-02-08 16:06:53 3712

原创 openGL矩阵变换顺序

(第一次发博客,格式上可能有些不好看…)问题在学习openGL变换的时候,我们知道一个规则就是:先缩放再旋转再平移,关于这个规则以及变换关系建议去看learnopengl的教程。但是我们还有另外一种情景,就是比如我们希望变换是基于某个点进行的,如一个三角形基于它的一个顶点进行缩放,那这个时候我们的做法就是先把三角形平移到原点处(假设该顶点坐标为(x,y),则平移为T(-x,-y)),然后缩放...

2019-12-31 13:56:55 869

6TotalQSS-附汇总的QSS文件(使用时把中文删掉).qss

整理的一套QSS,里面包含了大部分控件,以及控件不同状态,如selected,hover等分类,是整个系统可以共用的一整套QSS。可根据需要更改参数属性使用。

2020-02-10

空空如也

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

TA关注的人

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