Skip to content

v0.26.0 — 画布内嵌 3D 查看器(不需要 Blender)

Choose a tag to compare

@He2way He2way released this 22 Sep 11:24
· 2 commits to main since this release

v0.26.0 — 画布内嵌 3D 查看器 / A 3D viewer on the canvas

不用装 Blender:新增 model 控件,把 .glb / .gltf / .obj / .stl 直接显示在画布上(也可以放进卡片,或用 ⛶ 全屏看)。

  • 零依赖、离线可用:查看器是一个自写的 WebGL 页面(viewer/viewer.html,约 44KB),由 npm run embed:viewer gzip 进客户端包(和框图同一套做法),跑在沙箱 iframe 里,只通过 postMessage 与项通信。
  • 能渲染:glTF 2.0 / GLB(节点层级与 TRS/矩阵变换、索引与非索引图元、三角带/扇形、顶点法线缺失时用平面法线兜底、baseColorFactor 与内嵌 baseColorTexture、doubleSided、alphaMode),以及 OBJ 与二进制/ASCII STL。
  • 交互:左键环绕、中键或 Shift 拖动平移、滚轮缩放;重置视角、线框、网格、背景;状态栏报告三角形数、网格数与包围盒尺寸。
  • 怎么载入:拖文件到画布(空白处新建查看器项,已有模型项则替换)、点 打开模型…、或给控件写 src(https 地址或 data: 内嵌)。约 450KB 以内的模型会写进画布状态(刷新/同步后仍在),更大的只在本次会话显示并标注 仅本机。
  • 对话也能建:{ "op": "add", "kind": "model", "src": "https://…/x.glb" };提示词里也说明了"大模型请拖进来,不要往对话里塞 base64"。

测试:npm run verify:viewer 构造真实 glTF-binary 立方体并在无头 Chromium 中驱动查看器(载入 triangles=12, meshes=1, materials=1, size=1x1x1、指针拖动真的改变相机、线框/网格/背景、坏文件报错、清空);npm run verify:embed 把同一立方体作为控件放上画布,断言项内沙箱报告 12 三角形 · 1 网格;smoke.mjs 覆盖内嵌页面哈希/缓存、消毒往返、被拒来源、拖拽扩展名、选择器入口与提示词。

Install / 安装

dsh plugin --profile web add dsh-task-console           # npm(发布后)
dsh plugin --profile web add ./dsh-task-console.tgz     # 本 Release 的预构建 tarball

Full changelog / 完整变更记录: CHANGELOG.md