为 react-three-fiber 提供后期处理效果的 React 封装,可用 JSX 组件声明式地添加效果。
pmndrs/drei
为 react-three-fiber 提供的一组开箱即用的 React 3D 辅助组件与 Hooks。
- Star
- 9,994
- Fork
- 853
- 未关闭 Issue
- 136
- 最近提交
- 昨天
这是什么?
drei 是 react-three-fiber(Three.js 的 React 渲染器)的辅助库,提供一批预制的组件和 Hooks,覆盖常见的 3D 开发需求,开发者无需从零实现相机控制、模型加载、阴影、文字或着色器材质。
库内功能按领域划分:相机与控制器包括 CameraControls、ScrollControls、KeyboardControls 等;辅助工具有 TransformControls 和 GizmoHelper;抽象组件包括 Text、Image、Edges、Trail;场景布置类有 Environment、Sky、Stars、ContactShadows;性能相关有 Instances、Merged、AdaptiveDpr 等。此外还提供 useGLTF、useTexture 等资源加载 Hook。
包名为 @react-three/drei。默认入口面向 Web,导出 Html 和 Loader;另有面向 React Native 的 native 入口,不包含这两个组件。文档站点提供可交互的 Storybook 示例。
核心功能
- 01提供预制的相机控制器、Gizmo 以及键盘、滚动输入组件
- 02提供 3D 文字、图片、边缘线、拖尾和描边等抽象组件
- 03提供 useGLTF、useTexture、useFBX 等资源加载 Hook
- 04提供环境贴图、天空、阴影和灯光等场景布置工具
- 05提供实例化、合并几何体和自适应分辨率等性能工具
- 06区分 Web 与 React Native 两个入口
适用场景
- 用轨道控制器和 glTF 模型搭建交互式产品展示
- 在 React 网站中加入 3D 文字、HTML 叠加层或滚动驱动动画
- 制作带软阴影、环境光照和反射材质的场景
- 在 React Three Fiber 应用中高效渲染大量重复网格
快速上手
- 1
从 npm 安装该包
npm install @react-three/drei
使用前须知
- React Native 入口(@react-three/drei/native)不导出 Html 和 Loader。
- 它是为 react-three-fiber 构建的,因此还需要同时配置 @react-three/fiber。
标签
常见问题
- drei 是什么?
- 为 react-three-fiber 提供的一组开箱即用的 React 3D 辅助组件与 Hooks。 drei 是 react-three-fiber(Three.js 的 React 渲染器)的辅助库,提供一批预制的组件和 Hooks,覆盖常见的 3D 开发需求,开发者无需从零实现相机控制、模型加载、阴影、文字或着色器材质。
- drei 可以免费使用吗?用的什么许可证?
- drei 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- drei 还在维护吗?
- 活跃维护中。drei 最近一次提交是在 2026年10月19日。
- drei 适合用来做什么?
- 用轨道控制器和 glTF 模型搭建交互式产品展示 在 React 网站中加入 3D 文字、HTML 叠加层或滚动驱动动画 制作带软阴影、环境光照和反射材质的场景 在 React Three Fiber 应用中高效渲染大量重复网格
- drei 怎么安装和运行?
- 从 npm 安装该包: npm install @react-three/drei
- 在哪里获取 drei?
- 源代码和安装说明在 GitHub 上:https://github.com/pmndrs/drei
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个为 Codex、Claude Code、Cursor 等 Agent 提供的 Skill,用于生成可交互、逐步建造的 Three.js 三维古建场景。
开源、免登录的 Three.js/WebGL 交互式 UI 组件目录,附带实时渲染与完整 React 源码。
一款在浏览器中用 three.js 实时渲染的 3D 日本河谷小船之旅,涵盖四季与全天时段。
开源、本地优先的 3D 建筑编辑器,可在浏览器或命令行中使用,并支持 AI 智能体通过 MCP 调用。