还是大剑师兰特
曾是美国普渡大学计算机研究生,现为GIS领域高级前端开发工程师。深耕openlayers、leaflet、cesium、mapbox、echarts、threejs、webgl、canvas、svg等技术,目前正研究GIS大模型在低空经济领域的应用,拥有两项GIS方面的专利。
展开
-
ThreeJS示例教程200+【目录】
Three.js 是一个用于在网页上创建和展示3D图形的JavaScript库。它使得在浏览器中渲染3D场景变得更加容易,而无需深入了解WebGL的复杂细节。Three.js支持多种渲染后端,但主要以WebGL为主。易于使用:提供了简洁的API来创建3D场景、相机、光源和物体。丰富的材质和纹理支持:可以轻松应用各种材质和纹理到3D模型上,增强视觉效果。动画支持:内置了动画系统,可以帮助你为场景中的对象添加动画效果。物理引擎集成。原创 2025-01-24 00:00:00 · 685 阅读 · 0 评论 -
vue+ThreeJS:从0 到1 搭建开发环境
本系列教程是在vue2.X的基础上加载threeJS程序,来开发各种示例程序。原创 2024-09-05 17:42:30 · 1236 阅读 · 0 评论 -
030:vue+threeJS 水磨石贴图效果
本示例实现了一个基于 Vue 和 Three.js 的 3D 场景,展示了如何使用大理石贴图(水磨石效果)来创建一个具有真实感的球体模型。使用 THREE.TextureLoader 加载大理石材质贴图,包括颜色贴图、法线贴图、粗糙度贴图和位移贴图。使用 THREE.MeshPhysicalMaterial 材质结合这些贴图,模拟真实的大理石表面效果。原创 2025-03-11 07:00:00 · 212 阅读 · 7 评论 -
029:vue+threeJS 燃放烟花效果
本示例实现了一个基于 Vue 和 Three.js 的烟花燃放效果。通过自定义着色器(Shader),模拟了烟花从发射到爆炸的动态过程。使用 GLSL 着色器语言编写自定义的顶点和片段着色器,模拟烟花的发射、爆炸和消散过程。通过 THREE.ShaderMaterial 将着色器应用到一个平面几何体上。原创 2025-03-10 08:30:00 · 741 阅读 · 0 评论 -
028:vue+threeJS 铺好地面,上面是滚动的立方体
本示例实现了一个基于 Vue 和 Three.js 的 3D 场景,展示了如何设置地面铺砖效果以及动态旋转的立方体。地面铺砖效果:使用 THREE.PlaneGeometry 创建一个平面作为地面,并通过材质颜色模拟铺砖效果。动态旋转立方体:在场景中添加一个红色立方体,并通过 animate 方法实现其动态旋转。Three.js 场景配置:包括场景、相机、渲染器和光照的创建。使用 OrbitControls 实现相机的交互式控制(旋转、缩放等)。原创 2025-03-08 06:15:00 · 178 阅读 · 2 评论 -
027:vue+threeJS 生成100个随机颜色的三角形
本示例使用vue+threeJS 生成100个随机颜色的三角形,这里通过BufferGeometry()创建几何体,将所有的三角形作为一个几何体,通过设置位置和颜色来做属性的设置,这里使用了Float32BufferAttribute方法。原创 2025-03-07 08:00:00 · 233 阅读 · 34 评论 -
026:vue+threeJS 设置地面铺砖的效果
BoxGeometry 是 Three.js 中用于创建立方体或长方体的几何体类。它允许你指定立方体的宽度、高度、深度以及这三个方向上的分段数,从而控制立方体的细分程度。width: 立方体的宽度(沿 x 轴方向)。height: 立方体的高度(沿 y 轴方向)。depth: 立方体的深度(沿 z 轴方向)。widthSegments: 可选参数,指定立方体在 x 轴方向上的分段数,默认值为 1。heightSegments: 可选参数,指定立方体在 y 轴方向上的分段数,默认值为 1。原创 2025-03-06 07:45:00 · 291 阅读 · 16 评论 -
025:vue+threeJS 创建球体(SphereGeometry)
SphereGeometry 是 Three.js 中用于创建球体几何体的类。它允许你定义球体的半径、经度和纬度的分段数,从而控制球体的细分程度。radius: 球体的半径。widthSegments: 经度方向的分段数(水平方向)。heightSegments: 纬度方向的分段数(垂直方向)。原创 2025-03-05 08:00:00 · 154 阅读 · 10 评论 -
024:vue+threeJS 创建多面几何体(PolyhedronGeometry)
PolyhedronGeometry 是 Three.js 中用于创建多面体几何体的类。多面体是由多个多边形组成的三维形状,每个多边形可以有不同的顶点数和边数。vertices: 一个包含顶点坐标的数组。indices: 一个包含顶点索引的数组,定义了哪些顶点组成了多面体的面。radius: 多面体的半径。detail: 细节级别,控制多面体的细分程度。原创 2025-03-04 07:45:00 · 262 阅读 · 8 评论 -
023:vue+threeJS 创建圆环几何体(TorusGeometry)
TorusGeometry 是 Three.js 中用于创建环面几何体的类。环面是一个类似于轮胎形状的几何体,由一个圆围绕另一个圆旋转生成。radius: 环面的主半径(从中心到管的中心的径向距离)。tubeRadius: 管的半径(管壁的厚度的一半)。radialSegments: 环面在径向上的分段数。值越大,环面越平滑。tubularSegments: 管在环面上的分段数。值越大,管越平滑。arc: 环面圆周上的弧度,默认为 Math.PI * 2(即一个完整的圆)。原创 2025-03-03 09:48:52 · 160 阅读 · 3 评论 -
022:vue+threeJS 创建管状(tubeGeometry)的几何体
TubeGeometry 是 Three.js 中用于创建管状几何体的类。它允许你通过一系列路径点来生成一个管状结构。path: 一个 Curve 对象,定义了管的路径。例如,THREE.CatmullRomCurve3。tubularSegments: 沿路径的分段数。值越大,管越平滑。radius: 管的半径。radialSegments: 圆周方向的分段数。值越大,管越平滑。closed: 布尔值,表示管是否闭合。如果为 true,则管的两端将连接起来形成一个封闭的环。原创 2025-02-28 11:29:43 · 78 阅读 · 19 评论 -
021:vue+threeJS 展示一个倾斜的地面,30度倾角
在 Three.js 中设置地面的倾斜角度可以通过变换矩阵(Matrix)来实现。具体来说,你可以使用 THREE.Object3D 的 rotateX、rotateY 或 rotateZ 方法来旋转物体。对于地面(通常是一个平面几何体),你可以通过这些方法来设置其倾斜角度。原创 2025-02-27 09:16:27 · 214 阅读 · 17 评论 -
020:vue+threeJS 通过stats渲染性能的统计信息
Stats.js 是一个轻量级的 JavaScript 库,用于显示关于 Three.js 渲染性能的统计信息。它可以帮助你了解帧率、内存使用情况等关键指标,从而优化你的3D场景。以下是如何在 Vue 项目中集成 Stats.js 并加载到 Three.js 中的示例代码。原创 2025-02-25 07:30:00 · 220 阅读 · 27 评论 -
019:vue+threeJS 添加控制面板dat.GUI, 更改几何体颜色
dat.GUI 是一个轻量级的 JavaScript 库,专门用于创建交互式的用户界面,特别适合用于调试和配置复杂的 Web 应用程序,尤其是那些涉及大量参数调整的应用程序,如 Three.js 项目。以下是 dat.GUI 的详细介绍,包括其核心功能、使用方法和常见控件类型。原创 2025-02-24 00:00:00 · 148 阅读 · 5 评论 -
018:vue+threeJS 加载mdd文件
MDD(Morph Deformation Data)文件是一种用于存储顶点变形数据的文件格式,常用于三维动画中。MDD 文件通常用于记录物体在不同时间点的顶点位置变化,从而实现平滑的动画效果。这种文件格式广泛应用于各种三维建模和动画软件,如 Maya、3ds Max、Blender 等。原创 2025-02-23 09:00:00 · 155 阅读 · 1 评论 -
017:vue+threeJS 加载gltf文件
GLTF格式是一种高效传输、加载3D内容的开放格式规范。它以JSON(.gltf)格式或二进制(.glb)格式提供,外部文件可以存储贴图(如.jpg、.png)和额外的二进制数据(.bin)。一个GLTF组件几乎包含所有的三维模型相关信息的数据,可传输一个或多个场景,包括网格、材质、贴图、蒙皮、骨架、变形目标、动画、灯光以及摄像机。原创 2025-02-22 00:00:00 · 119 阅读 · 0 评论 -
016:vue+threeJS 加载glb文件
GLB文件是一种二进制格式的3D模型文件,通常用于存储3D场景、模型和动画数据。GLTFLoader的主要功能是加载和解析GLTF格式的3D模型文件,并将其转换为Three.js可以理解的对象,以便在Three.js的场景中使用。通过使用GLTFLoader,开发人员可以快速构建出复杂的3D场景,并实现交互和动画效果。原创 2025-02-21 09:00:00 · 232 阅读 · 26 评论 -
015:vue+threeJS 加载KMZ文件
KMZLoader 主要用于加载 KMZ 文件,这是一种 Google Earth 的文件格式,通常包含地理信息、图像和模型等数据。通过 KMZLoader,开发者可以在 Three.js 项目中展示从 KMZ 文件中提取的地理数据和三维模型,适用于需要集成地理信息系统(GIS)数据的应用场景。原创 2025-02-20 09:00:00 · 75 阅读 · 25 评论 -
014:vue+threeJS 创建一个网格平面
THREE.GridHelper 是 Three.js 库中的一个辅助工具,用于在三维场景中创建一个网格平面,通常用于可视化坐标系或作为场景中的参考。这个网格可以帮助开发者更好地理解场景的布局和对象的位置。size:表示网格的大小,默认值为10。它定义了从中心到边缘的距离,因此整个网格的实际尺寸是 2 * size。divisions:表示网格中的分割线数量,默认值为10。它决定了网格中的线条密度。color1:主要颜色,默认为红色 (0x444444),用于主轴线。原创 2025-02-19 09:00:00 · 111 阅读 · 0 评论 -
013:vue+threeJS 根据clock来处理物体的动画
在 Vue.js 中使用 Three.js 的 Clock 功能,可以帮助你管理动画的时间。下面是一个简单的示例,展示如何在 Vue 组件中集成 Three.js 并使用 Clock 来控制一个旋转的立方体。原创 2025-02-18 09:27:29 · 225 阅读 · 34 评论 -
012:vue+threejs 点击更改不同的材质
本threeJS示例通过点击按钮来采用不同的material方式,这里的示例采用了3种,还有很多个material方式。MeshBasicMaterial:简单颜色渲染,不受光照影响。MeshLambertMaterial:漫反射光照效果,无镜面高光。MeshPhongMaterial:复杂光照效果,支持镜面高光。MeshStandardMaterial:物理上正确的光照效果,支持金属度和粗糙度。MeshToonMaterial:卡通渲染效果。原创 2025-02-13 00:00:00 · 286 阅读 · 4 评论 -
011:vue+threejs 添加地面的水面效果
本threeJS示例生成360度不同画面的Scene场景,THREE.CubeTextureLoader 是 Three.js 中的一个加载器,用于加载立方体贴图(Cube Texture)。立方体贴图是一种特殊的纹理,用于表示环境映射或全景图,它由六个正方形的图像组成,每个图像对应一个方向(正面、背面、顶部、底部、左面、右面)。原创 2025-02-12 07:00:00 · 342 阅读 · 17 评论 -
010:vue+threejs 生成360度不同画面的Scene场景
本threeJS示例生成360度不同画面的Scene场景,THREE.CubeTextureLoader 是 Three.js 中的一个加载器,用于加载立方体贴图(Cube Texture)。立方体贴图是一种特殊的纹理,用于表示环境映射或全景图,它由六个正方形的图像组成,每个图像对应一个方向(正面、背面、顶部、底部、左面、右面)。原创 2025-02-11 07:30:00 · 614 阅读 · 32 评论 -
009:vue+threejs 生成100个随机颜色的点
本threeJS示例生成100个随机颜色的点,这里面通过THREE.BufferGeometry()创建几何体,通过THREE.PointsMaterial来设置点的材质,这里面关键是要看颜色和位置的循环,特别是geometry.setAttribute属性的设置。原创 2025-02-08 09:08:14 · 384 阅读 · 10 评论 -
008:vue+threejs 生成100个随机位置的点
本threeJS示例生成100个随机位置的点,这里面通过THREE.BufferGeometry()创建几何体,通过THREE.PointsMaterial来设置点的材质,效果如图,源代码见示例源代码。原创 2025-02-07 09:06:47 · 167 阅读 · 0 评论 -
007:vue+threejs 设置大雾天效果,远处建筑在雾中隐现
本threeJS示例创建一个大雾效果,通过FogExp2设置大雾的效果。修改scene的颜色,在地面上设置4个建筑物,远处的建筑被雾影响若隐若现。原创 2025-02-01 07:55:23 · 494 阅读 · 0 评论 -
006:vue+threejs 两种方法设置BoxGeometry的边框线条
本threeJS示例创建一个立方体,通过两种方法来添加边线框线条。第一种方法,设置材质的wireframe属性值为true,第二种是在立方体上面添加线条,并将立方体的颜色透明度是设置为0。原创 2025-01-24 00:00:00 · 226 阅读 · 2 评论 -
005:vue+threejs 通过鼠标来旋转、缩放和平移视图
本threeJS示例创建一个立方体,通过材质的设置,使其变成一个框架,通过OrbitControls来使得鼠标可以旋转、缩放和平移视图,平移视图时候按住shift或者ctrl键,放缩可以通过滚轮的方式。原创 2025-01-23 00:00:00 · 275 阅读 · 12 评论 -
001:vue+threejs 不断翻转的立方体
本threeJS示例演示不断翻转的立体箱体,通过requestAnimationFrame(animate),来让立方体旋转。原创 2024-09-12 00:00:00 · 1188 阅读 · 0 评论 -
002:vue+threejs 两种方法更改Scene的颜色
本threeJS示例通过两种方法来修改Scene的颜色,两种方法都在源代码中有标注,具体的请参看源代码。原创 2025-01-20 09:19:52 · 460 阅读 · 0 评论 -
004:vue+threejs 监听键盘空格键,切换两个不同的几何体
本threeJS示例通过不同的Geometry创建两个几何体,一个box,另一个球体,通过监听键盘的空格键,来切换显示不同的几何体。原创 2025-01-22 07:00:00 · 498 阅读 · 23 评论 -
003:vue+threejs 添加地面并铺上草坪
本threeJS示例通过PlaneGeometry来添加地面,同时通过TextureLoader来加载草地图片,通过光照来实现如图的效果。原创 2025-01-21 07:00:00 · 510 阅读 · 0 评论