- 博客(39)
- 收藏
- 关注
原创 引入模型的知识点整理(Three.js)
以下是关于在 Three.js 中引入模型的完整知识点梳理,包括常用格式、加载方式、动画、压缩、示例代码等内容:
2025-04-08 17:08:22
263
原创 GLTF Binary(GLB)格式解析
GLB(glTF Binary)是 GLTF(GL Transmission Format) 的二进制版本,所有数据都存储在一个 .glb 文件中,使其更适合网络传输和加载。
2025-04-04 09:40:58
521
原创 glTF-Draco 压缩:优化 3D 模型的加载
glTF-Draco 是 Google Draco 压缩技术 与 glTF(GL Transmission Format) 结合的格式,能 大幅减少 glTF / GLB 文件的大小,同时保持高质量的 3D 模型。
2025-04-04 09:40:39
319
原创 GLTF(GL Transmission Format)详细介绍
GLTF(GL Transmission Format)是一种现代 3D 文件格式,由 Khronos Group 开发,专为高效传输和渲染 3D 资产而设计。它被广泛用于 Web 3D(如 Three.js、Babylon.js)、游戏开发(Unity、Unreal)以及 AR/VR 应用。
2025-04-03 14:04:25
924
原创 JavaScript Audio 对象知识点
Audio 对象是 JavaScript 内置的 API,用于在网页中播放音频文件。可以通过 new Audio() 创建音频对象,也可以使用 HTMLAudioElement 的各种方法控制音频播放。
2025-04-03 14:02:14
697
原创 allowSleep:优化物理引擎性能的方法
在 Cannon.js 物理引擎中,allowSleep 允许物体在 静止时进入“休眠”状态,从而减少计算量,提升性能
2025-04-02 08:56:50
328
原创 如何使用 Broadphase 优化 Cannon.js 的碰撞检测 [特殊字符]
在 Cannon.js 中,Broadphase(广义相位检测) 是 碰撞检测优化 的第一步,旨在减少需要进行精确碰撞检测的对象数量,提高计算效率。
2025-04-02 08:55:58
539
原创 为什么 Three.js 里 Cannon.js 物体堆叠时会有空隙?
当你使用 Cannon.js 物理引擎时,物体堆叠在一起时可能会出现 “看不见的空隙”。这通常有以下 几个原因👇:
2025-04-01 11:09:59
295
1
原创 如何让three.js渲染物体时与cannon.js里的body保持一致
要让 Three.js 渲染的物体与 Cannon.js 物理引擎中的 Body 保持一致,你需要在 动画循环 (tick) 里同步 position 和 quaternion,让 Three.js 物体的位置和旋转跟随 Cannon.js 的物理模拟。
2025-04-01 11:09:03
317
原创 istringstream 的用法
istringstream 是 C++ 标准库 <sstream> 提供的输入字符串流(类似 cin),用于 解析字符串 并提取数据。
2025-03-31 21:37:56
388
原创 在 GUI 中自定义触发事件
比如在点击按钮时执行特定的逻辑。,当变量值发生变化时触发回调函数。)用于创建调试界面,我们可以。,相当于手动触发事件。
2025-03-25 08:31:06
123
原创 Cannon.js 物理引擎入门(Three.js 结合 Cannon.js)
Cannon.js 是一个基于 JavaScript 的 3D 物理引擎,通常与 Three.js 结合使用,来实现刚体碰撞、重力、弹跳、关节约束等物理效果
2025-03-22 09:18:47
341
原创 Raycaster(光线投射)知识点整理
THREE.Raycaster 是 Three.js 中用于 光线投射(Raycasting) 的工具,常用于:✅ 鼠标拾取(点击检测):判断鼠标是否点击到 3D 对象。✅ 碰撞检测:检查光线是否与物体相交。✅ 环境交互:射线检测可以用来创建射线武器、视线追踪、导航等。
2025-03-21 08:08:19
261
原创 Three.js 自定义 Geometry(几何体)知识点整理
在 Three.js 中,BufferGeometry 允许我们创建自定义的几何体。相比 Geometry(已废弃),BufferGeometry 更加高效,特别适用于 WebGL 渲染。
2025-03-20 10:32:01
550
原创 Three.js 粒子系统(Particles)知识整理
粒子系统是一种用于模拟小型独立元素的渲染方法,常用于。这样就可以实现高效的 Three.js 粒子系统!在 Three.js 中,粒子使用。Three.js 粒子系统广泛应用于: ✅。(透明贴图 + 运动)
2025-03-18 16:06:58
437
原创 Three.js Fog 组件知识整理
(雾)用于在 Three.js 场景中创建。结合后处理,可以让雾更加真实,增强沉浸感。,模拟远处物体在雾中的模糊感。这样可以在运行时实时调整雾的颜色和范围。在雾中添加灯光,可以制造神秘的光束效果。(远处物体可被雾隐藏,减少渲染压力)。(雾的变化是线性的,可能不够真实)。这样可以让雾和天空融合,减少突兀感。(雾的浓度随距离指数增加)。大型场景(森林、城市、山脉)小型场景(烟雾、尘埃、室内)(可以精确设定雾的范围)。(如烟雾、尘雾、室内霾)。时,该物体不会被雾影响。(如森林、城市、山脉)。
2025-03-17 19:09:54
791
原创 Three.js Sky 组件知识整理
Sky 组件是 Three.js 提供的一个用于渲染物理天空的工具。它基于大气散射模型,模拟真实世界中的瑞利散射(Rayleigh Scattering)和米氏散射(Mie Scattering),从而生成逼真的天空效果。
2025-03-17 08:51:17
845
原创 使用 WebP 优化 GPU 纹理占用
WebP 格式相比 JPEG / PNG 文件更小,可以 减少 GPU 纹理内存占用,提高 WebGL / Three.js / 3D 渲染 的性能。
2025-03-16 22:15:00
454
原创 Three.js 阴影 (Shadow) 知识点整理
🚀 通过合理调整这些参数,可以让 Three.js 的阴影更加逼真、柔和,同时兼顾性能优化!我们将系统地整理与阴影相关的知识点。控制,并通过不同类型的光源 (
2025-03-15 10:02:12
569
原创 NPM 常用操作指令大全
NPM(Node Package Manager)是 Node.js 默认的包管理工具,主要用于管理 JavaScript 项目的依赖包。以下是常用的 NPM 命令,涵盖安装、卸载、更新、查看等操作。
2025-03-14 11:24:35
1246
原创 如何解决 Three.js 物体渲染的锯齿问题
在 Three.js 中,如果模型看起来不够平滑,或者在旋转视角时出现锯齿(aliasing),可以通过以下方法来优化渲染效果。
2025-03-13 08:15:54
620
原创 Three.js 光照(Lighting)知识点总结
在 Three.js 中,光照(Lighting)用于 模拟真实世界中的光源,让 3D 物体呈现出 阴影、反射、明暗变化 等视觉效果。
2025-03-12 09:01:04
572
原创 Three.js 材质与光照知识点总结
在 Three.js 中,材质(Material) 和 光照(Light) 是 3D 场景视觉效果的核心。合理搭配材质和光照,可以让物体 真实反光、透明、金属感、卡通效果 等。
2025-03-12 08:57:40
771
原创 常见的材质(Materials)
✅ 受光照影响,适用于 PBR(基于物理的渲染)。(材质)用于定义物体的外观。✅ 适合高光泽、透明度、玻璃等效果。✅ 颜色始终不变,不受光照影响。这样可以获得更真实的渲染效果!粒子系统(雪、雨、星星),否则物体可能看不见。,适合大场景、多物体。✅ 适合光滑表面,如。,看起来较“朴素”。瓷器、塑料、光滑表面。真实感材质(PBR)
2025-03-11 20:30:28
549
原创 [特殊字符]窗口自适应(resize)、OrbitControls 轨道控制、相机更新 和 渲染器更新
窗口自适应(resize)、OrbitControls 轨道控制、相机更新 和 渲染器更新
2025-03-05 22:43:50
538
原创 [特殊字符]Three.js 四种常用相机(Camera)
Three.js 提供了多种相机类型,其中最常用的是 透视相机(PerspectiveCamera) 和 正交相机(OrthographicCamera),此外还有 立方相机(CubeCamera) 和 深度相机(ArrayCamera)。
2025-03-05 22:42:59
450
原创 [特殊字符]OrbitControls(轨道控制器)
当窗口大小发生变化时,需要更新相机的。的参数,试试看不同的交互效果!限制垂直旋转范围(0°~90°)如果你在 HTML 里直接用。控制摄像机位置,并配合。开启惯性阻尼(更平滑)允许缩放(默认开启)允许旋转(默认开启)允许平移(默认开启)
2025-03-05 22:41:58
452
原创 string的使用
string是C++标准库的重要组成部分。主要用于字符串处理/使用string库需要在头文件中包括该库#include<string>,string与char[]不同,string实现了高度的封装,可以很方便的完成各种字符串的操作,如拼接,截取等。使用string str1初始化为空字符后,可以用cin>>str1;进行赋值。如果输入的字符串有空格等特殊符号可以使用getline(cin,s)
2024-01-19 22:54:20
447
1
原创 C++的输入与输出
在计算机编程中,例如对于标准输入输出流cin和cout,默认情况下它们会保持同步,也就是说,cin在读取输入时会等待用户输入,而cout在输出数据时也会等待缓冲区填满后才进行实际的I/O操作。这种同步机制有时可能会影响程序的效率,因为cin需要把要输出的东西先存入缓冲区,这会消耗一定的时间。信息从cin流向a,就像C++将输出看作是流出程序的字符流一样,它也将输入看作是流入程序的字符流。在C++语言中,C语言的这一套输入输出库我们仍然能使用,但是 C++ 又增加了一套新的、更容易使用的输入输出库。
2024-01-16 21:35:02
446
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人