宝哥软件园

Three.js+React实现3D冰墩墩2022冬奥会主题

编辑:宝哥软件园 来源:互联网 时间:2022-02-19

  背景

  迎冬奥,一起向未来!2022冬奥会马上就要开始了,本文使用Three.js + React技术栈,实现冬日和奥运元素,制作了一个充满趣味和纪念意义的冬奥主题3D页面。本文涉及到的知识点主要包括:TorusGeometry圆环面、MeshLambertMaterial非光泽表面材质、MeshDepthMaterial深度网格材质、custromMaterial自定义材质、Points粒子、PointsMaterial点材质等。

  效果

  实现效果如以下动图所示,页面主要由2022冬奥会吉祥物冰墩墩、奥运五环http://www.cppcns.com、舞动的旗帜、树木以及下雪效果等组成。按住鼠标左键移动可以改为相机位置,获得不同视图。

Three.js+React实现3D冰墩墩2022冬奥会主题

  在线预览:https://dragonir.github.io/3d...(部署在GitHub,加载速度可能会有点慢)

  实现

  引入资源

  首先引入开发页面所需要的库和外部资源,OrbitControls用于镜头轨道控制、TWEEN用于补间动画实现、GLTFLoader用于加载glb或gltf格式的3D模型、以及一些其他模型、贴图等资源。

  import React from 'react';

  import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";

  import { TWEEN } from "three/examples/jsm/libs/tween.module.min.js";

  import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";

  import bingdundunModel from './models/bingdundun.glb';

  // ...

  页面DOM结构

  页面DOM结构非常简单,只有渲染3D元素的#container容器和显示加载进度的.olympic_loading元素。

  

 

  

 
游戏推荐
更多+