- 博客(77)
- 资源 (22)
- 收藏
- 关注
原创 三维渲染中顺序无关的半透明混合(OIT)(二——Stencil Route)
在谈到Stencil Route之前,需要先讨论A-Buffer算法。A-Buffer是一种图形学(渲染方向)上的用于可见面分析(Visble Surface Detection)的技术,是Z-Buffer的衍生方法。Z-Buffer是用于物体的算法。假设某个像素有A B C三个不透明物体重叠,A在最上面,B在中间,C在最底下,那么Z-Buffer的结果就是A,意味着B、C都被A了,因此可以针对该像素点。A-Buffer算法需要比Z-Buffer更多的内存。
2024-11-30 22:18:54
596
原创 三维渲染中顺序无关的半透明混合(OIT)(一Depth Peeling)
本文收集关于透明对象渲染技术中关于OIT技术的资料,尝试用简单的逻辑对这些内容进行整理。
2024-11-30 21:04:18
555
原创 Cesium着色器的创意和方法(六——透明和半透明)
这是一次尚未成功的尝试!我想的是一个模型通过剖切后,可以把剖切部分半透明,其他的部分保持原样。但是当前仍不能实现,可能这是一个不能实现的效果吧。
2024-11-28 21:10:50
660
原创 看Threejs好玩示例,学习创新与技术(ogl)
本文标题可能看的你莫名奇妙,什么是ogl?ogl是一个新的三维引擎库,可以简单任务是非常简化的ThreeJS。下面图是它的一个示例,可见虽然它是一个麻雀,但五脏还是比较全的。
2024-11-23 22:46:33
387
原创 看Threejs好玩示例,学习创新与技术(摄像头手势)
好吧,我没想到手势的获取竟然如此成熟了!今天的示例来自。在这个例子中,页面会请求你打开笔记本摄像头,它能够捕捉你的位置。通过判断手掌的开合你可以移动物体或进行射击。这一切仅仅只需要引用一个JS文件即可实现。
2024-11-23 13:27:22
592
原创 Cesium的ClearCommand的流程
ClearCommand是在每帧渲染前可以将显存的一些状态置为初始值,就如同把擦黑板。当然也包括在绘制过程中擦掉部分的数据,就如同画家在开始绘制的时候会画导览线(如透视线),轮廓出来后这些导览线就会被擦除。我画了一个DrawCommand的流程图,见下图。当然这里面可能有几个问题是需要进一步探究的。
2024-11-22 23:18:29
314
原创 看Threejs好玩示例,学习创新与技术(水波骨牌)
今天挖掘下示例中的技术。在这个效果中,我们可以看到很多类似骨牌的模型,随着时间不短的上下浮动。而且距离屏幕中心越远,则会覆盖一层朦胧感。它采用的ThreeJS的WebGPU技术,展示效果还是非常不错的。
2024-11-17 22:23:37
956
原创 如何知道表之间的关系(为了知识图谱的构建)
我做了一个C#的程序,可以辅助找到表之间的关系,技术路线很简单,没啥特别复杂的,放在了gitee,可能后面会进行一些更新,地址如下。我们在做常规知识图谱的时候,面临一个问题就是要知道关系是如何建立。如果表的数量比较少,人工来做还是比较容易的。但如果有非常多的表,并且这些表之间的关联关系都不清楚的情况下,那么我们需要很多“脑子”去分析表之间的关系。哈:下面截图的身份信息,名称都是假的,不用怕 ,因为程序自带混淆工具。今天就简单点,把今天花时间做的一个程序说下。
2024-11-17 00:08:02
415
原创 Cesium中EllipsoidRhumbLine的算法实现
是民航术语中的一个重要概念,它在航空导航中具有重要的意义。又称为,指的是一条航线上的每一段都与指南针方向保持恒定夹角的曲线。在航空领域,可以用来规划飞行航线,确保飞机以最短的距离到达目的地。的计算通常基于大圆航线的近似,这是由于大圆航线计算复杂且耗时较长。在航空导航中,大圆航线是地球上两点之间最短的弧线。而rhumb line则是为了简化计算而采用的近似方法,它可以在航空导航中提供足够的准确性和可行性。rhumb line的特点在于它表示一种恒定的航向,不论是向东、向西、向南还是向北。
2024-11-14 23:24:32
926
原创 Cesium着色器的创意和方法(五——Polyline)
不接受反驳,线段在三维里面的渲染比多边形的渲染更复杂。因为线是没有宽度的,并且还需要时时刻刻向着你。首先看下Cesium的线段的一些效果。这条线段非常宽(20个像素),有两个需要留意观察的。一是线段并非实时面对我,到了某个角度会重新调整朝向。二是远处跟地形还有点叠加冲突。
2024-11-09 22:31:00
922
原创 Cesium中granularity关键字引起的连锁知识
granularity 翻译成中文是颗粒度,在Cesium中用到这个单词的相关类包括Circle、Corridor、Ellipse、GroundPolyline、Polygon、Rectangle、Wall、CZML。第一眼,你肯定觉得是跟几何精度相关的,其实就是跟几何精度相关的。
2024-11-06 23:52:57
504
原创 Cesium的PickModel浅析
Cesium中的拣选(pick)具备一套比较巧妙机制,。可以简单的认为,Cesium的常规的鼠标拣选是基于最终成图做的。就如同下面的这幅画,红色的箭头指向牛的臀,而不是后面的房子,是因为牛挡住了房子。这是一种比较自然的理解方式。如果箭头不是从眼睛的方向,那么上面的方法就用不了了。这种情况下有两个解决办法,一个是跟前面一样,从射线的方向再“拍一次照片”。还有一种办法就是每个三角形与射线进行相交判断。
2024-11-04 23:04:46
663
原创 Cesium着色器的创意和方法(二——ModelVS)
positionMC模型坐标(Model Coordinates)。//主要有如下三个数据组成。
2024-10-30 07:00:00
801
原创 Cesium的ComputeCommand及影像投影
这方面已经有文章进行说明了,详见,在这里我就不从原理上进行解释了。本文从计算角度说下细节,同时我开发了一个测试程序,放在gitee,可以玩一玩。
2024-10-29 07:30:00
544
原创 Cesium着色器的创意和方法(四——模型光照渲染)
模型最后的颜色还需要考虑HDR色彩校正、伽玛矫正。计算公式为其中是一种在物理基础渲染(PBR)工作流程中用于光照和色彩管理的技术,它旨在保持图像的真实感和色彩一致性。它主要涉及到将场景的线性光照数据转换为适合显示设备(如显示器或电视)能够呈现的最终图像的过程。Neutral Tonemapping 的目标是提供一个色调映射方案,使得渲染出的图像在不同的光照条件下表现出自然和令人满意的效果。它通常会在图像中过度曝光或欠曝光的地方进行纠正,以更好地呈现细节。虽然。
2024-10-21 07:30:00
1276
原创 Cesium 影像加载的TileReplacementQueue技术
简简单单的一个类,内部隐含了非常多的策略逻辑,不得不佩服设计者的巧妙之处。虽然分析起来比较头疼。但_lastBeforeStartOfFrame的设计总感觉莫名其妙。因为_lastBeforeStartOfFrame只能指向其中一个叶子瓦片节点。而当前渲染场景有很多叶子节点。仅当此叶子节点不可见才能被移除,实属“点兵点将,点到谁就是谁”,有点随意或不全面。另外,TileReplacementQueue是每帧都进行分析,一般可见域有120个左右的瓦片,计算量还是有的。
2024-10-19 10:21:04
705
原创 Cesium的一些计算方法浅析(1)
自我感觉Cesium在处理地形瓦片的流程还是很复杂的。当然三维地球相比于二维地图来说,确实更复杂,在二维地图,你大抵只需要考虑矩形的空间关系。而在三维,不仅需要考虑视锥体有哪些瓦片,还需要采用一些负责的方法计算出Mesh。由于分析源码好烧脑哈,因此本文先做一点杂烩,后面相关内容就里面补充吧。
2024-10-17 07:45:00
800
原创 Cesium着色器的创意和方法(三——地球瓦片VS)
虽然地球瓦片(Tile)逻辑很简单,但Cesium 在它身上花了一百个心思(心眼),读起来那可真是耗费精力,但是好说歹说,里面的概念和知识点还是蛮丰富的。本文不打算讲清楚整个过程的细节,因此可能挑选几个有意思的拿来说说。在2015年,Cesium写了一个报告,说明对地形数据进行量化压缩后性能得到大幅提升(那么这里的量化是什么意思呢?在这里,量化可以简单的理解将浮点计算转换为更低位数的计算,比如8位整数运算。这听起来比较怪,但实际上很多地方已经采用了这种技术。比如机器学习方面就会采用量化计算提升推理性能。
2024-10-16 07:30:00
778
原创 实时语音转文字(基于NAudio+Whisper+VOSP+Websocket)
今天花了大半天时间研究一个实时语音转文字的程序,目的还包括能够唤醒服务,并把命令提供给第三方。由于这方面的材料已经很多,我把我在过程中遇到的和解决的问题简单说下。源代码开源在VOSP这里有三点需要注意的:1)sampleRate(采样频率)要选择16000,不要选别的,不然Whisper不兼容。2)声音录制得到的数据是一个个块(block),每次block大概1500byte左右。
2024-10-13 21:52:34
989
1
原创 Cesium着色器的创意和方法(一)
Cesium的着色器是一个很庞大的技术体系,我们使用起来相对还是比较容易的。Cesium内置了很多以CZM_开头的函数或Attribute。这些着色器是如何关联,又是如何调用的呢?为了方便表示,我们可以做一个想象。一堆需要经过码头,放到货轮上,运往远处。为啥需要走这个流程呢?这是因为WebGL跟OpenGL、DirectX不一样。在WebGL中并没有Camera、View这种实例类,你需要在GLSL中编写相关脚本。
2024-10-10 23:10:51
584
原创 Cesium的一些神奇概念及技术流程(1)
近期要深度研究Cesium。关于Cesium的用法、渲染流程等方面我看很多人都写过。我就写写其中一些可能平时用不到但是比较有趣的内容。因为边研究边写,所以会陆续出几集,然后合并在一起,欢迎大家跟踪。我的这些文章不打算把一些基本概念展开解释,因此读者在必要时可能需要自己寻找源码进行匹配阅读。如有不对,欢迎指出。
2024-10-07 22:59:31
766
原创 看Threejs好玩示例,学习创新与技术(LiquidRaymarching)
我原以为在3D渲染着色器脚本方面,只有HLSL和GLSL,没想到现在针对WebGPU,推出了新的着色器脚本语言WGSL。关于WGSL的介绍我就不展开了,大家可以从官网及ThreeJS都可以找到。在ThreeJS中,WGSL被组织成类似UE蓝图的模式,在调试过程中,可以发现每个对象具有Node这种对象形式。比如最简单的引用数值,在调试的时候其对象格式是代理变量(虽然WGSL是一种新的开发语言,但对于学习者而言,理解并不难。
2024-10-04 10:08:30
1135
原创 看Threejs好玩示例,学习创新与技术(Noise)
给图像加一点噪声效果,可以起到朦胧背景的效果,比如下面这幅画。除了普通的图片外,我们可以把这个效果应用到地图或其他方面,比如超过范围不允许用户了解更详细的内容。当然,也可以采用雾Fog效果,但后处理的效率会好很多。图1 地图除了中心范围,其他都用噪声掩盖。
2024-09-28 14:37:59
431
原创 看Threejs好玩示例,学习创新与技术(ThreePipe)
一个不需要PS,直接仅需拖拽一个照片就会生成宣传图,它用什么技术路线呢?ThreePipe有哪些基本特征呢?
2024-09-27 23:58:28
682
原创 看Threejs好玩示例,学习创新与技术(GridDistortionEffect)(完结)
本示例初看比较难,但如果明白了什么是GPUComputationRenderer及其用途,那么就比较容易理解,可以将这个方法应用在非常多有意思的地方。最后回答为啥图像有方块的效果。答案是GPUComputationRenderer 可以设置尺寸,如果尺寸小于屏幕尺寸,那么铺满屏幕就是方块的了。
2024-09-26 22:14:25
1043
原创 看Threejs好玩示例,学习创新与技术(React-three-fiber)
使用 react-three-fiber,您可以使用 React 的组件化开发方式来创建复杂的 3D 场景,同时利用 React 的状态管理和生命周期钩子来控制场景的交互和动画。是的,但是我们也应该清晰的认识到,框架这东西有好有坏。该框架并非基础性、革命性的框架,采用HTML的组织模式跟JSON格式的场景组织都能达到相同的效果。简单的说该框架简化了一些复杂的ThreeJS的对象操作,比如下面的代码,可以非常清晰的明白在渲染Canvas中添加了一个Mesh,该Mesh是一个Box,并且采用标准的材质。
2024-09-23 23:06:39
1008
1
原创 CIM平台应用的一些思考
在CIM领域,其实我们很多人可能也忽略了其本质,追求或重视一些表上的东西。如果认真分析CIM的问题,还是会让人感觉路漫漫其修远。
2024-09-22 13:29:08
891
原创 让C#程序在linux环境运行
今晚花一些时间,总结net程序如何在linux环境运行的一些技术路线。NET Core 使用了 .NET Core Runtime,它可以在 Windows、Linux 和 macOS 等多个操作系统上运行。可以采用Visual Studio生成Linux版本的dll。在Linux系统中,需要安装dotnet的运行环境(sudo yum install dotnet-sdk-2.1)。最后通过dotnet xx.dll即可运行程序。
2024-09-21 23:36:49
3204
原创 三维模型,不要只说轻量化
LOD也是一种技术,它可以不采用轻量化技术,比如我可以在远处给你呈现影像、照片,近处再给你看三维模型(百度、高德的地图三维也是这样的)。还有一个比较悲观的情况是,一般BIM模型体量大并不是因为墙多,而是栏杆、门把手、消防栓、穿孔铝板等,这些带有异构特征的模型复杂。因此本文以我自己数据处理的角度,来说说三维模型要加载到渲染平台,围绕轻量化方面,它该做什么,不该做什么。但如果是面向精细化管理或者需要物理级、实体级分析的场景,比如工业制品,建筑室内设计、施工管理、地下设施养护,那么丢失精度就不合适了。
2024-09-20 23:20:27
934
原创 城市级河流三维处理及展示的一些技术
可以预见被切割的河流虽然比较规整,但三角化的效果(错误率和长三角情况)稍微会好一些。比较好的河流效果应该是高仿真的效果。但在如此复杂的多边形面前,简单的三角化算法不能解决问题。比如,一个物体在世界坐标系中的 Z 值为 -5,表示它在摄像机前方5个单位的地方。这里的水体深度不是严格的水面高度减去地形距离。而是通过显存中的深度值计算得到的。还有一点需要注意的是,该示例的多边形会根据与地面物体的碰撞,得到切割后的多边形。细心的读者会发现有几个比较难以理解的点。在这里河流片元着色器的颜色可以描述为下面简单的公式。
2024-09-18 22:09:12
658
原创 看Threejs好玩示例,学习创新与技术(ProjectTexture合集)
下面代码的vTexCoords(=savedModelMatrix,已修改)记录方块所在的位置,vWorldPosition表示方块中像素的偏移。它的主要特点是确保生成的点之间保持一定的最小距离,从而避免点的聚集。作者对噪声的使用算是炉火纯青。这里仅需要注意的是,每个点其实是有两个力,一个力是鼠标的斥力,另外一个是点与本该所在位置的吸引力。如果x设为固定值,那么最终是上下的扭动,类似如果y设为固定值,则是左右方向的扭动。基于上面特征,那么曲线的每个点都可以采用噪声函数进行模拟韵动,我把简化的函数列在下面。
2024-09-17 12:35:46
1038
原创 浅谈住房城乡建设部科技创新平台布局重点方向
这里软件的核心也在算的方面,即他不是简单的数据汇聚统计,而是具有情景模拟功能。当前BIM软件主要是几家外国公司及国内如广联达、构力等公司,这些BIM软件的体量都比较大,软件升级改造的进度相对较缓慢。因此在这类设计中,应该多从空间感、设施易用性、情感寄托等多维度来进行设计,满足人们在居家、遛弯等应用场景的需求。我把上面课题做了个简单的分类:1)面向设计孪生设计的,2)面向以人为本的设计,3)面向监管的需求,4)面向工业设计。面向监管的软件是最容易做的了,也最容易做的最没“技术含量”。
2024-09-16 20:38:24
1505
原创 看Threejs好玩示例,学习创新与技术(三)
在Project Texture这个示例中,作者也应该开始也不懂,翻遍了很多材料才做了出来。他在文中也标记了引用的网站,这是一个非常好的习惯。既要有随机,又要有连续的韵动,非噪声函数不可。如果x设为固定值,那么最终是上下的扭动,类似如果y设为固定值,则是左右方向的扭动。这种周期性是由噪声函数的数学性质决定的。基于上面特征,那么曲线的每个点都可以采用噪声函数进行模拟韵动,我把简化的函数列在下面。是一种用于生成伪随机噪声的算法,常用于图形学、程序生成和纹理生成等领域。这些坐标可以用来生成在该点的噪声值。
2024-09-15 13:14:50
611
原创 看Threejs好玩示例,学习创新与技术(二)
它的主要特点是确保生成的点之间保持一定的最小距离,从而避免点的聚集。这种方法在计算机图形学、游戏开发、物理模拟等领域中非常有用,尤其是在需要生成自然分布的对象(如树木、石头等)时。如果不进行裁剪,那么效果如下(初步的锯齿感是因为矩形内采样的结果)。为啥这么复杂呢,为啥不开始存储每个方块的UV呢?下面代码的vTexCoords(=savedModelMatrix,已修改)记录方块所在的位置,vWorldPosition表示方块中像素的偏移。在上面那副图中,聪明的你一定初步猜到了每个方块的纹理是怎么得到的。
2024-09-14 21:53:48
649
原创 面向3D GIS底层研发应打基础的内容
简单浅聊国内3D GIS应深化的内容。 国内3D GIS的发展我认为并不是群雄争霸,而都还处于比较中间的层次,达不到国际的先进水平,越往深研究越觉得我们还要很多底层技术没有太多人研究。包括国家下分的平台功能测试标准,都千篇一律的要求大家实现基本功能,不考虑底层技术和集成应用。很多公司都有很多平台,但这些平台经不起风浪,重复项太多。应挖掘每个公司的特长优势,中大企业要发挥专业领域的特长,不应是盲目的扩张。重视在基础能力上与高校合作,让大家认识到一些底层技术才是核心。1、计算机视觉的技术
2022-09-11 22:00:08
224
RoadMap1.4.1.5.zip
2019-07-28
EngineWindowsApplication2.2.zip
2019-07-28
创建三维模型的快照
2016-12-20
我的工作目录集(第二版本)
2014-05-09
我的工作目录集
2014-04-14
实时光影DirectX
2013-09-22
C++转C#的自动工具
2013-09-17
C# DirectX阴影效果
2013-09-17
DirectX水纹效果
2013-09-09
利用c++语言打开百度网页,并允许搜索、
2010-05-24
VC摄像头监控,有动静报警
2010-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人