Vue3 生态最强大 3D 框架发布 V5 !高性能、低延迟!增加几百个示例!

0 阅读3分钟

TresJS 的设计初衷,就是让 Vue 开发者能更轻松地上手 3D 开发。它沿用大家熟悉的组件、组合式函数等开发思路,大幅降低 Three.js 的学习成本。

作为一款开源库,TresJS 让你可以在 Vue 中用声明式的方式使用 Three.js,直接通过 Vue 组件搭建 3D 场景,同时完整保留 Vue 响应式系统的强大能力。

image.png TresJS 发音为 /tres/,在西班牙语里正是“三”的意思。它基于 Three.js 构建,通过自定义 Vue 3 渲染器,将 Vue 组件直接转换成 Three.js 对象。这套库的核心目标,就是借助 Vue 的响应式机制和组件化架构,降低 Web 3D 开发门槛,同时保持对最新 Three.js 功能的全面兼容。

为什么选择 TresJS?

Three.js 本身是一款功能极强的 3D 库,但学习曲线相对陡峭,对习惯 Vue 这类组件化框架的开发者尤其不友好。而 TresJS 正好填补了这一缺口,主要优势体现在:

image.png 🧩 组件化更熟悉 不用再写命令式的 Three.js 代码,直接用 Vue 组件搭建 3D 场景。

⚡ 自带响应式 依托 Vue 响应式系统,轻松实现动态、可交互的 3D 效果。

📦 内置组合式函数 提供实用的组合式函数,封装常见 3D 逻辑与功能,开箱即用。

🎯 声明式开发 只需要描述场景最终效果,不用一步步手动构建和渲染。

🔧 优秀开发体验 支持热更新、TypeScript、Vue DevTools 调试,完整保留 Vue 开发体验。

从命令式到声明式

以前写 Three.js,需要编写大量命令式代码:

const scene = new THREE.Scene()  
const camera = new THREE.PerspectiveCamera(75window.innerWidthwindow.innerHeight0.11000)  
const renderer = new THREE.WebGLRenderer()  
  
const geometry = new THREE.BoxGeometry()  
const material = new THREE.MeshBasicMaterial({ color0x00FF00 })  
const cube = new THREE.Mesh(geometry, material)  
scene.add(cube)

而使用 TresJS,你只需要写声明式的 Vue 组件:

<template>  
  <TresCanvas>  
    <TresPerspectiveCamera :position="[0, 0, 5]" />  
    <TresMesh>  
      <TresBoxGeometry />  
      <TresMeshBasicMaterial :color="0x00FF00" />  
    </TresMesh>  
  </TresCanvas>  
</template>

这种方式显著降低学习成本,同时又不损失 Three.js 本身的强大功能与灵活性。

✨ create-tres CLI:一键搭建3D项目

以往 TresJS 需手动配置 Vue 环境、安装依赖,步骤繁琐易出错。v5.0 全新推出 create-tres 命令行工具,一条指令快速初始化项目,告别繁琐配置。

npx create-tres my-3d-app

内置灵活配置项,适配各类开发场景:

  • 模板选择:支持 Vue+Vite、Nuxt 两种主流方案
  • 工具集成:默认搭载 TypeScript、ESLint,保障类型安全与代码规范
  • 生态拓展:一键引入 Cientos、Post-processing、Leches 等官方工具包

大幅缩减环境搭建耗时,让开发者专注3D场景开发。

🚀 实验性WebGPU支持:高性能渲染升级

传统WebGL难以支撑复杂3D场景,WebGPU作为下一代图形API,具备高性能、低延迟、支持GPU计算着色器的优势。TresJS v5.0 正式接入WebGPU实验性支持,简单配置即可启用。

const createWebGPURenderer = (ctx) =>   
  new WebGPURenderer({ canvas: ctx.canvas, alphatrue })

资源

image.png

image.png