1153 字
6 分钟
在博客中嵌入交互式 3D 模型

在现代 Web 开发中,展示 3D 模型已经变得越来越简单。今天我们来看看如何使用 Google 的 model-viewer 组件在博客中嵌入交互式 3D 模型。

什么是 Model Viewer?#

Model Viewer 是 Google 开发的一个 Web 组件,可以轻松地在网页中渲染 3D 模型。它支持:

  • 🎮 交互式控制 - 鼠标拖拽旋转、滚轮缩放
  • 📱 AR 预览 - 在支持的设备上可以通过 AR 查看模型
  • 🎨 自定义样式 - 完全可定制的外观
  • 🚀 高性能 - 基于 Three.js,性能优秀
  • 📦 多格式支持 - 支持 glTF、GLB 等格式

基础用法#

最简单的使用方式就是直接在 Markdown 中使用 HTML:

上面这个宇航员模型是完全可交互的:

  • 🖱️ 拖拽 可以旋转模型
  • 🔍 滚轮 可以缩放
  • 🔄 模型会 自动旋转 展示

更多示例#

机器人模型#

这是一个表情丰富的机器人模型,展示了更复杂的 3D 场景:

反射球体#

这个模型展示了材质的反射效果(禁用了自动旋转,你可以手动拖拽查看):

TIP

提示:第一个宇航员模型是本地文件,加载速度快。其他两个模型从 CDN 加载,可能需要等待一会儿。

使用方法#

在你的 Markdown 文章中,直接使用 HTML 标签嵌入 3D 模型:

<div class="my-8 model-viewer-wrapper">
<model-viewer
src="/models/your-model.glb"
alt="模型描述"
auto-rotate
camera-controls
shadow-intensity="1"
style="width: 100%; min-height: 500px; border-radius: 0.75rem; background-color: transparent;"
>
<div slot="progress-bar" class="progress-bar">
<div class="update-bar"></div>
</div>
</model-viewer>
</div>

路径说明#

  • Public 目录:将模型文件放在 public/models/ 目录,使用 /models/model.glb
  • 外部链接:也可以使用完整的 URL

推荐做法:将模型文件放在 public 目录中,这样可以被正确访问。例如:

public/
└── models/
├── astronaut.glb # 3D 模型
└── robot.glb # 更多模型

然后在 Markdown 中使用:

<model-viewer src="/models/astronaut.glb" alt="我的模型" auto-rotate camera-controls></model-viewer>

支持的参数#

Model Viewer 支持以下常用属性:

属性类型说明
srcstring3D 模型文件路径(.glb 或 .gltf),必填
altstring模型的替代文本
posterstring加载前显示的预览图 URL
auto-rotateboolean是否自动旋转(布尔属性,无需值)
camera-controlsboolean是否启用相机控制(布尔属性,无需值)
shadow-intensitynumber阴影强度(0-1)
arboolean是否启用 AR 模式
environment-imagestring环境贴图 URL

布尔属性使用方法:直接写属性名即可,如 auto-rotate 而不是 auto-rotate="true"

获取 3D 模型#

你可以从以下网站获取免费的 3D 模型:

性能优化建议#

  1. 压缩模型 - 使用 glTF-Pipeline 压缩模型文件
  2. 使用 GLB 格式 - GLB 是二进制格式,比 glTF 更小更快
  3. 提供 Poster - 预览图可以改善加载体验
  4. 优化纹理 - 使用合适大小的纹理贴图(通常 2048x2048 已足够)
  5. 减少多边形数 - 在 Blender 等工具中简化模型

模型格式转换#

如果你有其他格式的 3D 模型(如 OBJ、FBX),可以使用以下工具转换为 glTF/GLB:

浏览器兼容性#

Model Viewer 支持所有现代浏览器:

  • ✅ Chrome 67+
  • ✅ Firefox 63+
  • ✅ Safari 12.1+
  • ✅ Edge 79+

实现原理#

本博客的 3D 模型功能是通过以下方式实现的:

  1. Google Model Viewer - 通过 CDN 加载 model-viewer Web Component
  2. 原生 HTML - 直接在 Markdown 中使用 <model-viewer> 标签
  3. 自定义样式 - 使用 CSS 变量适配博客主题色
  4. 进度条 - 通过 slot="progress-bar" 自定义加载进度显示

Model Viewer 是一个 Web Component,浏览器会自动识别并渲染为交互式 3D 查看器。

总结#

通过 Google Model Viewer,我们可以轻松地在博客中嵌入交互式 3D 模型,为读者提供更丰富的视觉体验。无论是产品展示、教学演示还是艺术作品展览,3D 模型都能让内容更加生动有趣。

试试在你的下一篇文章中加入 3D 模型吧!🚀

相关资源#

在博客中嵌入交互式 3D 模型
https://fuwari.vercel.app/posts/3d-model-viewer/
作者
Hachi
发布于
2026-04-16
许可协议
CC BY-NC-SA 4.0
Markdown 扩展功能