关于 tresjs
tresjs 是面向 Vue 3 开发者的 3D 场景技能,通过声明式组件封装 Three.js 对象。内容涵盖核心 API、辅助工具、后期处理效果和常见场景搭建方式。
主要功能
- 01声明式 Three.js 组件
- 02响应式场景属性
- 03TresCanvas 场景与渲染器
- 04模型、控制器与材质辅助
- 05后期处理效果
适用场景
- 01在 Vue 3 中搭建 3D 场景
- 02加载并展示 3D 模型
- 03添加相机控制与动画
- 04为场景配置后期处理
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ onmax/ nuxt-skills --skill tresjs安装后在 Claude Code 中输入/tresjs确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/cientos.mdcookbook.mdcore.mdeffects.md详细介绍
TresJS
用于使用 Three.js 构建 3D 场景的 Vue 3 框架。通过声明式组件封装 Three.js 对象。
软件包: @tresjs/core(必需)、@tresjs/cientos(辅助工具)、@tresjs/post-processing(效果)
安装
# Core (required)
pnpm add three @tresjs/core
# Helpers - controls, loaders, materials, staging
pnpm add @tresjs/cientos
# Post-processing effects
pnpm add @tresjs/post-processing
快速参考
| 正在处理…… | 加载文件 |
|---|---|
| TresCanvas、useTres、useLoop | references/core.md |
| 控制器、加载器、材质 | references/cientos.md |
| Bloom、glitch、DOF 效果 | references/effects.md |
| 常见模式、配方 | references/cookbook.md |
加载文件
根据你的任务加载:
- references/core.md - TresCanvas 设置、组合式函数、事件、基础图元
- references/cientos.md - OrbitControls、useGLTF、Environment、材质
- references/effects.md - EffectComposer、bloom、glitch、DOF
- references/cookbook.md - 加载模型、相机设置、动画
请勿一次性加载所有文件。 只加载相关内容。
核心概念
TresCanvas
用于创建 WebGL 渲染器和场景的根组件:
<script setup lang="ts">
import { TresCanvas } from '@tresjs/core'
</script>
<template>
<TresCanvas shadows alpha>
<TresPerspectiveCamera :position="[5, 5, 5]" />
<TresMesh>
<TresBoxGeometry />
<TresMeshStandardMaterial color="orange" />
</TresMesh>
<TresAmbientLight :intensity="0.5" />
<TresDirectionalLight :position="[3, 3, 3]" :intensity="1" />
</TresCanvas>
</template>
组件命名
所有 Three.js 类都可以作为 Vue 组件使用,并添加 Tres 前缀:
THREE.PerspectiveCamera→<TresPerspectiveCamera />THREE.Mesh→<TresMesh />THREE.BoxGeometry→<TresBoxGeometry />THREE.MeshStandardMaterial→<TresMeshStandardMaterial />
通过 :args prop 传入构造函数参数:
<TresPerspectiveCamera :args="[75, 1, 0.1, 1000]" />
响应性
属性具有响应性——更改会更新 3D 场景:
<script setup>
const color = ref('orange')
const position = ref([0, 0, 0])
</script>
<template>
<TresMesh :position="position">
<TresMeshStandardMaterial :color="color" />
</TresMesh>
</template>
Primitive 组件
直接注入现有的 Three.js 对象:
<script setup>
import { useGLTF } from '@tresjs/cientos'
const { scene } = await useGLTF('/model.glb')
</script>
<template>
<primitive :object="scene" />
</template>
可用指南
references/core.md - TresCanvas 属性、useTres、useLoop、useGraph、事件、性能
references/cientos.md - OrbitControls、useGLTF、useTexture、Environment、Sky、材质、形状
references/effects.md - EffectComposer 与 EffectComposerPmndrs 的区别、bloom、glitch、DOF、效果叠加
references/cookbook.md - 加载 3D 模型、带控制器的相机、动画循环、后期处理
评论
支持 Markdown