Cesium中实现全球体积云 RayMarching RayMarching 也就是光线步进,是 3D 图形学中的一种渲染方法,常常用来作为体渲染的主要渲染方式。 基本实现原理是,在每个像素上计算一条光线,当光线进入体纹理范围内后,将光线细分成更小的光线片段进行步进迭代,每次步进时计算相应的强度信息。最终迭代结束后,将所有步进结果进行叠加计算,得到像素的颜色。 ; 体积云 体积云是利用 RayMarching 方式渲染的云效果 2023-12-18 Cesium #Cesium #图形学 #算法 #JavaScript
Cesium中实现太阳丁达尔效应体积光 体积光的物理意义 当光线穿过胶体,由于胶体微粒对光线的散射作用,产生丁达尔现象。在实时渲染中这样的效果常称为体积光 (Volumetric Light),有时也称作上帝光 (God Light),或叫做Light Shaft、God Ray。 常见的体积光实现方式 在实际渲染中,实现体积光的方式有很多种。下面简单举例几种常见的方式。 基于Billboard的体积光 基于Billboard的体积光 2023-11-17 Cesium #Cesium #图形学 #算法 #JavaScript
Cesium中使用IndexDB缓存数据 IndexDB IndexedDB 简单的说就是一个运行在浏览器的本地数据库,允许网页在用户的浏览器中存储结构化数据,并且可以高效地进行检索、查询和修改。并且不像传统的 cookie 或 localStorage 只能存储有限的数据量,IndexedDB 能够存储大量数据。 在 Cesium 中使用 IndexDB 缓存数据 很多厂商都已经利用这项技术提高了 Cesium 第二次加载的速度(对于 2023-11-10 Cesium #Cesium #图形学 #算法 #JavaScript
Cesium中实现顶点吸附 顶点吸附 相信大家在 Cesium 应用过程中会遇到过类似这样的问题: 加载建筑物模型时,想精确的量算门的高度,但是拾取的位置总是不精准 加载点云时,将测量工具放在点云上,总是无法拾取到点云中的点 如果大家用过CAD或者3DMAX等设计软件,就会发现在这些设计软件里面,我们可以很轻松的拾取到物体的顶点,这是因为开启了软件内置了顶点吸附的功能。简单地说就是鼠标靠近物体的顶点一定范围时,会将鼠标吸 2023-11-08 Cesium #Cesium #图形学 #算法 #JavaScript
Cesium中实现高度雾效果 高度雾 高度雾效果是一种在三维建模和渲染中广泛使用的技术,主要用于模拟现实世界中的雾气、烟雾等氛围效果。通过在场景中添加高度雾,可以增加场景的深度感、真实感和立体感,使渲染结果更加接近现实环境。 具体实现 在Cesium中可以通过后处理的方式实现高度雾效果。 主要实现思路: 根据深度还原像素点的世界坐标 根据世界坐标计算当前像素点对应的高程 根据高程和相机到像素点的距离计算雾气浓度 混合雾气 2023-10-20 Cesium #Cesium #图形学 #算法 #JavaScript
ARM主机本地部署大语言模型 ChatGLM 自从ChatGPT问世之后,各大厂的大语言模型如雨后春笋般冒头,其中不乏一些优秀的开源模型可以自己部署玩玩。近期影响较大的有 Meta AI 的 LLama 、斯坦福基于 LLama 的 Alpaca 和清华大学的 ChatGLM 等。 其中 ChatGLM2 对中文支持最好,并且部署起来相对比较容易,因此这里选用该模型,下面是一些官方介绍: ChatGLM2-6B 是开源中英双 2023-10-12 Linux #Linux
Git常用命令速查 Git 介绍 Git 是分布式版本控制系统 集中式 VS 分布式,SVN VS Git SVN 和 Git 主要的区别在于历史版本维护的位置 Git 本地仓库包含代码库还有历史库,在本地的环境开发就可以记录历史而 SVN 的历史库存在于中央仓库,每次对比与提交代码都必须连接到中央仓库才能进行。 这样的好处在于: 自己可以在脱机环境查看开发的版本历史。 多人开发时如果充当中央仓库的 Git 仓 2023-09-12 Git #Git
Cesium中实现支持海量范围点的地形裁切 直接存储范围的方式 在实际开发中,我们会遇到很多需要将范围传入着色器的情况。比如:倾斜压平、地形压平、地形裁切等等。 上述提到的功能,最常见的做法是将范围的顶点信息直接通过纹理/数组的形式传入着色器。再从着色器中读取范围,利用射线法或其他类似的方法计算当前位置是否在范围内。最后根据计算结果执行各自的操作。 利用掩膜的方式 对于 GIS 专业出身或者从事过 GIS 行业的同学来说,掩膜应该是一个比较 2023-09-11 Cesium #Cesium #图形学 #算法 #JavaScript
ARM主机部署Docker云手机 Redroid 突发奇想,想部署一个云手机玩玩,正好自己有一个 ARM 服务器,用来虚拟安卓手机相当合适。这里选择的是 Redroid,ReDroid (remote android) 是一个能够利用 Docker 部署的,支持 GPU 加速的 AIC (Android In Container) 解决方案。ReDroid 同时支持 arm64 和 amd64 架构。适用于云游戏、VMI(虚拟移动 2023-08-28 Linux #Linux
Cesium里第一人称开车逛LA是什么体验? 路径漫游 这个示例与其说开车,不如说坐车 😂 本质上是从"路径漫游"功能改来的,可以直接参考官方示例 这里主要就是增加了一个第一人称观看的视角,这个视角允许调整相机相对于模型本身的偏移位置,并且能够通过拖动鼠标来旋转视角,让漫游效果更加沉浸。 第一人称 第一人称视角的实现,实际上是直接接管了整个 Cesium 的相机控制,主要做了以下几件事 去掉 Cesium 的相机控制 2023-08-18 Cesium #Cesium #图形学 #算法 #JavaScript