自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (10)
  • 收藏
  • 关注

原创 CloudCompare学习(1)- CloudCompare 编译及普通插件实现

最近由于工作需求,偏向点云算法库的学习。给定一些无序三维点,可以构建点云的三角网,接着赋纹理,如果算法足够稳健,也是很强大的,毕竟由一些点得到了一个模型。由于刚入门,从开源库和开源软件学起,首先学习软件的动作,接着结合源码进行分析。CloudCompare 是一款非常好的开源点云显示和处理软件,尤其是有比较好的框架,使其有很强的可扩展性,这点也值得学习。其采用GPL授权,使在此框架下开发的应用软件也必须开源,这点对商业公司可能不友好,但对广大码友还是很好的。 下面主要从两个方面...

2020-08-02 13:07:52 2552

原创 Qt5.9.4中利用QOpenGLWidget类进行opengl绘图

首先打开Qt Creator,然后点击菜单 ,文件->新建文件和项目,如图所示:左边选择Application,右边选择Qt Widgets Application,点击Choose...,项目名称为myOpenGLShow,接着下一步,一直默认,到Details,如下:点击取消选中创建界面(G)。然后下一步,知道完成,程序显示的为mainwindow.cpp文件:接着是利用QOpenGLW...

2018-03-31 22:11:20 30044 8

原创 OpenGL着色器实现纹理合并显示

完整的代码如下所示,需依赖glfw实现窗口显示,依赖SOIL实现纹理装载。需将两个纹理路径换为本地路径,给出的示例代码路径为1.jpg和2.jpg。本文介绍了opengl下实现纹理的装载,同时借助顶点着色器和片源着色器实现两个不同外部纹理的合并显示。借助glfw实现窗口的创建,借助SOIL库实现纹理的装载,返回加载后的纹理id。绘制两个三角形,并绑定两个纹理。

2024-04-08 20:47:06 520

原创 osgviewerMFC配置

本文介绍了osg下如何编译、配置osgviewerMFC项目,并显示模型。osg采用3.6.5版本。

2024-03-08 09:07:52 397

原创 三维场景动态生成正射纹理-框选区域拍照出图

在上期的RegionSelect中,将SlaveCamera初始化并添加到视图(viewer)中,在交互动作的最后,根据绘制的多边形调整SalveCamera的姿态,最后添加相机回调用于保存拍照后的纹理。

2023-07-16 15:44:56 301

原创 2 OsgEarth中实现PBR材质流程总结

本文是系列文章的首篇,即总结部分。本文将总结OsgEarth中实现PBR材质流程,讲解OsgEarth中如何实现shader的注册管理(osgEarth::VirtialProgram)、shader的分包导入(osgEarth::ShaderPackage)、osgEarth中的光照系统(osgEarth::SkyNode、osgEarth::Extension)、然后详细讲解经典的冯氏光照的原理及代码实现(包含shader部分)、最后尝试理解PBR光照模型的实现思路与细节。本文首先尝试理解前两部分,后三

2022-10-23 13:21:49 974 3

原创 MVS-Texturing 相关背景知识与论文总结

​本文总结MVS-Texturing相关背景知识与论文。MVS-Texturing是三维重建的开源代码库,主要用于模型贴纹理。其github地址为:https://github.com/nmoehrle/mvs-texturing。​

2022-10-16 20:18:41 1449

原创 1.2 三维场景动态生成正射纹理-人机交互实现区域框选

本文展示如何通过辅助相机,将一定范围三维场景正视图动态渲染到纹理。首先将倾斜模型添加到三维场景中显示;接着以人机交互的方式绘制一个多边形区域;然后以多边形区域作为约束区域,架设辅助相机,设置相机渲染绑定的纹理;最后将辅助相机添加到主场景,实现渲染。

2022-09-12 20:23:09 478

原创 1.1 三维场景RTTCamera 动态生成纹理

本文展示如何通过辅助相机,将一定范围三维场景正视图动态渲染到纹理。首先将倾斜模型添加到三维场景中显示;接着以人机交互的方式绘制一个多边形区域;然后以多边形区域作为约束区域,架设辅助相机,设置相机渲染绑定的纹理;最后将辅助相机添加到主场景,实现渲染。...

2022-08-13 11:43:34 732 2

原创 TaskPool-ConcurrentWriter并行框架

TaskPool-ConcurrentWriter并行框架 本文根据github上的点云转3dtiles的代码整理(GitHub - potree/PotreeConverter: Create multi res point cloud to use with potree)。其采用 Producer-Consumer 模式实现点云的分块、构建金字塔等处理。本文主要介绍其并行的结构,即TaskPool-ConcurrentWriter并行框架目录1 Producer-Consumer 模式..

2022-05-15 19:43:00 205

原创 osgVerse 示例1---快速渲染到纹理(FastRtt)

osgVerse 介绍系列---快速渲染到纹理(FastRtt)

2022-05-02 12:36:07 1286 1

原创 3dtiles数据发布服务及展示

3dtiles数据发布服务及展示 本文展示如何实现本地3dtiles数据发布服务,以及在本地利用Cesium的API实现了3dtiles数据在web端渲染。即3dtiles服务发布平台和3dtiles服务展示平台。目录1 nginx服务发布系统 3 Cesium web端API调用 2 3dtiles本地发布服务与3dtiles web端展示内容1 nginx服务发布系统 下载地址如下: 下载地址如下:http://nginx.org/en/downl...

2022-03-20 17:52:28 6770 1

原创 Cesium for unreal快速入门-简单场景配置

Cesium for unreal快速入门-简单场景配置 本文展示了在unreal环境下基于Cesium for unreal配置简单场景的过程。包含添加CesiumSunSky、地形影像、本地3dtiles数据等actor(unreal中的名词),同时可参照Cesium for Unreal Quickstart – Cesium。目录1 工程创建 2 角色添加 3 运行内容1 工程创建 启动Unreal Engine 4.27.1(本地版本),打开虚幻项目浏览...

2022-02-13 17:44:21 2200

原创 osgAnimation库解析

osgAnimation库解析 osgAnimation库为osg中的核心库,本文为一片总结性文章,并在此记录,主要参考网上Frank专栏的三篇关于动画的文章。本文将解释关键帧、插值器、采样器、频道、动画的概念,同时解析动画的驱动类,osgAnimation::AnimationUpdate,在总结动画的基本逻辑的基础上回答如下基本问题:1)Target对象 如何实现的插值计算2)Target对象 如何在动画驱动类 和 动画 之间实现值的传递目录1 osg动画的基本原理介...

2021-12-07 21:22:32 417

原创 potree23dtiles python版封装为exe流程

potree23dtiles为开源的python版点云转3dtiles工具,本文介绍了将其封装为可执行程序的流程,在此流程中遇到一些问题,在此记录。准备下载potree23dtileshttps://www.github.com/yeyan00/potree23dtiles 下载地址为https://www.github.com/yeyan00/potree23dtiles安装anoconda、visualcode 安装anoconda以及...

2021-10-11 01:05:09 446

原创 OsgEarth中IntersectionPicker

osg碰撞检测进阶 osgUtil封装了RayIntersector、LineSegmentIntersector、PlaneIntersector求交器,分别用于三维空间射线、线段、平面与场景osg::Node的求交,本文主要分析三种求交器应用的代码、进而分析其内部实现的代码结构,同时分析其求交的特点及应用场景,并实现一种针对点云的碰撞检测求交器。目录1 平面求交器的应用及分析 2 osg实现点云的碰撞检测内容1 平面求交器的应用及分析 osg中求交...

2021-09-21 22:28:57 4476

原创 OsgEarth星空背景

osgEarth 星空背景本文展示了OsgEarth中星空背景在earth文件中的配置方法,同时初步梳理osgEarth中关于星空背景类的结构及其关系,最后讲解星空背景的光照、时间等控制方法。本文主要解决一下问题:earth文件星空背景配置方法 osgEarth::Extension及SkyExtension、SimpleSkyExtension 星空背景光照控制方法目录1. earth文件星空背景配置方法 2. osgEarth::Extension及SkyExtension、Si

2021-08-29 22:35:14 1200

原创 MapNode的创建及其内容---osgEarth渲染引擎系列(2)

本文时在osgEarth earth文件到地球的创建---(1)的基础上,进一步讲解MapNode的创建过程。 本文通过代码的介绍,讲解在osgEarth中,MapNode的创建过程以及MapNode的子节点和traverse函数的内容。内容osg::Node*EarthFileSerializer2::deserialize( const Config& const_conf, const std::string& refer...

2021-08-15 21:22:43 670

原创 osgEarth earth文件到地球的创建------osgEarth渲染引擎系列(1)

osgEarth 指北针本文展示了一种基于osgEarth的指北针显示方法。通过osgEarth自带的ImageControl控件,实现指北针的显示,同时利用osg自带的osgDB::GUIEventHandler类实现指北针和球的交互。本文主要解决一下问题:osgEarth指北针的显示 osgEarth球与指北针的交互目录1 前言 2 VPB编译与使用 3 地形在osgEarth球上显示内容1 前言VirtualPlanetBuilder是一个开源代码工具,用于根据地理空间

2021-08-01 20:10:18 838

原创 osg碰撞检测进阶

osg碰撞检测进阶本文展示了一种 已知x,y平面坐标,求取其对应模型上z值的方法;进一步分析osgUtil::LineSegmentIntersector和osgUtil::IntersectionVisitor类,回答如下问题:1)osgUtil::LineSegmentIntersector,如何实现更精细的模型加载,然后进行碰撞检测;2)osgUtil::LineSegmentIntersector线段求交,控制参数分析;3)如何实现点云(无三角网信息)的碰撞检测。目录1 前言 2 os

2021-07-26 00:11:46 2290

原创 osgEarth目标选择

osgEarth目标拾取本文展示了一种目标选择的方法。通过将osg::Node注册到osgEarth的对象管理器中,利用osgEarth的RTTPicker类以及重写的RTTPicker::Callback类,实现目标的选中,最后利用osgEarth::VirtualProgram类,将拾取的对象高亮显示。本文主要解决以下问题:osgEarth::RTTPicker实现目标拾取 RTTPicker::Callback回调解析 osgEarth::VirtualProgram目标高亮显示目录

2021-05-02 19:47:53 4422 6

原创 osgconv 工具使用

osgconv 工具使用本文分析了osgconv工具的用法,并展示了其部分用法。目录1 osgconv工具帮助文档解读 2 osgconv 工具实现模型格式转换、纹理压缩、模型简化功能内容1 osgconv工具帮助文档解读environment: OSG_ASSIGN_PBO_TO_IMAGES <ON/OFF> Set whether PixelBufferObjects should be assigned to Imag...

2021-04-24 21:21:55 1521 2

原创 osg碰撞检测与目标拾取

osg碰撞检测与目标拾取本文展示了一种osg中当前视图下碰撞检测和目标拾取的方法。展示碰撞检测的编码流程:1)首先继承osgGA::GUIEventHandler类,响应事件;2)然后创建osgUtil::LineSegmentIntersector和osgUtil::IntersectionVisitor得到碰撞检测访问器;3)最后借助visitor模式,由2)中创建的访问器,访问需要进行碰撞检测的节点。当然本文采用一种更方便的方法,借用osgViewer::view中的computeIntersec

2021-04-04 20:20:34 1342

原创 osgEarth 指北针显示

osgEarth 指北针显示本文展示了一种osgEarth环境下显示指北针的方法。通过osgEarth自带的ImageControl控件以图片的形式显示指北针,同时利用osgGA::GUIEventHandler来实现指北针和osgEarth球的交互。本文主要解决一下问题:osgEarth加载影像图层 osgEarth指北针的显示 指北针和球的交互目录1 前言 2 osgEarth指北针的显示 3 指北针和球的交互内容1 前言osgEarth是基于三维引擎osg开发的三维数

2021-04-01 00:27:38 1117

原创 osgEarth 球上显示地形数据库

osgEarth 球上显示地形数据库本文展示了一种由DSM和DEM得到Osgb工程,并在osgEarth球上显示的方法。其中DSM、DOM到Osgb工程的转换由VPB(VirtualPlanetBuilder)来实现,并采用Model图层将Osgb工程在球上显示。本文主要解决一下问题:VPB编译 VPB生成地形 地形在球上显示目录1 前言 2 VPB编译与使用 3 地形在osgEarth球上显示内容1 前言VirtualPlanetBuilder是一个开源代码工具,用于根据

2021-03-21 19:06:18 1646 6

原创 Cesium服务部署,并导入显示本地3dtiles数据

Cesium服务部署,并导入显示本地3dtiles数据本文是对B站上https://www.bilibili.com/video/BV1Ht411y73G?from=search&seid=16054593745027294184的学习结果目录1 前言 2 CesiumJs本地部署 3 Cesium显示本地3dtiles数据内容 前言 3D Tiles是用于流式传输大规模异构3D地理空间数据集的开放规范,3D Tiles将用于流式传输3D内容,包括建筑物,树木...

2021-03-14 18:54:09 1973

原创 关于3dtiles的一些理解

由于工作的需要,需要将OSGB文件转换为3D Tiles,用于网络传输和Web平台等的显示。OSGB主要来自于倾斜摄影测量,可通过smart3D(旧的叫法)三维建模得到;3D Tiles用于流式传输3D内容,包括建筑物、树木、点云和矢量数据。目前从项目的经历来看,只用到了OSGB影像数据转换为3D Tiles的情况。由于是小白,从头学起,首先需要弄清各种文件的组织格式,如osgb文件、tileset.json文件,下面根据自己的理解介绍下Tileset的格式,一来加深自己的理解,二来希望对和我一样刚入门的同

2020-06-05 11:00:49 1911

原创 快手20200412招聘

一共有四题,做出了前三题。记录下后面两题,第一幅图是第三题、第二幅图是第四题。第三题的代码如下,我将第三题简化为了排序问题:vector<int> WaitInLine(vector<int>& a, vector<int>& b) { // write code here vector<int>c; ...

2020-04-16 16:15:13 313

原创 疫情期间华为面试总结

华为技术岗应聘的流程确实有点多,从填写简历,选择岗位,上机考试,综合测评,到最近的三个面试完成,大半年已经过去了,发送offer估计又要等一段时间了。总结一下最近的面试经历,为自己也为他人指路。 由于疫情的影响,华为的三个面试都是以网络面试的方式进行,三个面试分别为专业面试1,专业面试2,业务主管面试,下面分别说下三个面试中,自己的准备和面试官所涉及到的问题。...

2020-03-13 16:04:21 3212 2

原创 析构函数的执行顺序

析构函数的执行顺序 回答包括类定义的先后顺序,局部和全部,以及静态,同时说明继承的关系。 对于继承类的析构函数执行顺序为,先派生类,后基类。 对于一个执行单元(.cpp文件)内,析构函数调用顺序为先局部后全局,先定义的后执行,后定义的先执行。为什么析构函数需要是虚函数,而虚函数又有什么特点。 虚函数实现多态性,同故宫只想派生类的基类指针或引用,访问派生类中同名覆盖成员函数。...

2020-02-20 15:00:48 1905

原创 OpenCV图像变换

1 图像变换        本次主要说明OpenCV图像变换中的边缘检测,直线检测,仿射变换,直方图均衡化。2 概念2.1 边缘检测        边缘检测一般的步骤分为(1)滤波,(2)增强,(3)检测。通过图像滤波可以改善与噪声有关的边缘检测器的性能,常见的滤波方法如高斯滤波,其重要通过归一化的离散高斯函数作为模板,对影像进行卷积。增强是指将边缘显著的点凸显出来。最后一步是检测...

2019-01-03 21:50:49 303

原创 OpenCV图像处理之滤波

一、图像滤波        即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。二、图像滤波分类        大体上图像滤波可以分为线性滤波和非线性滤波,线性滤波包括方框滤波、均值滤波、高斯滤波,非线性滤波包括中值滤波和双边滤波。三、五种滤波方式3.1 方框滤波      ...

2018-12-29 15:38:13 1431 3

原创 qt中鼠标右键的简单实现

本篇文章将在窗口中添加两个dock窗口!(1)首先新建工程选择Application-&gt;Qt Widgets Application,命名为my_RightButton ,下一步取消创建界面选框,然后下一步直到完成!首先打开MainWindow.cpp ,在其构造函数中写入代码!先添加两个dock窗口,然后设置一个主窗口,代码如下(注释如下说明)这样运行后的结果如下:接下来是添加右键的功能,...

2018-07-10 12:11:12 7532 2

原创 C++下动态链接库(dll)生成与调用

下面用到的VS为VS2015 ,首先是dll的生成,我以最常用的加法运算来举例:(1)首先新建一个win32 项目,命名为Add_test(2)然后点击确定-&gt;下一步:(3)最后点击完成然后新建头文件和源文件Add.h和Add.cpp在Add.h添加如下代码,表示需要导出的函数在Add.cpp中添加如下代码,为函数的内容:(4)然后按下F7生成,则在目录下会生成dll和lib文件。最后是对生...

2018-06-17 21:19:59 3960 1

原创 qt5.9.4中菜单栏的编写和设置

首先启动Qt creator(在这里就不讲解Qt安装的过程了,网上有很多很好的教程),如图所示:然后新建一个项目,菜单栏 文件-&gt;New file or Project,如图所示:如图所示,项目选中Application,并在右侧选择Qt Widgets Application,接着点击Choose...,,接着如图所示:取名称为MyMenu再下一步:接着选择Kits,这里的Kits就是编译...

2018-03-31 20:33:17 1365

dayata_3d_2.zip

大雁塔3dtiles

2021-03-14

PointThnningPlugin.zip

CloudCompare中的一个插件源码,实现点云抽稀的功能,针对CloudCompare 2.12,其它版本可稍微修改即可。

2020-08-01

CloudCompare用户手册2.6.1.pdf

CloudCompare 官方说明文档,介绍了CloudCompare的功能,在其官网上可下载,在此处也可下载。

2020-08-01

华为春招面试编程题2

面试春招编程题

2020-03-13

华为技术面试题1,图片的形式展现

华为春季招聘,技术面试题目,主要是对字符串的操作,统计和描述等,判断所得字

2020-03-13

动态链接库的生成与调用

该压缩包下包含两个压缩包,分别为dll生成工程和dll调用工程

2018-06-17

Qt自定义继承QOpenGLWidget的类进行绘图

在Qt下利用自定义opengl类,同时重载paintGl函数进行绘图操作

2018-03-31

Qt下为主窗口创建自主菜单

描述了在Qt下,如何在主窗口类中创建自主菜单,同时说明了常见的错误以及解决方法

2018-03-31

吴恩达机器学习第三周程序作业答案

吴恩达机器学习第三周课后答案,本人亲自做的,并且是满分

2018-03-22

VS2015+openCV3.3 实现color transfer

基于VS2015环境和openCV环境下实现原始影像到目标影像的颜色转换,此操作是在lab颜色空间对两者计算得到

2017-10-23

空空如也

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

TA关注的人

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