百度SEO

百度SEO

Products

当前位置:首页 > 百度SEO >

如何用Three.js制作逼真3D地球昼夜变化动画?

96SEO 2026-04-21 18:32 2


作为一名前端开发者,你是否曾在某个深夜刷应用商店时被一款精美的3D动态壁纸深深吸引?那颗在指尖缓缓旋转的蓝色星球,光影随着时间流转,从阳光普照的蔚蓝海洋过渡到灯火通明的城市夜景,那种将浩瀚宇宙微缩于屏幕之上的震撼感,简直让人挪不开眼。那一刻,我脑海中不仅只有“哇塞”的感叹,geng多的是一种技术本Neng的躁动——这效果,我Neng不Neng用代码复现出来?

如何用Three.js制作逼真3D地球昼夜变化动画?

带着这份冲动,我们今天就来一场硬核的WebGL探险。我们要Zuo的,不仅仅是放一个球体在网页上,而是要用Three.js构建一个拥有灵魂的数字地球:它要有昼夜交替的温柔晨昏线,要有呼吸般闪烁的星空背景,还要有一颗忠诚绕行的月球。这听起来像是一个庞大的工程,但别担心,只要我们拆解得当,你会发现这背后的数学逻辑竟然如此优雅迷人。

一、 准备工作:搜集宇宙的碎片

在开始敲代码之前,我们得先准备好“颜料”。要画出一个逼真的地球,光靠几何体是不够的,我们需要高质量的纹理贴图。这就好比画油画需要调色板,我们的调色板就是一系列高分辨率的图片。

在这个项目中,我们需要准备以下几类核心素材:

地球贴图:包括白天的卫星影像和夜晚的城市灯光图。

法线贴图:这是表现地球表面凹凸质感的关键。

云层贴图:独立的云层图片,用来制作漂浮在地球表面的动态云气。

天体贴图:太阳、月球的表面纹理,以及一张高精度的星空背景图。

有了这些素材,我们就Ke以在代码中初始化我们的资源加载器了。这里我习惯使用一个简单的资源管理类,把所有图片路径配置好,等待它们全部加载完毕再启动场景。毕竟谁愿意kan到一个只有一半脸的地球在太空中尴尬地旋转呢?

二、 搭建舞台:从虚无到星系

一切始于虚无。在Three.js的世界里我们 需要创建Scene、Camera和Renderer。这是所有3D内容的基石。但今天我们的主角是那颗蓝色的星球,所以让我们直接跳过枯燥的配置,直奔主题——创造地球

我们创建一个球体几何体,将其放置在世界的原点。为了让它kan起来不像个廉价的塑料球,我们需要给它赋予材质。这里不Neng使用普通的MeshBasicMaterial,因为它对光照无动于衷。我们需要的是Neng够感知光线的材质,或者geng进一步,使用自定义的着色器来实现geng高级的昼夜混合效果。

当然地球不Neng孤独地悬浮在真空中。我们需要给它找个“光源”。在真实宇宙中,地球绕着太阳转;但在WebGL的虚拟场景里为了保持地球始终处于画面中心方便观察,我们通常采用“地心说”的视角——让太阳绕着地球转。这虽然违背了天文学常识,但对于视觉展示来说却是极其聪明的Zuo法。

我们创建一个代表太阳的球体,把它放在右侧偏上的位置。注意,这个太阳球体其实只是个“演员”,它真正的物理作用是提供一个位置向量。我们的地球材质会根据这个位置来计算哪里是白天哪里是黑夜。

忠实的伴侣:月球与轨道

地球怎么Neng少得了月球呢?为了让画面geng有层次感,我们不仅要加一个月球,还要画出它的运行轨道。这Ke以通过创建一个圆环几何体来实现,给它设置一个半透明的材质,这样用户就Neng直观地kan到月球运动的轨迹。

月球本身也是一个球体,贴上月球纹理。为了让它动起来我们需要在每一帧的渲染循环中geng新它的位置。利用三角函数根据时间计算坐标,就Neng轻松模拟出公转效果。kan着月球带着它的光环缓缓划过屏幕,那种精密的机械美感,就像完成了一个宇宙钟表的组装。

三、 灵魂注入:着色器与昼夜交替的魔法

前面的步骤只是搭建了骨架,现在我们要注入灵魂——昼夜交替。这是整个项目Zui核心、也Zui迷人的技术难点。

Ru果只是简单地给地球打光,我们只Neng得到明暗变化,却无法得到“白天是卫星图,晚上是城市灯光图”这种酷炫的效果。要实现这一点,必须深入到片元着色器中去。

1. 顶点着色器的准备工作

顶点着色器是GPU流水线的第一个环节。在这里我们需要把每个顶点的关键信息传递给片元着色器。Zui关键的两个数据是:UV坐标法线向量

代码逻辑hen简单,但意义重大。我们将法线向量进行归一化处理,确保它的长度为1。这就像给地球表面的每个点dou插了一根垂直于地面的指针,这些指针将告诉光线:“嘿,我是朝向太阳的,还是背对太阳的?”

2. 片元着色器的光影计算

真正的魔法发生在片元着色器里。在这里我们要解决一个数学问题:如何判断一个像素点是在白天还是黑夜?

这就用到了点积运算。在三维空间中,Ru果我们把顶点的法线向量和太阳光的方向向量dou归一化,那么它们的点积结果就等于它们夹角的余弦值。

当点积接近1时说明夹角为0度,表面正对太阳,是正午。

当点积接近-1时说明夹角为180度,表面背对太阳,是午夜。

当点积为0时说明夹角为90度,这是晨昏线。

基于这个原理,我们Ke以写出一个初步的逻辑:Ru果点积大于0,采样白天纹理;否则,采样夜晚纹理。这Neng实现昼夜分割,但效果会hen生硬——白天和黑夜之间有一条明显的黑线,完全破坏了美感。

3. 晨昏线的平滑过渡

现实世界不是非黑即白的,日出日落有着迷人的渐变。为了模拟这种效果,我们不Neng只用简单的if-else,而要引入混合的概念。

我们Ke以使用GLSL内置的mix函数。这个函数接受三个参数:值A、值B和一个混合系数。当混合系数为0时显示黑夜,为1时显示白天中间值则显示两者的混合。

那么混合系数从哪来?这就轮到smoothstep函数登场了。它Ke以将点积的值平滑地映射到区间。我们Ke以设定一个过渡宽度,比如0.2。在这个范围内,颜色会从黑夜丝滑地过渡到白天从而创造出那条著名的、充满诗意的晨昏线。

“给岁月以文明,而不是给文明以岁月”。这句《三体》的名言用在这里似乎也恰如其分——我们不是在简单地渲染像素,而是在用代码赋予数字星球以时间的质感。

四、 营造氛围:会呼吸的星空

有了地球和太阳,背景还是一片漆黑可不行。虽然我们Ke以直接贴一张巨大的星空全景图作为背景,但那样未免太静态、太死板了。高端的3D页面星空必须是的。

我们要创建一个粒子系统来模拟星星。这需要用到BufferGeometry,它Neng让我们高效地管理成千上万个点的数据。

我们需要为每一颗星星定义以下属性:

位置:在球体空间内随机分布。

颜色:不仅仅是白色,Ke以随机混入一些淡蓝、淡黄甚至微红的色调,模拟真实的恒星光谱。

大小:随机的大小差异。

闪烁参数:包括相位和频率,让星星们不要同步闪烁,而是像呼吸一样此起彼伏。

在生成位置时我们Ke以使用球坐标系转直角坐标系的算法,确保星星均匀地分布在背景球壳上。然后通过setAttribute把这些数据一股脑儿塞进几何体里。

接下来还是得靠自定义着色器。在顶点着色器中,我们利用sin这个公式来动态计算星星的大小。随着时间推移,正弦波的起伏会让星星忽大忽小,产生闪烁效果。为了geng自然我们还Ke以加入一点点随机噪声,避免闪烁过于规律。

Zui后别忘了在渲染循环里geng新着色器中的time变量,并同步geng新地球材质中太阳的位置向量。这样,当太阳移动时地球上的晨昏线也会实时跟随移动,整个场景就像一个精密咬合的齿轮系统,充满了动态的平衡感。

五、 :数字宇宙的造物主

当我们kan着这个由自己亲手绘制的“微缩版太阳系”在浏览器中静静旋转时一种奇特的感受油然而生。在这个微观的数字宇宙里我们既是造物主,也是Zui渺小的观察者。

我们用了不到一千行的代码,就模拟了一个直径12742公里的星球上每时每刻的光影变迁。真实的地球需要24小时完成一次昼夜交替,我们的数字地球只需几分钟。这种尺度上的巨大反差让我突然明白:人类的所有创造,本质上dou是对无限宇宙的有限翻译。

我们不是在追求让这个数字地球永恒运行,那颗正在你屏幕上旋转的蓝色星球,可Neng在下一秒就会因为浏览器刷新而重置;那些闪烁的星星,可Neng随着标签页关闭而永远熄灭。但就在它运行的每一帧里它足够美好,它传递了我们对真实世界的观察与敬意。

毕竟在浩瀚的宇宙面前,所有文明dou只是瞬间的火花。而Zui美的火花,不是燃烧得Zui久的那个,而是燃烧时Zui亮、Zui温暖的那个。希望这篇教程Neng帮你点燃属于自己的那颗数字星球。


标签: 地球

SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback