three.js基础环境搭建

three.js

  • three.js介绍
  • 安装
    • threejs文件资源目录介绍
    • 本地静态服务器
    • vscode配置live-server插件
    • nodejs配置本地静态服务器
    • 项目的开发环境引入threejs
  • 基础知识
    • 右手坐标系
    • 程序结构

three.js介绍

three.js官网
Three.js是一款基于WebGL的JavaScript 3D库,它使得开发者能够使用JavaScript在Web浏览器中创建和展示高质量的3D图形和互动内容。以下是关于Three.js核心特点的详细介绍:
WebGL封装:Three.js封装了WebGL的底层API,提供了更高级别的抽象和更简洁的接口,使开发者无需直接操作复杂的图形渲染管线,即可实现高性能的3D渲染。
跨平台兼容性:Three.js支持在主流的桌面和移动浏览器上运行,具有良好的跨平台兼容性,能够确保开发的3D应用在各种设备上都能正常工作。
丰富的功能:Three.js提供了丰富的3D图形功能,包括支持3D模型加载、纹理贴图、光照和阴影、相机控制、物理模拟、粒子系统等。这些功能使得开发者能够轻松创建出逼真的3D场景和动画效果。
开源与社区支持:Three.js是一个开源项目,拥有庞大的开源社区和丰富的文档、示例以及第三方库。这些资源为开发者提供了强大的支持,使得学习和使用Three.js变得更加容易。
在这里插入图片描述

安装

使用 NPM 和构建工具进行安装。
对于大多数用户而已,从 npm 包注册表中心 安装并使用 构建工具 会是一个更推荐的方案。因为项目需要的依赖越多,就越有可能遇到静态托管无法轻易解决的问题。而使用构建工具,导入本地 JavaScript 文件和 npm 软件包将会是开箱即用的,无需导入映射(import maps)。

  1. 安装 Node.js。我们需要它来管理依赖项和运行构建工具。
  2. 在项目文件夹中通过 终端 安装 three.js 和构建工具 Vite。Vite 将在开发过程中使用,但不会被打包成为最终网页的一部分。当然,除了 Vite 你也可以使用其他支持导入 ES Modules 的现代构建工具。安装成功之后就会发现项目中多了一个node_modules文件夹和 package.json文件。
    node_modules:npm 将每个依赖项的代码放在 node_modules/ 下的文件夹中。当Vite构建应用程序时,它会看到 “three” 的导入,并自动从该文件夹中提取 three.js 文件。 node_modules/ 文件夹仅在开发过程中使用,不应上传到你的网络托管提供商或提交到版本历史记录中。
    package.json:npm 使用 package.json 来描述你已经安装的每个依赖项的版本。如果有其他人和你一起开发项目,他们只需运行 npm install 就能安装每个依赖项的原始版本。如果你在使用版本控制器(如:Git、SVN)来控制代码版本,那么 package.json 应当被提交。
  3. 在终端运行:

npx vite

npx 与 Node.js 一同安装,可运行 Vite 等命令行程序,这样你就不必自己在 node_modules/ 中搜索正确的文件。如果你愿意,可以将 Vite 的常用命令 放入 package.json:scripts 列表,然后使用 npm run dev 代替。

如果一切顺利,你会在终端中看到一个类似 http://localhost:5173 的 URL,打开该 URL 就能看到你的网络应用程序。

threejs文件资源目录介绍

github链接查看所有版本threejs:https://github.com/mrdoob/three.js/releases
选择你需要的版本three.js文件包下载,然后解压,就可以预览里面的很多学习资源。
下载three.js文件包解压后,你可以看到如下目录(不同版本会略有差异)。

对于开发者而言,大家经常接触的是文档docs和案例examples两个文件夹,平时查看文档,可以打开文档docs里面html文件,案例examples里面提供了海量threejs功能案例。

three.js-文件包
└───build——three.js相关库,可以引入你的.html文件中。│
└───docs——Three.js API文档文件│───index.html——打开该文件,本地离线方式预览threejs文档
└───examples——大量的3D案例,是你平时开发参考学习的最佳资源│───jsm——threejs各种功能扩展库
└───src——Three.js引擎的源码,有兴趣可以阅读。│
└───editor——Three.js的可视化编辑器,可以编辑3D场景│───index.html——打开应用程序  

本地静态服务器

平时学习Three.js,如果你想预览代码3D效果,咱们需要提供一个本地静态服务器的开发环境,如果你有一定的web前端基础,提到本地静态服务器肯定不陌生。
作为前端工程师,大家都知道,正式的web项目开发,往往会用webpack或vite或其它方式配置一个开发环境。
如果只是学习threejs的话,没必要这么麻烦,我最建议的方式就是,通过代码编辑器快速创建本地静态服务器,比如vsocde,安装live-server插件即可。

vscode配置live-server插件

  • 安装
    vscode软件界面左侧,点击扩展,输入live-server关键词查询安装。

  • 使用
    如果你想预览代码3D效果,打开对应.html文件,右键点击Open with Live Server即可。

nodejs配置本地静态服务器

如果不用代码编辑器创建本地静服务器,也可以用nodejs配置。
首先确保你电脑已经安装nodejs,然后npm安装live-server插件,安装后,进入课件或threejs官方文件根目录,输入live-server命令即可预览3D案例。

// 安装live-server
npm install live-server -g

不过平时为了开发方便,可以不用nodejs创建一个本地静态服务器,可以借助你的代码编辑器更方便,比如下面要说到的vscode。

项目的开发环境引入threejs

比如你采用的是Vue + threejs或React + threejs技术栈,这很简单,threejs就是一个js库,直接通过npm命令行安装就行。
npm安装特定版本three.js(注意使用哪个版本,查文档就查对应版本)

// 比如安装148版本
npm install three@0.148.0 --save
  • 引入three.js
import * as THREE from 'three';

基础知识

右手坐标系

右手坐标系中,x轴、y轴和z轴的正方向是通过以下方式规定的:将右手放在原点的位置,使大拇指、食指和中指互成直角。大拇指指向x轴的正方向,食指指向y轴的正方向时,中指所指的方向就是z轴的正方向。
在这里插入图片描述

程序结构

在这里插入图片描述

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

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

相关文章

go语言day2 配置

使用cmd 中的 go install ; go build 命令出现 go cannot find main module 错误怎么解决? go学习-问题记录(开发环境)go: cannot find main module; see ‘go help modules‘_go: no flags specified (see go help mod edit)-CSDN博客 在本…

文字实录|Checkout.com大中华区总经理项尧:品牌全球化发展中的支付运营策略

大家好,很高兴在此次【品牌全球化营销增长峰会】与大家一起分享和交流。 我叫项尧,是 Checkout.com 大中华区的总经理,在支付领域有将近15年的经验。 我们 Checkout.com 是一家总部位于英国的支付公司,专注于线上收单&#xff0…

Charles 忽略IP授权 Allow 弹窗

当有新的设备连接到 Charles 时,会出现如下弹框确认是否允许,如果希望允许所有客户端连接不再有提示,可以通过添加模糊IP规则来实现。 配置方法:Proxy > Access Control Settings 中添加 0.0.0.0/0 和 ::/0 即可,…

数字孪生如何赋能智慧加油站?

在当今数字化转型的浪潮中,智慧城市的构建正以前所未有的速度推进,而智慧加油站作为智慧城市生态系统的重要组成部分,其升级转型显得尤为重要。随着国家“十四五”规划对智慧城市和数字化建设的明确指引,以及“碳达峰、碳中和”目…

08 元组和集合

目录 一、元组(tuple) 1. 什么是元组 2. 查操作 3. 函数和方法 二、集合(set) 1. 什么是集合 2. 数学集合运算 一、元组(tuple) 1. 什么是元组 元组是容器型数据类型,将( )作为容器的标…

考研数学(3/9):一元函数积分学

目录 一元函数积分学 1. 不定积分 1.1 不定积分的定义 1.2 不定积分的性质 1.3 不定积分的计算方法 2. 定积分 2.1 定积分的定义 2.2 定积分的性质 2.3 定积分的计算方法 3. 定积分的应用 3.1 求平面图形的面积 3.2 求旋转体的体积 3.3 求曲线的弧长 3.4 求曲面的…

【数据建模】微分方程与动力系统

文章目录 微分方程与动力系统1. 微分方程的理论基础1.1 函数、导数与微分1.2 一阶线性微分方程的解1.3 二阶常系数线性微分方程的解 2. 使用python求解微分方程2.1 求解微分2.2 求解定积分2.2.1 quad函数求解2.2.2 梯型法则求解 3. 使用Scipy和Sympy解微分方程3.1 使用sympy求解…

MATLAB中findall用法

目录 语法 说明 示例 查找具有可见或隐藏句柄的图窗 查找句柄处于隐藏状态的对象 查找 Text 对象 提示 findall的功能是查找所有图形对象。 语法 h findall(objhandles) h findall(objhandles,prop1,value1,...,propN,valueN) 说明 h findall(objhandles) 返回 ob…

ubuntu22.04 设置双屏

一 概述 最近把ubuntu18.04 升级到 22.04 双屏显示出来问题,在此记录下解决问题方案。二 解决方案 1 使用命令查看能检测到显示器 xrandr根据输出的信息,我们可以知道 HDMI-0 与 DP-0 是connected 。检测到两个显示器 2 设置输出显示器分辨率 由于我…

关于Vite+Vue+Ts WebStorm路径别名的问题

一、准备一个项目 二、在 vite.config.js 中添加 resolve: {alias: {: /src}} 三、tsconfig.app.json中添加代码 //添加代码"baseUrl": ".","paths": {"/*": ["src/*"]}把src的一个文件修改路径为开头 四、安装插件 npm i …

来给大家推荐得10个有效磁力导航链接(好用搜资料找资源)

都2024现在网上找资源像流水得鱼一样,抓一大把结果很难吃,我通宵特意整理的网站,网上有许多磁力导航网站可以提供海量的磁力链接资源,以下是一些有效的磁力导航网站推荐: 磁力搜索 网站地址:www.chiliso…

安装软件时出现风险警告——代码签名证书帮您解决(申请与优惠)

您开发的软件在用户下载安装时是否有以下弹窗提醒? 如何让用户信任软件并下载软件,是众多软件开发公司需要迫切去解决的问题,由此代码签名证书应运而生。 一 什么是代码签名证书 代码签名证书是一种提供给软件开发者,对其开发的…

上下文管理器在Python中的妙用

更多Python学习内容:ipengtao.com Python上下文管理器是一个非常强大的工具,它能够帮助开发者在特定代码块前后自动执行特定的操作,常用于资源管理,如文件操作、数据库连接和锁定等。本文将详细介绍Python上下文管理器的概念、使用…

【C++】final关键字 | 避免派生、重写

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

AWS云计算平台:全方位服务与实践案例

摘要 在数字化浪潮的推动下&#xff0c;云计算已成为企业转型的强大引擎。AWS作为云计算的先锋&#xff0c;不仅提供了一系列强大的基础设施服务&#xff0c;更是在人工智能领域不断探索和创新。本文将带您领略AWS的全方位服务&#xff0c;并透过实际案例&#xff0c;感受其在…

最新MDYS14源码影视视频网站模板/苹果CMS系统/附搭建教程

最新MDYS14源码影视视频网站模板/苹果CMS系统/附搭建教程 基本介绍&#xff1a; 1、后台增加自定义参数&#xff0c;对应会员升级页面&#xff0c;以及积分充值 2、视频&#xff0c;演员&#xff0c;专题&#xff0c;收藏&#xff0c;会员系统模块齐全&#xff0c;支持子分类…

发包真香之:scapy工具

scapy – python 可自由组包 参考学习&#xff1a;初识Scapy–Python的Scapy/Kamene模块学习之路 scapy 介绍 Scapy是基于Python语言的网络报文处理程序&#xff0c;它可以让用户发送、嗅探、解析、以及伪造网络报文&#xff0c;运用Scapy可以进行网路侦测、端口扫描、路由追…

已解决java.beans.IntrospectionException: 在Java Beans中内省过程失败的正确解决方法,亲测有效!!!

已解决java.beans.IntrospectionException: 在Java Beans中内省过程失败的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 检查命名规范 验证Getter/Setter匹配性 确认访问权限 审查类型一致性 简…

Android网络基础面试题之HTTPS的工作流程和原理

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 工作流程 HTTPS 默认工作在 TCP 协议443端口&#xff0c;它的工作流程一般如以下方式&#xff1a; 1、TCP 三次同步握手 2、客户端验证服务器…

SpringMVC 请求参数接收

目录 请求 传递单个参数 基本类型参数传递 未传递参数 传递参数类型不匹配 传递多个参数 传递对象 后端参数重命名 传递数组 传递集合 传递JSON数据 JSON是什么 JSON的优点 传递JSON对象 获取URL中的参数 文件上传 在浏览器与程序进行交互时&#xff0c;主要分为…