用途
该技能是 Three.js 的完整参考(原生/vanilla 版本),主要用于在用户提出 3D 场景创建、添加网格(mesh)、实现 OrbitControls、加载 GLTF 模型、添加 bloom 等后期效果等需求时,提供对应的知识参考与代码模式。资料明确指出:该参考针对原生 Three.js;React Three Fiber(R3F)用户应使用 r3f-best-practices 技能,但理解这里的 Three.js 概念对使用 R3F 仍有帮助,因为 R3F 是 Three.js 的 React 渲染器。
主要能力
技能以“参考索引”的方式按任务组织内容,涵盖以下主题:
- 核心基础:场景搭建、渲染器配置、Object3D 层级、坐标系;几何体创建、BufferGeometry、实例化、点与线;相机类型、视锥、视口、投影;Vector3、Matrix4、Quaternion、Euler、Color、MathUtils 等数学工具。
- 视觉外观:PBR 材质、着色器材质及各类材质;纹理加载、UV 映射、渲染目标、环境贴图;灯光类型、阴影、IBL、光照探针;自定义 GLSL 着色器、uniforms、varyings 及着色器模式。
- 运动与交互:关键帧动画、骨骼动画、变形目标、程序化运动;射线拾取、选择、拖拽、坐标转换;OrbitControls、FlyControls、PointerLockControls 等控制器。
- 资源加载:GLTF、FBX、纹理、HDR、Draco 压缩及异步模式。
- 效果:Bloom、DOF、SSAO、自定义效果、EffectComposer。
- 进阶:性能优化、性能分析、LOD、剔除、批处理;TSL(Three Shading Language)节点材质;物理引擎、WebXR、VR/AR 集成;WebGPU 渲染器、计算着色器、WGSL;架构模式、资源管理、清理、状态管理。
使用方式
资料给出快速开始示例:引入 three,创建 Scene、PerspectiveCamera、WebGLRenderer,设置尺寸与像素比,挂载 canvas,创建 BoxGeometry 与 MeshStandardMaterial 组成 Mesh,添加环境光与方向光,设置相机位置,并用 requestAnimationFrame 驱动渲染循环。
此外,资料还提供了若干常用模式:窗口 resize 时更新相机宽高比并调用 updateProjectionMatrix、重设渲染器尺寸;通过 traverse 递归释放 geometry 与 material 的清理/释放函数;使用 THREE.Clock 获取 delta 与 elapsed 以驱动帧率无关的动画;以及核心与 addons(controls、loaders、postprocessing、DRACOLoader、KTX2Loader)的 ES module 导入写法。技能建议根据具体任务加载对应的参考文件。
适用场景
适合需要在原生 Three.js 中搭建 3D 场景、配置材质灯光、加载模型、实现交互控制与后期效果的开发任务,也可作为理解 Three.js 概念以辅助 R3F 开发的参考资料。
限制
资料说明该参考面向原生 Three.js,不覆盖 R3F/Drei 的具体模式(应使用 r3f-best-practices 技能)。版本说明针对 Three.js r150+,并提示版本相关 API 需查阅 Three.js 迁移指南。资料未提供该技能的安装命令、收费信息或具体运行环境要求。