CHPCWWHSU
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于模板缓冲的矢量贴地显示
第二节:倾斜摄影模型上的矢量完全贴地方案(3.20直播回放)_哔哩哔哩_bilibili) ,对该方法进行了梳理与改进,并将最终的代码开源(总体方案可概括为三次绘制过程1)绘制地形(或倾斜模型),正常情况下的绘制,即打开深度测试,深度和颜色缓冲可写入,同时构建矢量包围盒;2)采用模板测试标记矢量在地形(或倾斜模型)上覆盖的区域;3)根据标记结果,实现矢量贴地绘制。本文的改进主要有两点:1)矢量包围盒的创建;2)矢量贴地显示支持透明度显示。原创 2025-10-08 21:56:16 · 221 阅读 · 0 评论 -
基于模板缓冲的矢量贴地显示
第二节:倾斜摄影模型上的矢量完全贴地方案(3.20直播回放)_哔哩哔哩_bilibili) ,对该方法进行了梳理与改进,并将最终的代码开源(总体方案可概括为三次绘制过程1)绘制地形(或倾斜模型),正常情况下的绘制,即打开深度测试,深度和颜色缓冲可写入,同时构建矢量包围盒;2)采用模板测试标记矢量在地形(或倾斜模型)上覆盖的区域;3)根据标记结果,实现矢量贴地绘制。本文的改进主要有两点:1)矢量包围盒的创建;2)矢量贴地显示支持透明度显示。原创 2025-10-08 21:51:44 · 101 阅读 · 0 评论 -
osg::HeightField贴纹理
osg中提供了osg::HeightField可绘制四角面片,其基类为osg::Shape, 通过BuildShapeGeometry将osg::HeightField转换为osg::Geometry实现数据的可绘制。变量1:表示列数、行数;变量2:表示左下角点坐标值(最小的X和最小的Y);变量3:x方向间隔;变量4:y方向间隔;本文简单介绍了osg::HeightField,以及其贴纹理的方法。其中蓝色的底板表示纹理覆盖范围。原创 2024-11-30 17:00:42 · 185 阅读 · 0 评论 -
osgEarth中显示XYZ影像服务
XYZImageLayer继承自ImageLayer,提供接口setProfile()设置影像数据源的坐标系,提供接口setInvertY()设置数据的坐标原点是左上角还是左下角。XYZ瓦片是一种在线地图数据格式,它将地图切割成一系列小块的图片(即瓦片),这些瓦片按照特定的规则(如ZXY规范)进行编号和组织,以便用户能够快速访问和加载所需的地图区域。openstreetmap国内不能访问,可设置代理进行访问,环境变量设置如下,分别对应代理的地址和端口号。接下来着重分析XYZImage图层。原创 2024-10-27 21:14:33 · 467 阅读 · 0 评论 -
osg中显示3dtiles和cesiumIon
如下图为CesiumTilesetNode数据更新相关代码,将OSG对应的ViewMatrix、ProjectionMatrix和窗口信息传递给tileset->updateView()实现Cesium-native的场景更新。整体结构,其中 CesiumTilesetNode依赖Cesium3DTilesSelection::Tileset,实现数据的更新以及确定需要绘制的节点。1.1 CesiumNative3DTileslayer图层。原创 2024-09-17 16:06:52 · 745 阅读 · 0 评论 -
osg中纹理显示缓存
其中Texture、Texture2D为数据层的类,TextureObejcet管理显存对象,TextureObjectSet将TextureProfile相同的对象统一管理,TextureObjectManager管理TextureObjectSet对象。创建的TextureObject对象由TextureObjectManager统一管理,TextureObject对象由Texture所有,TextureObjectSet中记录TextureObject对象的裸指针。2.2 显存对象申请。原创 2024-07-21 16:37:12 · 176 阅读 · 0 评论 -
osgVerse加载3dtiles
本文利用osgVerse中的osgdb_3dtiles插件,以公开的3dtiles数据为例,展示其加载倾斜模型3dtiles的效果,并对其实现做的分析,分析其按照osg的场景结构显示3dtiles的方法。本文利用osgVerse中的osgdb_3dtiles插件,展示其加载倾斜模型3dtiles的效果,并对其实现做的分析,分析其按照osg的场景结构显示3dtiles的方法。如下图为3dtiles中的json文件结构,主要包含"content"和"children"两个关键字段。原创 2024-06-22 09:42:08 · 470 阅读 · 0 评论 -
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 · 1445 阅读 · 5 评论 -
MVS-Texturing 相关背景知识与论文总结
本文总结MVS-Texturing相关背景知识与论文。MVS-Texturing是三维重建的开源代码库,主要用于模型贴纹理。其github地址为:https://github.com/nmoehrle/mvs-texturing。原创 2022-10-16 20:18:41 · 2025 阅读 · 0 评论 -
1.2 三维场景动态生成正射纹理-人机交互实现区域框选
本文展示如何通过辅助相机,将一定范围三维场景正视图动态渲染到纹理。首先将倾斜模型添加到三维场景中显示;接着以人机交互的方式绘制一个多边形区域;然后以多边形区域作为约束区域,架设辅助相机,设置相机渲染绑定的纹理;最后将辅助相机添加到主场景,实现渲染。原创 2022-09-12 20:23:09 · 663 阅读 · 0 评论 -
1.1 三维场景RTTCamera 动态生成纹理
本文展示如何通过辅助相机,将一定范围三维场景正视图动态渲染到纹理。首先将倾斜模型添加到三维场景中显示;接着以人机交互的方式绘制一个多边形区域;然后以多边形区域作为约束区域,架设辅助相机,设置相机渲染绑定的纹理;最后将辅助相机添加到主场景,实现渲染。...原创 2022-08-13 11:43:34 · 956 阅读 · 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 · 317 阅读 · 0 评论 -
osgVerse 示例1---快速渲染到纹理(FastRtt)
osgVerse 介绍系列---快速渲染到纹理(FastRtt)原创 2022-05-02 12:36:07 · 1699 阅读 · 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 · 7565 阅读 · 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 · 2676 阅读 · 0 评论 -
osgAnimation库解析
osgAnimation库解析 osgAnimation库为osg中的核心库,本文为一片总结性文章,并在此记录,主要参考网上Frank专栏的三篇关于动画的文章。本文将解释关键帧、插值器、采样器、频道、动画的概念,同时解析动画的驱动类,osgAnimation::AnimationUpdate,在总结动画的基本逻辑的基础上回答如下基本问题:1)Target对象 如何实现的插值计算2)Target对象 如何在动画驱动类 和 动画 之间实现值的传递目录1 osg动画的基本原理介...原创 2021-12-07 21:22:32 · 541 阅读 · 0 评论 -
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 · 640 阅读 · 0 评论 -
OsgEarth中IntersectionPicker
osg碰撞检测进阶 osgUtil封装了RayIntersector、LineSegmentIntersector、PlaneIntersector求交器,分别用于三维空间射线、线段、平面与场景osg::Node的求交,本文主要分析三种求交器应用的代码、进而分析其内部实现的代码结构,同时分析其求交的特点及应用场景,并实现一种针对点云的碰撞检测求交器。目录1 平面求交器的应用及分析 2 osg实现点云的碰撞检测内容1 平面求交器的应用及分析 osg中求交...原创 2021-09-21 22:28:57 · 4958 阅读 · 0 评论 -
OsgEarth星空背景
osgEarth 星空背景本文展示了OsgEarth中星空背景在earth文件中的配置方法,同时初步梳理osgEarth中关于星空背景类的结构及其关系,最后讲解星空背景的光照、时间等控制方法。本文主要解决一下问题:earth文件星空背景配置方法 osgEarth::Extension及SkyExtension、SimpleSkyExtension 星空背景光照控制方法目录1. earth文件星空背景配置方法 2. osgEarth::Extension及SkyExtension、Si原创 2021-08-29 22:35:14 · 1560 阅读 · 0 评论 -
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 · 897 阅读 · 0 评论 -
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 · 1138 阅读 · 0 评论 -
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 · 2602 阅读 · 0 评论 -
osgEarth目标选择
osgEarth目标拾取本文展示了一种目标选择的方法。通过将osg::Node注册到osgEarth的对象管理器中,利用osgEarth的RTTPicker类以及重写的RTTPicker::Callback类,实现目标的选中,最后利用osgEarth::VirtualProgram类,将拾取的对象高亮显示。本文主要解决以下问题:osgEarth::RTTPicker实现目标拾取 RTTPicker::Callback回调解析 osgEarth::VirtualProgram目标高亮显示目录原创 2021-05-02 19:47:53 · 5219 阅读 · 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 · 2237 阅读 · 2 评论 -
osg碰撞检测与目标拾取
osg碰撞检测与目标拾取本文展示了一种osg中当前视图下碰撞检测和目标拾取的方法。展示碰撞检测的编码流程:1)首先继承osgGA::GUIEventHandler类,响应事件;2)然后创建osgUtil::LineSegmentIntersector和osgUtil::IntersectionVisitor得到碰撞检测访问器;3)最后借助visitor模式,由2)中创建的访问器,访问需要进行碰撞检测的节点。当然本文采用一种更方便的方法,借用osgViewer::view中的computeIntersec原创 2021-04-04 20:20:34 · 1724 阅读 · 0 评论 -
osgEarth 指北针显示
osgEarth 指北针显示本文展示了一种osgEarth环境下显示指北针的方法。通过osgEarth自带的ImageControl控件以图片的形式显示指北针,同时利用osgGA::GUIEventHandler来实现指北针和osgEarth球的交互。本文主要解决一下问题:osgEarth加载影像图层 osgEarth指北针的显示 指北针和球的交互目录1 前言 2 osgEarth指北针的显示 3 指北针和球的交互内容1 前言osgEarth是基于三维引擎osg开发的三维数原创 2021-04-01 00:27:38 · 1479 阅读 · 0 评论 -
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 · 2219 阅读 · 7 评论 -
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 · 2635 阅读 · 0 评论
分享