- 博客(7)
- 资源 (6)
- 收藏
- 关注
原创 threejs相机自适应加载模型位置
本文介绍了Three.js中自适应调整相机位置的方法。通过Box3计算模型包围盒尺寸及中心点,结合相机fov反推最佳观察距离,动态设置相机位置、near/far参数,并将控制器目标点同步至模型中心。代码实现包含自动计算相机位置、调整视距及更新控制器等功能,offset参数可微调观察距离。该方法有效解决了模型加载后显示比例失调和控制器操作异常的问题。
2025-06-24 16:38:22
138
原创 threejs相机平滑过渡(camera-controls)
camera-controls是基于threejs相机的控制器,支持各种平滑过渡效果。官网地址:https://yomotsu.github.io/camera-controls/在使用过程中,需要注意是其他控制器的冲突。相机位置和target位置需要根据场景实际情况进行计算,然后通过setLookAt方法进行设置。
2025-04-29 20:08:53
100
原创 threejs碰撞检测
目标是实现实时的牙齿和托槽碰撞检测,由于实时性要求,所以采用threejs的第三方开源库three-mesh-bvh,这个库是用来加速射线检测和精确碰撞的,通过构建BVH(包围体层次结构)来优化性能。intersectsGeometry方法可以返回网格是否与给定的几何体相交。
2025-04-29 19:45:55
130
原创 threejs的简单uv展开算法(牙齿渲染为例)
第一步是计算几何体的边界框,这一步是为了获取模型的min和max坐标,用于后续的偏移和范围计算。offset是负的min的x和z分量,这样可以将模型平移到原点附近。range是max和min的差值,即模型在X和Z方向上的尺寸,用于将坐标归一化到0-1之间。u是(x + offset.x)/range.x,将X坐标平移到原点后归一化。UV展开是将3D模型表面"展开"到2D纹理空间的过程,是3D图形处理中的关键技术。这里的位置属性是每个顶点的三维坐标,而UV是二维的,所以uvArray的长度是顶点数的两倍。
2025-04-29 16:05:29
117
原创 three.js矩阵(Matrix4)之生成按任意中心、任意轴、任意角度的旋转矩阵
平移回原位置:将中心点移回原位置(+center)平移对象:将中心点移动到原点(-center)执行旋转:绕指定轴旋转指定角度。T 是平移矩阵(将中心点移到原点)T−1是逆平移矩阵(移回原位置)R 是旋转矩阵(绕轴旋转)
2025-04-29 15:06:19
153
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人