Skip to content

Primitives

<primitive /> 组件是 TresJS 中一种通用的底层组件,它允许您在 Vue 应用程序中直接使用任何 three.js 对象,而无需进行抽象。它是 Vue 响应式系统和 three.js 场景画面之间的桥梁。

使用方法

html
<script setup lang="ts">
  // Import necessary three.js classes
  import { Mesh, BoxGeometry, MeshBasicMaterial } from 'three'

  // Create a box geometry and a basic material
  const geometry = new BoxGeometry(1, 1, 1)
  const material = new MeshBasicMaterial({ color: 0x00ff00 })

  // Create a mesh with the geometry and material
  const meshWithMaterial = new Mesh(geometry, material)
</script>

<template>
  <TresCanvas>
    <primitive :object="meshWithMaterial" />
  </TresCanvas>
</template>

Props

object:这个 prop 接受一个 three.js Object3D 或其任何派生类。它是 <primitive /> 组件将呈现的主要对象。在更新的示例中,一个被附加了 MaterialMesh 对象被传递给此 prop。

与模型一起使用

对于呈现复杂对象(如从外部加载的模型),<primitive /> 组件尤其有用。下面的示例展示了如何从 GLTF 文件加载模型,并使用 <primitive /> 组件对其进行渲染。

html
<script lang="ts" setup>
  import { useGLTF } from '@tresjs/cientos'

  const { nodes } = await useGLTF('/models/AkuAku.gltf')
</script>

<TresCanvas>
  <Suspense>
    <primitive :object="nodes.AkuAku" />
  </Suspense>
</TresCanvas>