github-globe

The Globe from Github's homepage implemented in ThreeJS with beautiful shading.

github-globe

项目简介

github-globe 是一个用 Three.js 实现的 3D 地球可视化项目,作者 Zhanar Osmonaliev 受到 GitHub 官网首页上那个标志性地球动画的启发,将其完整复刻并加入了更具梦幻感的太空光照效果。整个地球基于 three-globe 库构建,再通过自定义的光照系统与材质调整,最终呈现出一种科技感与艺术感兼备的视觉效果。

github-globe 效果展示

与单纯的 Demo 不同,这个项目内置了真实的飞行数据演示。作者将自己 2019 到 2020 年间所有实际乘坐和被取消的航班轨迹绘制在地球表面,红色弧线代表被取消的航班,蓝色弧线则是正常出行的航线。观众可以沿着任意一条弧线追溯作者的旅行足迹,这种将个人数据与地理可视化结合的思路非常值得学习借鉴。

核心功能与架构

基于 three-globe 的灵活数据可视化

项目的核心依赖是 vasturiano 开源的 three-globe,这是一个功能强大的 Three.js 数据可视化组件。three-globe 本身支持在地球表面绘制点(points)、弧线(arcs)、多边形(polygons)等多种几何元素,开发者只需要传入符合格式的 JSON 数据,就能快速生成可视化的航线图、网络图或分布图。

github-globe 正是利用了这一点,把航班数据以 JSON 形式传入,自动渲染出连接出发地与目的地的弧形轨迹。每条弧线还可以自定义颜色、粗细、动画速度等参数,非常适合做数据故事化的展示。

自定义光照打造太空氛围

github-globe 在 three-globe 的基础上做了大量的视觉增强。最关键的一步是对场景的光照系统

项目信息

项目
仓库 janarosmonaliev/github-globe
语言 JavaScript
Star 1,215
Fork 203
主页 https://janarosmonaliev.github.io/github-globe/

参考链接