归档
我归档的所有文章。
前端高斯泼溅渲染方案对比:Cesium 3D Tiles vs SparkJS 2.0
更新于:3D Gaussian Splatting(3DGS)正在快速成为 Web 端实景三维渲染的主流表示方式。但”如何在浏览器里高效地流式加载并渲染数百万甚至上千万个 splat”,目前业界并没有统一答案。本文对比当前两条最具代表性的开源技术路线——Cesium 3D Tiles + glTF KHR_gaussian_splatting 与 SparkJ...
Mapbox 3D 立交实现方式解析
更新于:看了下最近的 Mapbox GL JS 的更新日志,发现新增了立交桥的3D显示效果。根据车道级的高精地图数据,能够实现立交,高架,隧道,导流区等形式的效果。还是挺美观的。下面将从样式,数据,渲染等几个角度研究一下 Mapbox 的实现思路。
C++中的高级线程安全
更新于:简介 C++ 支持程序中的部分代码通过线程并发执行,在编写此类程序时,必须采取额外的步骤,确保线程之间共享的数据不会导致竞争条件。通常,竞争条件通过适当使用互斥锁和锁来避免。然而,…
介绍 WebAssembly JavaScript Promise 集成 API(译:Introducing the WebAssembly JavaScript Promise Integration API)
更新于:一些 WebAssembly 应用程序在开发时,默认外部以同步的方式访问自身。在 JavaScript Promise 集成 (JSPI) API 的帮助下,使得 WebAssem…
V8 引擎中 C++ 和 JS 的交互
更新于:在 V8 引擎中,JavaScript 和 C++ 之间的交互涉及了 JavaScript 对象与 C++ 对象的映射,内存管理,以及函数调用的桥接等。本文主要参照 V8 的代码,…
假设“地球是平的”以加速 deck.gl 渲染 — WebGL精度丢失问题
更新于:deck.gl 是一个开源的 WebGL 驱动框架,用于对大型数据集进行可视化的探索性数据分析。因为工作需要,我尝试改造 deck.gl 以让它支持 EPSG:4326 投影坐标系…
WebAssembly 学习笔记
更新于:WebAssembly(简称 WASM)是一种以安全有效的方式运行可移植程序的新兴 Web 技术,下面是引用 MDN 上对它的定义: WebAssembly 是一种新的编码方式,可…
四叉树与碰撞检测
更新于:在本文中,我将分享我的四叉树实现以及在设计过程中产生的一些思考。 首先,我想讨论为什么我决定实现四叉树。四叉树是一种空间分割数据结构。与其他数据结构相比,它的主要优势在于其多功能性…
利用遮挡剔除优化 3D Tiles 传输(译:Optimizing 3D Tiles Streaming in Cesium for Unreal with Occlusion Culling)
更新于:为了提高 Cesium for Unreal 中 3D Tiles 的传输性能,我们最近将虚幻引擎的遮挡剔除系统集成到了我们的瓦片选择算法中。
理解 C++ 右值引用和 std::move
更新于:C++ 右值引用(rvalue references)和 std::move 是 C++11 引入的两项关键特性,它们极大地改善了 C++ 中的资源管理,尤其是与 移动语义(mov…
原子操作 vs 非原子操作(译:Atomic vs. Non-Atomic Operations)
更新于:关于原子操作,网络上已经有很多文章讨论,通常聚焦于原子的读-修改-写(RMW)操作。然而,这并不是唯一的原子操作类型。还有原子的加载和存储操作,它们同样重要。原子读-修改-写操作(…
C++20:使用协程构建线程池
更新于:介绍 在本文中,我将尝试记录我实现一个简单线程池的经验。这个线程池基于 cppcoro 库的概念和思想。经过重新实现并简化到最基本的部分,以便理解协程的最重要方面。
如何投影贴花(译:How to project decals)
更新于:本文翻译自《How to project decals》。 开头省略200字寒暄,作者介绍了自己在编辑器中如何实现贴花功能的。本文将对“如何对一个复杂几何体进行贴花投影”的算法做一…
C++ 11 线程、锁和条件变量(译:C++11 Threads, Locks and Condition Variables)
更新于:这篇文章是关于C++11对线程和同步机制(互斥锁和条件变量)支持的详细讲解。
字符串视图
更新于:在某些较旧的 C++ 版本中,字符串处理可能会很麻烦。随着人们意识到 C++ 需要更强大的字符串处理能力,这一问题在 C++17 中得到了关注,并引入了 std::string_v…
WebGL Insights — Getting Serious with JavaScript(下)
更新于:4.3 性能 写关于 JavaScript 性能的文章是件棘手的事,因为它是一个不断变化的目标。浏览器实现会定期改进,目前运行缓慢的代码可能很快就会被优化。然而,即使在自更新浏览器…
WebGL Insights — Getting Serious with JavaScript(上)
更新于:WebGL相关的书籍并不多,《WebGL Insights》算是一本,其中各个章节都是由行业内资深的开发者们编写的。书中第四章的作者,Matthew Amato 和 Kevin R…
探讨空间搜索算法——瞬间搜索数百万个点
更新于:在大规模处理和显示空间数据时,没有什么概念比空间索引(Spatial Index)更有用和重要。空间索引是一类算法,它们通过特定的方式组织几何数据,使搜索更加高效。例如,执行以下查…
基于 OSM 路网数据生成立体立交道路的尝试
更新于:之所以要做这么一件事情是因为在玩《Cities: Skylines》时,游戏内的立交建造比较繁琐,却又很重要。于是就萌生了做一个从目前已有的二维地图道路数据自动生成立体的立交道路的工具的想法。 尝试用线性规划来达到这样的目的。
Bran Zhang
















