Vue 构建 3D 模型全新方案,TresJS 火啦?

开发 前端
咱们通过一个简单的示例了解了 TresJS 的用法。如果感觉 ThreeJS 学习复杂度高的同学,那么可以看下 TresJS ,或许可以为你带来不一样的开发体验呢?

Hello,大家好,我是 Sunday。

说起 3D 模型构建,大家最先想到的应该就是 ThreeJS 了。但是 ThreeJS 本身是基于 WebGL 构建的 3D 模型库,学习曲线较高。特别是和 Vue 这种框架配合使用时,很多同学就需要花费较多的时间才可以掌握使用的方式。

那么有没有更加简单、易上手的框架呢?答案肯定是 有的,它就是咱们今天要说的主角 TresJS。

图片图片

01:TresJS

1.1 与 vue 深度兼容

TresJS 提供了完善的中文文档,我们可以直接在他的官网查看 TresJS 的使用方式。

目前 TresJS 直接兼容 vue3 和 vite,我们可以通过如下方式对 TresJS 进行使用:

  1. 直接通过 npm 进行安装 pnpm add three @tresjs/core
  2. 以插件的形式(use) 进行安装
import { createApp } from 'vue'
import Tres from '@tresjs/core'
import App from './App.vue'

export const app = createApp(App)

app.use(Tres)
app.mount('#app')
  1. 在组件中直接使用
<script setup lang="ts">
import { TresCanvas } from '@tresjs/core'
</script>

<template>
  <TresCanvas>
    <!-- Your scene here -->
  </TresCanvas>
</template>

1.2 完善的中文文档

学习一个库,最好的方式就是通过文档进行学习。TresJS 提供了完善的中文文档,以刚才使用的 TresCanvas 为例:

图片

根据文档中的内容,我们可以很轻松的了解 TresCanvas 组件 的使用。

那么接下来,就让我们利用 TresJS 来完成一个基本的 3D 模型展示

02:TresJS 案例

2.1 3D 场景构建基础

在使用 TresJS 之前,我们先简单了解下 3D 场景构建基础,我们来看下面的图:

图片图片

在整个 3D 场景中,包含 4 个关键概念:

  1. 物体(objects) 可以是球体、平面、灯光、你最喜欢的角色的 3D 模型(幻灯片放映类似于单词的 3D 场景)
  2. 然后我们需要一个 相机(camera) 来观察这些物体并捕捉它们。
  3. 我们将所有内容包装在一个 场景(scene) 中,然后......
  4. 我们告诉 渲染器(render) 将所有内容渲染到 DOM Canvas 元素中。

2.2 创建项目并安装 TresJS

  1. 通过 vue create project 与 pnpm add three @tresjs/core 可直接创建项目并安装 TresJS。
  2. 参考 1.1 与 vue 深度兼容 中的代码可快速构建 tresjs 基础样式。
  3. 接下来,我们可以创建 相机(camera) 即可看到一个基本的效果。
<script setup>
import { TresCanvas } from '@tresjs/core'
</script>

<template>
 <TresCanvas clear-color="#82DBC5">
  <TresPerspectiveCamera />
 </TresCanvas>
</template>

<style>
* {
 margin: 0;
 padding: 0;
}
#app {
 height: 100vh;
 width: 100vw;
}
</style>
  1. 有了相机之后,我们可以利用 TresMesh 组件创建基本的模型。
<TresCanvas clear-color="#82DBC5">
  <!-- 相机 -->
  <TresPerspectiveCamera />
  <!-- 模型 -->
  <TresMesh>
    <TresBoxGeometry />
    <TresMeshNormalMaterial />
  </TresMesh>
</TresCanvas>
  1. 如果想要调整模型的位置,那么我们可以直接利用 TresMesh 组件的 props 进行修改。
<TresMesh :rotation="[Math.PI / 4, Math.PI / 2, 0]">
  <TresBoxGeometry />
  <TresMeshNormalMaterial />
</TresMesh>

此时渲染效果如下:

图片图片

今天,咱们通过一个简单的示例了解了 TresJS 的用法。如果感觉 ThreeJS 学习复杂度高的同学,那么可以看下 TresJS ,或许可以为你带来不一样的开发体验呢?

责任编辑:武晓燕 来源: 程序员Sunday
相关推荐

2023-10-05 12:55:12

自动驾驶系统

2023-12-01 10:37:20

自动驾驶3D

2024-05-15 09:15:34

Vue环境3D

2021-12-28 10:52:10

鸿蒙HarmonyOS应用

2015-06-26 15:26:30

Cocos百视通ARM

2013-07-05 10:44:30

3D打印3D打印技术Windows 8.1

2015-06-29 10:07:01

Cocos百视通ARM H5论坛

2010-07-07 16:37:13

BSM惠普云计算

2019-04-15 14:06:12

2024-12-02 09:57:43

GormScopesClauses

2011-05-25 16:07:17

2012-07-27 11:02:32

打印机

2013-05-15 12:20:30

NETGEAR智能家庭

2013-10-16 09:53:08

IBMPureSystemsPower Syste

2011-08-30 10:39:28

VMworld 201vmware

2012-07-24 10:05:09

打印机

2023-12-29 13:18:23

模型NeRFTICD

2020-08-26 10:37:21

阿里3D

2024-05-20 08:08:00

分布式系统缓存C#
点赞
收藏

51CTO技术栈公众号