自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 osgearth 动态shader效果

实现自定义几何体的动态效果,基本思路是传入一个动态变化的值,变换的范围(0.0,1.0),计算距离设定圆环的颜色。

2025-04-11 15:32:42 462

原创 osgearth 加载离线tms地图和高程切片

这里介绍osgearth加载地图的详细过程,包括直接加载大块的tif文件和tms金字塔的切片以及利用Nginx发布为tms服务的详细过程。

2025-04-03 15:54:12 871 2

原创 UE5 动态扫描波

摘要:本文介绍了在UE5中通过自定义Mesh和材质实现动态扫描效果的完整流程。首先创建基础Mesh,然后构建动态材质,关键部分是通过着色器代码实现多段扫描效果。着色器使用时间参数控制5个扫描波段的位置,每个波段以不同时间偏移(0.2间隔)进行循环,通过计算当前像素与扫描波段的距离,使用lerp函数实现颜色渐变效果。代码中定义了波段宽度、中心位置等参数,当像素位于波段范围内时,按照距离中心位置的比例进行颜色插值,最终形成动态扫描视觉效果。

2025-08-01 23:30:00 253

原创 cesium FBO(四)自定义相机渲染到Canvas(离屏渲染)

本文介绍了在Cesium中将自定义相机画面渲染到Canvas或纹理的方法。通过创建FBO(帧缓冲对象)和自定义相机,替换场景默认相机进行渲染后再恢复原相机。关键步骤包括:1)创建自定义相机并设置视锥体参数;2)将场景默认相机替换为自定义相机进行渲染;3)将渲染结果输出到FBO或Canvas。文章还展示了灰度处理等效果实现,并提供了完整的相机创建和渲染流程代码。该方法基于此前文章的基础原理,适用于需要多视角渲染或特殊效果处理的场景。

2025-08-01 22:00:00 298

原创 cesium FBO(三)渲染到Canvas(灰度图效果)

本文介绍了基于Cesium FBO实现图像灰度处理的完整流程。在掌握FBO渲染到纹理和Canvas的基础上,重点讲解了灰度处理的核心步骤:1)创建临时存储空间;2)垂直翻转图像数据;3)通过RGB加权计算灰度值(0.299R+0.587G+0.114B);4)缩放并绘制到目标Canvas。代码展示了从FBO提取图像数据、灰度转换到最终渲染的全过程,该方法同样适用于实现高斯模糊、红外效果等其他图像处理效果。

2025-08-01 21:00:00 236

原创 cesium FBO(二)渲染到Canvas

本文介绍了将Cesium场景渲染到Canvas的实现方法:1)创建Canvas元素;2)建立帧缓冲对象(FBO)保存渲染数据;3)通过修改视口和渲染状态将场景渲染到FBO;4)从FBO读取像素数据并处理后绘制到Canvas。该方法支持图像翻转、缩放等处理,并能实现多Canvas渲染、网络传输、预渲染存储等功能,为三维场景的灵活应用提供了技术基础。

2025-07-31 23:00:00 513

原创 cesium FBO(一)渲染到纹理(RTT)

本文介绍了WebGL中帧缓存区对象(FBO)的原理与实现。FBO可用于将渲染数据输出到纹理而非默认颜色缓存区,实现离屏渲染和纹理复用效果。文章首先分析了常规WebGL渲染流程,然后详细阐述了FBO的创建、切换和渲染过程,包括颜色/深度/模板关联对象的设置。在Cesium实现部分,重点解析了Framebuffer.js对WebGL FBO的高级封装,展示了如何通过构造函数完成FBO配置。最后给出了渲染到纹理的四个关键步骤:创建几何体、建立FBO、执行渲染、将FBO数据作为纹理赋值,并以矩形几何体为例演示了实际

2025-07-31 22:45:00 1044

原创 Cesium 创建两个经纬度点的动态连接线

本文介绍了在Cesium中创建两个经纬度点连线并实现动态扫描效果的实现方法。首先通过Cesium.Cartesian3.fromDegrees()方法将经纬度转换为三维坐标,计算两点间距离。然后定义了顶点着色器和片元着色器,其中片元着色器利用时间变量u_time实现扫描线动画效果,通过计算当前点与扫描线的距离来控制颜色透明度。最后通过GeometryInstance和Primitive创建几何图形实例,并添加自定义着色器的外观对象,实现两点间的动态连线效果。该方法适用于三维地理可视化场景中的动态路径展示。

2025-07-24 18:55:40 219

原创 osgearth 连接两个经纬度点

本文介绍了在osgEarth2.7环境中实现两点间连线的方法。通过定义起点和终点的经纬度坐标,将其转换为世界坐标系下的三维坐标,计算两点间的距离向量。利用向量运算确定旋转轴和角度,最终通过PositionAttitudeTransform设置连线位置和姿态。该方法实现了精确的空间两点连接可视化功能,为地理信息系统开发提供了实用解决方案。

2025-07-15 18:01:47 189

原创 Cesium开启海洋水效果

《Cesium实现海洋效果新方法》摘要:最新版Cesium 1.101提供了原生海洋效果实现方案,通过创建全球矩形并应用Water材质,参数化调节波浪频率(10000)、动画速度(0.01)、振幅(5)等特性。使用specularMap区分陆海边界,搭配normalMap生成水纹,但需注意默认资源像素较粗糙,高要求项目需二次加工。相比旧版UE5插件需缓存在线数据的方案,该原生实现更便捷,代码简洁,仅需30行核心逻辑即可构建动态海洋场景。(149字)

2025-07-09 19:00:16 209

原创 Cesium实现半球扫描效果

摘要:本文介绍了基于Cesium 1.98版本实现的雷达扫描特效类开发。通过创建填充的半圆几何体和自定义着色器,实现了动态扫描效果。关键步骤包括:1)使用球面坐标生成半圆顶点数据;2)编写顶点和片段着色器实现扫描动画;3)通过时间变量控制扫描线旋转。该方案采用PrimitiveCollection组合方式,支持半径调整和颜色自定义,扫描区域采用黄色高亮显示并伴有透明度渐变效果。开发者需注意版本兼容性和性能优化问题。

2025-06-24 19:01:17 214

原创 osgearth相控阵雷达

这篇文章详细介绍了如何使用OpenSceneGraph (OSG) 创建相控阵雷达的可视化效果。作者通过绘制半个球体并添加四个裁剪面实现雷达造型,关键步骤包括:1) 使用QUAD_STRIP图元构建半透明曲面网格;2) 通过深度测试和混合模式实现正确渲染;3) 添加四个裁剪平面完成雷达外形;4) 创建旋转扇叶作为动态元素。文中特别强调了透明渲染的关键设置和解决Z-fighting问题的技巧,同时提供了完整的代码实现,包括顶点计算、状态设置和裁剪处理等核心功能。

2025-06-24 18:55:10 109

原创 osgearth 车辆贴合地面移动

摘要:本文提出了一种车辆姿态计算方法,通过从高空向地面发射四条射线检测地形高度,获取四个交点坐标后计算地面法线,进而确定车辆姿态。关键代码展示了如何通过坐标转换和矩阵运算实现:1)获取地形交点;2)计算中心点和位移矩阵;3)通过向量运算求法线;4)分解四元数计算俯仰、横滚和航向角;5)将前进方向投影到地形切平面。该方法适用于复杂地形条件下的车辆姿态模拟。

2025-05-30 18:07:21 231

原创 osgearth 雷达包络效果

本文介绍了如何通过自定义图元实现雷达包络的简易效果。开发环境包括osg3.4、osgearth2.7、qt5.9.5和vs2015。关键代码展示了如何创建雷达包络的三维曲面,包括设置采样步长、计算蒙皮采样点、设置曲面颜色和图元类型,以及实现半透明效果。代码还涉及绘制网格线、解决Z-fighting问题以及确保深度测试正确。通过这些步骤,成功实现了雷达包络的视觉效果。

2025-05-19 18:44:33 297 4

原创 osgearth 实现简单的雷达扫描

本文介绍了如何使用着色器实现贴地扫描效果,并在此基础上添加线框、刻度盘等元素。首先,通过构建几何体(BuildEntityBody函数)创建一个圆形节点,并设置其样式和位置。接着,通过着色器代码(InitShaderProgram函数)实现扫描效果,计算角度差值并根据时间动态更新颜色。最后,通过CreateShaders函数将着色器程序应用到几何体上,并设置相关参数如时间、基础颜色和扫描颜色。通过EntityUpdate函数驱动着色器的时间参数,实现动态扫描效果。该技术可用于雷达扫描等场景,具有较高的实用性

2025-05-14 14:36:36 305

原创 osgearth 设置物体的旋转

本文介绍了在OpenSceneGraph(OSG)和osgEarth中坐标系和欧拉角的定义及其应用。OSG使用右手坐标系,X轴向右,Y轴向上,Z轴向前,而osgEarth基于OSG,但在地理空间中扩展了地理坐标系,默认使用ENU(东-北-天)坐标系。文章详细说明了如何通过构建旋转矩阵并应用到节点来设置物体的旋转,并提供了创建和添加调试坐标轴到场景的代码示例。通过这些步骤,开发者可以有效地在三维场景中控制物体的方向和位置。

2025-05-10 17:15:03 360

原创 osgearth 贴地线绘制

本文介绍了如何基于地理坐标绘制贴地线,并实现选中闪烁效果和点自适应大小。开发环境为osg3.4、osgearth2.7、qt5.9.5和vs2015。关键代码部分展示了如何通过osg::Geode和osg::Sphere绘制球体,并通过osgEarth::Geometry绘制贴地线。选中闪烁效果通过调整osg::Uniform中的simTime和baseColor实现,而点自适应大小则根据视点与实体的距离动态调整球体半径。代码中还涉及了状态设置、多边形偏移和深度测试等细节,以确保渲染效果的正确性。

2025-05-09 19:09:22 344

原创 osg模型闪烁效果

利用着色器,实现模型的闪烁效果,实现原理是获取材质颜色和纹理颜色进行混合,利用sin函数产生[0,1]的值实现闪烁。

2025-04-24 18:58:40 226

原创 osgearth 自定义文字标签

利用osgEarth::Annotation::PlaceNode节点实现自定义文本标签。

2025-04-15 17:49:46 273

原创 osgearth 自定义渐变色几何体

自定义几何体代码同上一篇类似。

2025-04-11 15:59:43 276 6

原创 osgearth加载离线dem高程切片

这里介绍osgearth加载地图的详细过程,包括直接加载大块的tif文件和tms金字塔的切片以及利用Nginx发布为tms服务的详细过程。

2025-04-08 16:49:02 544

原创 osgearth加载fbx模型

之前从源码编译了osg和osgearth,因为没有编译加载fbx的插件(osgdb_fbx.dll),从新又编译了一遍。有了这个插件之后,代码就特别简单。

2025-04-03 11:53:36 229

原创 osgearth集成qt

从源码编译osg、osgearth,折腾了一周的qt5.2.1+vs2010后,果断放弃。成功编译了并集成了下面的版本。这种方式只能是单线程,切换成多显示会崩溃。

2025-04-03 11:44:35 374 6

原创 Ceisum 动态着色器03_漫水方式扫描

Cesium利用定点着色器和片元着色器实现动态效果,适当的更改可应用到自己的项目。一、效果展现二、代码实现三、工程资源下载。

2024-01-28 11:58:41 137

原创 Cesium 动态着色器02_扩散波纹效果

Cesium利用定点着色器和片元着色器实现动态效果,适当的更改可应用到自己的项目。一、效果展现二、代码实现。

2024-01-28 11:51:27 156

原创 Cesium 动态着色器shader01_流水线效果

利用定点着色器和片元着色器实现动态效果,适当的更改可应用到自己的项目。一、效果展现二、代码实现(全部)三、代码工程下载。

2024-01-28 11:41:54 175

原创 UE4 动态着色器shader01_流水线效果

利用shader编写HLSL着色器,实现动态效果,可根据自己的需求任意拓展。一、效果展现二、蓝图材质部分三、着色器代码。

2024-01-28 11:23:50 157

定义了c++常用的rgb色系图谱

定义了常用的rgb色性图谱,再没任何依赖,开袋即食的那种。

2025-04-11

osg3.4,osgearth2.7加载fbx的动态库osgdb-fbx.dll

osg3.4,osgearth2.7加载fbx的动态库osgdb-fbx.dll

2025-04-08

空空如也

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

TA关注的人

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