Three.js 低多边形 GLB 模型

为 Three.js 生成自包含的低多边形 GLB 模型。用 GLTFLoader 和 DRACOLoader 加载,放入场景图,并通过实例化提升性能。

用 AI 生成这个 3D 模型几秒内通过文字或图片生成定制低多边形模型。

匹配的可下载资产

先使用这些种子模型,再按同一低模方向生成变体。

会员解锁受保护 STL 权限

先用免费 OBJ 验证造型;订阅后当前可立即下载受保护的 STL,GLB、FBX、USDZ 和 Unity 目前仅展示为生产导出目标,并非资源库直链下载。

商用授权当前提供受保护 STL 下载包含每月 AI 积分
查看会员套餐

亮点

  • 用 GLTFLoader 加载自包含 GLB,它返回可直接添加的 gltf.scene。
  • 接好 DRACOLoader,让 Draco 压缩几何在加载时于 worker 上解码。
  • 加入 KTX2Loader,让压缩贴图在 GPU 上保持压缩。
  • 遍历场景图,按名称查找网格、替换材质、切换可见性。
  • 光照低多边形用 MeshStandardMaterial,扁平无光照用 MeshBasicMaterial。
  • 共享一张 512 到 1024 像素的平涂图集,保持材质和绘制调用都很低。
  • 用 InstancedMesh 绘制重复道具,并为远处几何添加 LOD 对象。
  • 用 model-viewer 网页组件实现一个标签嵌入 GLB,附带轨道控制和 AR。

Three.js 围绕 GLB 构建,而自包含的 GLB 正是交给它的理想素材。GLB 把几何体、材质和贴图打包进单个二进制文件,因此一次取回就把 Three.js 所需的一切都给到,无需管理分散的贴图请求。你用 GLTFLoader 加载它,它会解析文件并返回一个可直接加入 Three.js 场景的 gltf.scene 对象。由于 GLB 是官方的 glTF 运行时格式,而 Three.js 是 glTF 查看器的参考实现,导入可靠,材质、节点名称和层级都会原样传入。

在 GLTFLoader 上加入 DRACOLoader 是 Three.js 低多边形 GLB 的标准性能步骤。当 GLB 以 Draco 压缩导出时,几何体被编码使文件大幅变小,DRACOLoader 在加载时用 worker 解码,因此主线程保持响应。设置只需几行:创建一个 DRACOLoader,指向解码器路径,并在加载器上调用 gltfLoader.setDRACOLoader。对于贴图,加入 KTX2Loader 让压缩贴图在 GPU 上保持压缩。接好 Draco 和 KTX2 后,低多边形模型加载快、占用内存少,这正是网页的关键所在。

加载之后,GLB 成为 Three.js 场景图的一部分,理解这一结构正是你掌控模型的关键。gltf.scene 是一个 Group,其内部每个网格都是带有自身几何体、材质和变换的 Mesh 节点,按原始层级嵌套。你可以用 traverse 方法遍历场景,按名称查找网格、替换材质、切换可见性,或把模型附加到另一物体上让它随之移动。轴心与父子关系在往返中得以保留,因此低多边形炮塔能在底座上旋转、角色能携带物品,一切都可通过节点树寻址。

GLB 上的材质默认导入为 MeshStandardMaterial,这是 Three.js 用于真实光照的基于物理的材质,对低多边形也很好用。低多边形网格的平整面能干净地接收标准材质光照,你可以把金属度调到接近零、粗糙度调高以获得柔和哑光,或指定 MeshBasicMaterial 获得几乎零渲染成本的完全扁平无光照风格。一张共享的平涂颜色图集,道具用 512 到 1024 像素、主角最多 2048 像素,能让材质数量和绘制调用都很低。由于贴图是纯色,它压缩紧凑且在任何缩放下都清晰。

Three.js 的性能来自少绘制、多复用,而低多边形素材加实例化是绝配。当你需要同一道具的多个副本时,InstancedMesh 用一次调用绘制全部,而非每个物体一次调用,这把一片低多边形树林变成一次廉价绘制。在实例间共享一个材质和一个几何体,把面数保持在 1,000 到 10,000 三角面的网页区间,并用 LOD 对象制作 LOD,让远处模型切换为更简单的网格。再配合 Draco 压缩的 GLB 和共享图集,由生成式低多边形模型构建的 Three.js 场景即便在移动端也能保持流畅帧率。

若追求最简单的交付,model-viewer 网页组件用一个 HTML 标签即可加载 GLB,并免费提供轨道控制、AR 和懒加载,非常适合产品页或快速嵌入。若需完全控制,则如上所述直接用 GLTFLoader 和 DRACOLoader 编写 Three.js。无论哪种方式,你生成的素材都是 AI 创建且完全归你所有、可用于商业网站和应用、无需署名,因此你可以用自包含的低多边形 GLB 模型完整构建配置器、游戏或展示,管线干净、快速、免版税。

完善WebGL管线

常见问题

如何在 Three.js 中加载 GLB 模型?

用 GLTFLoader。它解析自包含的 GLB 并返回一个可直接加入场景的 gltf.scene 对象。材质、节点名称和层级原样传入,因为 Three.js 是 glTF 查看器的参考实现。

为什么要给 Three.js 加载器加 DRACOLoader?

当 GLB 以 Draco 压缩导出时几何体小得多,DRACOLoader 在加载时于 worker 上解码,让主线程保持响应。创建一个 DRACOLoader,设置解码器路径,并在 GLTFLoader 上调用 setDRACOLoader。

GLB 模型在 Three.js 中用什么材质?

默认导入为 MeshStandardMaterial,一种基于物理的材质,能干净地为低多边形面打光。把金属度调到接近零、粗糙度调高可得柔和哑光,或指定 MeshBasicMaterial 获得渲染极廉价的完全扁平无光照风格。

如何高效渲染道具的多个副本?

用 InstancedMesh,它用一次调用绘制全部副本而非每个物体一次。在实例间共享一个几何体和材质,面数保持在 1,000 到 10,000 的网页区间,并添加 LOD 对象让远处模型切换为更简单的网格。

能不写 Three.js 代码就嵌入模型吗?

可以。model-viewer 网页组件用一个 HTML 标签加载 GLB,并提供轨道控制、AR 和懒加载。它非常适合产品页,而用 GLTFLoader 编写 Three.js 则在你需要时提供完全控制。

相关页面

查看全部

需要定制低多边形模型?

用文字或参考图生成,然后导出 GLB、FBX、OBJ 或 STL。

打开生成器