还是大剑师兰特
曾是美国普渡大学计算机研究生,现为GIS领域高级前端开发工程师。深耕openlayers、leaflet、cesium、mapbox、echarts、threejs、webgl、canvas、svg等技术,目前正研究GIS大模型在低空经济领域的应用,拥有两项GIS方面的专利。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
vue+ThreeJS:从0 到1 搭建开发环境
本系列教程是在vue2.X的基础上加载threeJS程序,来开发各种示例程序。原创 2024-09-05 17:42:30 · 1931 阅读 · 0 评论
-
ThreeJS 示例教程500+【目录】
ThreeJS 综合教程100+旨在为开发者提供两大方面的知识信息:(1)提供详细的每个api知识点的详解 (2)提供实战的示例,提供源代码。 在这量大系统性的知识下,给用户提供清晰的思路和示例参考,更好的服务于自己的threeJS开发项目。原创 2024-09-06 17:54:58 · 1981 阅读 · 10 评论
-
047:vue+threeJS 实现虚拟看房效果
本文介绍了如何在 Vue 项目中集成 Three.js 实现虚拟房屋场景,主要功能包括:可交互的房间结构(地板、墙壁、屋顶)、家具模型加载、光照系统以及相机控制。技术要点涉及场景初始化、GLTF 模型加载、阴影处理、响应式布局调整和动画循环。该示例适合作为 Web 3D 场景开发的基础模板,通过按钮可控制屋顶和家具的显隐,支持视角重置,代码结构清晰完整(共 340 行)。原创 2025-11-13 07:45:00 · 838 阅读 · 13 评论 -
046:vue+threeJS实现物体自由落体运动
本文介绍了基于Vue+Three.js实现物体自由落体运动的示例。主要内容包括:初始化场景、相机、渲染器等基础组件,创建地面作为碰撞检测基础,提供按钮添加随机大小和颜色的立方体。核心功能实现了重力模拟使物体下落,物体与地面的碰撞检测和反弹效果,以及物体间的简易碰撞检测和响应。该示例适合学习Three.js物理模拟基础,运行环境需配置Vue项目基础设置,将源代码放入指定文件即可运行。原创 2025-11-12 00:00:00 · 1003 阅读 · 13 评论 -
044:vue+threeJS 环境光参数测试模拟
本文介绍了一个基于Vue2和Three.js的环境光参数测试模拟示例。该示例包含两种环境光类型:基础环境光(AmbientLight)和HDR环境贴图,并提供可视化控制界面。基础环境光可调节开关、强度和颜色,实现无方向均匀光照;HDR环境贴图基于高动态范围图像,可调节开关、强度和曝光度,模拟真实环境光照效果。示例还支持调整物体金属度和粗糙度参数,并具备场景旋转控制功能。通过实时交互界面,开发者可以直观观察不同参数下环境光的表现效果。原创 2025-11-06 09:28:21 · 935 阅读 · 6 评论 -
042:vue+threeJS实现字体轮廓发光效果
本文介绍了基于Vue2和Three.js实现字体轮廓发光效果的示例。关键技术点包括:使用标准材质创建3D文字作为内层,外层采用稍大的半透明发光材质实现轮廓效果,并添加更大半透明文字增强光晕扩散。示例提供了交互控制面板,可动态调整文字内容、颜色、发光强度及旋转状态。文中详细说明了Three.js场景初始化、字体加载、发光文字创建等核心实现方法,并附有完整代码,适合学习Three.js特效开发或商业项目借鉴。作者大剑师兰特为GIS领域高级前端工程师,专注于WebGL和可视化技术。原创 2025-11-08 00:00:00 · 955 阅读 · 0 评论 -
041:vue+threeJS实现动态文字云效果
本文介绍了一个基于Vue2和Three.js的动态文字云实现方案。该方案主要功能包括:文字云自动旋转、鼠标悬停高亮、视角交互控制、动态添加文字和重新布局。技术实现上,通过Three.js的3D渲染能力创建文字模型,使用OrbitControls实现视角控制,并利用射线检测实现鼠标交互。代码提供了完整的初始化、资源加载、动画循环和事件处理流程,可作为3D数据可视化项目的参考实现。原创 2025-11-07 00:00:00 · 1161 阅读 · 23 评论 -
040:vue+threejs 实现3D 文字旋转展示
本文介绍了一个基于Vue2和Three.js实现的3D文字旋转展示效果。该示例核心功能包括:创建并显示3D文字、自动旋转控制(可开关)、支持自定义文字内容、切换多种字体样式、设置文字颜色以及鼠标交互操作(旋转/缩放/平移)。技术上主要使用了Three.js的文本几何体(TextGeometry)、字体加载器(FontLoader)和轨道控制器(OrbitControls),实现了响应式窗口适配和资源清理。文中提供了完整的240行源代码,可直接在Vue项目中运行使用。作者是优快云知名博主"大剑师兰原创 2025-11-06 00:00:00 · 1160 阅读 · 8 评论 -
039:vue+threeJS 实现鼠标悬停显示信息
本文介绍了一个基于Vue2和Three.js实现的鼠标悬停显示信息示例。通过Raycaster实现鼠标射线检测,判断悬停物体,并展示对应的信息标签。示例包含5个不同颜色的立方体和球体模型,每个模型关联了标题和内容信息,采用绝对定位的DOM元素实现样式灵活控制,添加了平滑的显示/隐藏过渡效果。技术要点包括:物体与信息映射存储、实时射线检测、穿透标签的交互设计等。 (摘要共145字)原创 2025-11-05 00:00:00 · 855 阅读 · 1 评论 -
038:vue+threeJS 实现物体点击选中高亮
本文介绍了基于Vue2和Three.js实现物体点击选中高亮效果的示例。通过射线检测(Raycaster)判断点击交互,利用MeshStandardMaterial的emissive属性实现高亮显示,并通过Map存储物体原始材质以便恢复。文章详细说明了场景搭建、光照配置、事件处理等关键技术点,提供了完整的210行示例代码。作者大剑师兰特在GIS领域有丰富经验,分享了该示例的源码和实现思路,适合学习Three.js交互开发。原创 2025-11-04 00:00:00 · 870 阅读 · 21 评论 -
037: vue+threeJS 实现键盘控制实体移动
本文介绍了基于Vue2和Three.js实现的键盘控制3D物体移动示例。通过监听键盘事件记录按键状态,在动画循环中根据相机方向计算位移,实现前后左右和上下移动功能。关键技术包括:键盘事件处理、基于视角的移动计算、资源清理防止内存泄漏以及窗口自适应。示例提供了完整的270行源代码,展示了如何创建3D场景、添加可移动物体,并实现键盘交互控制3D物体移动的效果。原创 2025-11-03 00:00:00 · 776 阅读 · 5 评论 -
043:vue+threejs 实现文字溶解动画
本文介绍了一个基于Vue2和Three.js实现的文字溶解动画效果。核心原理是通过ShaderMaterial结合噪声纹理控制文字的显示与隐藏:使用随机噪声图案作为溶解模板,通过阈值参数控制溶解区域,并在边缘添加高亮效果增强视觉冲击。示例提供了交互控件,包括启动/重置动画、修改文字内容和调整溶解速度。实现过程包含Three.js场景初始化、噪声纹理生成、字体加载、自定义着色器材质应用以及动画控制等关键技术点。该效果适用于网页3D文字特效、数据可视化等场景,代码量约388行。原创 2025-11-10 00:00:00 · 1251 阅读 · 0 评论 -
036:vue+threeJS 点击选中物体,用白色轮廓线标识
本文介绍了一个基于Vue2和Three.js的3D交互示例,主要实现了点击选中物体并显示白色轮廓线的功能。关键技术包括: 使用OutlinePass实现物体轮廓高亮效果 通过Raycaster进行射线检测实现物体选择 可自定义轮廓线颜色、粗细等参数 示例创建了4个可交互的3D物体(立方体、球体、圆柱体和圆环),当用户点击物体时,会以白色轮廓线高亮显示选中状态,并同步更新UI中的选中信息。文中提供了完整的Vue组件代码,包含场景初始化、物体创建、光线设置、后期处理和事件处理等完整实现,可直接运行查看效果。 (原创 2025-10-31 15:18:03 · 875 阅读 · 5 评论 -
045:vue+threejs 实现平行光照射场景
本文介绍了Three.js中平行光(DirectionalLight)的特性和控制方法。平行光模拟太阳光等平行光源,可用于产生清晰的阴影效果。示例包含完整的源代码(488行),展示了如何通过UI控件调节光照参数,如强度、颜色和阴影设置,同时演示了平行光在不同材质表面的反射效果。原创 2025-11-11 00:00:00 · 236 阅读 · 17 评论 -
033:vue+threejs 点击实体,显示实体的属性信息
本文介绍了基于Vue和Three.js实现的3D物体点击交互场景,主要功能包括: 物体点击检测:通过Raycaster实现鼠标点击检测,点击后高亮显示物体(黄色) 属性信息展示:在点击位置附近显示属性面板,展示物体名称、类型、位置、尺寸、颜色等基本信息 交互体验:支持面板关闭、位置跟随点击点、场景自由旋转等功能 代码结构清晰,包含场景初始化、物体创建、事件监听等模块,使用OrbitControls实现场景控制,并通过Vue组件展示属性信息面板。该示例可作为3D可视化项目中物体交互的基础模板。原创 2025-10-25 00:00:00 · 1751 阅读 · 18 评论 -
032:vue+threejs 实现物体点击后在地面上拖动平移,点击地面可旋转
摘要:本文介绍了一个基于Vue和Three.js实现的3D物体拖拽交互场景,模拟电商平台商品展示功能。通过射线检测实现两种交互模式:点击物体可拖拽移动位置,点击地面可旋转整个场景。关键实现包括层级结构设计(物体作为地面子元素)、坐标转换计算、交互状态管理(物体高亮/恢复)等。作者大剑师兰特(GIS领域高级工程师)提供了288行完整源码,包含立方体、球体、圆柱体三个可拖拽模型,并附有详细操作说明和配置指南。该示例适用于Web3D开发学习和商业项目参考。原创 2025-10-24 10:06:06 · 1110 阅读 · 9 评论 -
031:vue+threeJS 实体颜色换装,点击按钮切换色值
本文介绍了如何在Vue中结合Three.js实现3D实体的颜色换装功能。通过创建场景、相机和渲染器等基础设置,构建一个可旋转的立方体模型。主要实现了点击按钮切换不同颜色的功能,核心代码使用this.mesh.material.color.set(colorHex)方法修改材质颜色。示例包含完整的源代码(151行),展示了从初始化3D场景到实现颜色切换的完整流程,适用于前端开发者学习3D可视化开发。原创 2025-10-23 15:29:54 · 1345 阅读 · 18 评论 -
035:vue+threeJS 加载glb实体,并更改model颜色
本文介绍了一个基于Vue2和Three.js的3D模型交互示例,通过加载glb格式的3D模型并实现颜色动态更改功能。文章包含示例效果图、简介、配置说明和128行完整源代码,展示了如何使用GLTFLoader加载模型、通过颜色选择器实时修改模型材质颜色,并保留原始材质属性。代码还实现了轨道控制器、光源设置和网格辅助线等基础功能,适合学习Three.js与Vue的集成开发。作者大剑师兰特提供了优快云博客链接和联系方式,方便技术交流。(摘要字数:148字)原创 2025-10-29 00:00:00 · 680 阅读 · 10 评论 -
034:vue+threeJS 实体球绕着中心点旋转,可以更改半径方向
本文介绍了一个基于Vue2和Three.js的3D球体绕圈旋转动画实现。通过创建Three.js场景、球体、光源和轨道控制器,实现了球体围绕中心点的圆周运动效果。示例提供了开始、暂停和停止三个控制按钮,用户可交互控制球体运动状态。核心代码包括场景初始化、球体创建、动画循环以及旋转控制逻辑,适合作为3D Web开发的入门学习案例。该示例完整代码约200行,包含响应式设计,可在浏览器中流畅运行。原创 2025-10-28 07:30:00 · 1068 阅读 · 28 评论 -
Threejs面试题200道
摘要: 本文整理了200道Three.js面试题,覆盖从基础到高级的全面知识点,适合不同阶段的开发者复习准备。基础部分涵盖场景、相机、渲染器、几何体、材质、光照等核心概念;进阶部分深入PBR材质、动画、物理引擎、特效(如流体、火焰、天气)及性能优化技术(如LOD、GPU实例化);高级主题涉及后期处理(SSAO、Bloom)、着色器编程及调试技巧。题目由GIS领域专家大剑师兰特提供,适用于Web3D开发求职者系统梳理Three.js技术栈。 (字数:149)原创 2025-06-26 00:00:00 · 333 阅读 · 0 评论 -
025:vue+threeJS 创建球体(SphereGeometry)
SphereGeometry 是 Three.js 中用于创建球体几何体的类。它允许你定义球体的半径、经度和纬度的分段数,从而控制球体的细分程度。radius: 球体的半径。widthSegments: 经度方向的分段数(水平方向)。heightSegments: 纬度方向的分段数(垂直方向)。原创 2025-03-05 08:00:00 · 401 阅读 · 10 评论 -
023:vue+threeJS 创建圆环几何体(TorusGeometry)
TorusGeometry 是 Three.js 中用于创建环面几何体的类。环面是一个类似于轮胎形状的几何体,由一个圆围绕另一个圆旋转生成。radius: 环面的主半径(从中心到管的中心的径向距离)。tubeRadius: 管的半径(管壁的厚度的一半)。radialSegments: 环面在径向上的分段数。值越大,环面越平滑。tubularSegments: 管在环面上的分段数。值越大,管越平滑。arc: 环面圆周上的弧度,默认为 Math.PI * 2(即一个完整的圆)。原创 2025-03-03 09:48:52 · 433 阅读 · 11 评论 -
030:vue+threeJS 水磨石贴图效果
本示例实现了一个基于 Vue 和 Three.js 的 3D 场景,展示了如何使用大理石贴图(水磨石效果)来创建一个具有真实感的球体模型。使用 THREE.TextureLoader 加载大理石材质贴图,包括颜色贴图、法线贴图、粗糙度贴图和位移贴图。使用 THREE.MeshPhysicalMaterial 材质结合这些贴图,模拟真实的大理石表面效果。原创 2025-03-11 07:00:00 · 461 阅读 · 29 评论 -
029:vue+threeJS 燃放烟花效果
本示例实现了一个基于 Vue 和 Three.js 的烟花燃放效果。通过自定义着色器(Shader),模拟了烟花从发射到爆炸的动态过程。使用 GLSL 着色器语言编写自定义的顶点和片段着色器,模拟烟花的发射、爆炸和消散过程。通过 THREE.ShaderMaterial 将着色器应用到一个平面几何体上。原创 2025-03-10 08:30:00 · 935 阅读 · 0 评论 -
028:vue+threeJS 铺好地面,上面是滚动的立方体
本示例实现了一个基于 Vue 和 Three.js 的 3D 场景,展示了如何设置地面铺砖效果以及动态旋转的立方体。地面铺砖效果:使用 THREE.PlaneGeometry 创建一个平面作为地面,并通过材质颜色模拟铺砖效果。动态旋转立方体:在场景中添加一个红色立方体,并通过 animate 方法实现其动态旋转。Three.js 场景配置:包括场景、相机、渲染器和光照的创建。使用 OrbitControls 实现相机的交互式控制(旋转、缩放等)。原创 2025-03-08 06:15:00 · 460 阅读 · 35 评论 -
027:vue+threeJS 生成100个随机颜色的三角形
本示例使用vue+threeJS 生成100个随机颜色的三角形,这里通过BufferGeometry()创建几何体,将所有的三角形作为一个几何体,通过设置位置和颜色来做属性的设置,这里使用了Float32BufferAttribute方法。原创 2025-03-07 08:00:00 · 490 阅读 · 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 · 498 阅读 · 16 评论 -
024:vue+threeJS 创建多面几何体(PolyhedronGeometry)
PolyhedronGeometry 是 Three.js 中用于创建多面体几何体的类。多面体是由多个多边形组成的三维形状,每个多边形可以有不同的顶点数和边数。vertices: 一个包含顶点坐标的数组。indices: 一个包含顶点索引的数组,定义了哪些顶点组成了多面体的面。radius: 多面体的半径。detail: 细节级别,控制多面体的细分程度。原创 2025-03-04 07:45:00 · 394 阅读 · 8 评论 -
022:vue+threeJS 创建管状(tubeGeometry)的几何体
TubeGeometry 是 Three.js 中用于创建管状几何体的类。它允许你通过一系列路径点来生成一个管状结构。path: 一个 Curve 对象,定义了管的路径。例如,THREE.CatmullRomCurve3。tubularSegments: 沿路径的分段数。值越大,管越平滑。radius: 管的半径。radialSegments: 圆周方向的分段数。值越大,管越平滑。closed: 布尔值,表示管是否闭合。如果为 true,则管的两端将连接起来形成一个封闭的环。原创 2025-02-28 11:29:43 · 310 阅读 · 19 评论 -
021:vue+threeJS 展示一个倾斜的地面,30度倾角
在 Three.js 中设置地面的倾斜角度可以通过变换矩阵(Matrix)来实现。具体来说,你可以使用 THREE.Object3D 的 rotateX、rotateY 或 rotateZ 方法来旋转物体。对于地面(通常是一个平面几何体),你可以通过这些方法来设置其倾斜角度。原创 2025-02-27 09:16:27 · 415 阅读 · 17 评论 -
020:vue+threeJS 通过stats渲染性能的统计信息
Stats.js 是一个轻量级的 JavaScript 库,用于显示关于 Three.js 渲染性能的统计信息。它可以帮助你了解帧率、内存使用情况等关键指标,从而优化你的3D场景。以下是如何在 Vue 项目中集成 Stats.js 并加载到 Three.js 中的示例代码。原创 2025-02-25 07:30:00 · 410 阅读 · 27 评论 -
019:vue+threeJS 添加控制面板dat.GUI, 更改几何体颜色
dat.GUI 是一个轻量级的 JavaScript 库,专门用于创建交互式的用户界面,特别适合用于调试和配置复杂的 Web 应用程序,尤其是那些涉及大量参数调整的应用程序,如 Three.js 项目。以下是 dat.GUI 的详细介绍,包括其核心功能、使用方法和常见控件类型。原创 2025-02-24 00:00:00 · 405 阅读 · 5 评论 -
018:vue+threeJS 加载mdd文件
MDD(Morph Deformation Data)文件是一种用于存储顶点变形数据的文件格式,常用于三维动画中。MDD 文件通常用于记录物体在不同时间点的顶点位置变化,从而实现平滑的动画效果。这种文件格式广泛应用于各种三维建模和动画软件,如 Maya、3ds Max、Blender 等。原创 2025-02-23 09:00:00 · 341 阅读 · 1 评论 -
017:vue+threeJS 加载gltf文件
GLTF格式是一种高效传输、加载3D内容的开放格式规范。它以JSON(.gltf)格式或二进制(.glb)格式提供,外部文件可以存储贴图(如.jpg、.png)和额外的二进制数据(.bin)。一个GLTF组件几乎包含所有的三维模型相关信息的数据,可传输一个或多个场景,包括网格、材质、贴图、蒙皮、骨架、变形目标、动画、灯光以及摄像机。原创 2025-02-22 00:00:00 · 302 阅读 · 0 评论 -
016:vue+threeJS 加载glb文件
GLB文件是一种二进制格式的3D模型文件,通常用于存储3D场景、模型和动画数据。GLTFLoader的主要功能是加载和解析GLTF格式的3D模型文件,并将其转换为Three.js可以理解的对象,以便在Three.js的场景中使用。通过使用GLTFLoader,开发人员可以快速构建出复杂的3D场景,并实现交互和动画效果。原创 2025-02-21 09:00:00 · 636 阅读 · 26 评论 -
015:vue+threeJS 加载KMZ文件
KMZLoader 主要用于加载 KMZ 文件,这是一种 Google Earth 的文件格式,通常包含地理信息、图像和模型等数据。通过 KMZLoader,开发者可以在 Three.js 项目中展示从 KMZ 文件中提取的地理数据和三维模型,适用于需要集成地理信息系统(GIS)数据的应用场景。原创 2025-02-20 09:00:00 · 214 阅读 · 25 评论 -
014:vue+threeJS 创建一个网格平面
THREE.GridHelper 是 Three.js 库中的一个辅助工具,用于在三维场景中创建一个网格平面,通常用于可视化坐标系或作为场景中的参考。这个网格可以帮助开发者更好地理解场景的布局和对象的位置。size:表示网格的大小,默认值为10。它定义了从中心到边缘的距离,因此整个网格的实际尺寸是 2 * size。divisions:表示网格中的分割线数量,默认值为10。它决定了网格中的线条密度。color1:主要颜色,默认为红色 (0x444444),用于主轴线。原创 2025-02-19 09:00:00 · 327 阅读 · 0 评论 -
013:vue+threeJS 根据clock来处理物体的动画
在 Vue.js 中使用 Three.js 的 Clock 功能,可以帮助你管理动画的时间。下面是一个简单的示例,展示如何在 Vue 组件中集成 Three.js 并使用 Clock 来控制一个旋转的立方体。原创 2025-02-18 09:27:29 · 391 阅读 · 34 评论 -
012:vue+threejs 点击更改不同的材质
本threeJS示例通过点击按钮来采用不同的material方式,这里的示例采用了3种,还有很多个material方式。MeshBasicMaterial:简单颜色渲染,不受光照影响。MeshLambertMaterial:漫反射光照效果,无镜面高光。MeshPhongMaterial:复杂光照效果,支持镜面高光。MeshStandardMaterial:物理上正确的光照效果,支持金属度和粗糙度。MeshToonMaterial:卡通渲染效果。原创 2025-02-13 00:00:00 · 522 阅读 · 4 评论 -
011:vue+threejs 添加地面的水面效果
本threeJS示例生成360度不同画面的Scene场景,THREE.CubeTextureLoader 是 Three.js 中的一个加载器,用于加载立方体贴图(Cube Texture)。立方体贴图是一种特殊的纹理,用于表示环境映射或全景图,它由六个正方形的图像组成,每个图像对应一个方向(正面、背面、顶部、底部、左面、右面)。原创 2025-02-12 07:00:00 · 679 阅读 · 17 评论
分享