vue-3d-model:一个展示三维模型的 Vue 组件

vue-3d-model

vue.js 3D model viewer component, based on threejs, inspired by model-tag

一个展示三维模型的Vue组件,支持模型操作和模型点击事件,能自动缩放模型到合适大小并校正偏移,支持多种格式的模型。

vue-3d-model:一个展示三维模型的 Vue 组件

Example

DEMO

Install

using npm

npm install vue-3d-model --save

Or using script tag for global use

<script src="https://unpkg.com/vue-3d-model/dist/vue-3d-model.min.js"></script>

Or Download vue-3d-model.min.js and include it in your html

Usage

<template>
    <model-obj src="example/models/obj/LeePerrySmith.obj"></model-obj>
</template>
<script>
    import { ModelObj } from 'vue-3d-model'

    export default {
        components: { ModelObj }
    }
</script>

Or

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <div id="app">
        <model-obj src="example/models/obj/LeePerrySmith.obj"></model-obj>
    </div>
    <script src="vue.js"></script>
    <script src="vue-3d-model.min.js"></script>
    <script>
        new Vue({
            el: '#app'
        })
    </script>
</body>

Documents

props

proptypedefaultexample
srcstring-'./exapmle.obj'
widthnumber-300
heightnumber-300
positionobject{ x: 0, y: 0, z: 0 }{ x: 100, y: 20, z: -10 }
rotationobject{ x: 0, y: 0, z: 0 }{ x: Math.PI / 2, y: 0, z: - Math.PI / 4 }
scaleobject{ x: 1, y: 1, z: 1 }{ x: 2, y: 2, z: 3 }
lightsarray- 
backgroundColornumber/string0xffffff0xffffff/'#f00'/'rgb(255,255,255)'
backgroundAlphanumber10.5
controllablebooleantruetrue/false

events

event
on-mousedown
on-mousemove
on-mouseup
on-click
on-load
on-progress
on-error

Model Format Support

model formatcomponent tag
obj<model-obj>
json<model-three>
stl<model-stl>
dae<model-collada>
ply<model-ply>
gltf(2.0)<model-gltf>

Browser Support

Modern browsers and IE 11.

You can click on this for more information

TODO List

  • Support for more model formats
  • Animation
  • Post-processing

LICENSE

MIT

查看原文: vue-3d-model:一个展示三维模型的 Vue 组件

### 如何在 Vue3 和 Vite 项目中使用 `vue-3d-model` #### 安装依赖 为了在 Vue3 和 Vite 项目中集成 `vue-3d-model`,首先需要安装必要的依赖包: ```bash npm install vue-3d-model three @types/three ``` 这一步骤确保了 `vue-3d-model` 及其所需的 Three.js 库被正确引入到项目环境中。 #### 创建组件并加载模型 接下来,在项目的组件内实现三维模型展示功能。可以创建一个新的 Vue 单文件组件用于显示 3D 模型,如下所示: ```html <template> <div id="app"> <!-- 使用 vue-3d-modelModelViewer 组件 --> <ModelViewer :model-url="'path/to/your/model.gltf'" /> </div> </template> <script setup lang="ts"> import { ref } from 'vue'; import { ModelViewer } from 'vue-3d-model'; // 假设这里定义了一些响应式的属性或者其他逻辑... const modelUrl = ref('path/to/your/model.gltf'); </script> <style scoped> /* 自定义样式 */ #app { width: 100%; height: 100vh; } </style> ``` 上述代码片段展示了如何通过 `<ModelViewer>` 标签来嵌入外部 GLTF 文件作为 3D 模型资源[^1]。 #### 配置 vite.config.ts 支持 gltf 加载 为了让 Vite 正确处理 `.gltf` 或其他类型的资产文件,可能还需要调整 `vite.config.ts` 中的相关配置项,以便更好地支持这些静态资源的解析与打包过程: ```typescript import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' export default defineConfig({ plugins: [ vue(), // 如果有必要的话,还可以加入更多插件比如优化图片、字体等资源 ], assetsInclude: ['**/*.gltf'], // 明确指定要包含哪些扩展名的文件 }) ``` 这样做的目的是让构建工具知道应该怎样对待特定格式的数据文件,从而避免潜在的问题发生[^2]。 #### 添加额外的功能模块 (可选) 如果希望进一步增强应用体验,例如添加状态管理库 Pinia 或者设置路由,则可以根据实际需求参照官方文档进行相应操作[^3]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值