《一》在Vue中搭建Three.js环境(超详细、保姆级),创建场景、相机、渲染器

news2024/12/22 16:16:02

目录

  • Three.js简介
  • 创建vue项目
  • 引入Three.js
  • 实际操作环节
    • 文件目录创建
    • 初始化场景、相机

Three.js简介

Three.js 是一款基于 WebGL的 JavaScript 3D 库,它封装了 WebGL API,为开发者提供了简单易用的 API 来在 Web 浏览器中展示 3D 图形。Three.js 提供了多种组件、方法和工具,用于创建和处理 3D 图形,使得开发者可以在 Web 浏览器中快速创建 3D 场景和动画,而不需要深入了解 WebGL 的底层实现。

简单来说:它就是一个绘制 3D 的 javaScript 轻量级框架;
能干什么:游戏,地图,智能工厂,智慧园区,360°模型 ,建筑家装,3d物联网 ,能干的东西太多了,不一一说了,自己想去吧。
官方网址:https://threejs.org

好了好了,介绍到这里就行了,已经够多了,官方的介绍很详细,来来来 步入正题…

创建vue项目

你不想用vue也可以,不强求,但我想用!!!

  1. 在合适的文件夹目录 1 下去打开cmd(windows小黑窗口)窗口或者Terminal(Mac终端),这俩不知道的话,就别往下看了。在弹出的窗口中输入以下命令,回车即可。
vue create demo

注: 啥啥啥?vue不是内部或外部命令?点我点我

  1. 选择VUE2,本讲解以VUE2来进行 2 ,所以选择VUE2。 上下键去选,选完以后回车。
    在这里插入图片描述
  2. 展示以下结果代表创建成果,没报错就是创建成功了。
    在这里插入图片描述

引入Three.js

  1. 使用WebStorm(你想用什么工具都可以,不强求)打开刚才创建的项目。
    在这里插入图片描述
  2. 在开发工具的Terminal中输入以下内容回车。
 npm install three

在这里插入图片描述

实际操作环节

文件目录创建

  1. 在src下创建js文件目录
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 并创建ThreeJs.js文件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

初始化场景、相机

  1. Three他是一个右手系的X、Y、Z,如下图所示:
    在这里插入图片描述

  2. 引入Three文件,创建ThreeJs的通用组件方法,使用构造器构建组件。

import * as THREE from 'three';
export default class ThreeJs{
    
    constructor(id){
        //根据传入的id,去获取他的dom节点,用来加载三维模型
        this.id=id;
        this.dom=document.getElementById(id);
    }
   
}
  1. 创建initThree方法,用来初始化场景,动画的宽高,和相机。
 initThree(){
        //创建场景scene
        this.scene=new THREE.Scene();
        //获取dom的宽和高
        this.width=this.dom.offsetWidth
        this.height=this.dom.offsetHeight;
        //创建相机,fov:视角 aspect:宽高比 near:近裁剪面 far:远裁剪面
        this.camera=new THREE.PerspectiveCamera(45,this.width/this.height,0.01,2000);
       	//设置相机位置
        this.camera.position.set(0,0,0);
    }

:相机的相关解释,这个必须要详细的介绍一下,这个很关键。也可以点击链接看官方文档 官方

序号相机含义
1ArrayCamera(摄像机阵列)ArrayCamera 用于更加高效地使用一组已经预定义的摄像机来渲染一个场景。这将能够更好地提升VR场景的渲染性能。一个 ArrayCamera 的实例中总是包含着一组子摄像机,应当为每一个子摄像机定义viewport(视口)这个属性,这一属性决定了由该子摄像机所渲染的视口区域的大小。
2Camera(摄像机)摄像机的抽象基类。在构建新摄像机时,应始终继承此类。
3CubeCamera(立方相机)创建6个渲染到WebGLCubeRenderTarget的摄像机。
4OrthographicCamera(正交相机)这一摄像机使用orthographic projection(正交投影)来进行投影。在这种投影模式下,无论物体距离相机距离远或者近,在最终渲染的图片中物体的大小都保持不变。这对于渲染2D场景或者UI元素是非常有用的。。
5PerspectiveCamera(透视相机)这一摄像机使用perspective projection(透视投影)来进行投影。这一投影模式被用来模拟人眼所看到的景象,它是3D场景的渲染中使用得最普遍的投影模式。
6StereoCamera(立体相机)双透视摄像机(立体相机)常被用于创建3D Anaglyph(3D立体影像) 或者Parallax Barrier(视差屏障)。
  1. 修改相机观看位置点位,默认让他看原点
this.camera.looAt(0,0,0)
  1. 追加WebGL的渲染器
this.renderer=new Th

  1. 你觉得那个文件夹合适,那它就合适,大犟种,还真点开看啊 ↩︎

  2. 多余的解释 点我 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1487437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

青岛琛蓝健康集团正式发布多项科研合作项目

青岛琛蓝健康集团正式发布多项科研合作项目 科技创新是推动琛蓝健康产业集团持续发展的原动力。 一直以来,琛蓝健康集团高度重视科研合作,与众多专家团队和科研机构达成战略合作关系,深入实施产学研合作模式,成立多个协同创新中心…

经典思路!人参叶际微生物如何发8分文章?

中国中医科学院中药研究所在《Environmental Microbiome》期刊上(IF7.9)发表了关于叶际真菌微生态网络的文章,该研究通过对ITS测序结果和环境因子测定结果以及皂苷含量测定结果进行生信分析,提出了维持微生态网络的稳定性策略和影响皂苷含量的因素。 期刊…

【推荐算法系列十七】:GBDT+LR 排序算法

排序算法经典中的经典 参考 推荐系统之GBDTLR 极客时间 手把手带你搭建推荐系统 课程 逻辑回归(LR)模型 逻辑回归(LR,Logistic Regression)是一种传统机器学习分类模型,也是一种比较重要的非线性回归模型&#xff…

2024年短剧项目怎么做?教你搭建自己的短剧及cps分销平台app小程序

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一、短剧系统 二、短剧cps分销平台 三、海外短剧系统 总结 前言 短剧系统分为三种: 短剧系统、短剧cps分销平台、海外短剧系统。今天简单介绍…

【C语言】剖析qsort函数的实现原理

主页:17_Kevin-CSDN博客 专栏:《C语言》 本文将从回调函数,qsort函数的应用,qsort函数的实现原理三个方面进行讲解,请自行跳转至相对位置进行阅读~ 目录 回调函数 qsort函数的应用 qsort函数实现原理 回调函数 什…

【推荐】免费AI论文写作神器-「智元兔 AI」

还在为写论文焦虑?免费AI写作大师来帮你三步搞定! 智元兔AI是ChatGPT的人工智能助手,并且具有出色的论文写作能力。它能够根据用户提供的题目或要求,自动生成高质量的论文。 不论是论文、毕业论文、散文、科普文章、新闻稿件&…

远程控制从未如此简单

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地…

网络学习:MPLS技术基础知识

目录 一、MPLS技术产生背景 二、MPLS网络组成(基本概念) 1、MPLS技术简介:Multiprotocol Lable Switching,多协议标签交换技术 2、MPLS网络组成 三、MPLS的优势 四、MPLS的实际应用 一、MPLS技术产生背景 1、IP采用最长掩码…

故障诊断 | 一文解决,XGBoost极限梯度提升树的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,XGBoost极限梯度提升树的故障诊断(Matlab) 模型描述 XGBoost通过集成多个决策树来建立一个强大的预测模型。它采用了一种特殊的梯度提升技术,称为极限梯度提升(Extreme Gradient Boosting),以提高模型的性能和鲁棒性。 极限梯度…

亚马逊Revie的作用有哪些?

Review在亚马逊的重要性不言而喻,好的Review可以给潜在的顾客以购买的信心,很多的卖家都会通过测评,来增加商品的Review来美化商品,进而带来更多的曝光量和流量,产生更多的订单,所以,对于任何一…

【anget应用入门】coze国际版agent应用discord快速部署及使用

1、coze agent配置 1.1 coze介绍 概述 Coze 是新一代一站式AI Bot开发平台🚀。无论你是否有编程基础,都可以在 Coze 平台上快速搭建基于 AI 模型的各类问答 Bot,从解决简单的问答到处理复杂逻辑的对话。你可以将搭建的 Bot 发布到各类社交…

Vue3:使用 Composition API 不需要 Pinia

在 Vue.js 开发的动态环境中,在单个组件中处理复杂的业务逻辑可能会导致笨重的文件和维护噩梦。虽然 Pinia 提供集中式状态管理,但仅依赖它来处理复杂的业务逻辑可能会导致代码混乱。本文探讨了使用 Composition API 的替代方法,说明开发人员…

2024高频前端面试题 JavaScript 和 ES6 篇

HTML和CSS篇: 2024高频前端面试题 HTML 和 CSS 篇-CSDN博客 一. JavaScript篇 1. 数据类型有哪些 1) 基本数据类型 数值(Number)、字符串(String)、布尔值(Boolean)、Undefined、Null、Symbol、BigInt 2) 引用数据类型 对象(Object)、数组(Array)、函数(Funct…

给孩子买台灯注意什么?多款热门护眼台灯测评体验总结

现在的青少年很多都是存在视力问题的,而大多数的原因都是因为长时间的用眼和不合适的光源环境导致的,因此家长们为了娃的眼睛健康,基本都会入手护眼台灯。不过市面上台灯种类繁杂,其中还包括了不专业的产品,这类台灯往…

机器学习周报第31周

目录 一、论文阅读1.1 论文标题1.2 论文摘要1.3 论文背景1.4 提出的系统:MAER1.4.1 基于Asyncio的预处理1.4.2 多模态信号下的情感识别1.4.3 针对情感不匹配情况的自适应融合 一、论文阅读 1.1 论文标题 Beyond superficial emotion recognition: Modality-adapti…

Noise Conditional Score Networks(NCSN)学习

参考: [1] https://zhuanlan.zhihu.com/p/597490389 [2] https://www.zhangzhenhu.com/aigc/Score-Based_Generative_Models.html TOC 1 基于分数的生成模型1.1 简介和动机1.2 Score Matching及其改进1.2.1 Score Matching1.2.2 Sliced score matching(不…

Achronix以创新FPGA技术推动智能汽车与先进出行创新

全球领先的高性能现场可编程门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)提供商Achronix Semiconductor公司宣布,该公司将参加由私募股权和风险投资公司Baird Capital举办的“Baird车技术…

基于主从模式的Reactor的仿muduo网络库

🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风…

备战蓝桥杯————差分数组2

目录 引言 一、拼车 题目描述 解题思路及代码 结果展示 二、航班预定统计 题目描述 解题思路及代码 结果展示 总结 引言 在现代交通管理中,拼车服务和航班预订系统是提高资源利用效率、优化用户体验的关键技术。随着城市交通压力的增大和航空业的快速发…

TIOBE 2024榜单启示:程序员如何把握未来编程趋势与机遇

程序员如何选择职业赛道? 程序员的职业赛道就像是一座迷宫,有前端的美丽花园,后端的黑暗洞穴,还有数据科学的神秘密室。你准备好探索这个充满挑战和机遇的迷宫了吗?快来了解如何选择职业赛道吧! 方向一…