iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue3项目中使用three.js的操作步骤
  • 154
分享到

vue3项目中使用three.js的操作步骤

vue3 three.jsvue使用three.js 2023-01-15 18:01:35 154人浏览 安东尼
摘要

目录前言一、three.js是什么?二、vue3中下载与安装three.js三、操作步骤1.创建场景2.创建物体3.添加光源4.添加相机5.开始渲染四、myThree.Vue源代码五

前言

在vue3项目中,通过three.js使用了一段短小但完整的代码实现了实际的三维效果图。

一、three.js是什么?

Three.js是一个轻量级,跨平台的javascript库,可以在浏览器上结合HTML5canvas,SVG或者webGL,创建和展示3D模型和动画。
Three.js允许我们在不依赖任何浏览器插件的情况下,创建一个GPU加速的3D动画场景。

二、vue3中下载与安装three.js

1.利用npm安装three.js:

npm install three

2.npm安装轨道控件插件:

npm install three-orbit-controls

3.安装加载.obj和.mtl文件的插件:

npm i --save three-obj-mtl-loader

4.安装渲染器插件:

npm i --save three-CSS2drender

安装好后在需要调用的vue文件中引用:

import * as Three from 'three'

三、操作步骤

场景——相机——渲染器是在Three.js中必不可少的三要素,只有以上三者结合才能渲染出可见的内容。

1.创建场景

	//创建一个三维场景
    const scene = new THREE.Scene();

2.创建物体

    const geometry = new THREE.BoxGeometry(100, 100, 100);//长宽高都是100的立方体
    // const geometry = new THREE.SphereGeometry(60,40,40);//半径是60的圆
    //widthSegments, heightSegments:水平方向和垂直方向上分段数。widthSegments最小值为3,默认值为8。heightSegments最小值为2,默认值为6。
    //创建材质(外观)
    const material = new THREE.MeshLambertMaterial({
        // color: 0x0000ff,//设置材质颜色(蓝色)
        color: 0x00ff00,//(绿色)
        transparent: true,//开启透明度
        opacity: 0.5 //设置透明度
    });
    //创建一个网格模型对象
    const mesh = new THREE.Mesh(geometry, material);//网络模型对象Mesh
    //把网格模型添加到三维场景
    scene.add(mesh);//网络模型添加到场景中

3.添加光源

    //添加光源 //会照亮场景里的全部物体(氛围灯),前提是物体是可以接受灯光的,这种灯是无方向的,即不会有阴影。
    const ambient = new THREE.AmbientLight(0xffffff, 0.4);
    const light = new THREE.PointLight(0xffffff, 1);//点光源,color:灯光颜色,intensity:光照强度

4.添加相机

    //创建一个透视相机,窗口宽度,窗口高度
    const width = window.innerWidth, height = window.innerHeight;
    const camera = new THREE.PerspectiveCamera(45, width/height, 1, 1000);
    //设置相机位置
    camera.position.set(300,300,300);
    //设置相机方向
    camera.lookAt(0,0,0);

5.开始渲染

    //创建一个WEBGL渲染器
    const renderer = new THREE.WebGLRenderer()
    renderer.setSize(width,height)//设置渲染区尺寸
    renderer.render(scene,camera)//执行渲染操作、指定场景、相机作为参数

四、myThree.vue源代码

说了这么多,现奉上myThree.vue源代码:

<template>
    <div id="my-three"></div>
</template>
​
<script lang='ts' setup>
    import * as THREE from 'three'
    import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
    import { onMounted  } from 'vue'

    //创建一个三维场景
    const scene = new THREE.Scene();
    //创建一个物体(形状)
    const geometry = new THREE.BoxGeometry(100, 100, 100);//长宽高都是100的立方体
    // const geometry = new THREE.SphereGeometry(60,40,40);//半径是60的圆
    //widthSegments, heightSegments:水平方向和垂直方向上分段数。widthSegments最小值为3,默认值为8。heightSegments最小值为2,默认值为6。
    //创建材质(外观)
    const material = new THREE.MeshLambertMaterial({
        // color: 0x0000ff,//设置材质颜色(蓝色)
        color: 0x00ff00,//(绿色)
        transparent: true,//开启透明度
        opacity: 0.5 //设置透明度
    });
    //创建一个网格模型对象
    const mesh = new THREE.Mesh(geometry, material);//网络模型对象Mesh
    //把网格模型添加到三维场景
    scene.add(mesh);//网络模型添加到场景中

    // 添加多个模型(添加圆形)
    // const  geometry2 = new THREE.SphereGeometry(60, 40, 40);
    // const  material2 = new THREE.MeshLambertMaterial({
    //     color: 0xffff00
    // });
    // const mesh2 = new THREE.Mesh(geometry2, material2); //网格模型对象Mesh
    // // mesh3.translateX(120); //球体网格模型沿Y轴正方向平移120
    // mesh2.position.set(120,0,0);//设置mesh3模型对象的xyz坐标为120,0,0
    // scene.add(mesh2);

    //添加光源 //会照亮场景里的全部物体(氛围灯),前提是物体是可以接受灯光的,这种灯是无方向的,即不会有阴影。
    const ambient = new THREE.AmbientLight(0xffffff, 0.4);
    const light = new THREE.PointLight(0xffffff, 1);//点光源,color:灯光颜色,intensity:光照强度

    scene.add(ambient);
    light.position.set(200,300,400);
    scene.add(light);

    //创建一个透视相机,窗口宽度,窗口高度
    const width = window.innerWidth, height = window.innerHeight;
    const camera = new THREE.PerspectiveCamera(45, width/height, 1, 1000);
    //设置相机位置
    camera.position.set(300,300,300);
    //设置相机方向
    camera.lookAt(0,0,0);

    //创建辅助坐标轴
    const axesHelper = new THREE.AxesHelper(200);//参数200标示坐标系大小,可以根据场景大小去设置
    scene.add(axesHelper);

    //创建一个WebGL渲染器
    const renderer = new THREE.WebGLRenderer()
    renderer.setSize(width,height)//设置渲染区尺寸
    renderer.render(scene,camera)//执行渲染操作、指定场景、相机作为参数

    const controls = new OrbitControls(camera, renderer.domElement)//创建控件对象
    controls.addEventListener('change',()=>{
        renderer.render(scene, camera)//监听鼠标,键盘事件
    })
    onMounted(()=>{
        document.getElementById('my-three')?.appendChild(renderer.domElement)
    })
</script>
​
<style lang='scss'>
    body{
        margin: 0;
        padding: 0;
    }
</style>

五、效果图

1.单个模型

2.多个模型

总结

在vue3项目中,通过three.js实现了实际的三维效果demo,未来会继续深入研究,总之3D渲染图形是一个很好玩的东西,欢迎大家一起交流。

到此这篇关于vue3项目中使用three.js的文章就介绍到这了,更多相关vue3使用three.js内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue3项目中使用three.js的操作步骤

本文链接: https://www.lsjlt.com/news/177824.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue3项目中使用three.js的操作步骤
    目录前言一、three.js是什么?二、vue3中下载与安装three.js三、操作步骤1.创建场景2.创建物体3.添加光源4.添加相机5.开始渲染四、myThree.vue源代码五...
    99+
    2023-01-15
    vue3 three.js vue使用three.js
  • django8.5 项目部署Nginx的操作步骤
    1、概念:  Nginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理、负载均衡等一系列重要的特性。由C语言编写,执行效率高。 作用: &emsp...
    99+
    2024-04-02
  • 使用Vite搭建vue3+TS项目的实现步骤
    目录vite简介初始化项目修改vite.config.ts安装ts依赖和ESLint安装Axios配置跨域安装Lessvite简介 vite 是一个基于 Vue3 单文件组件的非打包...
    99+
    2023-01-11
    Vite搭建vue3+TS项目
  • vue2.0项目发布上线的操作步骤
    这篇文章主要讲解了“vue2.0项目发布上线的操作步骤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue2.0项目发布上线的操作步骤”吧!一、vue工程配...
    99+
    2024-04-02
  • 在vue3项目中使用新版高德地图的完整步骤
    目录1. 首先你要注册好账号登录2. 获取key和密钥 NPM方式安装和使用(基础版):        ...
    99+
    2023-02-27
    vue调用高德地图 vue高德地图 vue3 高德地图
  • 在PyCharm中使用FMEObjects的操作步骤
    目录在PyCharm中使用FMEObjects操作步骤:使用PyCharm在PyCharm中使用FMEObjects 安装和配置下载并安装PyCharm社区版 Python FMEO...
    99+
    2024-04-02
  • vite+vue3+element-plus项目搭建的方法步骤
    使用vite搭建vue3项目 通过在终端中运行以下命令,可以使用 Vite 快速构建 Vue 项目。 $ npm init vite-app <project-name&...
    99+
    2024-04-02
  • vue打包项目版本号自加的操作步骤
    目录原因方案步骤原因 项目每次打包后都需要改动项目版本号,这个改动每次都需要在package.json中修改version,比较麻烦,到底有没有一种打包后版本号自加的办法。 方案 版...
    99+
    2024-04-02
  • Django将项目移动到新环境的操作步骤
    一、操作步骤 步骤一:输出虚拟环境中已安装包的名称及版本号并记录到 requirements.txt 文件中 pip freeze > requirements.txt ...
    99+
    2024-04-02
  • vue项目中 jsconfig.json概念及使用步骤
    目录vue项目中 jsconfig.json是什么概述一、使用tsconfig.json或jsconfig.json二、使用步骤1. 配置说明2. 配置 webpack 别名3. c...
    99+
    2024-04-02
  • Spring Boot 项目发布到 Tomcat 服务器的操作步骤
    第 1 步:将这个 Spring Boot 项目的打包方式设置为 war。<packaging>war</packaging>...
    99+
    2023-05-31
    spring boot tomcat
  • 使用Vite+Vue3+Vant全家桶快速构建项目步骤详解
    目录引言一、vue3全家桶模板介绍1.版本依赖2.全家桶内置集成二、安装 tive-cli 命令行工具三、生成项目四、项目体验引言 随着Vue3 和 Vite 版本的不断更新完善,开...
    99+
    2024-04-02
  • SpringBoot项目中使用redis缓存的方法步骤
    本文介绍了SpringBoot项目中使用redis缓存的方法步骤,分享给大家,具体如下:Spring Data Redis为我们封装了Redis客户端的各种操作,简化使用。 - 当Redis当做数据库或者消息队列来操作时,我们一般使用Red...
    99+
    2023-05-30
    spring boot redis
  • Vue3项目中的hooks怎么使用
    本篇内容介绍了“Vue3项目中的hooks怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!hooks 特点vue3 中的 hooks ...
    99+
    2023-07-06
  • vue3项目中使用tinymce的方法
    目录1、安装相关依赖2、下载中文包3. 引入皮肤和汉化包4. 封装组件:在src/components下新建TEditor.vue,并写入以下代码5. 注册及使用组件tinymce是...
    99+
    2023-05-17
    vue3使用tinymce vue使用tinymce
  • Vue进行环境搭建和项目构建的操作步骤
    这篇文章主要介绍了Vue进行环境搭建和项目构建的操作步骤,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。为什么要使用VueVue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以创建可维护性和可测试性更...
    99+
    2023-06-14
  • Vue3项目中的hooks的使用教程
    目录hooks 特点hooks 基本使用今天我们稍微说一下 vue3 项目中的 hooks 的使用,其实这个 hooks 呢是和 vue2 当中的 mixin 是类似的,学习过 vu...
    99+
    2022-11-13
    Vue3 hooks使用 Vue3 hooks
  • 使用navicat连接mysql的操作步骤
    小编给大家分享一下使用navicat连接mysql的操作步骤,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!打开Navicat P...
    99+
    2024-04-02
  • vue3项目中怎么使用tinymce
    tinymce是一个功能齐全的富文本编辑器插件,但在vue中引入tinymce并不像别的Vue富文本插件一样那么顺利,tinymce本身并不适配Vue,还需要引入@tinymce/tinymce-vue,并且它是国外的富文本插件,没有通过中...
    99+
    2023-05-19
    Vue3 tinymce
  • React项目使用Element的步骤是怎样的
    本篇文章给大家分享的是有关React项目使用Element的步骤是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。初次在react项目中使用element框架,碰到了一些很...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作