3D object 是一个用于建模可交互 3D 物体的技能,适用于使用 Three.js 创建 3D 物体、交互场景或检查模型。
用途 该技能用于构建一个用户可以从任意角度检查并下载的 3D 物体,基于 three.js 实现,并呈现在 three_d_stage 起始组件中。
主要能力 起始组件 three_d_stage.js 即为完整查看器,包含影棚灯光、地面阴影、轨道控制、自动取景相机,以及一个可将物体下载为 OBJ + MTL 或 GLB 的工具栏。模型以 THREE.Group 形式程序化构建,由命名部件组成。导出格式为 OBJ + MTL(通用,几何体加逐材质颜色)和 GLB(现代交换格式,保留部件层级与 PBR 材质,可导入 Blender、Maya、Cinema 4D、Unity、Unreal)。
使用方式 首先调用 copy_starter_component,kind 设为 "three_d_stage.js"。阅读复制文件的使用说明块,并严格遵循其页面骨架。只需编写模型构建模块脚本。页面应使用纯 HTML(普通标签的 .html 文件),即使项目其他设计为 .dc.html Design Components 也应如此,因为 DC 会限制脚本,与舞台挂载产生竞争且无法承载此骨架。three.js 仅通过指定的固定 import map 加载,置于任何模块脚本之前,不得更改版本、URL 或哈希,不得添加其他 three.js 副本,也不得导入所列三个之外的附加组件。
建模建议 优先组合基础几何体(BoxGeometry、CylinderGeometry、SphereGeometry、TorusGeometry、LatheGeometry、带 Shape 的 ExtrudeGeometry),再考虑原始 BufferGeometry。为每个网格和材质命名(如 "hull"、"walnut"、"brass"),名称会成为导出 OBJ 中的 o / usemtl 条目以及 GLB 中的节点名,便于在 Blender 中使用。使用 MeshStandardMaterial 与少量精选调色板(3-5 个材质,跨部件共享),有意设置 roughness/metalness。纹理不会在 OBJ 导出中保留,应优先使用几何体与材质颜色。按真实世界米制、y 轴向上、居中于原点建模,底部位于最低 y。将有意共面的面偏移约 0.001 以避免 z-fighting。曲面需要足够分段以在全屏下显得平滑(特征表面 32+ 径向分段),但不要细分无人看到的区域。
迭代与限制 可通过截图迭代:舞台保留最后一帧可读,普通截图工具即可捕获实时画布。编辑模块文件后,用 show_html 重新加载再截图(iframe 会缓存已加载模块)。从默认取景查看物体,优化轮廓、比例与材质区分。当用户要求其他格式(FBX、USDZ、STEP)时,应明确说明舞台仅导出 OBJ + MTL 和 GLB。